@openui5/sap.m 1.126.1 → 1.128.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 (510) 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 +15 -15
  45. package/src/sap/m/DialogRenderer.js +11 -3
  46. package/src/sap/m/DisplayListItem.js +1 -1
  47. package/src/sap/m/DraftIndicator.js +1 -1
  48. package/src/sap/m/DynamicDate.js +1 -1
  49. package/src/sap/m/DynamicDateOption.js +1 -1
  50. package/src/sap/m/DynamicDateRange.js +2 -2
  51. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  52. package/src/sap/m/ExpandableText.js +2 -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 +1 -1
  56. package/src/sap/m/FeedContent.js +1 -1
  57. package/src/sap/m/FeedInput.js +1 -1
  58. package/src/sap/m/FeedListItem.js +1 -1
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/FeedListItemRenderer.js +15 -14
  61. package/src/sap/m/Fiori20Adapter.js +40 -19
  62. package/src/sap/m/FlexBox.js +1 -1
  63. package/src/sap/m/FlexItemData.js +1 -1
  64. package/src/sap/m/FormattedText.js +1 -1
  65. package/src/sap/m/GenericTag.js +11 -5
  66. package/src/sap/m/GenericTile.js +1 -2
  67. package/src/sap/m/GenericTileRenderer.js +5 -1
  68. package/src/sap/m/GroupHeaderListItem.js +1 -1
  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 -1
  74. package/src/sap/m/IconTabBarSelectList.js +1 -1
  75. package/src/sap/m/IconTabFilter.js +1 -1
  76. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  77. package/src/sap/m/IconTabHeader.js +1 -1
  78. package/src/sap/m/IconTabSeparator.js +1 -1
  79. package/src/sap/m/IllustratedMessage.js +1 -1
  80. package/src/sap/m/Illustration.js +1 -1
  81. package/src/sap/m/Image.js +1 -1
  82. package/src/sap/m/ImageContent.js +1 -1
  83. package/src/sap/m/Input.js +15 -23
  84. package/src/sap/m/InputBase.js +16 -2
  85. package/src/sap/m/InputListItem.js +1 -1
  86. package/src/sap/m/Label.js +1 -1
  87. package/src/sap/m/LightBox.js +1 -1
  88. package/src/sap/m/LightBoxItem.js +1 -1
  89. package/src/sap/m/Link.js +120 -5
  90. package/src/sap/m/LinkRenderer.js +18 -0
  91. package/src/sap/m/LinkTileContent.js +1 -1
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +96 -13
  94. package/src/sap/m/ListItemBase.js +2 -2
  95. package/src/sap/m/MaskEnabler.js +1 -1
  96. package/src/sap/m/MaskInput.js +1 -1
  97. package/src/sap/m/MaskInputRule.js +1 -1
  98. package/src/sap/m/Menu.js +168 -57
  99. package/src/sap/m/MenuButton.js +1 -1
  100. package/src/sap/m/MenuItem.js +86 -12
  101. package/src/sap/m/MenuItemGroup.js +448 -0
  102. package/src/sap/m/MenuListItem.js +45 -2
  103. package/src/sap/m/MenuListItemRenderer.js +59 -23
  104. package/src/sap/m/MessageItem.js +14 -6
  105. package/src/sap/m/MessageListItem.js +2 -2
  106. package/src/sap/m/MessagePage.js +1 -1
  107. package/src/sap/m/MessagePopover.js +1 -1
  108. package/src/sap/m/MessagePopoverItem.js +1 -1
  109. package/src/sap/m/MessageStrip.js +2 -2
  110. package/src/sap/m/MessageToast.js +1 -1
  111. package/src/sap/m/MessageView.js +10 -7
  112. package/src/sap/m/MultiComboBox.js +1 -1
  113. package/src/sap/m/MultiEditField.js +1 -1
  114. package/src/sap/m/MultiInput.js +1 -1
  115. package/src/sap/m/NavContainer.js +1 -1
  116. package/src/sap/m/NewsContent.js +24 -1
  117. package/src/sap/m/NewsContentRenderer.js +16 -11
  118. package/src/sap/m/NotificationList.js +1 -1
  119. package/src/sap/m/NotificationListBase.js +2 -2
  120. package/src/sap/m/NotificationListGroup.js +1 -1
  121. package/src/sap/m/NotificationListItem.js +3 -3
  122. package/src/sap/m/NumericContent.js +1 -1
  123. package/src/sap/m/NumericInput.js +1 -1
  124. package/src/sap/m/ObjectAttribute.js +1 -1
  125. package/src/sap/m/ObjectHeader.js +1 -1
  126. package/src/sap/m/ObjectIdentifier.js +12 -5
  127. package/src/sap/m/ObjectListItem.js +1 -1
  128. package/src/sap/m/ObjectMarker.js +1 -1
  129. package/src/sap/m/ObjectNumber.js +4 -4
  130. package/src/sap/m/ObjectNumberRenderer.js +0 -9
  131. package/src/sap/m/ObjectStatus.js +13 -7
  132. package/src/sap/m/ObjectStatusRenderer.js +8 -0
  133. package/src/sap/m/OverflowToolbar.js +64 -7
  134. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  135. package/src/sap/m/OverflowToolbarButton.js +1 -1
  136. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  137. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  138. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  139. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  140. package/src/sap/m/P13nColumnsItem.js +1 -1
  141. package/src/sap/m/P13nColumnsPanel.js +1 -1
  142. package/src/sap/m/P13nConditionPanel.js +3 -5
  143. package/src/sap/m/P13nDialog.js +1 -1
  144. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  145. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  146. package/src/sap/m/P13nFilterItem.js +1 -1
  147. package/src/sap/m/P13nFilterPanel.js +1 -1
  148. package/src/sap/m/P13nGroupItem.js +1 -1
  149. package/src/sap/m/P13nGroupPanel.js +1 -1
  150. package/src/sap/m/P13nItem.js +1 -1
  151. package/src/sap/m/P13nPanel.js +1 -1
  152. package/src/sap/m/P13nSelectionItem.js +1 -1
  153. package/src/sap/m/P13nSelectionPanel.js +1 -1
  154. package/src/sap/m/P13nSortItem.js +1 -1
  155. package/src/sap/m/P13nSortPanel.js +1 -1
  156. package/src/sap/m/PDFViewer.js +1 -1
  157. package/src/sap/m/Page.js +1 -4
  158. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  159. package/src/sap/m/PagingButton.js +1 -1
  160. package/src/sap/m/Panel.js +1 -1
  161. package/src/sap/m/PlanningCalendar.js +22 -6
  162. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  163. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  164. package/src/sap/m/PlanningCalendarLegendRenderer.js +4 -1
  165. package/src/sap/m/PlanningCalendarRow.js +11 -5
  166. package/src/sap/m/PlanningCalendarView.js +1 -1
  167. package/src/sap/m/Popover.js +16 -5
  168. package/src/sap/m/PopoverRenderer.js +13 -3
  169. package/src/sap/m/ProgressIndicator.js +1 -1
  170. package/src/sap/m/PullToRefresh.js +1 -1
  171. package/src/sap/m/QuickView.js +1 -1
  172. package/src/sap/m/QuickViewBase.js +1 -1
  173. package/src/sap/m/QuickViewCard.js +1 -1
  174. package/src/sap/m/QuickViewGroup.js +1 -1
  175. package/src/sap/m/QuickViewGroupElement.js +1 -1
  176. package/src/sap/m/QuickViewPage.js +1 -1
  177. package/src/sap/m/RadioButton.js +1 -1
  178. package/src/sap/m/RadioButtonGroup.js +1 -1
  179. package/src/sap/m/RangeSlider.js +1 -1
  180. package/src/sap/m/RatingIndicator.js +1 -1
  181. package/src/sap/m/RatingIndicatorRenderer.js +1 -2
  182. package/src/sap/m/ResponsivePopover.js +1 -1
  183. package/src/sap/m/ResponsiveScale.js +1 -1
  184. package/src/sap/m/ScrollBar.js +1 -1
  185. package/src/sap/m/ScrollContainer.js +1 -1
  186. package/src/sap/m/SearchField.js +1 -1
  187. package/src/sap/m/SegmentedButton.js +1 -1
  188. package/src/sap/m/SegmentedButtonItem.js +1 -1
  189. package/src/sap/m/Select.js +36 -4
  190. package/src/sap/m/SelectDialog.js +14 -10
  191. package/src/sap/m/SelectDialogBase.js +21 -13
  192. package/src/sap/m/SelectList.js +2 -2
  193. package/src/sap/m/SelectionDetails.js +1 -29
  194. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  195. package/src/sap/m/SelectionDetailsItem.js +1 -1
  196. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  197. package/src/sap/m/Shell.js +1 -1
  198. package/src/sap/m/SimpleFixFlex.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendar.js +15 -2
  200. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarGrid.js +81 -25
  202. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +88 -17
  203. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +68 -7
  204. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +18 -8
  205. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  206. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  207. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  208. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  209. package/src/sap/m/SlideTile.js +1 -1
  210. package/src/sap/m/SlideTileRenderer.js +3 -0
  211. package/src/sap/m/Slider.js +1 -1
  212. package/src/sap/m/SliderTooltip.js +1 -1
  213. package/src/sap/m/SliderTooltipBase.js +1 -1
  214. package/src/sap/m/SliderTooltipContainer.js +1 -1
  215. package/src/sap/m/SplitApp.js +1 -1
  216. package/src/sap/m/SplitButton.js +1 -1
  217. package/src/sap/m/SplitContainer.js +1 -1
  218. package/src/sap/m/StandardDynamicDateOption.js +3 -3
  219. package/src/sap/m/StandardListItem.js +1 -1
  220. package/src/sap/m/StandardTile.js +1 -1
  221. package/src/sap/m/StandardTreeItem.js +1 -1
  222. package/src/sap/m/StepInput.js +1 -1
  223. package/src/sap/m/SuggestionItem.js +1 -1
  224. package/src/sap/m/SuggestionsPopover.js +1 -1
  225. package/src/sap/m/Switch.js +1 -1
  226. package/src/sap/m/TabContainer.js +1 -1
  227. package/src/sap/m/TabContainerItem.js +1 -1
  228. package/src/sap/m/TabStrip.js +1 -1
  229. package/src/sap/m/TabStripItem.js +1 -1
  230. package/src/sap/m/Table.js +2 -2
  231. package/src/sap/m/TablePersoController.js +1 -1
  232. package/src/sap/m/TablePersoDialog.js +1 -1
  233. package/src/sap/m/TablePersoProvider.js +1 -1
  234. package/src/sap/m/TableRenderer.js +4 -3
  235. package/src/sap/m/TableSelectDialog.js +14 -12
  236. package/src/sap/m/Text.js +2 -2
  237. package/src/sap/m/TextArea.js +1 -1
  238. package/src/sap/m/Tile.js +1 -1
  239. package/src/sap/m/TileContainer.js +1 -1
  240. package/src/sap/m/TileContent.js +1 -1
  241. package/src/sap/m/TileContentRenderer.js +3 -0
  242. package/src/sap/m/TileInfo.js +1 -1
  243. package/src/sap/m/TimePicker.js +18 -2
  244. package/src/sap/m/TimePickerClock.js +1 -1
  245. package/src/sap/m/TimePickerClocks.js +1 -1
  246. package/src/sap/m/TimePickerInputs.js +1 -1
  247. package/src/sap/m/TimePickerInternals.js +1 -1
  248. package/src/sap/m/TimePickerSlider.js +1 -1
  249. package/src/sap/m/TimePickerSliders.js +1 -1
  250. package/src/sap/m/Title.js +1 -1
  251. package/src/sap/m/TitlePropagationSupport.js +1 -1
  252. package/src/sap/m/ToggleButton.js +1 -1
  253. package/src/sap/m/Token.js +3 -3
  254. package/src/sap/m/Tokenizer.js +1 -1
  255. package/src/sap/m/Toolbar.js +117 -3
  256. package/src/sap/m/ToolbarLayoutData.js +1 -1
  257. package/src/sap/m/ToolbarRenderer.js +12 -8
  258. package/src/sap/m/ToolbarSeparator.js +1 -1
  259. package/src/sap/m/ToolbarSpacer.js +1 -1
  260. package/src/sap/m/Tree.js +1 -1
  261. package/src/sap/m/TreeItemBase.js +1 -1
  262. package/src/sap/m/UploadCollection.js +1 -1
  263. package/src/sap/m/UploadCollectionItem.js +1 -1
  264. package/src/sap/m/UploadCollectionParameter.js +1 -1
  265. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  266. package/src/sap/m/VBox.js +1 -1
  267. package/src/sap/m/ValueStateHeader.js +1 -1
  268. package/src/sap/m/VariantItem.js +1 -0
  269. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  270. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  271. package/src/sap/m/ViewSettingsDialog.js +1 -1
  272. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  273. package/src/sap/m/ViewSettingsItem.js +1 -1
  274. package/src/sap/m/VisibleItem.js +1 -1
  275. package/src/sap/m/WheelSlider.js +1 -1
  276. package/src/sap/m/WheelSliderContainer.js +1 -1
  277. package/src/sap/m/Wizard.js +1 -1
  278. package/src/sap/m/WizardProgressNavigator.js +1 -1
  279. package/src/sap/m/WizardStep.js +1 -1
  280. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  281. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  282. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  283. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  284. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  285. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  286. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +4 -4
  287. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +91 -91
  288. package/src/sap/m/library.js +19 -4
  289. package/src/sap/m/messagebundle.properties +25 -8
  290. package/src/sap/m/messagebundle_ar.properties +12 -2
  291. package/src/sap/m/messagebundle_bg.properties +12 -2
  292. package/src/sap/m/messagebundle_ca.properties +13 -3
  293. package/src/sap/m/messagebundle_cnr.properties +12 -2
  294. package/src/sap/m/messagebundle_cs.properties +12 -2
  295. package/src/sap/m/messagebundle_cy.properties +12 -2
  296. package/src/sap/m/messagebundle_da.properties +14 -4
  297. package/src/sap/m/messagebundle_de.properties +12 -2
  298. package/src/sap/m/messagebundle_el.properties +15 -5
  299. package/src/sap/m/messagebundle_en.properties +15 -5
  300. package/src/sap/m/messagebundle_en_GB.properties +15 -5
  301. package/src/sap/m/messagebundle_en_US_sappsd.properties +193 -105
  302. package/src/sap/m/messagebundle_en_US_saprigi.properties +15 -5
  303. package/src/sap/m/messagebundle_en_US_saptrc.properties +1226 -1138
  304. package/src/sap/m/messagebundle_es.properties +13 -3
  305. package/src/sap/m/messagebundle_es_MX.properties +13 -3
  306. package/src/sap/m/messagebundle_et.properties +12 -2
  307. package/src/sap/m/messagebundle_fi.properties +12 -2
  308. package/src/sap/m/messagebundle_fr.properties +12 -2
  309. package/src/sap/m/messagebundle_fr_CA.properties +12 -2
  310. package/src/sap/m/messagebundle_hi.properties +15 -5
  311. package/src/sap/m/messagebundle_hr.properties +12 -2
  312. package/src/sap/m/messagebundle_hu.properties +13 -3
  313. package/src/sap/m/messagebundle_id.properties +25 -15
  314. package/src/sap/m/messagebundle_it.properties +15 -5
  315. package/src/sap/m/messagebundle_iw.properties +12 -2
  316. package/src/sap/m/messagebundle_ja.properties +10 -0
  317. package/src/sap/m/messagebundle_kk.properties +16 -6
  318. package/src/sap/m/messagebundle_ko.properties +10 -0
  319. package/src/sap/m/messagebundle_lt.properties +12 -2
  320. package/src/sap/m/messagebundle_lv.properties +17 -7
  321. package/src/sap/m/messagebundle_mk.properties +14 -4
  322. package/src/sap/m/messagebundle_ms.properties +12 -2
  323. package/src/sap/m/messagebundle_nl.properties +12 -2
  324. package/src/sap/m/messagebundle_no.properties +12 -2
  325. package/src/sap/m/messagebundle_pl.properties +15 -5
  326. package/src/sap/m/messagebundle_pt.properties +12 -2
  327. package/src/sap/m/messagebundle_pt_PT.properties +12 -2
  328. package/src/sap/m/messagebundle_ro.properties +12 -2
  329. package/src/sap/m/messagebundle_ru.properties +14 -4
  330. package/src/sap/m/messagebundle_sh.properties +12 -2
  331. package/src/sap/m/messagebundle_sk.properties +12 -2
  332. package/src/sap/m/messagebundle_sl.properties +19 -9
  333. package/src/sap/m/messagebundle_sr.properties +12 -2
  334. package/src/sap/m/messagebundle_sv.properties +12 -2
  335. package/src/sap/m/messagebundle_th.properties +12 -2
  336. package/src/sap/m/messagebundle_tr.properties +12 -2
  337. package/src/sap/m/messagebundle_uk.properties +12 -2
  338. package/src/sap/m/messagebundle_vi.properties +13 -3
  339. package/src/sap/m/messagebundle_zh_CN.properties +14 -4
  340. package/src/sap/m/messagebundle_zh_TW.properties +15 -5
  341. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  342. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  343. package/src/sap/m/p13n/BasePanel.js +2 -2
  344. package/src/sap/m/p13n/Container.js +1 -1
  345. package/src/sap/m/p13n/Engine.js +12 -13
  346. package/src/sap/m/p13n/FilterController.js +1 -1
  347. package/src/sap/m/p13n/FilterPanel.js +1 -1
  348. package/src/sap/m/p13n/GroupController.js +1 -1
  349. package/src/sap/m/p13n/GroupPanel.js +1 -1
  350. package/src/sap/m/p13n/MessageStrip.js +64 -0
  351. package/src/sap/m/p13n/Popup.js +1 -1
  352. package/src/sap/m/p13n/QueryPanel.js +1 -1
  353. package/src/sap/m/p13n/SelectionController.js +1 -1
  354. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  355. package/src/sap/m/p13n/SortController.js +1 -1
  356. package/src/sap/m/p13n/SortPanel.js +1 -1
  357. package/src/sap/m/p13n/handler/xConfigHandler.js +5 -7
  358. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  359. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  360. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  361. package/src/sap/m/plugins/CellSelector.js +23 -13
  362. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  363. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  364. package/src/sap/m/plugins/CopyProvider.js +1 -1
  365. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  366. package/src/sap/m/plugins/PasteProvider.js +1 -1
  367. package/src/sap/m/plugins/PluginBase.js +1 -1
  368. package/src/sap/m/plugins/UploadSetwithTable.js +1 -1
  369. package/src/sap/m/semantic/AddAction.js +1 -1
  370. package/src/sap/m/semantic/CancelAction.js +1 -1
  371. package/src/sap/m/semantic/DeleteAction.js +1 -1
  372. package/src/sap/m/semantic/DetailPage.js +1 -1
  373. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  374. package/src/sap/m/semantic/EditAction.js +1 -1
  375. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  376. package/src/sap/m/semantic/FilterAction.js +1 -1
  377. package/src/sap/m/semantic/FilterSelect.js +1 -1
  378. package/src/sap/m/semantic/FlagAction.js +1 -1
  379. package/src/sap/m/semantic/ForwardAction.js +1 -1
  380. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  381. package/src/sap/m/semantic/GroupAction.js +1 -1
  382. package/src/sap/m/semantic/GroupSelect.js +1 -1
  383. package/src/sap/m/semantic/MainAction.js +1 -1
  384. package/src/sap/m/semantic/MasterPage.js +1 -1
  385. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  386. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  387. package/src/sap/m/semantic/NegativeAction.js +1 -1
  388. package/src/sap/m/semantic/OpenInAction.js +1 -1
  389. package/src/sap/m/semantic/PositiveAction.js +1 -1
  390. package/src/sap/m/semantic/PrintAction.js +1 -1
  391. package/src/sap/m/semantic/SaveAction.js +1 -1
  392. package/src/sap/m/semantic/Segment.js +1 -1
  393. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  394. package/src/sap/m/semantic/SemanticButton.js +1 -1
  395. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  396. package/src/sap/m/semantic/SemanticControl.js +1 -1
  397. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  398. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  399. package/src/sap/m/semantic/SemanticPage.js +1 -1
  400. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  401. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  402. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  403. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  404. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  405. package/src/sap/m/semantic/ShareMenu.js +1 -1
  406. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  407. package/src/sap/m/semantic/SortAction.js +1 -1
  408. package/src/sap/m/semantic/SortSelect.js +1 -1
  409. package/src/sap/m/table/ColumnWidthController.js +1 -1
  410. package/src/sap/m/table/Util.js +2 -40
  411. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  412. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  413. package/src/sap/m/table/columnmenu/Item.js +1 -1
  414. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  415. package/src/sap/m/table/columnmenu/Menu.js +29 -18
  416. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  417. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  418. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  419. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  420. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  421. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  422. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  423. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  424. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  425. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  426. package/src/sap/m/themes/base/ActionTile.less +377 -307
  427. package/src/sap/m/themes/base/ActionTileContent.less +4 -1
  428. package/src/sap/m/themes/base/Breadcrumbs.less +15 -12
  429. package/src/sap/m/themes/base/BusyIndicator.less +17 -6
  430. package/src/sap/m/themes/base/Button.less +242 -213
  431. package/src/sap/m/themes/base/Carousel.less +93 -57
  432. package/src/sap/m/themes/base/CellSelector.less +33 -33
  433. package/src/sap/m/themes/base/Dialog.less +38 -11
  434. package/src/sap/m/themes/base/FeedContent.less +1 -1
  435. package/src/sap/m/themes/base/FeedListItem.less +6 -8
  436. package/src/sap/m/themes/base/GenericTile.less +41 -5
  437. package/src/sap/m/themes/base/HeaderContainer.less +1 -1
  438. package/src/sap/m/themes/base/IconTabBar.less +10 -2
  439. package/src/sap/m/themes/base/ImageContent.less +2 -2
  440. package/src/sap/m/themes/base/Link.less +27 -4
  441. package/src/sap/m/themes/base/MenuListItem.less +22 -0
  442. package/src/sap/m/themes/base/MessageView.less +4 -0
  443. package/src/sap/m/themes/base/MultiUnitPopover.less +0 -9
  444. package/src/sap/m/themes/base/NewsContent.less +27 -15
  445. package/src/sap/m/themes/base/NumericContent.less +1 -21
  446. package/src/sap/m/themes/base/ObjectStatus.less +5 -2
  447. package/src/sap/m/themes/base/Popover.less +23 -10
  448. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -4
  449. package/src/sap/m/themes/base/SinglePlanningCalendarMonthGrid.less +4 -0
  450. package/src/sap/m/themes/base/SlideTile.less +4 -0
  451. package/src/sap/m/themes/base/TileContent.less +42 -0
  452. package/src/sap/m/themes/base/Token.less +1 -1
  453. package/src/sap/m/themes/base/UploadSet.less +0 -4
  454. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-BalloonSky.svg +44 -32
  455. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyCalendar.svg +76 -73
  456. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-FilterTable.svg +64 -40
  457. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoTasks_v1.svg +61 -52
  458. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-PageNotFound.svg +23 -24
  459. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-ReloadScreen.svg +47 -33
  460. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SearchFolder.svg +36 -26
  461. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessHighFive.svg +21 -42
  462. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessScreen.svg +46 -31
  463. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-UploadCollection.svg +26 -28
  464. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-BalloonSky.svg +52 -41
  465. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyCalendar.svg +89 -86
  466. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-FilterTable.svg +61 -55
  467. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoTasks_v1.svg +85 -89
  468. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-PageNotFound.svg +28 -32
  469. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-ReloadScreen.svg +61 -79
  470. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SearchFolder.svg +43 -35
  471. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessHighFive.svg +22 -24
  472. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessScreen.svg +60 -77
  473. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-UploadCollection.svg +28 -29
  474. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-BalloonSky.svg +42 -28
  475. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyCalendar.svg +45 -42
  476. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-FilterTable.svg +55 -41
  477. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-GroupTable.svg +84 -65
  478. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoTasks_v1.svg +21 -14
  479. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-PageNotFound.svg +19 -26
  480. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ReloadScreen.svg +34 -30
  481. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ResizeColumn.svg +44 -36
  482. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SearchFolder.svg +36 -24
  483. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessHighFive.svg +20 -27
  484. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessScreen.svg +33 -30
  485. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-UploadCollection.svg +29 -27
  486. package/src/sap/m/themes/sap_hcb/base_FeedListItem.less +0 -7
  487. package/src/sap/m/themes/sap_hcb/base_HeaderContainer.less +0 -5
  488. package/src/sap/m/themes/sap_hcb/base_ImageContent.less +0 -7
  489. package/src/sap/m/themes/sap_hcb/base_MultiUnitPopover.less +0 -9
  490. package/src/sap/m/themes/sap_hcb/base_NumericContent.less +1 -21
  491. package/src/sap/m/themes/sap_hcb/library.source.less +0 -1
  492. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  493. package/src/sap/m/upload/Column.js +1 -1
  494. package/src/sap/m/upload/FilePreviewDialog.js +1 -1
  495. package/src/sap/m/upload/UploadItem.js +1 -1
  496. package/src/sap/m/upload/UploadItemConfiguration.js +1 -1
  497. package/src/sap/m/upload/UploadSet.js +28 -16
  498. package/src/sap/m/upload/UploadSetItem.js +3 -3
  499. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  500. package/src/sap/m/upload/UploadSetwithTable.js +1 -1
  501. package/src/sap/m/upload/UploadSetwithTableItem.js +1 -1
  502. package/src/sap/m/upload/UploaderTableItem.js +1 -1
  503. package/src/sap/m/upload/p13n/PersManager.js +1 -1
  504. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +1 -1
  505. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +1 -1
  506. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +1 -1
  507. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +1 -1
  508. package/src/sap/m/upload/p13n/mediator/SortMediator.js +1 -1
  509. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +1 -1
  510. package/src/sap/m/themes/sap_hcb/NewsContent.less +0 -8
