@openui5/sap.m 1.138.0 → 1.139.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 (526) hide show
  1. package/README.md +1 -1
  2. package/REUSE.toml +8 -1
  3. package/THIRDPARTY.txt +72 -66
  4. package/package.json +5 -5
  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 +1 -1
  16. package/src/sap/m/Bar.js +1 -1
  17. package/src/sap/m/Breadcrumbs.js +1 -1
  18. package/src/sap/m/BusyDialog.js +1 -1
  19. package/src/sap/m/BusyIndicator.js +1 -1
  20. package/src/sap/m/Button.js +5 -4
  21. package/src/sap/m/Carousel.js +1 -1
  22. package/src/sap/m/CarouselLayout.js +1 -1
  23. package/src/sap/m/CheckBox.js +1 -1
  24. package/src/sap/m/ColorPalette.js +1 -1
  25. package/src/sap/m/ColorPalettePopover.js +1 -1
  26. package/src/sap/m/Column.js +1 -1
  27. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  28. package/src/sap/m/ColumnListItem.js +19 -4
  29. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  33. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  34. package/src/sap/m/ComboBox.js +1 -1
  35. package/src/sap/m/ComboBoxBase.js +1 -1
  36. package/src/sap/m/ComboBoxTextField.js +1 -1
  37. package/src/sap/m/ContentConfig.js +1 -1
  38. package/src/sap/m/CustomListItem.js +1 -1
  39. package/src/sap/m/CustomTile.js +1 -1
  40. package/src/sap/m/CustomTreeItem.js +1 -1
  41. package/src/sap/m/DatePicker.js +1 -1
  42. package/src/sap/m/DateRangeSelection.js +2 -2
  43. package/src/sap/m/DateTimeField.js +1 -1
  44. package/src/sap/m/DateTimeInput.js +1 -1
  45. package/src/sap/m/DateTimePicker.js +1 -1
  46. package/src/sap/m/Dialog.js +1 -1
  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 +65 -16
  59. package/src/sap/m/FeedInputRenderer.js +7 -0
  60. package/src/sap/m/FeedListItem.js +1 -1
  61. package/src/sap/m/FeedListItemAction.js +1 -1
  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 +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 +2 -2
  84. package/src/sap/m/InputBase.js +1 -1
  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 +4 -2
  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 +1 -1
  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 +1 -1
  96. package/src/sap/m/ListRenderer.js +1 -1
  97. package/src/sap/m/MaskEnabler.js +1 -1
  98. package/src/sap/m/MaskInput.js +1 -1
  99. package/src/sap/m/MaskInputRule.js +1 -1
  100. package/src/sap/m/Menu.js +63 -21
  101. package/src/sap/m/MenuButton.js +1 -1
  102. package/src/sap/m/MenuItem.js +1 -1
  103. package/src/sap/m/MenuItemGroup.js +1 -1
  104. package/src/sap/m/MenuListItem.js +1 -1
  105. package/src/sap/m/MenuWrapper.js +40 -6
  106. package/src/sap/m/MenuWrapperRenderer.js +21 -1
  107. package/src/sap/m/MessageItem.js +1 -1
  108. package/src/sap/m/MessageListItem.js +1 -1
  109. package/src/sap/m/MessagePage.js +1 -1
  110. package/src/sap/m/MessagePopover.js +1 -1
  111. package/src/sap/m/MessagePopoverItem.js +1 -1
  112. package/src/sap/m/MessageStrip.js +1 -1
  113. package/src/sap/m/MessageToast.js +1 -1
  114. package/src/sap/m/MessageView.js +1 -1
  115. package/src/sap/m/MultiComboBox.js +9 -8
  116. package/src/sap/m/MultiEditField.js +1 -1
  117. package/src/sap/m/MultiInput.js +16 -7
  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 +19 -11
  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 +13 -1
  132. package/src/sap/m/ObjectNumberRenderer.js +13 -4
  133. package/src/sap/m/ObjectStatus.js +1 -1
  134. package/src/sap/m/ObjectStatusRenderer.js +1 -1
  135. package/src/sap/m/OverflowToolbar.js +16 -7
  136. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  137. package/src/sap/m/OverflowToolbarButton.js +1 -1
  138. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  139. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  140. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  141. package/src/sap/m/OverflowToolbarTokenizer.js +315 -0
  142. package/src/sap/m/OverflowToolbarTokenizerRenderer.js +84 -0
  143. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  144. package/src/sap/m/P13nColumnsItem.js +1 -1
  145. package/src/sap/m/P13nColumnsPanel.js +1 -1
  146. package/src/sap/m/P13nConditionPanel.js +1 -1
  147. package/src/sap/m/P13nDialog.js +1 -1
  148. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  149. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  150. package/src/sap/m/P13nFilterItem.js +1 -1
  151. package/src/sap/m/P13nFilterPanel.js +1 -1
  152. package/src/sap/m/P13nGroupItem.js +1 -1
  153. package/src/sap/m/P13nGroupPanel.js +1 -1
  154. package/src/sap/m/P13nItem.js +1 -1
  155. package/src/sap/m/P13nPanel.js +1 -1
  156. package/src/sap/m/P13nSelectionItem.js +1 -1
  157. package/src/sap/m/P13nSelectionPanel.js +1 -1
  158. package/src/sap/m/P13nSortItem.js +1 -1
  159. package/src/sap/m/P13nSortPanel.js +1 -1
  160. package/src/sap/m/PDFViewer.js +75 -35
  161. package/src/sap/m/Page.js +1 -1
  162. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  163. package/src/sap/m/PagingButton.js +1 -1
  164. package/src/sap/m/Panel.js +1 -1
  165. package/src/sap/m/PlanningCalendar.js +100 -229
  166. package/src/sap/m/PlanningCalendarHeader.js +37 -17
  167. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  168. package/src/sap/m/PlanningCalendarRow.js +1 -1
  169. package/src/sap/m/PlanningCalendarView.js +1 -1
  170. package/src/sap/m/Popover.js +1 -1
  171. package/src/sap/m/ProgressIndicator.js +1 -1
  172. package/src/sap/m/PullToRefresh.js +1 -1
  173. package/src/sap/m/QuickView.js +1 -1
  174. package/src/sap/m/QuickViewBase.js +1 -1
  175. package/src/sap/m/QuickViewCard.js +1 -1
  176. package/src/sap/m/QuickViewGroup.js +1 -1
  177. package/src/sap/m/QuickViewGroupElement.js +1 -1
  178. package/src/sap/m/QuickViewPage.js +23 -26
  179. package/src/sap/m/RadioButton.js +1 -1
  180. package/src/sap/m/RadioButtonGroup.js +1 -1
  181. package/src/sap/m/RangeSlider.js +1 -1
  182. package/src/sap/m/RatingIndicator.js +1 -1
  183. package/src/sap/m/ResponsivePopover.js +1 -1
  184. package/src/sap/m/ResponsiveScale.js +1 -1
  185. package/src/sap/m/ScrollBar.js +1 -1
  186. package/src/sap/m/ScrollContainer.js +1 -1
  187. package/src/sap/m/SearchField.js +1 -1
  188. package/src/sap/m/SegmentedButton.js +1 -1
  189. package/src/sap/m/SegmentedButtonItem.js +1 -1
  190. package/src/sap/m/Select.js +1 -1
  191. package/src/sap/m/SelectDialog.js +1 -1
  192. package/src/sap/m/SelectDialogBase.js +22 -1
  193. package/src/sap/m/SelectList.js +1 -1
  194. package/src/sap/m/SelectionDetails.js +1 -1
  195. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  196. package/src/sap/m/SelectionDetailsItem.js +1 -1
  197. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  198. package/src/sap/m/Shell.js +1 -1
  199. package/src/sap/m/SimpleFixFlex.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  202. package/src/sap/m/SinglePlanningCalendarGrid.js +11 -2
  203. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +8 -0
  204. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +11 -2
  205. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +8 -0
  206. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  207. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  208. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  209. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  210. package/src/sap/m/SlideTile.js +1 -1
  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/SplitButtonRenderer.js +8 -6
  218. package/src/sap/m/SplitContainer.js +1 -1
  219. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  220. package/src/sap/m/StandardListItem.js +1 -1
  221. package/src/sap/m/StandardTile.js +1 -1
  222. package/src/sap/m/StandardTreeItem.js +1 -1
  223. package/src/sap/m/StepInput.js +1 -1
  224. package/src/sap/m/SuggestionItem.js +1 -1
  225. package/src/sap/m/SuggestionsPopover.js +1 -2
  226. package/src/sap/m/Switch.js +1 -1
  227. package/src/sap/m/TabContainer.js +1 -1
  228. package/src/sap/m/TabContainerItem.js +1 -1
  229. package/src/sap/m/TabStrip.js +1 -1
  230. package/src/sap/m/TabStripItem.js +1 -1
  231. package/src/sap/m/Table.js +1 -1
  232. package/src/sap/m/TablePersoController.js +1 -1
  233. package/src/sap/m/TablePersoDialog.js +1 -1
  234. package/src/sap/m/TablePersoProvider.js +1 -1
  235. package/src/sap/m/TableSelectDialog.js +1 -1
  236. package/src/sap/m/Text.js +1 -1
  237. package/src/sap/m/TextArea.js +2 -2
  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/TileInfo.js +1 -1
  242. package/src/sap/m/TimePicker.js +1 -1
  243. package/src/sap/m/TimePickerClock.js +1 -1
  244. package/src/sap/m/TimePickerClocks.js +1 -1
  245. package/src/sap/m/TimePickerInputs.js +1 -1
  246. package/src/sap/m/TimePickerInternals.js +1 -1
  247. package/src/sap/m/TimePickerSlider.js +1 -1
  248. package/src/sap/m/TimePickerSliders.js +1 -1
  249. package/src/sap/m/Title.js +1 -1
  250. package/src/sap/m/TitlePropagationSupport.js +1 -1
  251. package/src/sap/m/ToggleButton.js +1 -1
  252. package/src/sap/m/Token.js +1 -1
  253. package/src/sap/m/Tokenizer.js +61 -28
  254. package/src/sap/m/TokenizerRenderer.js +28 -14
  255. package/src/sap/m/Toolbar.js +14 -8
  256. package/src/sap/m/ToolbarLayoutData.js +1 -1
  257. package/src/sap/m/ToolbarSeparator.js +1 -1
  258. package/src/sap/m/ToolbarSpacer.js +1 -1
  259. package/src/sap/m/Tree.js +1 -1
  260. package/src/sap/m/TreeItemBase.js +1 -1
  261. package/src/sap/m/UploadCollection.js +1 -1
  262. package/src/sap/m/UploadCollectionItem.js +1 -1
  263. package/src/sap/m/UploadCollectionParameter.js +1 -1
  264. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  265. package/src/sap/m/VBox.js +1 -1
  266. package/src/sap/m/ValueStateHeader.js +1 -1
  267. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  268. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  269. package/src/sap/m/ViewSettingsDialog.js +1 -1
  270. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  271. package/src/sap/m/ViewSettingsItem.js +1 -1
  272. package/src/sap/m/VisibleItem.js +1 -1
  273. package/src/sap/m/WheelSlider.js +1 -1
  274. package/src/sap/m/WheelSliderContainer.js +1 -1
  275. package/src/sap/m/Wizard.js +2 -2
  276. package/src/sap/m/WizardProgressNavigator.js +1 -1
  277. package/src/sap/m/WizardStep.js +1 -1
  278. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  279. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  280. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  281. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  282. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
  283. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  284. package/src/sap/m/designtime/Page.designtime.js +13 -1
  285. package/src/sap/m/i18n/interaction.xml +2 -2
  286. package/src/sap/m/i18n/interaction_ar.xml +10 -10
  287. package/src/sap/m/i18n/interaction_cs.xml +3 -3
  288. package/src/sap/m/i18n/interaction_iw.xml +8 -8
  289. package/src/sap/m/i18n/interaction_kk.xml +3 -3
  290. package/src/sap/m/i18n/interaction_th.xml +1 -1
  291. package/src/sap/m/library.js +29 -2
  292. package/src/sap/m/library.support.js +3 -0
  293. package/src/sap/m/messagebundle.properties +11 -2
  294. package/src/sap/m/messagebundle_ar.properties +7 -1
  295. package/src/sap/m/messagebundle_bg.properties +6 -0
  296. package/src/sap/m/messagebundle_ca.properties +8 -2
  297. package/src/sap/m/messagebundle_cnr.properties +6 -0
  298. package/src/sap/m/messagebundle_cs.properties +7 -1
  299. package/src/sap/m/messagebundle_cy.properties +6 -0
  300. package/src/sap/m/messagebundle_da.properties +6 -0
  301. package/src/sap/m/messagebundle_de.properties +7 -1
  302. package/src/sap/m/messagebundle_el.properties +6 -0
  303. package/src/sap/m/messagebundle_en.properties +6 -0
  304. package/src/sap/m/messagebundle_en_GB.properties +6 -0
  305. package/src/sap/m/messagebundle_en_US_saprigi.properties +6 -0
  306. package/src/sap/m/messagebundle_es.properties +8 -2
  307. package/src/sap/m/messagebundle_es_MX.properties +6 -0
  308. package/src/sap/m/messagebundle_et.properties +6 -0
  309. package/src/sap/m/messagebundle_fi.properties +6 -0
  310. package/src/sap/m/messagebundle_fr.properties +7 -1
  311. package/src/sap/m/messagebundle_fr_CA.properties +6 -0
  312. package/src/sap/m/messagebundle_hi.properties +6 -0
  313. package/src/sap/m/messagebundle_hr.properties +6 -0
  314. package/src/sap/m/messagebundle_hu.properties +6 -0
  315. package/src/sap/m/messagebundle_id.properties +19 -13
  316. package/src/sap/m/messagebundle_it.properties +6 -0
  317. package/src/sap/m/messagebundle_iw.properties +6 -0
  318. package/src/sap/m/messagebundle_ja.properties +6 -0
  319. package/src/sap/m/messagebundle_kk.properties +6 -0
  320. package/src/sap/m/messagebundle_ko.properties +6 -0
  321. package/src/sap/m/messagebundle_lt.properties +6 -0
  322. package/src/sap/m/messagebundle_lv.properties +6 -0
  323. package/src/sap/m/messagebundle_mk.properties +6 -0
  324. package/src/sap/m/messagebundle_ms.properties +6 -0
  325. package/src/sap/m/messagebundle_nl.properties +6 -0
  326. package/src/sap/m/messagebundle_no.properties +6 -0
  327. package/src/sap/m/messagebundle_pl.properties +6 -0
  328. package/src/sap/m/messagebundle_pt.properties +6 -0
  329. package/src/sap/m/messagebundle_pt_PT.properties +6 -0
  330. package/src/sap/m/messagebundle_ro.properties +6 -0
  331. package/src/sap/m/messagebundle_ru.properties +8 -2
  332. package/src/sap/m/messagebundle_sh.properties +6 -0
  333. package/src/sap/m/messagebundle_sk.properties +6 -0
  334. package/src/sap/m/messagebundle_sl.properties +6 -0
  335. package/src/sap/m/messagebundle_sr.properties +6 -0
  336. package/src/sap/m/messagebundle_sv.properties +6 -0
  337. package/src/sap/m/messagebundle_th.properties +6 -0
  338. package/src/sap/m/messagebundle_tr.properties +6 -0
  339. package/src/sap/m/messagebundle_uk.properties +6 -0
  340. package/src/sap/m/messagebundle_vi.properties +8 -2
  341. package/src/sap/m/messagebundle_zh_CN.properties +6 -0
  342. package/src/sap/m/messagebundle_zh_TW.properties +6 -0
  343. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  344. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  345. package/src/sap/m/p13n/BasePanel.js +1 -1
  346. package/src/sap/m/p13n/Container.js +1 -1
  347. package/src/sap/m/p13n/Engine.js +1 -1
  348. package/src/sap/m/p13n/FilterController.js +1 -1
  349. package/src/sap/m/p13n/FilterPanel.js +1 -1
  350. package/src/sap/m/p13n/GroupController.js +1 -1
  351. package/src/sap/m/p13n/GroupPanel.js +1 -1
  352. package/src/sap/m/p13n/MessageStrip.js +1 -1
  353. package/src/sap/m/p13n/Popup.js +1 -1
  354. package/src/sap/m/p13n/QueryPanel.js +1 -1
  355. package/src/sap/m/p13n/SelectionController.js +1 -1
  356. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  357. package/src/sap/m/p13n/SortController.js +1 -1
  358. package/src/sap/m/p13n/SortPanel.js +1 -1
  359. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  360. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  361. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  362. package/src/sap/m/p13n/modules/xConfigAPI.js +5 -2
  363. package/src/sap/m/plugins/CellSelector.js +6 -5
  364. package/src/sap/m/plugins/ColumnAIAction.js +1 -1
  365. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  366. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  367. package/src/sap/m/plugins/CopyProvider.js +1 -1
  368. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  369. package/src/sap/m/plugins/PasteProvider.js +1 -1
  370. package/src/sap/m/plugins/PluginBase.js +1 -1
  371. package/src/sap/m/plugins/UploadSetwithTable.js +119 -2
  372. package/src/sap/m/rules/IllustratedMessage.support.js +126 -0
  373. package/src/sap/m/semantic/AddAction.js +1 -1
  374. package/src/sap/m/semantic/CancelAction.js +1 -1
  375. package/src/sap/m/semantic/DeleteAction.js +1 -1
  376. package/src/sap/m/semantic/DetailPage.js +1 -1
  377. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  378. package/src/sap/m/semantic/EditAction.js +1 -1
  379. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  380. package/src/sap/m/semantic/FilterAction.js +1 -1
  381. package/src/sap/m/semantic/FilterSelect.js +1 -1
  382. package/src/sap/m/semantic/FlagAction.js +1 -1
  383. package/src/sap/m/semantic/ForwardAction.js +1 -1
  384. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  385. package/src/sap/m/semantic/GroupAction.js +1 -1
  386. package/src/sap/m/semantic/GroupSelect.js +1 -1
  387. package/src/sap/m/semantic/MainAction.js +1 -1
  388. package/src/sap/m/semantic/MasterPage.js +1 -1
  389. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  390. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  391. package/src/sap/m/semantic/NegativeAction.js +1 -1
  392. package/src/sap/m/semantic/OpenInAction.js +1 -1
  393. package/src/sap/m/semantic/PositiveAction.js +1 -1
  394. package/src/sap/m/semantic/PrintAction.js +1 -1
  395. package/src/sap/m/semantic/SaveAction.js +1 -1
  396. package/src/sap/m/semantic/Segment.js +1 -1
  397. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  398. package/src/sap/m/semantic/SemanticButton.js +1 -1
  399. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  400. package/src/sap/m/semantic/SemanticControl.js +1 -1
  401. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  402. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  403. package/src/sap/m/semantic/SemanticPage.js +1 -1
  404. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  405. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  406. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  407. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  408. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  409. package/src/sap/m/semantic/ShareMenu.js +1 -1
  410. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  411. package/src/sap/m/semantic/SortAction.js +1 -1
  412. package/src/sap/m/semantic/SortSelect.js +1 -1
  413. package/src/sap/m/table/ColumnWidthController.js +1 -1
  414. package/src/sap/m/table/Util.js +1 -1
  415. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  416. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  417. package/src/sap/m/table/columnmenu/Item.js +1 -1
  418. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  419. package/src/sap/m/table/columnmenu/Menu.js +8 -2
  420. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  421. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  422. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  423. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  424. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  425. package/src/sap/m/table/columnmenu/QuickGroupItem.js +10 -4
  426. package/src/sap/m/table/columnmenu/QuickResize.js +1 -1
  427. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  428. package/src/sap/m/table/columnmenu/QuickSortItem.js +29 -19
  429. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  430. package/src/sap/m/table/columnmenu/QuickTotalItem.js +10 -4
  431. package/src/sap/m/themes/base/CheckBox.less +4 -6
  432. package/src/sap/m/themes/base/FeedInput.less +17 -0
  433. package/src/sap/m/themes/base/GenericTile.less +22 -7
  434. package/src/sap/m/themes/base/IconTabBar.less +4 -5
  435. package/src/sap/m/themes/base/Illustration.less +4 -0
  436. package/src/sap/m/themes/base/Link.less +2 -0
  437. package/src/sap/m/themes/base/NumericContent.less +1 -2
  438. package/src/sap/m/themes/base/ObjectStatus.less +2 -0
  439. package/src/sap/m/themes/base/OverflowToolbarTokenizer.less +80 -0
  440. package/src/sap/m/themes/base/SinglePlanningCalendarMonthGrid.less +1 -0
  441. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-BalloonSky.svg +36 -36
  442. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyCalendar.svg +69 -69
  443. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-FilterTable.svg +52 -52
  444. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoDimensionsSet.svg +34 -34
  445. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoSearchResults.svg +2 -2
  446. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoTasks_v1.svg +48 -48
  447. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-ReloadScreen.svg +40 -40
  448. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SearchFolder.svg +26 -26
  449. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessHighFive.svg +19 -19
  450. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SuccessScreen.svg +39 -39
  451. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-Survey.svg +1 -1
  452. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-UploadCollection.svg +25 -25
  453. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-UserHasSignedUp.svg +1 -1
  454. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-AddColumn.svg +24 -24
  455. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-AddPeople.svg +6 -6
  456. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-BalloonSky.svg +4 -4
  457. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-Connection.svg +7 -7
  458. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-EmptyCalendar.svg +34 -34
  459. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-EmptyList.svg +4 -4
  460. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-ErrorScreen.svg +6 -6
  461. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-FilterTable.svg +5 -5
  462. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-GroupTable.svg +33 -33
  463. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-NoDimensionsSet.svg +4 -4
  464. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-NoMail_v1.svg +7 -7
  465. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-NoSavedItems_v1.svg +10 -10
  466. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-NoTasks_v1.svg +10 -10
  467. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-ReloadScreen.svg +6 -6
  468. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-ResizeColumn.svg +24 -24
  469. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SearchEarth.svg +4 -4
  470. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SearchFolder.svg +8 -8
  471. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleBalloon.svg +4 -4
  472. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleBell.svg +5 -5
  473. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleCalendar.svg +34 -34
  474. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleCheckMark.svg +2 -2
  475. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleConnection.svg +7 -7
  476. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleEmptyDoc.svg +5 -5
  477. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleEmptyList.svg +4 -4
  478. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleError.svg +6 -6
  479. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleMagnifier.svg +4 -4
  480. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleMail.svg +7 -7
  481. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleNoSavedItems.svg +10 -10
  482. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleNotFoundMagnifier.svg +8 -8
  483. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleReload.svg +6 -6
  484. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SimpleTask.svg +10 -10
  485. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SleepingBell.svg +5 -5
  486. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SortColumn.svg +26 -26
  487. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SuccessHighFive.svg +4 -4
  488. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-SuccessScreen.svg +2 -2
  489. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-Tent.svg +5 -5
  490. package/src/sap/m/themes/base/illustrations/sapIllus-Dot-UploadCollection.svg +4 -4
  491. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-BalloonSky.svg +44 -44
  492. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyCalendar.svg +80 -80
  493. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-FilterTable.svg +54 -54
  494. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoDimensionsSet.svg +36 -36
  495. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoSearchResults.svg +2 -2
  496. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoTasks_v1.svg +70 -70
  497. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-ReloadScreen.svg +52 -52
  498. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SearchFolder.svg +33 -33
  499. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessHighFive.svg +20 -20
  500. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SuccessScreen.svg +51 -51
  501. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-UploadCollection.svg +27 -27
  502. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-BalloonSky.svg +34 -34
  503. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyCalendar.svg +41 -41
  504. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-FilterTable.svg +49 -49
  505. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-GroupTable.svg +71 -71
  506. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoDimensionsSet.svg +37 -37
  507. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoSearchResults.svg +2 -2
  508. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoTasks_v1.svg +17 -17
  509. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ReloadScreen.svg +28 -28
  510. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-ResizeColumn.svg +44 -44
  511. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SearchFolder.svg +26 -26
  512. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessHighFive.svg +19 -19
  513. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SuccessScreen.svg +27 -27
  514. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-Survey.svg +1 -1
  515. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-UploadCollection.svg +28 -28
  516. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-UserHasSignedUp.svg +1 -1
  517. package/src/sap/m/themes/base/library.source.less +1 -0
  518. package/src/sap/m/upload/ActionsPlaceholder.js +1 -1
  519. package/src/sap/m/upload/Column.js +1 -1
  520. package/src/sap/m/upload/FilePreviewDialog.js +2 -2
  521. package/src/sap/m/upload/UploadItem.js +8 -2
  522. package/src/sap/m/upload/UploadItemConfiguration.js +34 -2
  523. package/src/sap/m/upload/UploadSet.js +1 -1
  524. package/src/sap/m/upload/UploadSetItem.js +1 -1
  525. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  526. package/src/sap/m/upload/UploaderTableItem.js +62 -6
