@openui5/sap.m 1.141.2 → 1.143.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 (456) hide show
  1. package/README.md +2 -2
  2. package/REUSE.toml +39 -1
  3. package/THIRDPARTY.txt +36 -3
  4. package/package.json +4 -4
  5. package/src/sap/m/.library +1 -1
  6. package/src/sap/m/AccButton.js +1 -1
  7. package/src/sap/m/ActionListItem.js +1 -1
  8. package/src/sap/m/ActionSelect.js +1 -1
  9. package/src/sap/m/ActionSheet.js +1 -1
  10. package/src/sap/m/ActionTile.js +1 -1
  11. package/src/sap/m/ActionTileContent.js +1 -1
  12. package/src/sap/m/AdditionalTextButton.js +1 -1
  13. package/src/sap/m/App.js +1 -1
  14. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  15. package/src/sap/m/Avatar.js +136 -43
  16. package/src/sap/m/AvatarRenderer.js +1 -1
  17. package/src/sap/m/Bar.js +6 -45
  18. package/src/sap/m/Breadcrumbs.js +1 -2
  19. package/src/sap/m/BusyDialog.js +1 -1
  20. package/src/sap/m/BusyIndicator.js +1 -1
  21. package/src/sap/m/Button.js +1 -1
  22. package/src/sap/m/ButtonRenderer.js +0 -1
  23. package/src/sap/m/Carousel.js +8 -9
  24. package/src/sap/m/CarouselLayout.js +1 -1
  25. package/src/sap/m/CarouselRenderer.js +40 -22
  26. package/src/sap/m/CheckBox.js +1 -1
  27. package/src/sap/m/ColorPalette.js +1 -1
  28. package/src/sap/m/ColorPalettePopover.js +1 -1
  29. package/src/sap/m/Column.js +1 -1
  30. package/src/sap/m/ColumnListItem.js +10 -4
  31. package/src/sap/m/ColumnListItemRenderer.js +4 -4
  32. package/src/sap/m/ComboBox.js +10 -6
  33. package/src/sap/m/ComboBoxBase.js +1 -1
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/ComboBoxTextFieldRenderer.js +0 -1
  36. package/src/sap/m/ContentConfig.js +1 -1
  37. package/src/sap/m/CustomListItem.js +1 -1
  38. package/src/sap/m/CustomTile.js +1 -1
  39. package/src/sap/m/CustomTreeItem.js +1 -1
  40. package/src/sap/m/DatePicker.js +20 -1
  41. package/src/sap/m/DateRangeSelection.js +2 -2
  42. package/src/sap/m/DateTimeField.js +4 -6
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +1 -1
  45. package/src/sap/m/Dialog.js +42 -27
  46. package/src/sap/m/DialogRenderer.js +2 -0
  47. package/src/sap/m/DisplayListItem.js +1 -1
  48. package/src/sap/m/DraftIndicator.js +1 -1
  49. package/src/sap/m/DynamicDate.js +1 -1
  50. package/src/sap/m/DynamicDateOption.js +1 -1
  51. package/src/sap/m/DynamicDateRange.js +1 -1
  52. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  53. package/src/sap/m/ExpandableText.js +1 -1
  54. package/src/sap/m/FacetFilter.js +1 -1
  55. package/src/sap/m/FacetFilterItem.js +1 -1
  56. package/src/sap/m/FacetFilterList.js +1 -1
  57. package/src/sap/m/FeedContent.js +1 -1
  58. package/src/sap/m/FeedInput.js +1 -1
  59. package/src/sap/m/FeedListItem.js +1 -1
  60. package/src/sap/m/FeedListItemAction.js +1 -1
  61. package/src/sap/m/FeedListItemRenderer.js +14 -13
  62. package/src/sap/m/Fiori20Adapter.js +2 -2
  63. package/src/sap/m/FlexBox.js +1 -1
  64. package/src/sap/m/FlexItemData.js +1 -1
  65. package/src/sap/m/FormattedText.js +1 -1
  66. package/src/sap/m/GenericTag.js +1 -1
  67. package/src/sap/m/GenericTile.js +1 -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 +3 -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 +1 -1
  84. package/src/sap/m/InputBase.js +2 -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 +1 -1
  90. package/src/sap/m/LinkTileContent.js +1 -1
  91. package/src/sap/m/List.js +1 -1
  92. package/src/sap/m/ListBase.js +19 -14
  93. package/src/sap/m/ListItemAction.js +1 -1
  94. package/src/sap/m/ListItemActionBase.js +1 -1
  95. package/src/sap/m/ListItemBase.js +18 -1
  96. package/src/sap/m/MaskEnabler.js +1 -1
  97. package/src/sap/m/MaskInput.js +1 -1
  98. package/src/sap/m/MaskInputRule.js +1 -1
  99. package/src/sap/m/Menu.js +31 -11
  100. package/src/sap/m/MenuButton.js +183 -2
  101. package/src/sap/m/MenuItem.js +1 -1
  102. package/src/sap/m/MenuItemGroup.js +1 -1
  103. package/src/sap/m/MenuListItem.js +1 -1
  104. package/src/sap/m/MenuWrapper.js +1 -1
  105. package/src/sap/m/MessageBox.js +8 -10
  106. package/src/sap/m/MessageItem.js +1 -1
  107. package/src/sap/m/MessageListItem.js +1 -1
  108. package/src/sap/m/MessagePage.js +1 -1
  109. package/src/sap/m/MessagePopover.js +2 -2
  110. package/src/sap/m/MessagePopoverItem.js +1 -1
  111. package/src/sap/m/MessageStrip.js +67 -3
  112. package/src/sap/m/MessageStripRenderer.js +1 -2
  113. package/src/sap/m/MessageToast.js +1 -1
  114. package/src/sap/m/MessageView.js +33 -17
  115. package/src/sap/m/MultiComboBox.js +1 -1
  116. package/src/sap/m/MultiEditField.js +1 -1
  117. package/src/sap/m/MultiInput.js +24 -2
  118. package/src/sap/m/NavContainer.js +1 -1
  119. package/src/sap/m/NewsContent.js +1 -1
  120. package/src/sap/m/NotificationList.js +1 -1
  121. package/src/sap/m/NotificationListBase.js +1 -1
  122. package/src/sap/m/NotificationListGroup.js +1 -1
  123. package/src/sap/m/NotificationListItem.js +1 -1
  124. package/src/sap/m/NumericContent.js +1 -1
  125. package/src/sap/m/NumericInput.js +1 -1
  126. package/src/sap/m/ObjectAttribute.js +1 -1
  127. package/src/sap/m/ObjectHeader.js +1 -1
  128. package/src/sap/m/ObjectIdentifier.js +1 -1
  129. package/src/sap/m/ObjectListItem.js +1 -1
  130. package/src/sap/m/ObjectMarker.js +1 -1
  131. package/src/sap/m/ObjectNumber.js +1 -1
  132. package/src/sap/m/ObjectStatus.js +28 -16
  133. package/src/sap/m/ObjectStatusRenderer.js +0 -8
  134. package/src/sap/m/OverflowToolbar.js +1 -1
  135. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  136. package/src/sap/m/OverflowToolbarButton.js +1 -1
  137. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  138. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  139. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  140. package/src/sap/m/OverflowToolbarTokenizer.js +1 -1
  141. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  142. package/src/sap/m/P13nColumnsItem.js +1 -1
  143. package/src/sap/m/P13nColumnsPanel.js +1 -1
  144. package/src/sap/m/P13nConditionPanel.js +1 -1
  145. package/src/sap/m/P13nDialog.js +1 -1
  146. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  147. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  148. package/src/sap/m/P13nFilterItem.js +1 -1
  149. package/src/sap/m/P13nFilterPanel.js +1 -1
  150. package/src/sap/m/P13nGroupItem.js +1 -1
  151. package/src/sap/m/P13nGroupPanel.js +1 -1
  152. package/src/sap/m/P13nItem.js +1 -1
  153. package/src/sap/m/P13nPanel.js +1 -1
  154. package/src/sap/m/P13nSelectionItem.js +1 -1
  155. package/src/sap/m/P13nSelectionPanel.js +1 -1
  156. package/src/sap/m/P13nSortItem.js +1 -1
  157. package/src/sap/m/P13nSortPanel.js +1 -1
  158. package/src/sap/m/PDFViewer.js +2 -3
  159. package/src/sap/m/Page.js +1 -1
  160. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  161. package/src/sap/m/PagingButton.js +1 -1
  162. package/src/sap/m/Panel.js +1 -1
  163. package/src/sap/m/PlanningCalendar.js +2 -2
  164. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  165. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  166. package/src/sap/m/PlanningCalendarRow.js +1 -1
  167. package/src/sap/m/PlanningCalendarView.js +1 -1
  168. package/src/sap/m/Popover.js +1 -2
  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/ResponsivePopover.js +1 -1
  182. package/src/sap/m/ResponsiveScale.js +1 -1
  183. package/src/sap/m/ScrollBar.js +1 -1
  184. package/src/sap/m/ScrollContainer.js +1 -1
  185. package/src/sap/m/SearchField.js +1 -1
  186. package/src/sap/m/SegmentedButton.js +23 -8
  187. package/src/sap/m/SegmentedButtonItem.js +3 -2
  188. package/src/sap/m/SegmentedButtonRenderer.js +22 -9
  189. package/src/sap/m/Select.js +51 -2
  190. package/src/sap/m/SelectDialog.js +1 -1
  191. package/src/sap/m/SelectDialogBase.js +1 -1
  192. package/src/sap/m/SelectList.js +1 -1
  193. package/src/sap/m/SelectionDetails.js +1 -1
  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 +8 -10
  200. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarGrid.js +10 -3
  202. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +7 -3
  203. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  204. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  205. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  206. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  207. package/src/sap/m/SlideTile.js +1 -1
  208. package/src/sap/m/Slider.js +1 -1
  209. package/src/sap/m/SliderTooltip.js +1 -1
  210. package/src/sap/m/SliderTooltipBase.js +1 -1
  211. package/src/sap/m/SliderTooltipContainer.js +1 -1
  212. package/src/sap/m/SplitApp.js +1 -1
  213. package/src/sap/m/SplitButton.js +10 -5
  214. package/src/sap/m/SplitContainer.js +1 -1
  215. package/src/sap/m/StandardDynamicDateOption.js +24 -48
  216. package/src/sap/m/StandardListItem.js +1 -1
  217. package/src/sap/m/StandardTile.js +1 -1
  218. package/src/sap/m/StandardTreeItem.js +1 -1
  219. package/src/sap/m/StepInput.js +7 -4
  220. package/src/sap/m/SuggestionItem.js +1 -1
  221. package/src/sap/m/SuggestionsPopover.js +8 -2
  222. package/src/sap/m/Switch.js +23 -1
  223. package/src/sap/m/TabContainer.js +1 -1
  224. package/src/sap/m/TabContainerItem.js +1 -1
  225. package/src/sap/m/TabStrip.js +1 -1
  226. package/src/sap/m/TabStripItem.js +1 -1
  227. package/src/sap/m/Table.js +2 -2
  228. package/src/sap/m/TablePersoController.js +1 -1
  229. package/src/sap/m/TablePersoDialog.js +1 -1
  230. package/src/sap/m/TablePersoProvider.js +1 -1
  231. package/src/sap/m/TableRenderer.js +18 -6
  232. package/src/sap/m/TableSelectDialog.js +1 -1
  233. package/src/sap/m/Text.js +1 -1
  234. package/src/sap/m/TextArea.js +1 -1
  235. package/src/sap/m/Tile.js +1 -1
  236. package/src/sap/m/TileContainer.js +1 -1
  237. package/src/sap/m/TileContent.js +1 -1
  238. package/src/sap/m/TileInfo.js +1 -1
  239. package/src/sap/m/TimePicker.js +1 -1
  240. package/src/sap/m/TimePickerClock.js +1 -1
  241. package/src/sap/m/TimePickerClocks.js +2 -16
  242. package/src/sap/m/TimePickerInputs.js +1 -1
  243. package/src/sap/m/TimePickerInternals.js +1 -1
  244. package/src/sap/m/TimePickerSlider.js +1 -1
  245. package/src/sap/m/TimePickerSliders.js +1 -1
  246. package/src/sap/m/Title.js +1 -1
  247. package/src/sap/m/TitlePropagationSupport.js +1 -1
  248. package/src/sap/m/ToggleButton.js +1 -1
  249. package/src/sap/m/Token.js +1 -1
  250. package/src/sap/m/Tokenizer.js +154 -5
  251. package/src/sap/m/TokenizerRenderer.js +30 -3
  252. package/src/sap/m/Toolbar.js +1 -1
  253. package/src/sap/m/ToolbarLayoutData.js +1 -1
  254. package/src/sap/m/ToolbarSeparator.js +1 -1
  255. package/src/sap/m/ToolbarSpacer.js +1 -1
  256. package/src/sap/m/Tree.js +1 -1
  257. package/src/sap/m/TreeItemBase.js +1 -1
  258. package/src/sap/m/UploadCollection.js +1 -1
  259. package/src/sap/m/UploadCollectionItem.js +1 -1
  260. package/src/sap/m/UploadCollectionParameter.js +1 -1
  261. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  262. package/src/sap/m/VBox.js +1 -1
  263. package/src/sap/m/ValueStateHeader.js +1 -1
  264. package/src/sap/m/VariantManagement.js +83 -6
  265. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  266. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  267. package/src/sap/m/ViewSettingsDialog.js +10 -5
  268. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  269. package/src/sap/m/ViewSettingsItem.js +1 -1
  270. package/src/sap/m/VisibleItem.js +1 -1
  271. package/src/sap/m/WheelSlider.js +1 -1
  272. package/src/sap/m/WheelSliderContainer.js +1 -1
  273. package/src/sap/m/Wizard.js +1 -1
  274. package/src/sap/m/WizardProgressNavigator.js +1 -1
  275. package/src/sap/m/WizardStep.js +2 -19
  276. package/src/sap/m/WizardStepRenderer.js +1 -1
  277. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  278. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  279. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  280. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  281. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  282. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  283. package/src/sap/m/designtime/messagebundle_ko.properties +1 -1
  284. package/src/sap/m/inputUtils/SuggestionsPopoverDialogMixin.js +2 -1
  285. package/src/sap/m/library.js +78 -19
  286. package/src/sap/m/messagebundle.properties +18 -7
  287. package/src/sap/m/messagebundle_ar.properties +11 -4
  288. package/src/sap/m/messagebundle_bg.properties +13 -6
  289. package/src/sap/m/messagebundle_ca.properties +11 -4
  290. package/src/sap/m/messagebundle_cnr.properties +11 -4
  291. package/src/sap/m/messagebundle_cs.properties +11 -4
  292. package/src/sap/m/messagebundle_cy.properties +11 -4
  293. package/src/sap/m/messagebundle_da.properties +11 -4
  294. package/src/sap/m/messagebundle_de.properties +11 -4
  295. package/src/sap/m/messagebundle_el.properties +11 -4
  296. package/src/sap/m/messagebundle_en.properties +13 -4
  297. package/src/sap/m/messagebundle_en_GB.properties +11 -4
  298. package/src/sap/m/messagebundle_en_US_saprigi.properties +8 -1
  299. package/src/sap/m/messagebundle_es.properties +15 -8
  300. package/src/sap/m/messagebundle_es_MX.properties +11 -4
  301. package/src/sap/m/messagebundle_et.properties +11 -4
  302. package/src/sap/m/messagebundle_fi.properties +17 -10
  303. package/src/sap/m/messagebundle_fr.properties +13 -6
  304. package/src/sap/m/messagebundle_fr_CA.properties +11 -4
  305. package/src/sap/m/messagebundle_hi.properties +11 -4
  306. package/src/sap/m/messagebundle_hr.properties +12 -5
  307. package/src/sap/m/messagebundle_hu.properties +11 -4
  308. package/src/sap/m/messagebundle_id.properties +15 -8
  309. package/src/sap/m/messagebundle_it.properties +11 -4
  310. package/src/sap/m/messagebundle_iw.properties +11 -4
  311. package/src/sap/m/messagebundle_ja.properties +12 -5
  312. package/src/sap/m/messagebundle_kk.properties +11 -4
  313. package/src/sap/m/messagebundle_ko.properties +13 -6
  314. package/src/sap/m/messagebundle_lt.properties +11 -4
  315. package/src/sap/m/messagebundle_lv.properties +11 -4
  316. package/src/sap/m/messagebundle_mk.properties +11 -4
  317. package/src/sap/m/messagebundle_ms.properties +11 -4
  318. package/src/sap/m/messagebundle_nl.properties +11 -4
  319. package/src/sap/m/messagebundle_no.properties +12 -5
  320. package/src/sap/m/messagebundle_pl.properties +13 -6
  321. package/src/sap/m/messagebundle_pt.properties +12 -5
  322. package/src/sap/m/messagebundle_pt_PT.properties +11 -4
  323. package/src/sap/m/messagebundle_ro.properties +14 -7
  324. package/src/sap/m/messagebundle_ru.properties +11 -4
  325. package/src/sap/m/messagebundle_sh.properties +11 -4
  326. package/src/sap/m/messagebundle_sk.properties +11 -4
  327. package/src/sap/m/messagebundle_sl.properties +11 -4
  328. package/src/sap/m/messagebundle_sr.properties +11 -4
  329. package/src/sap/m/messagebundle_sv.properties +11 -4
  330. package/src/sap/m/messagebundle_th.properties +16 -9
  331. package/src/sap/m/messagebundle_tr.properties +11 -4
  332. package/src/sap/m/messagebundle_uk.properties +11 -4
  333. package/src/sap/m/messagebundle_vi.properties +11 -4
  334. package/src/sap/m/messagebundle_zh_CN.properties +11 -4
  335. package/src/sap/m/messagebundle_zh_TW.properties +11 -4
  336. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  337. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  338. package/src/sap/m/p13n/BasePanel.js +54 -14
  339. package/src/sap/m/p13n/Container.js +1 -1
  340. package/src/sap/m/p13n/Engine.js +1 -1
  341. package/src/sap/m/p13n/FilterController.js +1 -1
  342. package/src/sap/m/p13n/FilterPanel.js +8 -6
  343. package/src/sap/m/p13n/GroupController.js +1 -1
  344. package/src/sap/m/p13n/GroupPanel.js +1 -1
  345. package/src/sap/m/p13n/MessageStrip.js +2 -2
  346. package/src/sap/m/p13n/PersistenceProvider.js +6 -2
  347. package/src/sap/m/p13n/Popup.js +1 -1
  348. package/src/sap/m/p13n/QueryPanel.js +1 -1
  349. package/src/sap/m/p13n/SelectionController.js +3 -2
  350. package/src/sap/m/p13n/SelectionPanel.js +6 -2
  351. package/src/sap/m/p13n/SortController.js +1 -1
  352. package/src/sap/m/p13n/SortPanel.js +1 -1
  353. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  354. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  355. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  356. package/src/sap/m/p13n/modules/xConfigAPI.js +5 -2
  357. package/src/sap/m/plugins/CellSelector.js +7 -1
  358. package/src/sap/m/plugins/ColumnAIAction.js +1 -1
  359. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  360. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  361. package/src/sap/m/plugins/CopyProvider.js +1 -1
  362. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  363. package/src/sap/m/plugins/PasteProvider.js +1 -1
  364. package/src/sap/m/plugins/PluginBase.js +1 -1
  365. package/src/sap/m/plugins/UploadSetwithTable.js +16 -1
  366. package/src/sap/m/semantic/AddAction.js +1 -1
  367. package/src/sap/m/semantic/CancelAction.js +1 -1
  368. package/src/sap/m/semantic/DeleteAction.js +1 -1
  369. package/src/sap/m/semantic/DetailPage.js +1 -1
  370. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  371. package/src/sap/m/semantic/EditAction.js +1 -1
  372. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  373. package/src/sap/m/semantic/FilterAction.js +1 -1
  374. package/src/sap/m/semantic/FilterSelect.js +1 -1
  375. package/src/sap/m/semantic/FlagAction.js +1 -1
  376. package/src/sap/m/semantic/ForwardAction.js +1 -1
  377. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  378. package/src/sap/m/semantic/GroupAction.js +1 -1
  379. package/src/sap/m/semantic/GroupSelect.js +1 -1
  380. package/src/sap/m/semantic/MainAction.js +1 -1
  381. package/src/sap/m/semantic/MasterPage.js +1 -1
  382. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  383. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  384. package/src/sap/m/semantic/NegativeAction.js +1 -1
  385. package/src/sap/m/semantic/OpenInAction.js +1 -1
  386. package/src/sap/m/semantic/PositiveAction.js +1 -1
  387. package/src/sap/m/semantic/PrintAction.js +1 -1
  388. package/src/sap/m/semantic/SaveAction.js +1 -1
  389. package/src/sap/m/semantic/Segment.js +1 -1
  390. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  391. package/src/sap/m/semantic/SemanticButton.js +1 -1
  392. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  393. package/src/sap/m/semantic/SemanticControl.js +1 -1
  394. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  395. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  396. package/src/sap/m/semantic/SemanticPage.js +1 -1
  397. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  398. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  399. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  400. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  401. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  402. package/src/sap/m/semantic/ShareMenu.js +1 -1
  403. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  404. package/src/sap/m/semantic/SortAction.js +1 -1
  405. package/src/sap/m/semantic/SortSelect.js +1 -1
  406. package/src/sap/m/table/ColumnWidthController.js +1 -1
  407. package/src/sap/m/table/Util.js +1 -1
  408. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  409. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  410. package/src/sap/m/table/columnmenu/Item.js +1 -1
  411. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  412. package/src/sap/m/table/columnmenu/Menu.js +3 -2
  413. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  414. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  415. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  416. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  417. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  418. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  419. package/src/sap/m/table/columnmenu/QuickResize.js +1 -1
  420. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  421. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  422. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  423. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  424. package/src/sap/m/themes/base/Carousel.less +11 -6
  425. package/src/sap/m/themes/base/CheckBox.less +4 -4
  426. package/src/sap/m/themes/base/ColumnListItem.less +5 -1
  427. package/src/sap/m/themes/base/ContextMenuSetting.less +2 -1
  428. package/src/sap/m/themes/base/FeedListItem.less +5 -2
  429. package/src/sap/m/themes/base/GenericTile.less +11 -0
  430. package/src/sap/m/themes/base/Label.less +2 -1
  431. package/src/sap/m/themes/base/LightBox.less +1 -1
  432. package/src/sap/m/themes/base/Menu.less +11 -1
  433. package/src/sap/m/themes/base/MessageStrip.less +211 -1
  434. package/src/sap/m/themes/base/MultiComboBox.less +4 -0
  435. package/src/sap/m/themes/base/MultiInput.less +5 -0
  436. package/src/sap/m/themes/base/ObjectAttribute.less +1 -0
  437. package/src/sap/m/themes/base/OverflowToolbarTokenizer.less +4 -0
  438. package/src/sap/m/themes/base/Popover.less +0 -5
  439. package/src/sap/m/themes/base/SegmentedButton.less +21 -1
  440. package/src/sap/m/themes/base/Select.less +14 -0
  441. package/src/sap/m/themes/base/SlideTile.less +8 -0
  442. package/src/sap/m/themes/base/Table.less +1 -0
  443. package/src/sap/m/themes/base/Text.less +2 -1
  444. package/src/sap/m/themes/base/TimePicker.less +0 -11
  445. package/src/sap/m/themes/base/Tokenizer.less +34 -0
  446. package/src/sap/m/themes/sap_hcb/base_Select.less +14 -0
  447. package/src/sap/m/themes/sap_hcb/base_TimePicker.less +0 -12
  448. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  449. package/src/sap/m/upload/Column.js +1 -1
  450. package/src/sap/m/upload/FilePreviewDialog.js +1 -1
  451. package/src/sap/m/upload/UploadItem.js +1 -1
  452. package/src/sap/m/upload/UploadItemConfiguration.js +1 -1
  453. package/src/sap/m/upload/UploadSet.js +1 -1
  454. package/src/sap/m/upload/UploadSetItem.js +1 -1
  455. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  456. package/src/sap/m/upload/UploaderTableItem.js +1 -1
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @extends sap.ui.core.Element
44
44
  *