@@ -0,0 +1,448 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides control sap.m.MenuItemGroup.
8
+ sap.ui.define([
9
+ 'sap/ui/core/Element',
10
+ 'sap/ui/Device',
11
+ 'sap/ui/core/library'
12
+ ], function(
13
+ Element,
14
+ Device,
15
+ coreLibrary
16
+ ) {
17
+ "use strict";
18
+
19
+ // shortcut for sap.ui.core.ItemSelectionMode
20
+ var ItemSelectionMode = coreLibrary.ItemSelectionMode;
21
+
22
+ /**
23
+ * Constructor for a new MenuItemGroup element.
24
+ *
25
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
26
+ * @param {object} [mSettings] Initial settings for the new control
27
+ *
28
+ * @class
29
+ * Group item to be used inside a menu. Represents a collection of menu items that can have the same selection mode
30
+ * (e.g. {@link sap.ui.core.ItemSelectionMode.None}, {@link sap.ui.core.ItemSelectionMode.SingleSelect}, or {@link sap.ui.unified.ItemSelectionMode.MultiSelect}).
31
+ * @extends sap.ui.core.Element
32
+ * @implements sap.m.IMenuItem
33
+ *
34
+ * @author SAP SE
35
+ * @version 1.128.0
36
+ * @since 1.127.0
37
+ *
38
+ * @constructor
39
+ * @public
40
+ * @alias sap.m.MenuItemGroup
41
+ */
42
+ var MenuItemGroup = Element.extend("sap.m.MenuItemGroup", /** @lends sap.m.MenuItemGroup.prototype */ {
43
+ metadata : {
44
+ interfaces: [
45
+ "sap.m.IMenuItem"
46
+ ],
47
+ library : "sap.m",
48
+ properties : {
49
+
50
+ /**
51
+ * Defines the selection mode of the child items (e.g. <code>None</code>, <code>SingleSelect</code>, <code>MultiSelect</code>)
52
+ */
53
+ itemSelectionMode : {type : "sap.ui.core.ItemSelectionMode", group : "Behavior", defaultValue : ItemSelectionMode.None}
54
+
55
+ },
56
+ aggregations : {
57
+
58
+ /**
59
+ * The available items of the menu.
60
+ * <b>Note:</b> Adding MenuItemGroup as an item to the MenuItemGroup is not supported.
61
+ */
62
+ items : {type : "sap.m.IMenuItem", multiple : true, singularName : "item"}
63
+
64
+ },
65
+ associations : {
66
+
67
+ /**
68
+ * Parent menu object.
69
+ */
70
+ _menu : {type : "sap.m.Menu", visibility : "hidden"}
71
+
72
+ }
73
+ }
74
+ });
75
+
76
+ /**
77
+ * Override of the default setter that also ensures single selection if necessary.
78
+ * @public
79
+ * @param {string} sSelectionMode item selection mode to be set
80
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
81
+ * @returns {this} <code>this</code> to allow method chaining
82
+ */
83
+ MenuItemGroup.prototype.setItemSelectionMode = function(sSelectionMode, bSuppressInvalidate) {
84
+ const oVisualControl = this._getVisualControl();
85
+
86
+ this.setProperty("itemSelectionMode", sSelectionMode, bSuppressInvalidate);
87
+ oVisualControl && oVisualControl.setProperty("itemSelectionMode", sSelectionMode, bSuppressInvalidate);
88
+ if (sSelectionMode === ItemSelectionMode.SingleSelect) {
89
+ this._ensureSingleSelection();
90
+ }
91
+
92
+ return this;
93
+ };
94
+
95
+ /**
96
+ * Adds an item to <code>items</code> aggregation.
97
+ * @override
98
+ * @param {sap.m.IMenuItem} oItem Menu item to be added
99
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
100
+ * @returns {this} <code>this</code> to allow method chaining
101
+ * @public
102
+ */
103
+ MenuItemGroup.prototype.addItem = function(oItem, bSuppressInvalidate){
104
+ return this._addOrInsertItem(oItem, undefined, bSuppressInvalidate);
105
+ };
106
+
107
+ /**
108
+ * Inserts an item to the specified position in <code>items</code> aggregation.
109
+ * @override
110
+ * @param {sap.m.IMenuItem} oItem Menu item to be added
111
+ * @param {int} iIndex Index at which the item should be inserted
112
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
113
+ * @returns {this} <code>this</code> to allow method chaining
114
+ * @public
115
+ */
116
+ MenuItemGroup.prototype.insertItem = function(oItem, iIndex, bSuppressInvalidate) {
117
+ if (iIndex === undefined) {
118
+ iIndex = this.getItems().length;
119
+ }
120
+
121
+ return this._addOrInsertItem(oItem, iIndex, bSuppressInvalidate);
122
+ };
123
+
124
+ /**
125
+ * Removes an item from <code>items</code> aggregation.
126
+ * @override
127
+ * @param {int | string | sap.m.IMenuItem} vItem Menu item to be removed (as index, ID or object)
128
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
129
+ * @public
130
+ * @returns {sap.m.IMenuItem | null} the removed object, or <code>null</code> if there are no items to remove
131
+ */
132
+ MenuItemGroup.prototype.removeItem = function(vItem, bSuppressInvalidate) {
133
+ const oItem = this._findItemObject(vItem);
134
+ var oVisualControl,
135
+ oVisualParent,
136
+ oParentMenuItemVisualControl,
137
+ oRes;
138
+
139
+ if (!oItem) {
140
+ return null;
141
+ }
142
+
143
+ oVisualControl = this._findVisualControlObject(oItem._getVisualControl());
144
+ oParentMenuItemVisualControl = this._findParentMenuItemVisualControl(oItem);
145
+
146
+ if (oVisualControl) {
147
+ oVisualParent = oVisualControl.getParent();
148
+ oVisualParent && oVisualParent.removeItem(oVisualControl);
149
+ }
150
+
151
+ oRes = this.removeAggregation("items", oItem, bSuppressInvalidate);
152
+
153
+ if (oVisualControl && !bSuppressInvalidate) {
154
+ oParentMenuItemVisualControl && oParentMenuItemVisualControl.invalidate();
155
+
156
+ if (Device.system.phone) {
157
+ const oParentNavContainer = oVisualParent.getParent().getParent();
158
+ !oVisualParent.getItems().length && oParentNavContainer.back();
159
+ } else {
160
+ const oGroupMenu = oVisualParent.getParent();
161
+ oGroupMenu && !oGroupMenu._getItems().length && oGroupMenu.close();
162
+ }
163
+ }
164
+
165
+ return oRes;
166
+ };
167
+
168
+ /**
169
+ * Removes all items from <code>items</code> aggregation.
170
+ * @override
171
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
172
+ * @public
173
+ * @returns {array | null} array containing the removed items, or <code>null</code> if there are no items to remove
174
+ */
175
+ MenuItemGroup.prototype.removeAllItems = function(bSuppressInvalidate){
176
+ const aItems = this.getItems();
177
+
178
+ if (!aItems.length) {
179
+ return null;
180
+ }
181
+
182
+ const bIsPhone = Device.system.phone,
183
+ oVisualControl = bIsPhone ? this._findVisualControlObject(aItems[0]._getVisualControl()) : this._getVisualControl();
184
+
185
+ if (bIsPhone) {
186
+ const oParentMenuItemVisualControl = this._findParentMenuItemVisualControl(aItems[0]),
187
+ oVisualParent = oVisualControl && oVisualControl.getParent();
188
+
189
+ if (oVisualParent) {
190
+ const oParentNavContainer = oVisualParent.getParent().getParent();
191
+ aItems.forEach((oItem) => oVisualParent.removeItem(oItem._getVisualControl(), bSuppressInvalidate));
192
+ !bSuppressInvalidate && !oVisualParent.getItems().length && oParentNavContainer.back();
193
+ }
194
+ !bSuppressInvalidate && oParentMenuItemVisualControl && oParentMenuItemVisualControl.invalidate();
195
+ } else if (oVisualControl) {
196
+ oVisualControl.removeAllItems(bSuppressInvalidate);
197
+ }
198
+
199
+ return this.removeAllAggregation("items", bSuppressInvalidate);
200
+ };
201
+
202
+ /**
203
+ * Destroys all items from <code>items</code> aggregation.
204
+ * @override
205
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
206
+ * @public
207
+ * @returns {this} <code>this</code> to allow method chaining
208
+ */
209
+ MenuItemGroup.prototype.destroyItems = function(bSuppressInvalidate) {
210
+ const aItems = this.getItems(),
211
+ bIsPhone = Device.system.phone;
212
+ var oVisualControl;
213
+
214
+ if (!aItems.length) {
215
+ return this;
216
+ }
217
+
218
+ if (bIsPhone) {
219
+ let oVisualParent,
220
+ oVisualContainer;
221
+
222
+ aItems.forEach((oItem) => {
223
+ var oVisualControl = this._findVisualControlObject(oItem._getVisualControl());
224
+
225
+ if (oVisualControl) {
226
+ oVisualParent = oVisualControl.getParent();
227
+ oVisualContainer = Element.getElementById(oItem._sVisualParent).getParent();
228
+ oVisualControl.destroy(bSuppressInvalidate);
229
+ }
230
+ });
231
+ !bSuppressInvalidate && oVisualParent && !oVisualParent.getItems().length && oVisualContainer.back() && oVisualContainer.invalidate();
232
+ } else {
233
+ oVisualControl = this._getVisualControl();
234
+ oVisualControl && oVisualControl.destroyItems(bSuppressInvalidate);
235
+ }
236
+
237
+ this.destroyAggregation("items", bSuppressInvalidate);
238
+
239
+ return this;
240
+ };
241
+
242
+ /**
243
+ * Adds or inserts an item in <code>items</code> aggregation.
244
+ * @param {sap.m.IMenuItem} oItem Menu item to be added
245
+ * @param {int} iIndex Index at which the item should be inserted
246
+ * @param {boolean} bSuppressInvalidate Whether to suppress the invalidation of the control
247
+ * @returns {this} <code>this</code> to allow method chaining
248
+ * @private
249
+ */
250
+ MenuItemGroup.prototype._addOrInsertItem = function(oItem, iIndex, bSuppressInvalidate) {
251
+ const bSelected = oItem.getSelected && oItem.getSelected();
252
+
253
+ oItem.setAssociation("_group", this);
254
+
255
+ // in case of SingleSelect mode, clear the selection of the other items to ensure that only one item is selected.
256
+ if (bSelected && this.getItemSelectionMode() === ItemSelectionMode.SingleSelect) {
257
+ this._clearSelectedItems();
258
+ }
259
+
260
+ this._addOrInsertVisualItem(oItem, iIndex);
261
+
262
+ if (iIndex === undefined) {
263
+ return this.addAggregation("items", oItem, bSuppressInvalidate);
264
+ }
265
+ return this.insertAggregation("items", oItem, iIndex, bSuppressInvalidate);
266
+ };
267
+
268
+ /**
269
+ * Adds or inserts the visual item.
270
+ * @private
271
+ * @param {sap.m.IMenuItem} oItem item to be added or inserted
272
+ * @param {int} iIndex Index at which the item should be inserted
273
+ */
274
+ MenuItemGroup.prototype._addOrInsertVisualItem = function(oItem, iIndex) {
275
+ const oGroupParent = this.getParent(),
276
+ oParentMenu = this._getParentMenu();
277
+
278
+ if (!oParentMenu) {
279
+ return;
280
+ }
281
+
282
+ if (Device.system.phone && oGroupParent) {
283
+ const oPageControl = oGroupParent.isA("sap.m.Menu") ? oGroupParent._getVisualParent() : Element.getElementById(oGroupParent._getVisualChild());
284
+ if (!oPageControl) {
285
+ return;
286
+ }
287
+
288
+ const sGroupId = this.getId(),
289
+ iGroupItemsCount = this.getItems().length,
290
+ iNewItemIndex = this._findGroupFirstIndex(sGroupId),
291
+ oVisualControl = oGroupParent._getVisualControl && oGroupParent._getVisualControl(),
292
+ oParentVisualItem = oVisualControl && this._findVisualControlObject(oVisualControl);
293
+
294
+ if (iIndex === undefined || iIndex > iGroupItemsCount) {
295
+ iIndex = iGroupItemsCount;
296
+ }
297
+
298
+ oParentMenu._addListItemFromItem(oItem, oPageControl, iNewItemIndex + iIndex);
299
+ oParentVisualItem && oParentVisualItem.invalidate();
300
+ } else {
301
+ oParentMenu._addVisualMenuItemFromItem(oItem, this._getVisualControl(), iIndex);
302
+ }
303
+ };
304
+
305
+ /**
306
+ * Invalidate the parent controls if there are no items in the group.
307
+ * @private
308
+ */
309
+ MenuItemGroup.prototype._invalidateParentControls = function() {
310
+ const oGroupMenu = this.getParent();
311
+
312
+ if (oGroupMenu && !oGroupMenu._getItems().length) {
313
+ const oGroupMenuParent = oGroupMenu.getParent();
314
+ oGroupMenuParent && oGroupMenuParent.invalidate();
315
+ oGroupMenu.close();
316
+ }
317
+ };
318
+
319
+ /**
320
+ * Returns the index of the first item of the specified group.
321
+ * @private
322
+ * @param {string} sId ID of the group
323
+ * @returns {int} the index of the first item of the specified group
324
+ */
325
+ MenuItemGroup.prototype._findGroupFirstIndex = function(sId) {
326
+ const oParent = this.getParent(),
327
+ aMenuItems = oParent.getItems();
328
+ let iGroupFirstIndex = 0;
329
+
330
+ for (let i = 0; i < aMenuItems.length; i++) {
331
+ const oItem = aMenuItems[i];
332
+ if (oItem.getId() === sId) {
333
+ break;
334
+ } else if (oParent._isMenuItemGroup(oItem)) {
335
+ iGroupFirstIndex += oItem.getItems().length;
336
+ } else {
337
+ iGroupFirstIndex++;
338
+ }
339
+ }
340
+
341
+ return iGroupFirstIndex;
342
+ };
343
+
344
+ /**
345
+ * Returns the item as object from the <code>items</code> aggregation.
346
+ * @private
347
+ * @param {int | string | sap.m.MenuItem} vItem item to be found (it can be index, ID, or item object)
348
+ * @returns {sap.m.MenuItem} The item object
349
+ */
350
+ MenuItemGroup.prototype._findItemObject = function(vItem) {
351
+ if (typeof vItem === "number") {
352
+ return this.getItems()[vItem];
353
+ } else if (typeof vItem === "string") {
354
+ return this.getItems().find((oItem) => oItem.getId() === vItem);
355
+ } else {
356
+ return vItem;
357
+ }
358
+ };
359
+
360
+ /**
361
+ * Returns the visual control that represents the item as object.
362
+ * @private
363
+ * @param {string | sap.ui.unified.MenuItem | sap.m.MenuListItem} vItem item to be found (it can be index, ID, or item object)
364
+ * @returns {sap.ui.unified.MenuItem | sap.m.MenuListItem} The visual control that represents the item
365
+ */
366
+ MenuItemGroup.prototype._findVisualControlObject = function(vItem) {
367
+ if (typeof vItem === "string") {
368
+ return Element.getElementById(vItem);
369
+ } else {
370
+ return vItem;
371
+ }
372
+ };
373
+
374
+ /**
375
+ * Returns the visual control that represents the parent menu item of the given menu item.
376
+ * @private
377
+ * @param {sap.m.MenuItem} oItem the menu item which parent menu item visual control should be found.
378
+ * @returns {sap.ui.unified.MenuItem | sap.m.MenuListItem} The visual control of the parent menu item of the given menu item
379
+ */
380
+ MenuItemGroup.prototype._findParentMenuItemVisualControl = function(oItem) {
381
+ const oGroupParent = this._findVisualControlObject(this.getParent());
382
+
383
+ return oGroupParent && oGroupParent.isA("sap.m.MenuItem") ? this._findVisualControlObject(oGroupParent._getVisualControl()) : null;
384
+ };
385
+
386
+ /**
387
+ * Sets <code>selected</code> property of all items in the group to <code>false</code>.
388
+ * @private
389
+ * @param {string} sGroup a key of the group which items selection state should be cleared if necessary
390
+ */
391
+ MenuItemGroup.prototype._clearSelectedItems = function() {
392
+ this.getItems().forEach((oItem) => oItem.setSelected && oItem.setSelected(false));
393
+ };
394
+
395
+ /**
396
+ * Returns visual child of the control (unified MenuItemGroup).
397
+ * @private
398
+ * @returns {sap.ui.unified.MenuItemGroup} The unified MenuItemGroup
399
+ */
400
+ MenuItemGroup.prototype._getVisualControl = function() {
401
+ return this._oUnifiedGroup;
402
+ };
403
+
404
+ /**
405
+ * Sets visual child of the control (unified MenuItemGroup).
406
+ * @private
407
+ * @param {sap.ui.unified.MenuItemGroup} oControl The unified MenuItemGroup to be set
408
+ */
409
+ MenuItemGroup.prototype._setVisualControl = function(oControl) {
410
+ this._oUnifiedGroup = oControl;
411
+ };
412
+
413
+ /**
414
+ * Sets parent Menu of the control.
415
+ * @private
416
+ * @param {sap.m.Menu} oMenu The Menu to be set as parent
417
+ */
418
+ MenuItemGroup.prototype._setParentMenu = function(oMenu) {
419
+ this.setAssociation("_menu", oMenu);
420
+ };
421
+
422
+ /**
423
+ * Returns the parent Menu of the control.
424
+ * @private
425
+ * @returns {sap.m.Menu} The parent Menu
426
+ */
427
+ MenuItemGroup.prototype._getParentMenu = function() {
428
+ return Element.getElementById(this.getAssociation("_menu"));
429
+ };
430
+
431
+ /**
432
+ * Ensures that only one item is selected in the group (if there were any selected items).
433
+ * @private
434
+ */
435
+ MenuItemGroup.prototype._ensureSingleSelection = function() {
436
+ const aItems = this.getItems(),
437
+ aSelectedItems = aItems.map((item) => item.getSelected()),
438
+ iSelectedItemIndex = aSelectedItems.lastIndexOf(true);
439
+
440
+ this._clearSelectedItems();
441
+ if (iSelectedItemIndex !== -1) {
442
+ aItems[iSelectedItemIndex].setSelected(true);
443
+ }
444
+ };
445
+
446
+ return MenuItemGroup;
447
+
448
+ });
@@ -23,6 +23,9 @@ sap.ui.define([
23
23
  // shortcut for sap.m.ListType
24
24
  var ListType = library.ListType;
25
25
 
26
+ // shortcut for sap.ui.core.ItemSelectionMode
27
+ var ItemSelectionMode = coreLibrary.ItemSelectionMode;
28
+
26
29
  /**
27
30
  * Constructor for a new <code>MenuListItem</code>.
28
31
  *
@@ -34,7 +37,7 @@ sap.ui.define([
34
37
  * @extends sap.m.ListItemBase
35
38
  *
36
39
  * @author SAP SE
37
- * @version 1.126.1
40
+ * @version 1.128.0
38
41
  *
39
42
  * @constructor
40
43
  * @private
@@ -67,6 +70,11 @@ sap.ui.define([
67
70
  */
68
71
  iconDensityAware : {type : "boolean", group : "Misc", defaultValue : true},
69
72
 
73
+ /**
74
+ * Defines the selection mode of the child items (e.g. <code>None</code>, <code>SingleSelect</code>, <code>MultiSelect</code>)
75
+ */
76
+ itemSelectionMode : {type : "sap.ui.core.ItemSelectionMode", group : "Behavior", defaultValue : ItemSelectionMode.None},
77
+
70
78
  /**
71
79
  * Defines the <code>title</code> text directionality with enumerated options. By default, the control inherits text direction from the DOM.
72
80
  */
@@ -79,6 +87,12 @@ sap.ui.define([
79
87
  startsSection : {type : "boolean", group : "Behavior", defaultValue : false}
80
88
  },
81
89
  associations: {
90
+
91
+ /**
92
+ * MenuItemGroup associated with this item.
93
+ */
94
+ _group : {type : "sap.ui.unified.MenuItemGroup", group : "Behavior", visibility : "hidden"},
95
+
82
96
  /**
83
97
  * The <code>MenuItem</code> that this control renders.
84
98
  * Used internally in sap.m.Menu.
@@ -156,7 +170,7 @@ sap.ui.define([
156
170
  };
157
171
 
158
172
  MenuListItem.prototype._hasSubItems = function() {
159
- return !!(this.getMenuItem() && Element.getElementById(this.getMenuItem()).getItems().length);
173
+ return !!(this.getMenuItem() && Element.getElementById(this.getMenuItem())._getItems().length);
160
174
  };
161
175
 
162
176
  MenuListItem.prototype.setProperty = function(sPropertyKey, vPropertyValue) {
@@ -167,6 +181,35 @@ sap.ui.define([
167
181
  }
168
182
  };
169
183
 
184
+ MenuListItem.prototype._getMenuItemGroup = function() {
185
+ return Element.getElementById(this.getAssociation("_group"));
186
+ };
187
+
188
+ MenuListItem.prototype._getItemSelectionMode = function() {
189
+ var oGroup = this._getMenuItemGroup();
190
+ return oGroup ? oGroup.getItemSelectionMode() : ItemSelectionMode.None;
191
+ };
192
+
193
+ MenuListItem.prototype._hasGroupSeparator = function() {
194
+ var oMenuItem = Element.getElementById(this.getMenuItem()),
195
+ oMenuItemParent = oMenuItem && oMenuItem.getParent(),
196
+ aItems,
197
+ iIndex;
198
+
199
+ if (!oMenuItemParent) {
200
+ return false;
201
+ }
202
+
203
+ if (oMenuItemParent.getItemSelectionMode) {
204
+ oMenuItemParent = oMenuItemParent.getParent();
205
+ }
206
+
207
+ aItems = oMenuItemParent._getItems();
208
+ iIndex = aItems.indexOf(oMenuItem);
209
+
210
+ return iIndex > 0 && aItems[iIndex - 1] && aItems[iIndex - 1].getAssociation("_group") !== oMenuItem.getAssociation("_group");
211
+ };
212
+
170
213
  return MenuListItem;
171
214
  });
172
215
 
@@ -14,6 +14,9 @@ sap.ui.define(['./ListItemBaseRenderer', 'sap/ui/core/Renderer', 'sap/m/library'
14
14
  // shortcut for sap.m.ListType
15
15
  var ListType = library.ListType;
16
16
 
17
+ // shortcut for sap.ui.core.ItemSelectionMode
18
+ var ItemSelectionMode = coreLibrary.ItemSelectionMode;
19
+
17
20
  /**
18
21
  * <code>MenuListItem</code> renderer.
19
22
  * @namespace
@@ -23,31 +26,25 @@ sap.ui.define(['./ListItemBaseRenderer', 'sap/ui/core/Renderer', 'sap/m/library'
23
26
  MenuListItemRenderer.apiVersion = 2;
24
27
 
25
28
  /**
26
- * Renders the HTML starting tag of the <code>MenuListItem</code>.
27
- *
28
- * @param {sap.ui.core.RenderManager} rm The RenderManager that can be used for writing to the Render-Output-Buffer
29
- * @param {sap.m.MenuListItem} oLI an object representation of the control that should be rendered
30
- * @protected
29
+ * Renders separator between two items.
30
+ * @param {sap.ui.core.RenderManager} rm the RenderManager that can be used for writing to the Render-Output-Buffer
31
31
  */
32
- MenuListItemRenderer.openItemTag = function(rm, oLI) {
33
- if (oLI.getStartsSection()) {
34
- rm.openStart("li");
35
- rm.attr("role", "separator");
36
- rm.class("sapUiMnuDiv");
37
- rm.openEnd();
38
- rm.openStart("div");
39
- rm.class("sapUiMnuDivL");
40
- rm.openEnd();
41
- rm.close("div");
42
- rm.voidStart("hr").voidEnd();
43
- rm.openStart("div");
44
- rm.class("sapUiMnuDivR");
45
- rm.openEnd();
46
- rm.close("div");
47
- rm.close("li");
48
- }
32
+ MenuListItemRenderer.renderSeparator = function(rm, oLI) {
49
33
 
50
- ListItemBaseRenderer.openItemTag(rm, oLI);
34
+ rm.openStart("li");
35
+ rm.attr("role", "separator");
36
+ rm.class("sapUiMnuDiv");
37
+ rm.openEnd();
38
+ rm.openStart("div");
39
+ rm.class("sapUiMnuDivL");
40
+ rm.openEnd();
41
+ rm.close("div");
42
+ rm.voidStart("hr").voidEnd();
43
+ rm.openStart("div");
44
+ rm.class("sapUiMnuDivR");
45
+ rm.openEnd();
46
+ rm.close("div");
47
+ rm.close("li");
51
48
  };
52
49
 
53
50
  /**
@@ -83,6 +80,10 @@ sap.ui.define(['./ListItemBaseRenderer', 'sap/ui/core/Renderer', 'sap/m/library'
83
80
  MenuListItemRenderer.renderLIContent = function(rm, oLI) {
84
81
  var sTextDir = oLI.getTitleTextDirection();
85
82
 
83
+ if (oLI.getStartsSection() || oLI._hasGroupSeparator()) {
84
+ MenuListItemRenderer.renderSeparator(rm, oLI);
85
+ }
86
+
86
87
  // image
87
88
  rm.openStart("div");
88
89
  rm.class("sapMMenuLIImgThumbWrapper");
@@ -127,9 +128,44 @@ sap.ui.define(['./ListItemBaseRenderer', 'sap/ui/core/Renderer', 'sap/m/library'
127
128
  // arrow right if there is a sub-menu
128
129
  if (oLI._hasSubItems()) {
129
130
  rm.renderControl(oLI._getIconArrowRight());
131
+ } else if (oLI._getItemSelectionMode() !== ItemSelectionMode.None && oLI.getProperty("selected")) {
132
+ rm.openStart("div", oLI.getId() + "-sel");
133
+ rm.class("sapMMenuLISel");
134
+ rm.openEnd();
135
+ rm.close("div");
136
+ }
137
+
138
+ };
139
+
140
+ MenuListItemRenderer.getAccessibilityState = function(oLI) {
141
+ var mAccessibilityState = ListItemBaseRenderer.getAccessibilityState(oLI),
142
+ sRole;
143
+
144
+ if (oLI._getItemSelectionMode() !== ItemSelectionMode.None && oLI.getProperty("selected")) {
145
+ mAccessibilityState.checked = true;
146
+ mAccessibilityState.selected = null;
147
+ }
148
+
149
+ switch (oLI._getItemSelectionMode()) {
150
+ case ItemSelectionMode.SingleSelect:
151
+ sRole = "menuitemradio";
152
+ break;
153
+ case ItemSelectionMode.MultiSelect:
154
+ sRole = "menuitemcheckbox";
155
+ break;
156
+ default:
157
+ sRole = "menuitem";
130
158
  }
159
+
160
+ mAccessibilityState.role = sRole;
161
+
162
+ return mAccessibilityState;
163
+ };
164
+
165
+ MenuListItemRenderer.getAriaRole = function(oLI) {
131
166
  };
132
167
 
168
+
133
169
  return MenuListItemRenderer;
134
170
  }, /* bExport= */ true);
135
171