package/src/sap/m/Menu.js CHANGED
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @implements sap.ui.core.IContextMenu
62
62
  *
63
63
  * @author SAP SE
64
- * @version 1.138.0
64
+ * @version 1.139.0
65
65
  *
66
66
  * @constructor
67
67
  * @public
@@ -157,7 +157,7 @@ sap.ui.define([
157
157
  this._openDuration = Device.system.phone ? null : 0;
158
158
  };
159
159
 
160
- /**
160
+ /**
161
161
  * Called from parent if the control is destroyed.
162
162
  */
163
163
  Menu.prototype.exit = function() {
@@ -206,12 +206,23 @@ sap.ui.define([
206
206
  * @public
207
207
  */
208
208
  Menu.prototype.openBy = function(oControl) {
209
- const oPopover = this._getPopover();
209
+ const oPopover = this._getPopover(),
210
+ oBinding = this.getBinding("items");
211
+
210
212
  if (!oControl) {
211
213
  oControl = document.body;
212
214
  }
213
- oPopover._getPopup().setDurations(this._openDuration, 0);
214
- oPopover.openBy(oControl);
215
+
216
+ if (oBinding && oBinding.isA("sap.ui.model.odata.v4.ODataListBinding")) {
217
+ // Wait for the binding data to be received, then open
218
+ oBinding.attachEventOnce("dataReceived", function() {
219
+ this._openPopoverBy(oPopover, oControl);
220
+ }, this);
221
+ } else {
222
+ this._openPopoverBy(oPopover, oControl);
223
+ }
224
+
225
+ this.bIgnoreOpenerFocus = true; // reset the flag to allow the opener to be focused after the menu is closed
215
226
 
216
227
  return this;
217
228
  };
@@ -241,6 +252,18 @@ sap.ui.define([
241
252
  return this;
242
253
  };
243
254
 
255
+ /**
256
+ * Opens the given popover next to the specified control, using the configured open duration.
257
+ *
258
+ * @param {sap.m.ResponsivePopover} oPopover The popover instance to open.
259
+ * @param {sap.ui.core.Control|HTMLElement} oControl The control or DOM element that defines the position for the popover.
260
+ * @private
261
+ */
262
+ Menu.prototype._openPopoverBy = function(oPopover, oControl) {
263
+ oPopover._getPopup().setDurations(this._openDuration, 0);
264
+ oPopover.openBy(oControl);
265
+ };
266
+
244
267
  /**
245
268
  * Captures the itemSelected event fired by the menu wrapper and fires the itemSelected event of the menu.
246
269
  *
@@ -250,6 +273,7 @@ sap.ui.define([
250
273
  Menu.prototype._handleItemSelected = function(oEvent) {
251
274
  oEvent.cancelBubble();
252
275
  this.fireItemSelected({item: oEvent.getParameter("item")});
276
+ this.bIgnoreOpenerFocus = false; // allow the opener to be focused after the menu is closed
253
277
  };
254
278
 
255
279
  /**
@@ -301,9 +325,13 @@ sap.ui.define([
301
325
  */
302
326
  Menu.prototype.openAsContextMenu = function(oEvent, oOpenerRef) {
303
327
  const oPopover = this._getPopover(),
304
- bPageCoordinates = oEvent && oEvent.pageX !== undefined && oEvent.pageY !== undefined,
305
- bOffsetCoordinates = !bPageCoordinates && !oOpenerRef && oEvent.offsetX !== undefined && oEvent.offsetY !== undefined,
306
- oOriginalEvent = oEvent && oEvent.originalEvent;
328
+ oOriginalEvent = oEvent ? oEvent.originalEvent || oEvent : null,
329
+ bPageCoordinates = oOriginalEvent && oOriginalEvent.button !== undefined && !!oOriginalEvent.type,
330
+ bOffsetCoordinates = oOriginalEvent && !bPageCoordinates && oOriginalEvent.type === undefined &&
331
+ (oOriginalEvent.offsetX !== undefined && oOriginalEvent.offsetY !== undefined),
332
+ bOpenerCoordinates = oOriginalEvent.type?.substr(0, 3) === "key" || (bPageCoordinates && oOpenerRef && (
333
+ (oOriginalEvent.pageX === undefined && oOriginalEvent.clientX === undefined) ||
334
+ (oOriginalEvent.pageY === undefined && oOriginalEvent.clientY === undefined)));
307
335
  let oOpenerDomRef = oOpenerRef && oOpenerRef.getDomRef ? oOpenerRef.getDomRef() : oOpenerRef,
308
336
  oPointerElement = document.getElementById("sapMMenuContextMenuPointer"),
309
337
  oPointerParent = document.body,
@@ -330,7 +358,13 @@ sap.ui.define([
330
358
  oOpenerDomRef = oEvent.srcControl ? oEvent.srcControl.getDomRef() : null;
331
359
 
332
360
  if (!oOpenerDomRef) {
333
- oOpenerDomRef = oOriginalEvent && oOriginalEvent.currentTarget ? oOriginalEvent.currentTarget : null;
361
+ if (oOriginalEvent?.currentTarget) {
362
+ oOpenerDomRef = oOriginalEvent.currentTarget;
363
+ } else if (oOriginalEvent?.target) {
364
+ oOpenerDomRef = oOriginalEvent.target;
365
+ } else {
366
+ oOpenerDomRef = document.body;
367
+ }
334
368
  }
335
369
  }
336
370
 
@@ -344,13 +378,21 @@ sap.ui.define([
344
378
  oPointerElement.id = "sapMMenuContextMenuPointer";
345
379
  oPointerElement.className = "sapMMenuContextMenuPointer";
346
380
 
381
+ // if the opener DOM ref is provided, we should get its position data
347
382
  const oOpenerData = oOpenerDomRef ? oOpenerDomRef.getBoundingClientRect() : null;
348
383
 
349
- if (oOriginalEvent && bPageCoordinates) {
350
- const iPageX = oOriginalEvent.pageX || oOriginalEvent.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);
351
- const iPageY = oOriginalEvent.pageY || oOriginalEvent.clientY + (document.documentElement.scrollTop || document.body.scrollTop);
352
-
353
- if (oOpenerDomRef.tagName.toLowerCase() === "tr") {
384
+ // calculate the position of the pointer element
385
+ if ((!oOriginalEvent || bOpenerCoordinates) && oOpenerData) {
386
+ // opener is provided, no event is provided, or there are missing important coordinates in the event,
387
+ // we should use the opener's position data
388
+ iX = oOpenerData.left + (oOpenerData.width / 2) + (document.documentElement.scrollLeft || document.body.scrollLeft);
389
+ iY = oOpenerData.top + (oOpenerData.height / 2) + (document.documentElement.scrollTop || document.body.scrollTop);
390
+ } else if (oOriginalEvent && bPageCoordinates) {
391
+ // the event with coordinates is provided, we should use them
392
+ const iPageX = (oOriginalEvent.pageX || oOriginalEvent.clientX) + (document.documentElement.scrollLeft || document.body.scrollLeft);
393
+ const iPageY = (oOriginalEvent.pageY || oOriginalEvent.clientY) + (document.documentElement.scrollTop || document.body.scrollTop);
394
+
395
+ if (oOpenerDomRef.tagName && oOpenerDomRef.tagName.toLowerCase() === "tr") {
354
396
  oPointerParent = oOpenerDomRef.firstChild ? oOpenerDomRef.firstChild : oOpenerDomRef;
355
397
  oPointerSibling = oPointerParent.firstChild ? oPointerParent.firstChild : null;
356
398
  } else {
@@ -364,17 +406,17 @@ sap.ui.define([
364
406
  if (Localization.getRTL()) {
365
407
  iX = document.body.clientWidth - iX;
366
408
  }
367
-
368
409
  } else if (bOffsetCoordinates) {
369
- // if the coordinates are provided, we create a pointer element at the specified position
370
- iX = oEvent.offsetX;
371
- iY = oEvent.offsetY;
410
+ // offsetX/offsetY coordinates are provided, we should use specified position
411
+ iX = oEvent.offsetX || 0;
412
+ iY = oEvent.offsetY || 0;
372
413
  }
373
414
 
415
+ // insert the pointer element into the DOM and set its position
374
416
  oPointerParent.insertBefore(oPointerElement, oPointerSibling);
375
417
  oPointerElement.style.insetInlineStart = `${iX}px`;
376
418
  oPointerElement.style.insetBlockStart = `${iY}px`;
377
- oPointerElement.setAttribute("aria-hidden", "true");
419
+ oPointerElement.setAttribute("aria-hidden", "true");
378
420
 
379
421
  oPopover.openBy(oPointerElement);
380
422
  oPopover.attachAfterClose(this._onContextMenuClose, this);
@@ -458,12 +500,12 @@ sap.ui.define([
458
500
  this._fnEnhanceUnifiedMenuAccState = fn;
459
501
  };
460
502
 
461
- Menu.prototype._menuClosed = function(oEvent) {
503
+ Menu.prototype._menuClosed = function(oEvent) {
462
504
  const oOpener = oEvent && oEvent.getParameter("openBy");
463
505
 
464
506
  this.fireClosed();
465
507
 
466
- if (oOpener) {
508
+ if (oOpener && !this.bIgnoreOpenerFocus) {
467
509
  try {
468
510
  oOpener.focus();
469
511
  } catch (e) {
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.core.Control
61
61
  *
62
62
  * @author SAP SE
63
- * @version 1.138.0
63
+ * @version 1.139.0
64
64
  *
65
65
  * @constructor
66
66
  * @public
@@ -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.138.0
67
+ * @version 1.139.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.138.0
35
+ * @version 1.139.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.138.0
40
+ * @version 1.139.0
41
41
  *
42
42
  * @constructor
43
43
  * @private
@@ -12,6 +12,7 @@ sap.ui.define([
12
12
  'sap/ui/dom/containsOrEquals',
13
13
  'sap/ui/events/KeyCodes',
14
14
  'sap/ui/Device',
15
+ 'sap/ui/core/Lib',
15
16
  'sap/base/i18n/Localization',
16
17
  'sap/ui/events/PseudoEvents'
17
18
  ], function(
@@ -21,6 +22,7 @@ sap.ui.define([
21
22
  containsOrEquals,
22
23
  KeyCodes,
23
24
  Device,
25
+ Library,
24
26
  Localization,
25
27
  PseudoEvents
26
28
  ) {
@@ -43,7 +45,7 @@ sap.ui.define([
43
45
  * @extends sap.ui.core.Control
44
46
  *
45
47
  * @author SAP SE
46
- * @version 1.138.0
48
+ * @version 1.139.0
47
49
  *
48
50
  * @constructor
49
51
  * @private
@@ -130,6 +132,7 @@ sap.ui.define([
130
132
 
131
133
  MenuWrapper.prototype.init = function() {
132
134
  this._aStyleClasses = [];
135
+ this._oRb = Library.getResourceBundleFor("sap.m");
133
136
  };
134
137
 
135
138
  MenuWrapper.prototype.onBeforeRendering = function() {
@@ -169,11 +172,16 @@ sap.ui.define([
169
172
  return;
170
173
  }
171
174
 
172
- if (oEvent.target.closest(CSS.escape(`#${oItem.getId()}-endContent`))) {
175
+ if (oEvent.target.closest(`#${CSS.escape(oItem.getId())}-endContent`)) {
173
176
  this.fireClosePopover({ bubbleToRoot: true });
174
177
  return;
175
178
  }
176
179
 
180
+
181
+ // If Shift is pressed, and the item is in Single- or Multi- selectable group,
182
+ // the menu popover should not be closed.
183
+ this._bPreventPopoverClose = this._isShiftKeyPressed(oEvent);
184
+
177
185
  this._selectItem(oItem, true);
178
186
  oEvent.preventDefault();
179
187
  oEvent.stopPropagation();
@@ -185,8 +193,18 @@ sap.ui.define([
185
193
  oEvent.stopPropagation();
186
194
  };
187
195
 
188
- MenuWrapper.prototype.onkeydown = function(oEvent) {
196
+ MenuWrapper.prototype.onsapselectmodifiers = function(oEvent) {
197
+ this._sapSelectOnKeyDown = true;
198
+
199
+ // If Shift is pressed, and the item is in Single- or Multi- selectable group,
200
+ // the menu popover should not be closed.
201
+ this._bPreventPopoverClose = this._isShiftKeyPressed(oEvent);
202
+
203
+ oEvent.preventDefault();
204
+ oEvent.stopPropagation();
205
+ };
189
206
 
207
+ MenuWrapper.prototype.onkeydown = function(oEvent) {
190
208
  const iIdx = this.oHoveredItem ? this._getVisibleItems().indexOf(this.oHoveredItem) : -1,
191
209
  bRtl = Localization.getRTL(),
192
210
  iLeftArrow = bRtl ? KeyCodes.ARROW_RIGHT : KeyCodes.ARROW_LEFT,
@@ -261,12 +279,12 @@ sap.ui.define([
261
279
  // The attribute _sapSelectOnKeyDown helps prevent issues in the reverse scenario. For example, when the spacebar is pressed
262
280
  // on a Button, opening the menu may cause the space keyup event to select the first item immediately.
263
281
  // Device checks are in place due to new functionality in iOS 13, which introduces desktop view functionality for tablets.
264
- if (!this._sapSelectOnKeyDown) {
282
+ if (!this._sapSelectOnKeyDown && !this._bPreventPopoverClose) {
265
283
  return;
266
284
  } else {
267
285
  this._sapSelectOnKeyDown = false;
268
286
  }
269
- if (!PseudoEvents.events.sapselect.fnCheck(oEvent) && oEvent.keyCode !== KeyCodes.ENTER) {
287
+ if (!PseudoEvents.events.sapselect.fnCheck(oEvent) && oEvent.keyCode !== KeyCodes.ENTER && !this._bPreventPopoverClose) {
270
288
  return;
271
289
  }
272
290
 
@@ -305,6 +323,16 @@ sap.ui.define([
305
323
  return null;
306
324
  };
307
325
 
326
+ /**
327
+ * Determines whether only the Shift key is pressed during the event.
328
+ * @param {jQuery.Event} oEvent Keyboard event.
329
+ * @private
330
+ * @returns {boolean} True if only the Shift key is pressed, false otherwise
331
+ */
332
+ MenuWrapper.prototype._isShiftKeyPressed = function(oEvent) {
333
+ return oEvent.shiftKey && !oEvent.metaKey && !oEvent.altKey && !oEvent.ctrlKey;
334
+ };
335
+
308
336
  /**
309
337
  * Adds, removes, toggles, or sets class name(s) in the internal _aStyleClasses array.
310
338
  * <b>Note: </b> Later these classes should be applied when menu item open its submenu popover.
@@ -372,11 +400,17 @@ sap.ui.define([
372
400
 
373
401
  if (oItem._getItemSelectionMode && oItem._getItemSelectionMode() !== ItemSelectionMode.None) {
374
402
  oItem.setSelected(!oItem.getSelected());
403
+ } else {
404
+ this._bPreventPopoverClose = false;
375
405
  }
376
406
 
377
407
  this.fireItemSelected({item: oItem});
378
408
  oItem.firePress({item: oItem});
379
- this.fireClosePopover({ bubbleToRoot: true, origin: oItem });
409
+
410
+ if (!this._bPreventPopoverClose) {
411
+ this.fireClosePopover({ bubbleToRoot: true, origin: oItem });
412
+ }
413
+ this._bPreventPopoverClose = false;
380
414
  }
381
415
  };
382
416
 
@@ -5,8 +5,10 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
+ 'sap/ui/core/library',
8
9
  'sap/ui/core/ControlBehavior'
9
10
  ], function(
11
+ coreLibrary,
10
12
  ControlBehavior
11
13
  ) {
12
14
  "use strict";
@@ -19,6 +21,9 @@ sap.ui.define([
19
21
  apiVersion: 2
20
22
  };
21
23
 
24
+ // shortcut for sap.ui.core.ItemSelectionMode
25
+ const ItemSelectionMode = coreLibrary.ItemSelectionMode;
26
+
22
27
  /**
23
28
  * Renders the HTML output for the specified control, using the provided
24
29
  * {@link sap.ui.core.RenderManager}.
@@ -61,7 +66,8 @@ sap.ui.define([
61
66
  let sCurrentGroup = null,
62
67
  sItemGroup = null,
63
68
  bGroupOpened = false,
64
- bGroupEndSeparatorRendered = false;
69
+ bGroupEndSeparatorRendered = false,
70
+ sAriaLabel;
65
71
 
66
72
  aItems.forEach((oItem, iIndex) => {
67
73
  sItemGroup = oItem.getAssociation("_group");
@@ -80,8 +86,22 @@ sap.ui.define([
80
86
  }
81
87
 
82
88
  if (sItemGroup && !bGroupOpened) {
89
+ switch (oItem._itemSelectionMode) {
90
+ case ItemSelectionMode.None:
91
+ sAriaLabel = oMenuWrapper._oRb.getText("MENU_ITEM_GROUP_NONE_ACCESSIBLE_NAME");
92
+ break;
93
+ case ItemSelectionMode.SingleSelect:
94
+ sAriaLabel = oMenuWrapper._oRb.getText("MENU_ITEM_GROUP_SINGLE_ACCESSIBLE_NAME");
95
+ break;
96
+ case ItemSelectionMode.MultiSelect:
97
+ sAriaLabel = oMenuWrapper._oRb.getText("MENU_ITEM_GROUP_MULTI_ACCESSIBLE_NAME");
98
+ break;
99
+ default:
100
+ sAriaLabel = "";
101
+ }
83
102
  oRm.openStart("div");
84
103
  oRm.attr("role", "group");
104
+ sAriaLabel && oRm.attr("aria-label", sAriaLabel);
85
105
  oRm.openEnd();
86
106
  bGroupOpened = true;
87
107
  }
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @extends sap.ui.core.Item
35
35
  * @author SAP SE
36
- * @version 1.138.0
36
+ * @version 1.139.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.138.0
37
+ * @version 1.139.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.138.0
77
+ * @version 1.139.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.138.0
100
+ * @version 1.139.0
101
101
  *
102
102
  * @constructor
103
103
  * @public
@@ -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.138.0
22
+ * @version 1.139.0
23
23
  *
24
24
  * @constructor
25
25
  * @public
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @extends sap.ui.core.Control
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.138.0
87
+ * @version 1.139.0
88
88
  *
89
89
  * @constructor
90
90
  * @public
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  * Note that the width can be customized up to a maximum of 15rem.
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.138.0
79
+ * @version 1.139.0
80
80
  *
81
81
  * @namespace
82
82
  * @public
@@ -119,7 +119,7 @@ sap.ui.define([
119
119
  * The responsiveness of the <code>MessageView</code> is determined by the container in which it is embedded. For that reason the control could not be visualized if the
120
120
  * container’s sizes are not defined.
121
121
  * @author SAP SE
122
- * @version 1.138.0
122
+ * @version 1.139.0
123
123
  *
124
124
  * @extends sap.ui.core.Control
125
125
  * @constructor
@@ -145,7 +145,7 @@ function(
145
145
  * </ul>
146
146
  *
147
147
  * @author SAP SE
148
- * @version 1.138.0
148
+ * @version 1.139.0
149
149
  *
150
150
  * @constructor
151
151
  * @extends sap.m.ComboBoxBase
@@ -648,7 +648,7 @@ function(
648
648
 
649
649
  //Open popover with items if in readonly mode and has Nmore indicator
650
650
  if (!this.getEditable() && oTokenizer.getHiddenTokensCount() && oEvent.target === this.getFocusDomRef()) {
651
- oTokenizer._togglePopup(oTokenizer.getTokensPopup(), this.getDomRef());
651
+ oTokenizer._togglePopup();
652
652
  }
653
653
 
654
654
  };
@@ -1249,11 +1249,8 @@ function(
1249
1249
  this.setProperty("hasSelection", !!this.getSelectedItems().length);
1250
1250
 
1251
1251
  if (!this._bAlreadySelected) {
1252
- this._sInitialValueStateText = this.getValueStateText();
1253
- }
1254
-
1255
- if (this.getValueState() !== ValueState.Error) {
1256
1252
  this._sInitialValueState = this.getValueState();
1253
+ this._sInitialValueStateText = this.getValueStateText();
1257
1254
  }
1258
1255
 
1259
1256
  if (this.getShowClearIcon()) {
@@ -2084,7 +2081,7 @@ function(
2084
2081
  oPicker = this.getPicker();
2085
2082
  oPicker.open();
2086
2083
  } else {
2087
- oTokenizer._togglePopup(oTokenizer.getTokensPopup(), this.getDomRef());
2084
+ oTokenizer._togglePopup();
2088
2085
  }
2089
2086
 
2090
2087
  if (this.isPickerDialog()) {
@@ -2122,7 +2119,6 @@ function(
2122
2119
  var oTokenizer = new Tokenizer({
2123
2120
  renderMode: TokenizerRenderMode.Narrow
2124
2121
  }).attachTokenDelete(this._handleTokenDelete, this);
2125
-
2126
2122
  oTokenizer.getTokensPopup()
2127
2123
  .attachAfterOpen(function () {
2128
2124
  if (oTokenizer.hasOneTruncatedToken()) {
@@ -2261,6 +2257,7 @@ function(
2261
2257
  */
2262
2258
  MultiComboBox.prototype.onAfterRendering = function() {
2263
2259
  var oTokenizer = this.getAggregation("tokenizer");
2260
+ var oTokenizerOpener = Element.getElementById(oTokenizer.getProperty("opener"))?.getDomRef();
2264
2261
  var oTokenToFocus;
2265
2262
 
2266
2263
  ComboBoxBase.prototype.onAfterRendering.apply(this, arguments);
@@ -2279,6 +2276,10 @@ function(
2279
2276
 
2280
2277
  this.bShouldRestoreTokenizerFocus = false;
2281
2278
  }
2279
+
2280
+ if (oTokenizerOpener !== this.getDomRef()) {
2281
+ oTokenizer.setProperty("opener", this.getId(), true);
2282
+ }
2282
2283
  };
2283
2284
 
2284
2285
  /**
@@ -17,7 +17,7 @@ sap.ui.define(["sap/ui/core/Lib", "sap/ui/core/XMLComposite", "./library", "sap/
17
17
  * @implements sap.ui.core.IFormContent
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.138.0
20
+ * @version 1.139.0
21
21
  * @experimental since 1.52
22
22
  * @since 1.52.0
23
23
  * @alias sap.m.MultiEditField
@@ -112,7 +112,7 @@ function(
112
112
  * @extends sap.m.Input
113
113
  *
114
114
  * @author SAP SE
115
- * @version 1.138.0
115
+ * @version 1.139.0
116
116
  *
117
117
  * @constructor
118
118
  * @public
@@ -451,10 +451,16 @@ function(
451
451
  */
452
452
  MultiInput.prototype.onAfterRendering = function () {
453
453
  var oTokenizer = this.getAggregation("tokenizer");
454
+ var oTokenizerOpener = Element.getElementById(oTokenizer.getProperty("opener"))?.getDomRef();
455
+
454
456
  this._bTokenIsValidated = false;
455
457
 
456
458
  oTokenizer.setMaxWidth(this._calculateSpaceForTokenizer());
457
459
 
460
+ if (oTokenizerOpener !== this.getDomRef()) {
461
+ oTokenizer.setProperty("opener", this.getId(), true);
462
+ }
463
+
458
464
  this._registerResizeHandler();
459
465
 
460
466
  Input.prototype.onAfterRendering.apply(this, arguments);
@@ -939,7 +945,7 @@ function(
939
945
 
940
946
  // ctrl/meta + I -> Open suggestions
941
947
  if ((oEvent.ctrlKey || oEvent.metaKey) && oEvent.which === KeyCodes.I && oTokenizer.getTokens().length) {
942
- oTokenizer._togglePopup(oTokenizer.getTokensPopup(), this.getDomRef());
948
+ oTokenizer._togglePopup();
943
949
  oEvent.preventDefault();
944
950
  }
945
951
  };
@@ -1140,7 +1146,7 @@ function(
1140
1146
  if (!this.getEditable()
1141
1147
  && oTokenizer.getHiddenTokensCount()
1142
1148
  && oEvent.target === this.getFocusDomRef()) {
1143
- oTokenizer._togglePopup(oTokenizer.getTokensPopup(), this.getDomRef());
1149
+ oTokenizer._togglePopup();
1144
1150
  }
1145
1151
 
1146
1152
  if (!containsOrEquals(oTokenizer.getFocusDomRef(), document.activeElement)) {
@@ -1201,7 +1207,7 @@ function(
1201
1207
  }
1202
1208
 
1203
1209
  if (!bFocusIsInSelectedItemPopup && !bNewFocusIsInTokenizer) {
1204
- oSelectedItemsPopup.isOpen() && !this.isMobileDevice() && oTokenizer._togglePopup(oSelectedItemsPopup, this.getDomRef());
1210
+ oSelectedItemsPopup.isOpen() && !this.isMobileDevice() && oTokenizer._togglePopup();
1205
1211
  oTokenizer.setRenderMode(TokenizerRenderMode.Narrow);
1206
1212
  }
1207
1213
 
@@ -1231,7 +1237,10 @@ function(
1231
1237
  return;
1232
1238
  }
1233
1239
 
1234
- Input.prototype.ontap.apply(this, arguments);
1240
+ if (!bNMoreLabelClick) {
1241
+ Input.prototype.ontap.apply(this, arguments);
1242
+ this._getSuggestionsPopover()?.getInput()?.setValueHelpIconSrc("sap-icon://search");
1243
+ }
1235
1244
  };
1236
1245
 
1237
1246
  /**
@@ -1280,7 +1289,7 @@ function(
1280
1289
  this.selectText(0, 0);
1281
1290
 
1282
1291
  if (oPopup.isOpen()) {
1283
- oTokenizer._togglePopup(oPopup, this.getDomRef());
1292
+ oTokenizer._togglePopup();
1284
1293
  }
1285
1294
 
1286
1295
  Input.prototype.onsapescape.apply(this, arguments);
@@ -1801,7 +1810,7 @@ function(
1801
1810
  const oTokenizer = this.getAggregation("tokenizer");
1802
1811
 
1803
1812
  oTokenizer._bIsOpenedByNMoreIndicator = true;
1804
- oTokenizer._togglePopup(oTokenizer.getTokensPopup(), this.getDomRef());
1813
+ oTokenizer._togglePopup();
1805
1814
  };
1806
1815
 
1807
1816
  /**
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  * @extends sap.ui.core.Control
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.138.0
51
+ * @version 1.139.0
52
52
  *
53
53
  * @constructor
54
54
  * @public
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.core.Control
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.138.0
28
+ * @version 1.139.0
29
29
  * @since 1.34
30
30
  *
31
31
  * @public
@@ -27,7 +27,7 @@ function(
27
27
  * @extends sap.m.ListBase
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.138.0
30
+ * @version 1.139.0
31
31
  *
32
32
  * @constructor
33
33
  * @public