@openui5/sap.m 1.93.3 → 1.96.1

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 (483) hide show
  1. package/.reuse/dep5 +6 -11
  2. package/THIRDPARTY.txt +10 -16
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +5 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -4
  12. package/src/sap/m/Bar.js +13 -7
  13. package/src/sap/m/Breadcrumbs.js +2 -2
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +34 -1
  17. package/src/sap/m/Carousel.js +11 -3
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +1 -1
  20. package/src/sap/m/CheckBoxRenderer.js +12 -3
  21. package/src/sap/m/ColorPalette.js +7 -11
  22. package/src/sap/m/ColorPalettePopover.js +1 -6
  23. package/src/sap/m/Column.js +6 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +1 -1
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +5 -2
  33. package/src/sap/m/ComboBoxRenderer.js +25 -9
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/CustomDynamicDateOption.js +14 -2
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +27 -10
  40. package/src/sap/m/DatePickerRenderer.js +1 -1
  41. package/src/sap/m/DateRangeSelection.js +6 -9
  42. package/src/sap/m/DateTimeField.js +1 -1
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +6 -9
  45. package/src/sap/m/Dialog.js +44 -127
  46. package/src/sap/m/DialogRenderer.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 +15 -6
  50. package/src/sap/m/DynamicDateOption.js +58 -17
  51. package/src/sap/m/DynamicDateRange.js +47 -10
  52. package/src/sap/m/DynamicDateUtil.js +6 -3
  53. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  54. package/src/sap/m/ExpandableText.js +1 -1
  55. package/src/sap/m/FacetFilter.js +47 -16
  56. package/src/sap/m/FacetFilterItem.js +1 -1
  57. package/src/sap/m/FacetFilterList.js +1 -1
  58. package/src/sap/m/FeedContent.js +1 -1
  59. package/src/sap/m/FeedInput.js +1 -1
  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 +215 -52
  68. package/src/sap/m/GenericTileRenderer.js +218 -83
  69. package/src/sap/m/GroupHeaderListItem.js +1 -1
  70. package/src/sap/m/GrowingList.js +1 -1
  71. package/src/sap/m/HBox.js +1 -1
  72. package/src/sap/m/HeaderContainer.js +53 -1
  73. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  74. package/src/sap/m/IconTabBar.js +8 -1
  75. package/src/sap/m/IconTabBarSelectList.js +1 -1
  76. package/src/sap/m/IconTabFilter.js +8 -6
  77. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  78. package/src/sap/m/IconTabHeader.js +16 -4
  79. package/src/sap/m/IconTabSeparator.js +1 -1
  80. package/src/sap/m/Image.js +1 -1
  81. package/src/sap/m/ImageContent.js +1 -1
  82. package/src/sap/m/Input.js +124 -28
  83. package/src/sap/m/InputBase.js +13 -6
  84. package/src/sap/m/InputListItem.js +1 -1
  85. package/src/sap/m/Label.js +1 -1
  86. package/src/sap/m/LightBox.js +2 -2
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +1 -1
  89. package/src/sap/m/List.js +1 -1
  90. package/src/sap/m/ListBase.js +12 -5
  91. package/src/sap/m/ListItemBase.js +16 -16
  92. package/src/sap/m/MaskEnabler.js +106 -4
  93. package/src/sap/m/MaskInput.js +19 -4
  94. package/src/sap/m/MaskInputRule.js +1 -1
  95. package/src/sap/m/Menu.js +8 -6
  96. package/src/sap/m/MenuButton.js +20 -3
  97. package/src/sap/m/MenuButtonRenderer.js +1 -0
  98. package/src/sap/m/MenuItem.js +1 -1
  99. package/src/sap/m/MenuListItem.js +1 -1
  100. package/src/sap/m/MessageBox.js +1 -1
  101. package/src/sap/m/MessageItem.js +16 -1
  102. package/src/sap/m/MessageListItem.js +1 -1
  103. package/src/sap/m/MessagePage.js +1 -1
  104. package/src/sap/m/MessagePopover.js +1 -1
  105. package/src/sap/m/MessagePopoverItem.js +1 -1
  106. package/src/sap/m/MessageStrip.js +7 -3
  107. package/src/sap/m/MessageStripRenderer.js +2 -2
  108. package/src/sap/m/MessageToast.js +1 -1
  109. package/src/sap/m/MessageView.js +27 -16
  110. package/src/sap/m/MultiComboBox.js +328 -113
  111. package/src/sap/m/MultiEditField.js +1 -1
  112. package/src/sap/m/MultiInput.js +55 -6
  113. package/src/sap/m/NavContainer.js +24 -7
  114. package/src/sap/m/NewsContent.js +19 -10
  115. package/src/sap/m/NewsContentRenderer.js +1 -2
  116. package/src/sap/m/NotificationList.js +1 -1
  117. package/src/sap/m/NotificationListBase.js +1 -1
  118. package/src/sap/m/NotificationListGroup.js +1 -1
  119. package/src/sap/m/NotificationListItem.js +1 -1
  120. package/src/sap/m/NumericContent.js +1 -1
  121. package/src/sap/m/NumericContentRenderer.js +34 -17
  122. package/src/sap/m/ObjectAttribute.js +46 -5
  123. package/src/sap/m/ObjectHeader.js +1 -1
  124. package/src/sap/m/ObjectHeaderRenderer.js +6 -7
  125. package/src/sap/m/ObjectIdentifier.js +1 -1
  126. package/src/sap/m/ObjectListItem.js +1 -1
  127. package/src/sap/m/ObjectMarker.js +1 -1
  128. package/src/sap/m/ObjectNumber.js +13 -1
  129. package/src/sap/m/ObjectStatus.js +1 -1
  130. package/src/sap/m/ObjectStatusRenderer.js +4 -1
  131. package/src/sap/m/OverflowToolbar.js +1 -1
  132. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  133. package/src/sap/m/OverflowToolbarButton.js +4 -2
  134. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  135. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  136. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  137. package/src/sap/m/P13nColumnsItem.js +1 -1
  138. package/src/sap/m/P13nColumnsPanel.js +3 -3
  139. package/src/sap/m/P13nConditionPanel.js +23 -53
  140. package/src/sap/m/P13nDialog.js +1 -1
  141. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  142. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  143. package/src/sap/m/P13nFilterItem.js +1 -1
  144. package/src/sap/m/P13nFilterPanel.js +1 -3
  145. package/src/sap/m/P13nGroupItem.js +1 -1
  146. package/src/sap/m/P13nGroupPanel.js +1 -3
  147. package/src/sap/m/P13nItem.js +1 -1
  148. package/src/sap/m/P13nPanel.js +1 -1
  149. package/src/sap/m/P13nSelectionItem.js +1 -1
  150. package/src/sap/m/P13nSelectionPanel.js +1 -1
  151. package/src/sap/m/P13nSortItem.js +1 -1
  152. package/src/sap/m/P13nSortPanel.js +1 -3
  153. package/src/sap/m/PDFViewer.js +14 -5
  154. package/src/sap/m/Page.js +1 -1
  155. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  156. package/src/sap/m/PagingButton.js +1 -1
  157. package/src/sap/m/Panel.js +1 -1
  158. package/src/sap/m/PlanningCalendar.js +139 -41
  159. package/src/sap/m/PlanningCalendarHeader.js +1 -6
  160. package/src/sap/m/PlanningCalendarLegend.js +1 -6
  161. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -5
  162. package/src/sap/m/PlanningCalendarRow.js +1 -1
  163. package/src/sap/m/PlanningCalendarView.js +1 -6
  164. package/src/sap/m/Popover.js +5 -5
  165. package/src/sap/m/PopoverRenderer.js +3 -2
  166. package/src/sap/m/ProgressIndicator.js +1 -1
  167. package/src/sap/m/PullToRefresh.js +1 -1
  168. package/src/sap/m/QuickView.js +1 -1
  169. package/src/sap/m/QuickViewBase.js +1 -1
  170. package/src/sap/m/QuickViewCard.js +1 -1
  171. package/src/sap/m/QuickViewGroup.js +1 -1
  172. package/src/sap/m/QuickViewGroupElement.js +1 -1
  173. package/src/sap/m/QuickViewPage.js +1 -1
  174. package/src/sap/m/RadioButton.js +1 -1
  175. package/src/sap/m/RadioButtonGroup.js +1 -1
  176. package/src/sap/m/RangeSlider.js +1 -1
  177. package/src/sap/m/RatingIndicator.js +10 -8
  178. package/src/sap/m/ResponsivePopover.js +1 -1
  179. package/src/sap/m/ResponsiveScale.js +1 -1
  180. package/src/sap/m/ScrollBar.js +1 -1
  181. package/src/sap/m/ScrollContainer.js +1 -1
  182. package/src/sap/m/SearchField.js +6 -34
  183. package/src/sap/m/SearchFieldRenderer.js +16 -12
  184. package/src/sap/m/SegmentedButton.js +12 -17
  185. package/src/sap/m/SegmentedButtonItem.js +1 -1
  186. package/src/sap/m/Select.js +18 -8
  187. package/src/sap/m/SelectDialog.js +1 -1
  188. package/src/sap/m/SelectDialogBase.js +1 -1
  189. package/src/sap/m/SelectList.js +1 -1
  190. package/src/sap/m/SelectRenderer.js +6 -1
  191. package/src/sap/m/SelectionDetails.js +7 -9
  192. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  193. package/src/sap/m/SelectionDetailsItem.js +8 -4
  194. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  195. package/src/sap/m/Shell.js +9 -17
  196. package/src/sap/m/SimpleFixFlex.js +1 -1
  197. package/src/sap/m/SinglePlanningCalendar.js +7 -10
  198. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarGrid.js +15 -13
  200. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +17 -7
  201. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -6
  202. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +4 -6
  203. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -6
  204. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  205. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -6
  206. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -6
  207. package/src/sap/m/SlideTile.js +31 -3
  208. package/src/sap/m/SlideTileRenderer.js +9 -0
  209. package/src/sap/m/Slider.js +1 -1
  210. package/src/sap/m/SliderTooltip.js +1 -1
  211. package/src/sap/m/SliderTooltipBase.js +1 -1
  212. package/src/sap/m/SliderTooltipContainer.js +1 -1
  213. package/src/sap/m/SplitApp.js +1 -1
  214. package/src/sap/m/SplitButton.js +3 -7
  215. package/src/sap/m/SplitContainer.js +13 -8
  216. package/src/sap/m/StandardDynamicDateOption.js +50 -12
  217. package/src/sap/m/StandardListItem.js +69 -26
  218. package/src/sap/m/StandardListItemRenderer.js +21 -9
  219. package/src/sap/m/StandardTile.js +1 -1
  220. package/src/sap/m/StandardTreeItem.js +1 -1
  221. package/src/sap/m/StepInput.js +30 -14
  222. package/src/sap/m/Suggest.js +25 -25
  223. package/src/sap/m/SuggestionItem.js +1 -7
  224. package/src/sap/m/SuggestionsPopover.js +1 -1
  225. package/src/sap/m/Switch.js +2 -2
  226. package/src/sap/m/TabContainer.js +1 -1
  227. package/src/sap/m/TabContainerItem.js +1 -1
  228. package/src/sap/m/TabStrip.js +1 -1
  229. package/src/sap/m/TabStripItem.js +1 -1
  230. package/src/sap/m/Table.js +2 -4
  231. package/src/sap/m/TablePersoController.js +1 -1
  232. package/src/sap/m/TablePersoDialog.js +1 -1
  233. package/src/sap/m/TablePersoProvider.js +1 -1
  234. package/src/sap/m/TableRenderer.js +3 -3
  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 +22 -4
  241. package/src/sap/m/TileContentRenderer.js +73 -5
  242. package/src/sap/m/TimePicker.js +4 -3
  243. package/src/sap/m/TimePickerClock.js +2 -2
  244. package/src/sap/m/TimePickerClocks.js +2 -1
  245. package/src/sap/m/TimePickerInputs.js +3 -3
  246. package/src/sap/m/TimePickerInternals.js +1 -1
  247. package/src/sap/m/TimePickerSlider.js +2 -2
  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 +45 -3
  254. package/src/sap/m/TokenizerRenderer.js +5 -0
  255. package/src/sap/m/Toolbar.js +1 -1
  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 +2 -7
  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 +2 -2
  274. package/src/sap/m/WheelSliderContainer.js +1 -1
  275. package/src/sap/m/Wizard.js +2 -1
  276. package/src/sap/m/WizardProgressNavigator.js +1 -1
  277. package/src/sap/m/WizardProgressNavigatorRenderer.js +3 -2
  278. package/src/sap/m/WizardStep.js +1 -1
  279. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  280. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  281. package/src/sap/m/changeHandler/CombineButtons.js +16 -17
  282. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  283. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +86 -0
  284. package/src/sap/m/changeHandler/SplitMenuButton.js +12 -6
  285. package/src/sap/m/delegate/DateNavigation.js +4 -5
  286. package/src/sap/m/designtime/IconTabBar.designtime.js +85 -2
  287. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  288. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  289. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +16 -12
  290. package/src/sap/m/designtime/messagebundle.properties +9 -0
  291. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  292. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  293. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  294. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  295. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  296. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  297. package/src/sap/m/designtime/messagebundle_de.properties +8 -2
  298. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  299. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  300. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_en_US_saprigi.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  306. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  333. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  334. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  335. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  336. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  337. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  338. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  339. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  340. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  341. package/src/sap/m/inputUtils/ListHelpers.js +16 -3
  342. package/src/sap/m/library.js +60 -34
  343. package/src/sap/m/messagebundle.properties +59 -7
  344. package/src/sap/m/messagebundle_ar.properties +13 -5
  345. package/src/sap/m/messagebundle_bg.properties +13 -5
  346. package/src/sap/m/messagebundle_ca.properties +13 -5
  347. package/src/sap/m/messagebundle_cs.properties +24 -16
  348. package/src/sap/m/messagebundle_cy.properties +13 -5
  349. package/src/sap/m/messagebundle_da.properties +14 -6
  350. package/src/sap/m/messagebundle_de.properties +14 -6
  351. package/src/sap/m/messagebundle_el.properties +14 -6
  352. package/src/sap/m/messagebundle_en.properties +10 -2
  353. package/src/sap/m/messagebundle_en_GB.properties +10 -2
  354. package/src/sap/m/messagebundle_en_US_sappsd.properties +26 -3
  355. package/src/sap/m/messagebundle_en_US_saprigi.properties +39 -3
  356. package/src/sap/m/messagebundle_en_US_saptrc.properties +14 -6
  357. package/src/sap/m/messagebundle_es.properties +13 -5
  358. package/src/sap/m/messagebundle_es_MX.properties +16 -8
  359. package/src/sap/m/messagebundle_et.properties +13 -5
  360. package/src/sap/m/messagebundle_fi.properties +13 -5
  361. package/src/sap/m/messagebundle_fr.properties +26 -18
  362. package/src/sap/m/messagebundle_fr_CA.properties +14 -6
  363. package/src/sap/m/messagebundle_hi.properties +13 -5
  364. package/src/sap/m/messagebundle_hr.properties +13 -5
  365. package/src/sap/m/messagebundle_hu.properties +13 -5
  366. package/src/sap/m/messagebundle_id.properties +15 -7
  367. package/src/sap/m/messagebundle_it.properties +19 -11
  368. package/src/sap/m/messagebundle_iw.properties +13 -5
  369. package/src/sap/m/messagebundle_ja.properties +13 -5
  370. package/src/sap/m/messagebundle_kk.properties +13 -5
  371. package/src/sap/m/messagebundle_ko.properties +14 -6
  372. package/src/sap/m/messagebundle_lt.properties +13 -5
  373. package/src/sap/m/messagebundle_lv.properties +13 -5
  374. package/src/sap/m/messagebundle_ms.properties +14 -6
  375. package/src/sap/m/messagebundle_nl.properties +15 -7
  376. package/src/sap/m/messagebundle_no.properties +25 -17
  377. package/src/sap/m/messagebundle_pl.properties +17 -9
  378. package/src/sap/m/messagebundle_pt.properties +16 -8
  379. package/src/sap/m/messagebundle_pt_PT.properties +13 -5
  380. package/src/sap/m/messagebundle_ro.properties +18 -10
  381. package/src/sap/m/messagebundle_ru.properties +14 -6
  382. package/src/sap/m/messagebundle_sh.properties +14 -6
  383. package/src/sap/m/messagebundle_sk.properties +13 -5
  384. package/src/sap/m/messagebundle_sl.properties +13 -5
  385. package/src/sap/m/messagebundle_sv.properties +13 -5
  386. package/src/sap/m/messagebundle_th.properties +13 -5
  387. package/src/sap/m/messagebundle_tr.properties +13 -5
  388. package/src/sap/m/messagebundle_uk.properties +16 -8
  389. package/src/sap/m/messagebundle_vi.properties +14 -6
  390. package/src/sap/m/messagebundle_zh_CN.properties +13 -5
  391. package/src/sap/m/messagebundle_zh_TW.properties +13 -5
  392. package/src/sap/m/p13n/AbstractContainer.js +243 -0
  393. package/src/sap/m/p13n/AbstractContainerItem.js +94 -0
  394. package/src/sap/m/p13n/BasePanel.js +643 -0
  395. package/src/sap/m/p13n/Container.js +239 -0
  396. package/src/sap/m/p13n/GroupPanel.js +119 -0
  397. package/src/sap/m/p13n/QueryPanel.js +312 -0
  398. package/src/sap/m/p13n/SelectionPanel.js +403 -0
  399. package/src/sap/m/p13n/SortPanel.js +139 -0
  400. package/src/sap/m/plugins/ColumnResizer.js +23 -2
  401. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  402. package/src/sap/m/plugins/PasteProvider.js +9 -1
  403. package/src/sap/m/plugins/PluginBase.js +1 -1
  404. package/src/sap/m/routing/TargetHandler.js +24 -22
  405. package/src/sap/m/routing/async/Target.js +3 -2
  406. package/src/sap/m/semantic/AddAction.js +1 -1
  407. package/src/sap/m/semantic/CancelAction.js +1 -1
  408. package/src/sap/m/semantic/DeleteAction.js +1 -1
  409. package/src/sap/m/semantic/DetailPage.js +1 -1
  410. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  411. package/src/sap/m/semantic/EditAction.js +1 -1
  412. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  413. package/src/sap/m/semantic/FilterAction.js +1 -1
  414. package/src/sap/m/semantic/FilterSelect.js +1 -1
  415. package/src/sap/m/semantic/FlagAction.js +1 -1
  416. package/src/sap/m/semantic/ForwardAction.js +1 -1
  417. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  418. package/src/sap/m/semantic/GroupAction.js +1 -1
  419. package/src/sap/m/semantic/GroupSelect.js +1 -1
  420. package/src/sap/m/semantic/MainAction.js +1 -1
  421. package/src/sap/m/semantic/MasterPage.js +1 -1
  422. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  423. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  424. package/src/sap/m/semantic/NegativeAction.js +1 -1
  425. package/src/sap/m/semantic/OpenInAction.js +1 -1
  426. package/src/sap/m/semantic/PositiveAction.js +1 -1
  427. package/src/sap/m/semantic/PrintAction.js +1 -1
  428. package/src/sap/m/semantic/SaveAction.js +1 -1
  429. package/src/sap/m/semantic/Segment.js +1 -1
  430. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  431. package/src/sap/m/semantic/SemanticButton.js +1 -1
  432. package/src/sap/m/semantic/SemanticConfiguration.js +3 -5
  433. package/src/sap/m/semantic/SemanticControl.js +1 -1
  434. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  435. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +2 -2
  436. package/src/sap/m/semantic/SemanticPage.js +1 -1
  437. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  438. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  439. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  440. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  441. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  442. package/src/sap/m/semantic/ShareMenu.js +1 -1
  443. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  444. package/src/sap/m/semantic/SortAction.js +1 -1
  445. package/src/sap/m/semantic/SortSelect.js +1 -1
  446. package/src/sap/m/table/Util.js +192 -0
  447. package/src/sap/m/themes/base/AbstractContainer.less +17 -0
  448. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  449. package/src/sap/m/themes/base/Dialog.less +11 -28
  450. package/src/sap/m/themes/base/GenericTile.less +397 -18
  451. package/src/sap/m/themes/base/IconTabBar.less +5 -6
  452. package/src/sap/m/themes/base/Input.less +12 -0
  453. package/src/sap/m/themes/base/ListBase.less +7 -5
  454. package/src/sap/m/themes/base/MessagePage.less +1 -7
  455. package/src/sap/m/themes/base/MessageView.less +4 -0
  456. package/src/sap/m/themes/base/MultiComboBox.less +17 -0
  457. package/src/sap/m/themes/base/NewsContent.less +19 -1
  458. package/src/sap/m/themes/base/NumericContent.less +87 -0
  459. package/src/sap/m/themes/base/ObjectMarker.less +3 -0
  460. package/src/sap/m/themes/base/ObjectNumber.less +10 -2
  461. package/src/sap/m/themes/base/ObjectStatus.less +14 -0
  462. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +0 -6
  463. package/src/sap/m/themes/base/P13nContainer.less +17 -0
  464. package/src/sap/m/themes/base/P13nDialog.less +4 -0
  465. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -2
  466. package/src/sap/m/themes/base/SlideTile.less +15 -0
  467. package/src/sap/m/themes/base/StandardListItem.less +5 -0
  468. package/src/sap/m/themes/base/Table.less +9 -19
  469. package/src/sap/m/themes/base/TextArea.less +1 -1
  470. package/src/sap/m/themes/base/TileContent.less +11 -0
  471. package/src/sap/m/themes/base/Token.less +0 -3
  472. package/src/sap/m/themes/base/Tokenizer.less +6 -0
  473. package/src/sap/m/themes/base/UploadSet.less +5 -0
  474. package/src/sap/m/themes/base/ViewSettingsDialog.less +28 -1
  475. package/src/sap/m/themes/base/library.source.less +4 -0
  476. package/src/sap/m/themes/base/p13n.Container.less +17 -0
  477. package/src/sap/m/themes/base/p13n.QueryPanel.less +7 -0
  478. package/src/sap/m/themes/base/p13n.SelectionPanel.less +32 -0
  479. package/src/sap/m/themes/sap_hcb/IconTabBar.less +3 -3
  480. package/src/sap/m/upload/UploadSet.js +48 -23
  481. package/src/sap/m/upload/UploadSetItem.js +9 -4
  482. package/ui5.yaml +4 -1
  483. package/src/sap/m/ios7.js +0 -199