45
45
  * @author SAP SE
46
- * @version 1.141.2
46
+ * @version 1.143.0
47
47
  *
48
48
  * @constructor
49
49
  * @public
package/src/sap/m/Link.js CHANGED
@@ -101,7 +101,7 @@ function(
101
101
  * @borrows sap.ui.core.ILabelable.hasLabelableHTMLElement as #hasLabelableHTMLElement
102
102
  *
103
103
  * @author SAP SE
104
- * @version 1.141.2
104
+ * @version 1.143.0
105
105
  *
106
106
  * @constructor
107
107
  * @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.141.2
21
+ * @version 1.143.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", "sap/ui/core/Lib", "
30
30
  * @extends sap.m.ListBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.141.2
33
+ * @version 1.143.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -105,7 +105,7 @@ function(
105
105
  * @extends sap.ui.core.Control
106
106
  *
107
107
  * @author SAP SE
108
- * @version 1.141.2
108
+ * @version 1.143.0
109
109
  *
110
110
  * @constructor
111
111
  * @public
@@ -604,7 +604,7 @@ function(
604
604
  /**
605
605
  * The list item action that fired the event
606
606
  */
607
- itemAction : {type : "sap.m.ListItemAction"},
607
+ action : {type : "sap.m.ListItemAction"},
608
608
 
609
609
  /**
610
610
  * The list item in which the action was performed
@@ -3005,7 +3005,7 @@ function(
3005
3005
  * @since 1.76
3006
3006
  * @public
3007
3007
  */
3008
- ListBase.prototype.scrollToIndex = function(iIndex) {
3008
+ ListBase.prototype.scrollToIndex = function(iIndex, _lastChance) {
3009
3009
  return new Promise(function(resolve, reject) {
3010
3010
  var oItem, oScrollDelegate;
3011
3011
 
@@ -3016,19 +3016,24 @@ function(
3016
3016
  }
3017
3017
 
3018
3018
  oItem = getItemAtIndex(this, iIndex);
3019
- if (!oItem) {
3019
+ if (!oItem && _lastChance) {
3020
3020
  return reject();
3021
3021
  }
3022
-
3023
- // adding timeout of 0 ensures the DOM is ready in case of rerendering
3024
- setTimeout(function() {
3025
- try {
3026
- oScrollDelegate.scrollToElement(oItem.getDomRef(), null, [0, this._getStickyAreaHeight() * -1], true);
3027
- resolve();
3028
- } catch (e) {
3029
- reject(e);
3030
- }
3031
- }.bind(this), 0);
3022
+ if (!oItem || !oItem.getDomRef()) {
3023
+ this.attachEventOnce("updateFinished", () => {
3024
+ this.scrollToIndex(iIndex, true).then(resolve).catch(reject);
3025
+ });
3026
+ } else {
3027
+ // adding timeout of 0 ensures the DOM is ready in case of rerendering
3028
+ setTimeout(() => {
3029
+ try {
3030
+ oScrollDelegate.scrollToElement(oItem.getDomRef(), null, [0, this._getStickyAreaHeight() * -1], true);
3031
+ resolve();
3032
+ } catch (e) {
3033
+ reject(e);
3034
+ }
3035
+ }, 0);
3036
+ }
3032
3037
  }.bind(this));
3033
3038
  };
3034
3039
 
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @extends sap.m.ListItemActionBase
35
35
  * @author SAP SE
36
- * @version 1.141.2
36
+ * @version 1.143.0
37
37
  *
38
38
  * @constructor
39
39
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(["sap/ui/core/Element"], function(Element) {
18
18
  * @extends sap.ui.core.Element
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.141.2
21
+ * @version 1.143.0
22
22
  *
23
23
  * @constructor
24
24
  * @public
@@ -66,7 +66,7 @@ function(
66
66
  * @extends sap.ui.core.Control
67
67
  *
68
68
  * @author SAP SE
69
- * @version 1.141.2
69
+ * @version 1.143.0
70
70
  *
71
71
  * @constructor
72
72
  * @public
@@ -443,6 +443,11 @@ function(
443
443
  sContentAnnouncement && aOutput.push(sContentAnnouncement);
444
444
  }
445
445
 
446
+ const sCustomActionsAnnouncement = this._getCustomActionsAnnouncement();
447
+ if (sCustomActionsAnnouncement) {
448
+ aOutput.push(sCustomActionsAnnouncement);
449
+ }
450
+
446
451
  if (this.getListProperty("ariaRole") == "list" && !bIsTree && this.isSelectable() && !this.getSelected()) {
447
452
  aOutput.push(oBundle.getText("LIST_ITEM_NOT_SELECTED"));
448
453
  }
@@ -1348,6 +1353,18 @@ function(
1348
1353
  return this._oOverflowButton;
1349
1354
  };
1350
1355
 
1356
+ ListItemBase.prototype._getCustomActionsAnnouncement = function(bAnnounceEmpty) {
1357
+ const $CustomActionsContainer = this.$("actions");
1358
+ const iCustomActionsLength = $CustomActionsContainer.length ? $CustomActionsContainer.find(":sapTabbable").length : 0;
1359
+ if (!iCustomActionsLength && !bAnnounceEmpty) {
1360
+ return "";
1361
+ }
1362
+
1363
+ const aBundleKeys = ["CONTROL_EMPTY", "LIST_ITEM_SINGLE_ACTION", "LIST_ITEM_MULTIPLE_ACTIONS"];
1364
+ const sBundleKey = aBundleKeys[Math.min(iCustomActionsLength, 2)];
1365
+ return Library.getResourceBundleFor("sap.m").getText(sBundleKey, [iCustomActionsLength]);
1366
+ };
1367
+
1351
1368
  return ListItemBase;
1352
1369
 
1353
1370
  });
@@ -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.141.2
31
+ * @version 1.143.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.141.2
32
+ * @version 1.143.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.141.2
23
+ * @version 1.143.0
24
24
  * @public
25
25
  * @constructor
26
26
  * @since 1.34.0
package/src/sap/m/Menu.js CHANGED
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @implements sap.ui.core.IContextMenu
64
64
  *
65
65
  * @author SAP SE
66
- * @version 1.141.2
66
+ * @version 1.143.0
67
67
  *
68
68
  * @constructor
69
69
  * @public
@@ -443,18 +443,31 @@ sap.ui.define([
443
443
  oPointerElement.className = "sapMMenuContextMenuPointer";
444
444
 
445
445
  // if the opener DOM ref is provided, we should get its position data
446
- const oOpenerData = oOpenerDomRef ? oOpenerDomRef.getBoundingClientRect() : null;
446
+ const oOpenerData = oOpenerDomRef ? oOpenerDomRef.getBoundingClientRect() : null,
447
+ iScrollX = document.documentElement.scrollLeft || document.body.scrollLeft,
448
+ iScrollY = document.documentElement.scrollTop || document.body.scrollTop,
449
+ isRTL = Localization.getRTL();
447
450
 
448
451
  // calculate the position of the pointer element
449
452
  if ((!oOriginalEvent || bOpenerCoordinates) && oOpenerData) {
450
453
  // opener is provided, no event is provided, or there are missing important coordinates in the event,
451
454
  // we should use the opener's position data
452
- iX = oOpenerData.left + (oOpenerData.width / 2) + (document.documentElement.scrollLeft || document.body.scrollLeft);
453
- iY = oOpenerData.top + (oOpenerData.height / 2) + (document.documentElement.scrollTop || document.body.scrollTop);
455
+ const iPointerPageX = oOpenerData.left + (oOpenerData.width / 2) + iScrollX;
456
+ const iPointerPageY = oOpenerData.top + (oOpenerData.height / 2) + iScrollY;
457
+
458
+ // compute inline-start offset (start = left in LTR, right in RTL)
459
+ if (isRTL) {
460
+ // distance from opener's right edge to pointer
461
+ iX = (oOpenerData.right + iScrollX) - iPointerPageX;
462
+ } else {
463
+ // distance from opener's left edge to pointer
464
+ iX = iPointerPageX - (oOpenerData.left + iScrollX);
465
+ }
466
+ iY = iPointerPageY - (oOpenerData.top + iScrollY);
454
467
  } else if (oOriginalEvent && bPageCoordinates) {
455
468
  // the event with coordinates is provided, we should use them
456
- const iPageX = (oOriginalEvent.pageX || oOriginalEvent.clientX) + (document.documentElement.scrollLeft || document.body.scrollLeft);
457
- const iPageY = (oOriginalEvent.pageY || oOriginalEvent.clientY) + (document.documentElement.scrollTop || document.body.scrollTop);
469
+ const iPageX = (oOriginalEvent.pageX || oOriginalEvent.clientX) + iScrollX;
470
+ const iPageY = (oOriginalEvent.pageY || oOriginalEvent.clientY) + iScrollY;
458
471
 
459
472
  if (oOpenerDomRef.tagName && oOpenerDomRef.tagName.toLowerCase() === "tr") {
460
473
  oPointerParent = oOpenerDomRef.firstChild ? oOpenerDomRef.firstChild : oOpenerDomRef;
@@ -464,11 +477,18 @@ sap.ui.define([
464
477
  oPointerSibling = oOpenerDomRef.firstChild ? oOpenerDomRef.firstChild : null;
465
478
  }
466
479
 
467
- iX = (iPageX - oOpenerData.left - window.scrollX);
468
- iY = (iPageY - oOpenerData.top - window.scrollY);
469
-
470
- if (Localization.getRTL()) {
471
- iX = document.body.clientWidth - iX;
480
+ // compute inline-start offset relative to opener considering RTL
481
+ if (oOpenerData) {
482
+ if (isRTL) {
483
+ iX = (oOpenerData.right + iScrollX) - iPageX;
484
+ } else {
485
+ iX = iPageX - (oOpenerData.left + iScrollX);
486
+ }
487
+ iY = iPageY - (oOpenerData.top + iScrollY);
488
+ } else {
489
+ // fallback if no opener data: use page coordinates
490
+ iX = iPageX;
491
+ iY = iPageY;
472
492
  }
473
493
  } else if (bOffsetCoordinates) {
474
494
  // offsetX/offsetY coordinates are provided, we should use specified position
@@ -17,6 +17,7 @@ sap.ui.define([
17
17
  'sap/ui/core/Popup',
18
18
  'sap/ui/core/LabelEnablement',
19
19
  "./MenuButtonRenderer",
20
+ 'sap/base/i18n/Localization',
20
21
  "sap/ui/events/KeyCodes"
21
22
  ], function(
22
23
  library,
@@ -30,6 +31,7 @@ sap.ui.define([
30
31
  Popup,
31
32
  LabelEnablement,
32
33
  MenuButtonRenderer,
34
+ Localization,
33
35
  KeyCodes
34
36
  ) {
35
37
  "use strict";
@@ -60,7 +62,7 @@ sap.ui.define([
60
62
  * @extends sap.ui.core.Control
61
63
  *
62
64
  * @author SAP SE
63
- * @version 1.141.2
65
+ * @version 1.143.0
64
66
  *
65
67
  * @constructor
66
68
  * @public
@@ -367,6 +369,181 @@ sap.ui.define([
367
369
  return this.getAggregation("_button");
368
370
  };
369
371
 
372
+ /**
373
+ * Parses the dock string to extract horizontal and vertical alignment values
374
+ * @param {string} sDock The dock string to parse
375
+ * @returns {object} Object with sHorizontalAlign and sVerticalAlign properties
376
+ * @private
377
+ */
378
+ MenuButton.prototype._parseDockAlignment = function(sDock) {
379
+ let sHorizontalAlign = "Begin";
380
+ let sVerticalAlign = "Bottom";
381
+
382
+ // Determine horizontal alignment (test first part)
383
+ if (sDock.substring(0, 5) === "Begin") {
384
+ sHorizontalAlign = "Begin";
385
+ } else if (sDock.substring(0, 3) === "End") {
386
+ sHorizontalAlign = "End";
387
+ } else if (sDock.substring(0, 4) === "Left") {
388
+ sHorizontalAlign = "Left";
389
+ } else if (sDock.substring(0, 5) === "Right") {
390
+ sHorizontalAlign = "Right";
391
+ } else if (sDock.substring(0, 6) === "Center") {
392
+ sHorizontalAlign = "Center";
393
+ }
394
+
395
+ // Determine vertical alignment (test last part)
396
+ if (sDock.substring(sDock.length - 3) === "Top") {
397
+ sVerticalAlign = "Top";
398
+ } else if (sDock.substring(sDock.length - 6) === "Bottom") {
399
+ sVerticalAlign = "Bottom";
400
+ } else if (sDock.substring(sDock.length - 6) === "Center") {
401
+ sVerticalAlign = "Center";
402
+ }
403
+
404
+ return { sHorizontalAlign, sVerticalAlign };
405
+ };
406
+
407
+ /**
408
+ * Adjusts the popover position after it opens according to the dock rules
409
+ * @param {string} sDock The dock string to parse
410
+ * @param {sap.m.ResponsivePopover} oPopover The popover instance
411
+ * @param {object} oOpenerRect The opener rectangle
412
+ * @private
413
+ */
414
+ MenuButton.prototype._adjustPopoverPosition = function(sDock, oPopover, oOpenerRect) {
415
+ const { sHorizontalAlign, sVerticalAlign } = this._parseDockAlignment(sDock),
416
+ oPopoverDomRef = oPopover._oControl.getDomRef(),
417
+ oPopoverRect = oPopoverDomRef.getBoundingClientRect(),
418
+ iScrollX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
419
+ iScrollY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
420
+ bLeftOrRight = (sHorizontalAlign === "Left" || sHorizontalAlign === "Right"),
421
+ bRTL = Localization.getRTL();
422
+ let iTargetLeft,
423
+ iTargetTop,
424
+ iOffsetLeft = 0,
425
+ iOffsetTop = 0;
426
+
427
+ // Calculate horizontal position based on sHorizontalAlign
428
+ switch (sHorizontalAlign) {
429
+ case "Begin":
430
+ iTargetLeft = (bRTL)
431
+ ? (oOpenerRect.right + iScrollX) - oPopoverRect.width
432
+ : oOpenerRect.left + iScrollX;
433
+ iOffsetLeft = (bRTL) ? -1 : 1;
434
+ break;
435
+ case "End":
436
+ iTargetLeft = (bRTL)
437
+ ? oOpenerRect.left + iScrollX
438
+ : (oOpenerRect.right + iScrollX) - oPopoverRect.width;
439
+ iOffsetLeft = (bRTL) ? 1 : -1;
440
+ break;
441
+ case "Left":
442
+ iTargetLeft = (oOpenerRect.left + iScrollX) - oPopoverRect.width;
443
+ iOffsetLeft = -2;
444
+ break;
445
+ case "Right":
446
+ iTargetLeft = oOpenerRect.right + iScrollX;
447
+ iOffsetLeft = 2;
448
+ break;
449
+ default: // Center
450
+ var iButtonCenterX = oOpenerRect.left + (oOpenerRect.width / 2) + iScrollX;
451
+ iTargetLeft = iButtonCenterX - (oPopoverRect.width / 2);
452
+ }
453
+
454
+ // Calculate vertical position based on sVerticalAlign
455
+ switch (sVerticalAlign) {
456
+ case "Top":
457
+ iTargetTop = bLeftOrRight
458
+ ? (oOpenerRect.top + oOpenerRect.height + iScrollY) - oPopoverRect.height
459
+ : (oOpenerRect.top + iScrollY) - oPopoverRect.height;
460
+ iOffsetTop = bLeftOrRight ? -5 : 2;
461
+ break;
462
+ case "Bottom":
463
+ iTargetTop = bLeftOrRight
464
+ ? oOpenerRect.top + iScrollY
465
+ : oOpenerRect.top + oOpenerRect.height + iScrollY;
466
+ iOffsetTop = bLeftOrRight ? 5 : -2;
467
+ break;
468
+ default: // Center
469
+ var iButtonCenterY = oOpenerRect.top + (oOpenerRect.height / 2) + iScrollY;
470
+ iTargetTop = iButtonCenterY - (oPopoverRect.height / 2);
471
+ }
472
+
473
+ // Apply the computed position
474
+ oPopoverDomRef.style.left = Math.round(iTargetLeft + iOffsetLeft) + "px";
475
+ oPopoverDomRef.style.top = Math.round(iTargetTop + iOffsetTop) + "px";
476
+ oPopoverDomRef.style.right = "";
477
+ oPopoverDomRef.style.bottom = "";
478
+
479
+ oPopover.detachEvent("afterOpen", this._adjustPopoverPosition);
480
+ };
481
+
482
+ /**
483
+ * Destroys the menu button anchor element
484
+ * @param {sap.m.ResponsivePopover | undefined} oPopover The popover instance (if provided)
485
+ * @private
486
+ */
487
+ MenuButton.prototype._destroyAnchorElement = function(oPopover) {
488
+ if (this._menuButtonAnchor && this._menuButtonAnchor.parentNode) {
489
+ this._menuButtonAnchor.parentNode.removeChild(this._menuButtonAnchor);
490
+ }
491
+ this._menuButtonAnchor = null;
492
+ oPopover && oPopover.detachEvent("afterClose", this._destroyAnchorElement);
493
+ };
494
+
495
+ /**
496
+ * Creates and configures the DOM anchor element for menu positioning
497
+ * @param {object} oOpenerRect The opener rectangle
498
+ * @private
499
+ */
500
+ MenuButton.prototype._createAnchorElement = function(oOpenerRect) {
501
+ // remove any previous anchor
502
+ this._destroyAnchorElement();
503
+
504
+ const iScrollX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
505
+ iScrollY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
506
+ iAnchorX = oOpenerRect.left + (oOpenerRect.width / 2) + iScrollX,
507
+ iAnchorY = oOpenerRect.top + (oOpenerRect.height / 2) + iScrollY,
508
+ oAnchor = document.createElement("div");
509
+
510
+ oAnchor.style.position = "absolute";
511
+ oAnchor.style.width = "1px";
512
+ oAnchor.style.height = "1px";
513
+ oAnchor.style.left = Math.round(iAnchorX) + "px";
514
+ oAnchor.style.top = Math.round(iAnchorY) + "px";
515
+ oAnchor.style.zIndex = "2147483647";
516
+ oAnchor.style.pointerEvents = "none";
517
+ oAnchor.setAttribute("aria-hidden", "true");
518
+ oAnchor.className = "sapMMenuButtonAnchor";
519
+
520
+ document.body.appendChild(oAnchor);
521
+ this._menuButtonAnchor = oAnchor;
522
+ };
523
+
524
+ /**
525
+ * Create a temporary DOM anchor at the coordinates computed from a Popup.Dock-like token (menuPosition).
526
+ * The anchor is appended to document.body and will be removed after the popover closes.
527
+ *
528
+ * @param {string} sDock Popup.Dock-like token (e.g. "BeginTop", "EndCenter", "LeftBottom")
529
+ * @param {sap.m.ResponsivePopover} oPopover the popover instance to attach cleanup to
530
+ * @private
531
+ */
532
+ MenuButton.prototype._createMenuPositionAnchor = function(sDock, oPopover) {
533
+ if (!sDock || !oPopover || !Dock[sDock]) {
534
+ return;
535
+ }
536
+
537
+ const oOpenerRect = this.getDomRef().getBoundingClientRect();
538
+
539
+ // create new anchor
540
+ this._createAnchorElement(oOpenerRect);
541
+
542
+ // Attach event handlers
543
+ oPopover.attachEvent("afterOpen", this._adjustPopoverPosition.bind(this, sDock, oPopover, oOpenerRect));
544
+ oPopover.attachEvent("afterClose", this._destroyAnchorElement.bind(this, oPopover));
545
+ };
546
+
370
547
  /**
371
548
  * Handles the <code>buttonPress</code> event and opens the menu.
372
549
  * @param {boolean} oEvent event object
@@ -396,7 +573,11 @@ sap.ui.define([
396
573
  // adjust the positioning of the Menu Popover to align with MenuButton, because of padding around inner button
397
574
  var oPopover = oMenu._getPopover();
398
575
 
399
- oPopover && oPopover.setOffsetX(1).setOffsetY(-3);
576
+ // create anchor according to menuPosition
577
+ var sDock = this.getMenuPosition();
578
+ if (sDock && oPopover) {
579
+ this._createMenuPositionAnchor(sDock, oPopover);
580
+ }
400
581
 
401
582
  oMenu.openBy.apply(oMenu, aParam);
402
583
 
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @implements sap.m.IMenuItem, sap.m.IMenuItemBehavior
65
65
  *
66
66
  * @author SAP SE
67
- * @version 1.141.2
67
+ * @version 1.143.0
68
68
  *
69
69
  * @constructor
70
70
  * @public
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @implements sap.m.IMenuItem
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.141.2
35
+ * @version 1.143.0
36
36
  * @since 1.127.0
37
37
  *
38
38
  * @constructor
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.m.ListItemBase
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.141.2
40
+ * @version 1.143.0
41
41
  *
42
42
  * @constructor
43
43
  * @private
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.core.Control
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.141.2
48
+ * @version 1.143.0
49
49
  *
50
50
  * @constructor
51
51
  * @private
@@ -390,7 +390,7 @@ sap.ui.define([
390
390
  * Custom action(s) string or an array can be provided, and then the translation
391
391
  * of custom actions needs to be done by the application.
392
392
  * @param {sap.m.MessageBox.Action|string} [mOptions.emphasizedAction=sap.m.MessageBox.Action.OK] Added since version 1.75.0. Specifies which action of the created dialog will be emphasized. EmphasizedAction will apply only if the property <code>actions</code> is provided.
393
- * @param {function} [mOptions.onClose] Function to be called when the user taps a button or closes the message box.
393
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Function to be called when the user taps a button or closes the message box.
394
394
  * @param {string} [mOptions.id] ID to be used for the dialog. Intended for test scenarios, not recommended for productive apps
395
395
  * @param {string} [mOptions.styleClass] Added since version 1.21.2. CSS style class which is added to the dialog's root DOM node. The compact design can be activated by setting this to "sapUiSizeCompact"
396
396
  * @param {string|sap.m.MessageBox.Action} [mOptions.initialFocus] Added since version 1.28.0. initialFocus, this option sets the action name, the text of the button or the control that gets the focus as first focusable element after the MessageBox is opened.
@@ -535,12 +535,10 @@ sap.ui.define([
535
535
  oInitialFocusControl = aButtons[i];
536
536
  break;
537
537
  }
538
- } else {
539
- if (mOptions.initialFocus.toLowerCase() === aButtons[i].getText().toLowerCase()) {
538
+ } else if (mOptions.initialFocus.toLowerCase() === aButtons[i].getText().toLowerCase()) {
540
539
  oInitialFocusControl = aButtons[i];
541
540
  break;
542
541
  }
543
- }
544
542
  }
545
543
  }
546
544
  }
@@ -632,7 +630,7 @@ sap.ui.define([
632
630
  *
633
631
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
634
632
  * @param {object} [mOptions] Other options (optional)
635
- * @param {function} [mOptions.onClose] callback function to be called when the user closes the dialog
633
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] callback function to be called when the user closes the dialog
636
634
  * @param {string} [mOptions.title='Alert'] Title to be displayed in the alert dialog
637
635
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
638
636
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -729,7 +727,7 @@ sap.ui.define([
729
727
  *
730
728
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
731
729
  * @param {object} [mOptions] Other options (optional)
732
- * @param {function} [mOptions.onClose] Callback to be called when the user closes the dialog
730
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Callback to be called when the user closes the dialog
733
731
  * @param {string} [mOptions.title='Confirmation'] Title to display in the confirmation dialog
734
732
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
735
733
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -820,7 +818,7 @@ sap.ui.define([
820
818
  *
821
819
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
822
820
  * @param {object} [mOptions] Other options (optional)
823
- * @param {function} [mOptions.onClose] Callback when the user closes the dialog
821
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Callback when the user closes the dialog
824
822
  * @param {string} [mOptions.title='Error'] Title of the error dialog
825
823
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
826
824
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -896,7 +894,7 @@ sap.ui.define([
896
894
  *
897
895
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
898
896
  * @param {object} [mOptions] Other options (optional)
899
- * @param {function} [mOptions.onClose] Callback when the user closes the dialog
897
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Callback when the user closes the dialog
900
898
  * @param {string} [mOptions.title='Information'] Title of the information dialog
901
899
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
902
900
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -972,7 +970,7 @@ sap.ui.define([
972
970
  *
973
971
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
974
972
  * @param {object} [mOptions] Other options (optional)
975
- * @param {function} [mOptions.onClose] Callback when the user closes the dialog
973
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Callback when the user closes the dialog
976
974
  * @param {string} [mOptions.title='Warning'] Title of the warning dialog
977
975
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
978
976
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -1048,7 +1046,7 @@ sap.ui.define([
1048
1046
  *
1049
1047
  * @param {string} vMessage Message to be displayed in the alert dialog. The usage of sap.core.Control as vMessage is deprecated since version 1.30.4.
1050
1048
  * @param {object} [mOptions] Other options (optional)
1051
- * @param {function} [mOptions.onClose] Callback when the user closes the dialog
1049
+ * @param {function((sap.m.MessageBox.Action | string | null)):void} [mOptions.onClose] Callback when the user closes the dialog
1052
1050
  * @param {string} [mOptions.title='Success'] Title of the success dialog
1053
1051
  * @param {sap.m.MessageBox.Action|sap.m.MessageBox.Action[]|string|string[]} [mOptions.actions=sap.m.MessageBox.Action.OK] Either a single action, or an array of actions.
1054
1052
  * If no action(s) are given, the single action MessageBox.Action.OK is taken as a default for the parameter.
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @extends sap.ui.core.Item
35
35
  * @author SAP SE
36
- * @version 1.141.2
36
+ * @version 1.143.0
37
37
  *
38
38
  * @constructor
39
39
  * @public
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.m.StandardListItem
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.141.2
37
+ * @version 1.143.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @see {@link fiori:https://experience.sap.com/fiori-design-web/message-page/ Message Page}
75
75
  *
76
76
  * @extends sap.ui.core.Control
77
- * @version 1.141.2
77
+ * @version 1.143.0
78
78
  *
79
79
  * @constructor
80
80
  * @public
@@ -97,7 +97,7 @@ function(
97
97
  * @extends sap.ui.core.Control
98
98
  *
99
99
  * @author SAP SE
100
- * @version 1.141.2
100
+ * @version 1.143.0
101
101
  *
102
102
  * @constructor
103
103
  * @public
@@ -405,7 +405,7 @@ function(
405
405
 
406
406
  this._oPopover._setAriaModal(false);
407
407
  this._oPopover.addContent(this._oMessageView);
408
- this._oPopover.addAssociation("ariaLabelledBy", this.getId() + "-messageView-HeadingDescr", true);
408
+ this._oPopover.addAssociation("ariaLabelledBy", this._oMessageView.getHeadingAriaLabelledBy(), true);
409
409
 
410
410
  oPopupControl = this._oPopover.getAggregation("_popup");
411
411
  oPopupControl.oPopup.setAutoClose(false);
@@ -19,7 +19,7 @@ sap.ui.define(["./library", "./MessageItem"],
19
19
  * @extends sap.m.MessageItem
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.143.0
23
23
  *
24
24
  * @constructor
25
25
  * @public