@@ -9,13 +9,14 @@ sap.ui.define([
9
9
  './InputBase',
10
10
  'sap/ui/Device',
11
11
  'sap/ui/core/library',
12
+ 'sap/ui/core/IconPool',
12
13
  "sap/ui/events/KeyCodes",
13
14
  "sap/base/Log",
14
15
  "sap/ui/thirdparty/jquery",
15
16
  "sap/m/MaskInputRule",
16
17
  // jQuery Plugin "cursorPos"
17
18
  "sap/ui/dom/jquery/cursorPos"
18
- ], function(Control, InputBase, Device, coreLibrary, KeyCodes, Log, jQuery, MaskInputRule) {
19
+ ], function(Control, InputBase, Device, coreLibrary, IconPool, KeyCodes, Log, jQuery, MaskInputRule) {
19
20
  "use strict";
20
21
 
21
22
  // shortcut for sap.ui.core.TextDirection
@@ -25,7 +26,7 @@ sap.ui.define([
25
26
  * Applies mask support for input controls.
26
27
  * It should should be applied to the prototype of a <code>sap.m.InputBase</code>.
27
28
  *
28
- * @version 1.93.3
29
+ * @version 1.96.1
29
30
  * @private
30
31
  * @mixin
31
32
  * @alias sap.m.MaskEnabler
@@ -55,6 +56,8 @@ sap.ui.define([
55
56
  // Skips setup of mask variables on every iteration when initializing default rules
56
57
  this._bSkipSetupMaskVariables = null;
57
58
 
59
+ this._oRb = sap.ui.getCore().getLibraryResourceBundle("sap.m");
60
+
58
61
  this._setDefaultRules();
59
62
  this._setupMaskVariables();
60
63
  };
@@ -87,6 +90,8 @@ sap.ui.define([
87
90
  }
88
91
 
89
92
  InputBase.prototype.onBeforeRendering.apply(this, arguments);
93
+
94
+ this.getShowClearIcon && this.getShowClearIcon() && this._getClearIcon().setVisible(this.getProperty("effectiveShowClearIcon"));
90
95
  };
91
96
 
92
97
  /**
@@ -169,6 +174,10 @@ sap.ui.define([
169
174
  if (this._isMaskEnabled()) {
170
175
  this._keyPressHandler(oEvent);
171
176
  }
177
+
178
+ if (this.getDOMValue() !== "") {
179
+ this._setClearIconVisibility();
180
+ }
172
181
  };
173
182
 
174
183
  /**
@@ -180,8 +189,11 @@ sap.ui.define([
180
189
  var oKey = this._parseKeyBoardEvent(oEvent);
181
190
 
182
191
  InputBase.prototype.onkeydown.apply(this, arguments);
183
-
184
192
  this._keyDownHandler(oEvent, oKey);
193
+
194
+ if (this.getDOMValue() !== "") {
195
+ this._setClearIconVisibility();
196
+ }
185
197
  } else {
186
198
  var oKey = this._parseKeyBoardEvent(oEvent);
187
199
  if (oKey.bEnter) {
@@ -209,6 +221,92 @@ sap.ui.define([
209
221
  this.onsapfocusleave = function(oEvent) {
210
222
  };
211
223
 
224
+ /**
225
+ * Handle when escape is pressed.
226
+ *
227
+ * @param {jQuery.Event} oEvent The event object.
228
+ * @private
229
+ */
230
+ this.onsapescape = function(oEvent) {
231
+ if (this._oTempValue._aContent.join("") !== this._oTempValue._aInitial.join("")) {
232
+ InputBase.prototype.onsapescape.call(this, oEvent);
233
+ }
234
+ };
235
+
236
+ /**
237
+ * Sets the clear icon visibility depending on whether the input value is empty or not.
238
+ * @param {boolean} bShowClearIcon whether to force show/hide of the clear icon or not.
239
+ * @private
240
+ */
241
+ this._setClearIconVisibility = function(bShowClearIcon) {
242
+ var bEffectiveShowClearIcon = bShowClearIcon !== undefined ? bShowClearIcon : !this._isValueEmpty();
243
+ if (this.getShowClearIcon && this.getShowClearIcon()) {
244
+ this.setProperty("effectiveShowClearIcon", bEffectiveShowClearIcon);
245
+ this._getClearIcon().setVisible(this.getProperty("effectiveShowClearIcon"));
246
+ }
247
+ };
248
+
249
+ /**
250
+ * Lazy initialization of the clear icon.
251
+ * @returns {sap.ui.core.Icon} The created icon.
252
+ * @private
253
+ */
254
+ this._getClearIcon = function () {
255
+ if (this._oClearButton) {
256
+ return this._oClearButton;
257
+ }
258
+
259
+ this._oClearButton = this.addEndIcon({
260
+ src: IconPool.getIconURI("decline"),
261
+ noTabStop: true,
262
+ visible: false,
263
+ alt: this._oRb.getText("INPUT_CLEAR_ICON_ALT"),
264
+ useIconTooltip: false,
265
+ press: function () {
266
+ if (!this._isValueEmpty()) {
267
+ this.fireChange({
268
+ value: ""
269
+ });
270
+
271
+ this.setValue("");
272
+ this.setProperty("effectiveShowClearIcon", false);
273
+ this._getClearIcon().setVisible(false);
274
+
275
+ setTimeout(function() {
276
+ if (Device.system.desktop) {
277
+ this.focus();
278
+ }
279
+ }, 0);
280
+ }
281
+ }.bind(this)
282
+ });
283
+
284
+ return this._oClearButton;
285
+ };
286
+
287
+ /**
288
+ * Returns whether there is something entered in the field or not.
289
+ *
290
+ * @protected
291
+ * @returns {boolean} True if there are placeholder characters displayed, but nothing is entered.
292
+ */
293
+ this._isValueEmpty = function() {
294
+ var sValue = this.getDOMValue(),
295
+ sPlaceholder = this._oTempValue._aInitial.join('');
296
+
297
+ return sValue == sPlaceholder;
298
+ };
299
+
300
+ /**
301
+ * Gets the inner input DOM value.
302
+ *
303
+ * @protected
304
+ * @returns {string} The value of the input.
305
+ */
306
+ this.getDOMValue = function() {
307
+ return this._$input.val();
308
+ };
309
+
212
310
  /**
213
311
  * Setter for property <code>value</code>.
214
312
  *
@@ -232,6 +330,9 @@ sap.ui.define([
232
330
  }
233
331
  }
234
332
 
333
+ // show/hide the clear icon based on the new value (it is not yet set in the DOM, so the default check will not work)
334
+ this._setClearIconVisibility(sValue !== "");
335
+
235
336
  return this;
236
337
  };
237
338
 
@@ -951,7 +1052,6 @@ sap.ui.define([
951
1052
  this._applyAndUpdate(this._sOldInputValue);
952
1053
  this._positionCaret(true);
953
1054
  oEvent.preventDefault();
954
-
955
1055
  } else if (oKey.bEnter) {
956
1056
  this._inputCompletedHandler(oEvent);
957
1057
  } else if ((oKey.bCtrlKey && oKey.bInsert) ||
@@ -1166,6 +1266,8 @@ sap.ui.define([
1166
1266
  this._setCursorPosition(iEndSelectionIndex);
1167
1267
  }
1168
1268
  }.bind(this), iMinBrowserDelay);
1269
+
1270
+ this._setClearIconVisibility();
1169
1271
  };
1170
1272
 
1171
1273
  /**
@@ -21,7 +21,7 @@ sap.ui.define(['./InputBase', './MaskEnabler', './MaskInputRenderer'], function(
21
21
  *
22
22
  * @author SAP SE
23
23
  * @extends sap.m.InputBase
24
- * @version 1.93.3
24
+ * @version 1.96.1
25
25
  *
26
26
  * @constructor
27
27
  * @public
@@ -38,7 +38,7 @@ sap.ui.define(['./InputBase', './MaskEnabler', './MaskInputRenderer'], function(
38
38
  /**
39
39
  * Defines a placeholder symbol. Shown at the position where there is no user input yet.
40
40
  */
41
- placeholderSymbol: {type: "string", group: "Misc", defaultValue: "_"},
41
+ placeholderSymbol: { type: "string", group: "Misc", defaultValue: "_" },
42
42
 
43
43
  /**
44
44
  * Mask defined by its characters type (respectively, by its length).
@@ -50,14 +50,29 @@ sap.ui.define(['./InputBase', './MaskEnabler', './MaskInputRenderer'], function(
50
50
  * 3. You can use the special escape character '^' called "Caret" prepending a rule character to make it immutable.
51
51
  * Use the double escape '^^' if you want to make use of the escape character as an immutable one.
52
52
  */
53
- mask: {type: "string", group: "Misc", defaultValue: null}
53
+ mask: { type: "string", group: "Misc", defaultValue: null },
54
+
55
+ /**
56
+ * Specifies whether a clear icon is shown.
57
+ * Pressing the icon will clear input's value and fire the change event.
58
+ * @since 1.96
59
+ */
60
+ showClearIcon: { type: "boolean", defaultValue: false },
61
+
62
+ /**
63
+ * Specifies whether the clear icon should be shown/hidden on user interaction.
64
+ * @private
65
+ */
66
+ effectiveShowClearIcon: { type: "boolean", defaultValue: false, visibility: "hidden" }
67
+
54
68
  },
55
69
  aggregations: {
56
70
 
57
71
  /**
58
72
  A list of validation rules (one rule per mask character).
59
73
  */
60
- rules: {type: "sap.m.MaskInputRule", multiple: true, singularName: "rule"}
74
+ rules: { type: "sap.m.MaskInputRule", multiple: true, singularName: "rule" }
75
+
61
76
  },
62
77
  dnd: { draggable: false, droppable: true }
63
78
  }
@@ -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.93.3
23
+ * @version 1.96.1
24
24
  * @public
25
25
  * @constructor
26
26
  * @since 1.34.0
package/src/sap/m/Menu.js CHANGED
@@ -4,11 +4,6 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- // Ensure that sap.ui.unified is loaded before the module dependencies will be required.
8
- // Loading it synchronously is the only compatible option and doesn't harm when sap.ui.unified
9
- // already has been loaded asynchronously (e.g. via a dependency declared in the manifest)
10
- sap.ui.getCore().loadLibrary("sap.ui.unified");
11
-
12
7
  // Provides control sap.m.Menu.
13
8
  sap.ui.define([
14
9
  './library',
@@ -62,11 +57,18 @@ sap.ui.define([
62
57
  * @class
63
58
  * The <code>sap.m.Menu</code> control represents a hierarchical menu.
64
59
  * When opened on mobile devices it occupies the whole screen.
60
+ *
61
+ * <b>Note:</b> The application developer should add dependency to <code>sap.ui.unified</code> library
62
+ * on application level to ensure that the library is loaded before the module dependencies will be required.
63
+ * If the <code>sap.ui.unified</code> library is not loaded in advance, this
64
+ * could lead to CSP compliance issues and adds an additional waiting time.
65
+ * To prevent this, ensure that the <code>sap.ui.unified</code> library is loaded in advance.
66
+ *
65
67
  * @extends sap.ui.core.Control
66
68
  * @implements sap.ui.core.IContextMenu
67
69
  *
68
70
  * @author SAP SE
69
- * @version 1.93.3
71
+ * @version 1.96.1
70
72
  *
71
73
  * @constructor
72
74
  * @public
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  * @extends sap.ui.core.Control
59
59
  *
60
60
  * @author SAP SE
61
- * @version 1.93.3
61
+ * @version 1.96.1
62
62
  *
63
63
  * @constructor
64
64
  * @public
@@ -176,7 +176,15 @@ sap.ui.define([
176
176
  * unless <code>useDefaultActionOnly</code> is set to <code>false</code> and another action
177
177
  * from the menu has been selected previously.
178
178
  */
179
- defaultAction: {}
179
+ defaultAction: {},
180
+
181
+ /**
182
+ * Fired before menu opening when the <code>buttonMode</code> is set to <code>Split</code> and the user
183
+ * presses the arrow button.
184
+ *
185
+ * @since 1.94.0
186
+ */
187
+ beforeMenuOpen: {}
180
188
  },
181
189
  defaultAggregation : "menu",
182
190
  designtime: "sap/m/designtime/MenuButton.designtime",
@@ -246,6 +254,10 @@ sap.ui.define([
246
254
  if (this._needsWidth() && sap.ui.getCore().isThemeApplied() && this._getTextBtnContentDomRef() && this._getInitialTextBtnWidth() > 0) {
247
255
  this._getTextBtnContentDomRef().style.width = this._getInitialTextBtnWidth() + 'px';
248
256
  }
257
+ if (this._activeButton) {
258
+ this._activeButton.$().attr("aria-expanded", "false");
259
+ this._activeButton = null;
260
+ }
249
261
  };
250
262
 
251
263
  MenuButton.prototype.onThemeChanged = function(oEvent) {
@@ -387,6 +399,8 @@ sap.ui.define([
387
399
  minus2_left: "-2 0"
388
400
  };
389
401
 
402
+ this._isSplitButton() && this.fireBeforeMenuOpen();
403
+
390
404
  if (!oMenu) {
391
405
  return;
392
406
  }
@@ -397,11 +411,12 @@ sap.ui.define([
397
411
  return;
398
412
  }
399
413
 
400
-
401
414
  if (!oMenu.getTitle()) {
402
415
  oMenu.setTitle(this.getText());
403
416
  }
417
+
404
418
  var aParam = [this, bWithKeyboard];
419
+
405
420
  switch (this.getMenuPosition()) {
406
421
  case Dock.BeginTop:
407
422
  aParam.push(Dock.BeginBottom, Dock.BeginTop, oOffset.plus2_right);
@@ -487,6 +502,7 @@ sap.ui.define([
487
502
  }
488
503
 
489
504
  bOpeningMenuButton.$().removeAttr("aria-controls");
505
+ bOpeningMenuButton.$().attr("aria-expanded", "false");
490
506
  };
491
507
 
492
508
  MenuButton.prototype._menuItemSelected = function(oEvent) {
@@ -742,6 +758,7 @@ sap.ui.define([
742
758
 
743
759
  if (oMenu) {
744
760
  oOpeningMenuButton.$().attr("aria-controls", oMenu.getDomRefId());
761
+ oOpeningMenuButton.$().attr("aria-expanded", "true");
745
762
  }
746
763
  };
747
764
 
@@ -39,6 +39,7 @@ sap.ui.define([],
39
39
  oRm.openEnd();
40
40
  oMenuButton._ensureBackwardsReference();
41
41
  oRm.renderControl(oMenuButton._getButtonControl());
42
+ oMenuButton._activeButton = oMenuButton._isSplitButton() ? oMenuButton._getButtonControl()._getArrowButton() : oMenuButton._getButtonControl();
42
43
  oRm.close("div");
43
44
  };
44
45
 
@@ -23,7 +23,7 @@ sap.ui.define(['./library', 'sap/ui/core/Item', 'sap/ui/base/ManagedObjectObserv
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.93.3
26
+ * @version 1.96.1
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.m.ListItemBase
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.93.3
35
+ * @version 1.96.1
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -383,7 +383,7 @@ sap.ui.define([
383
383
  //covers JSON case
384
384
  //Using stringify() with "tab" as space argument and escaping the JSON to prevent binding
385
385
  mOptions.details = "<pre>" + JSON.stringify(mOptions.details, null, '\t')
386
- .replace(/{/gi, "\\{") + "</pre>";
386
+ .replace(/{/gi, "&#x007B;") + "</pre>";
387
387
  }
388
388
  // html text is set by purpose with setter. If is set in the constructor there are issues with binding
389
389
  oFT = new FormattedText().setVisible(false).setHtmlText(mOptions.details);
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  *
38
38
  * @extends sap.ui.core.Item
39
39
  * @author SAP SE
40
- * @version 1.93.3
40
+ * @version 1.96.1
41
41
  *
42
42
  * @constructor
43
43
  * @public
@@ -146,6 +146,21 @@ sap.ui.define([
146
146
  this._updatePropertiesFn = customFn;
147
147
  };
148
148
 
149
+ MessageItem.prototype.setDescription = function(sDescription) {
150
+ // Avoid showing result of '' + undefined
151
+ if (typeof sDescription === 'undefined') {
152
+ sDescription = '';
153
+ }
154
+
155
+ if (this.getMarkupDescription()) {
156
+ sDescription = sanitizeHTML(sDescription);
157
+ }
158
+
159
+ this.setProperty("description", sDescription, true);
160
+
161
+ return this;
162
+ };
163
+
149
164
  /**
150
165
  * Sets type of the MessageItem.
151
166
  * <b>Note:</b> if you set the type to None it will be handled and rendered as Information.
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.StandardListItem
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.93.3
33
+ * @version 1.96.1
34
34
  *
35
35
  * @constructor
36
36
  * @private
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  * @see {@link fiori:https://experience.sap.com/fiori-design-web/message-page/ Message Page}
70
70
  *
71
71
  * @extends sap.ui.core.Control
72
- * @version 1.93.3
72
+ * @version 1.96.1
73
73
  *
74
74
  * @constructor
75
75
  * @public
@@ -91,7 +91,7 @@ function(
91
91
  * @extends sap.ui.core.Control
92
92
  *
93
93
  * @author SAP SE
94
- * @version 1.93.3
94
+ * @version 1.96.1
95
95
  *
96
96
  * @constructor
97
97
  * @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.93.3
22
+ * @version 1.96.1
23
23
  *
24
24
  * @constructor
25
25
  * @public
@@ -83,7 +83,7 @@ sap.ui.define([
83
83
  * @extends sap.ui.core.Control
84
84
  *
85
85
  * @author SAP SE
86
- * @version 1.93.3
86
+ * @version 1.96.1
87
87
  *
88
88
  * @constructor
89
89
  * @public
@@ -249,8 +249,12 @@ sap.ui.define([
249
249
 
250
250
  MessageStrip.prototype.setAggregation = function (sName, oControl, bSupressInvalidate) {
251
251
  if (sName === "link" && oControl instanceof Link) {
252
- var sId = this.getId() + "-info" + " " + this.getId() + "-content";
253
- oControl.addAriaDescribedBy(sId);
252
+ var sId = this.getId() + "-info" + " " + this.getId() + "-content",
253
+ aAriaDescribedBy = oControl.getAriaDescribedBy();
254
+
255
+ if (!aAriaDescribedBy.includes(sId)) {
256
+ oControl.addAriaDescribedBy(sId);
257
+ }
254
258
  }
255
259
 
256
260
  Control.prototype.setAggregation.call(this, sName, oControl, bSupressInvalidate);
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(["./MessageStripUtilities"],
8
- function (MSUtils) {
7
+ sap.ui.define(["./MessageStripUtilities", "sap/ui/core/IconPool"],
8
+ function (MSUtils, IconPool) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * The message toast has the same behavior on all devices. However, you can adjust the width of the control, for example, for use on a desktop device.
71
71
  *
72
72
  * @author SAP SE
73
- * @version 1.93.3
73
+ * @version 1.96.1
74
74
  *
75
75
  * @namespace
76
76
  * @public
@@ -112,7 +112,7 @@ sap.ui.define([
112
112
  * 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
113
113
  * container’s sizes are not defined.
114
114
  * @author SAP SE
115
- * @version 1.93.3
115
+ * @version 1.96.1
116
116
  *
117
117
  * @extends sap.ui.core.Control
118
118
  * @constructor
@@ -601,13 +601,13 @@ sap.ui.define([
601
601
  var sCloseBtnDescr = this._oResourceBundle.getText("MESSAGEPOPOVER_CLOSE");
602
602
  var sCloseBtnDescrId = this.getId() + "-CloseBtnDescr";
603
603
  var oCloseBtnARIAHiddenDescr = new HTML(sCloseBtnDescrId, {
604
- content: "<span id=\"" + sCloseBtnDescrId + "\" style=\"display: none;\">" + sCloseBtnDescr + "</span>"
604
+ content: "<span id=\"" + sCloseBtnDescrId + "\" class=\"sapMMsgViewHiddenContainer\">" + sCloseBtnDescr + "</span>"
605
605
  });
606
606
 
607
607
  var sHeadingDescr = this._oResourceBundle.getText("MESSAGEPOPOVER_ARIA_HEADING");
608
608
  var sHeadingDescrId = this.getId() + "-HeadingDescr";
609
609
  var oHeadingARIAHiddenDescr = new HTML(sHeadingDescrId, {
610
- content: "<span id=\"" + sHeadingDescrId + "\" style=\"display: none;\" role=\"heading\">" + sHeadingDescr + "</span>"
610
+ content: "<span id=\"" + sHeadingDescrId + "\" class=\"sapMMsgViewHiddenContainer\" role=\"heading\">" + sHeadingDescr + "</span>"
611
611
  });
612
612
 
613
613
  this._oSegmentedButton = new SegmentedButton(this.getId() + "-segmented", {}).addStyleClass("sapMSegmentedButtonNoAutoWidth");
@@ -629,14 +629,14 @@ sap.ui.define([
629
629
  var sCloseBtnDescr = this._oResourceBundle.getText("MESSAGEPOPOVER_CLOSE");
630
630
  var sCloseBtnDescrId = this.getId() + "-CloseBtnDetDescr";
631
631
  var oCloseBtnARIAHiddenDescr = new HTML(sCloseBtnDescrId, {
632
- content: "<span id=\"" + sCloseBtnDescrId + "\" style=\"display: none;\">" + sCloseBtnDescr + "</span>"
632
+ content: "<span id=\"" + sCloseBtnDescrId + "\" class=\"sapMMsgViewHiddenContainer\">" + sCloseBtnDescr + "</span>"
633
633
  });
634
634
 
635
635
  var sBackBtnTooltipDescr = this._oResourceBundle.getText("MESSAGEPOPOVER_ARIA_BACK_BUTTON_TOOLTIP");
636
636
  var sBackBtnDescr = this._oResourceBundle.getText("MESSAGEPOPOVER_ARIA_BACK_BUTTON");
637
637
  var sBackBtnDescrId = this.getId() + "-BackBtnDetDescr";
638
638
  var oBackBtnARIAHiddenDescr = new HTML(sBackBtnDescrId, {
639
- content: "<span id=\"" + sBackBtnDescrId + "\" style=\"display: none;\">" + sBackBtnDescr + "</span>"
639
+ content: "<span id=\"" + sBackBtnDescrId + "\" class=\"sapMMsgViewHiddenContainer\">" + sBackBtnDescr + "</span>"
640
640
  });
641
641
 
642
642
  this._oBackButton = new Button({
@@ -979,22 +979,15 @@ sap.ui.define([
979
979
  */
980
980
  MessageView.prototype._setDescription = function (oMessageItem) {
981
981
  var oLink = oMessageItem.getLink();
982
- var sDescription = oMessageItem.getDescription();
983
-
984
- if (oMessageItem.getMarkupDescription()) {
985
- var tagPolicy = this._getTagPolicy();
986
- /*global html*/
987
- sDescription = html.sanitizeWithPolicy(sDescription, tagPolicy);
988
- }
989
-
990
982
  this._oLastSelectedItem = oMessageItem;
991
983
  if (oMessageItem.getMarkupDescription()) {
984
+ // description is sanitized in MessageItem.setDescription()
992
985
  this._oMessageDescriptionText = new HTML(this.getId() + "MarkupDescription", {
993
- content: "<div class='sapMMsgViewDescriptionText'>" + ManagedObject.escapeSettingsValue(sDescription) + "</div>"
986
+ content: "<div class='sapMMsgViewDescriptionText'>" + ManagedObject.escapeSettingsValue(oMessageItem.getDescription()) + "</div>"
994
987
  });
995
988
  } else {
996
989
  this._oMessageDescriptionText = new Text(this.getId() + "MessageDescriptionText", {
997
- text: ManagedObject.escapeSettingsValue(sDescription)
990
+ text: ManagedObject.escapeSettingsValue(oMessageItem.getDescription())
998
991
  }).addStyleClass("sapMMsgViewDescriptionText");
999
992
  }
1000
993
 
@@ -1166,6 +1159,24 @@ sap.ui.define([
1166
1159
  };
1167
1160
  };
1168
1161
 
1162
+ /**
1163
+ * Perform description sanitization based on Caja HTML sanitizer
1164
+ * @param {sap.m.MessageItem} oMessageItem The item to be sanitized
1165
+ * @private
1166
+ */
1167
+ MessageView.prototype._sanitizeDescription = function (oMessageItem) {
1168
+ var sDescription = oMessageItem.getDescription();
1169
+
1170
+ if (oMessageItem.getMarkupDescription()) {
1171
+ var tagPolicy = this._getTagPolicy();
1172
+ /*global html*/
1173
+ sDescription = html.sanitizeWithPolicy(sDescription, tagPolicy);
1174
+ }
1175
+
1176
+ oMessageItem.setDescription(sDescription);
1177
+ this._setDescription(oMessageItem);
1178
+ };
1179
+
1169
1180
  /**
1170
1181
  * Handles click on a list item
1171
1182
  *
@@ -1237,7 +1248,7 @@ sap.ui.define([
1237
1248
 
1238
1249
  MessageView.prototype._navigateToDetails = function(oMessageItem, oListItem, sTransiotionName, bSuppressNavigate) {
1239
1250
  this._setTitle(oMessageItem, oListItem);
1240
- this._setDescription(oMessageItem);
1251
+ this._sanitizeDescription(oMessageItem);
1241
1252
  this._setIcon(oMessageItem, oListItem);
1242
1253
  this._detailsPage.invalidate();
1243
1254
  this.fireLongtextLoaded();