@openui5/sap.m 1.128.0 → 1.129.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 (465) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/m/.library +1 -1
  4. package/src/sap/m/AccButton.js +1 -1
  5. package/src/sap/m/ActionListItem.js +1 -1
  6. package/src/sap/m/ActionSelect.js +1 -1
  7. package/src/sap/m/ActionSheet.js +1 -1
  8. package/src/sap/m/ActionTile.js +1 -1
  9. package/src/sap/m/ActionTileContent.js +1 -1
  10. package/src/sap/m/AdditionalTextButton.js +1 -1
  11. package/src/sap/m/App.js +1 -1
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +1 -1
  14. package/src/sap/m/Bar.js +1 -1
  15. package/src/sap/m/Breadcrumbs.js +1 -1
  16. package/src/sap/m/BusyDialog.js +1 -1
  17. package/src/sap/m/BusyIndicator.js +1 -1
  18. package/src/sap/m/Button.js +6 -2
  19. package/src/sap/m/Carousel.js +3 -2
  20. package/src/sap/m/CarouselLayout.js +1 -1
  21. package/src/sap/m/CheckBox.js +1 -1
  22. package/src/sap/m/ColorPalette.js +2 -1
  23. package/src/sap/m/ColorPalettePopover.js +5 -3
  24. package/src/sap/m/Column.js +7 -1
  25. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  26. package/src/sap/m/ColumnListItem.js +1 -1
  27. package/src/sap/m/ColumnListItemRenderer.js +10 -0
  28. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  33. package/src/sap/m/ComboBox.js +1 -1
  34. package/src/sap/m/ComboBoxBase.js +1 -1
  35. package/src/sap/m/ComboBoxTextField.js +1 -1
  36. package/src/sap/m/ContentConfig.js +1 -1
  37. package/src/sap/m/CustomListItem.js +1 -1
  38. package/src/sap/m/CustomTile.js +1 -1
  39. package/src/sap/m/CustomTreeItem.js +1 -1
  40. package/src/sap/m/DatePicker.js +1 -1
  41. package/src/sap/m/DateRangeSelection.js +2 -2
  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 +1 -1
  45. package/src/sap/m/Dialog.js +36 -28
  46. package/src/sap/m/DisplayListItem.js +1 -1
  47. package/src/sap/m/DraftIndicator.js +1 -1
  48. package/src/sap/m/DynamicDate.js +1 -1
  49. package/src/sap/m/DynamicDateOption.js +1 -1
  50. package/src/sap/m/DynamicDateRange.js +1 -1
  51. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  52. package/src/sap/m/ExpandableText.js +1 -1
  53. package/src/sap/m/FacetFilter.js +1 -1
  54. package/src/sap/m/FacetFilterItem.js +1 -1
  55. package/src/sap/m/FacetFilterList.js +1 -1
  56. package/src/sap/m/FeedContent.js +1 -1
  57. package/src/sap/m/FeedInput.js +1 -1
  58. package/src/sap/m/FeedListItem.js +1 -1
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/Fiori20Adapter.js +2 -2
  61. package/src/sap/m/FlexBox.js +1 -1
  62. package/src/sap/m/FlexItemData.js +1 -1
  63. package/src/sap/m/FormattedText.js +1 -1
  64. package/src/sap/m/GenericTag.js +1 -1
  65. package/src/sap/m/GenericTile.js +1 -1
  66. package/src/sap/m/GenericTileRenderer.js +6 -1
  67. package/src/sap/m/GroupHeaderListItem.js +1 -1
  68. package/src/sap/m/GrowingList.js +1 -1
  69. package/src/sap/m/HBox.js +1 -1
  70. package/src/sap/m/HeaderContainer.js +1 -1
  71. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  72. package/src/sap/m/IconTabBar.js +19 -5
  73. package/src/sap/m/IconTabBarSelectList.js +1 -1
  74. package/src/sap/m/IconTabFilter.js +1 -1
  75. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  76. package/src/sap/m/IconTabHeader.js +1 -1
  77. package/src/sap/m/IconTabSeparator.js +1 -1
  78. package/src/sap/m/IllustratedMessage.js +1 -1
  79. package/src/sap/m/Illustration.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 +1 -1
  83. package/src/sap/m/InputBase.js +1 -1
  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 +1 -1
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +14 -7
  89. package/src/sap/m/LinkTileContent.js +1 -1
  90. package/src/sap/m/List.js +1 -1
  91. package/src/sap/m/ListBase.js +43 -14
  92. package/src/sap/m/ListItemBase.js +1 -1
  93. package/src/sap/m/MaskEnabler.js +1 -1
  94. package/src/sap/m/MaskInput.js +1 -1
  95. package/src/sap/m/MaskInputRule.js +1 -1
  96. package/src/sap/m/Menu.js +8 -6
  97. package/src/sap/m/MenuButton.js +1 -1
  98. package/src/sap/m/MenuItem.js +1 -1
  99. package/src/sap/m/MenuItemGroup.js +1 -1
  100. package/src/sap/m/MenuListItem.js +1 -1
  101. package/src/sap/m/MessageBox.js +6 -0
  102. package/src/sap/m/MessageItem.js +1 -1
  103. package/src/sap/m/MessageListItem.js +1 -1
  104. package/src/sap/m/MessagePage.js +1 -1
  105. package/src/sap/m/MessagePopover.js +1 -1
  106. package/src/sap/m/MessagePopoverItem.js +1 -1
  107. package/src/sap/m/MessageStrip.js +11 -3
  108. package/src/sap/m/MessageToast.js +1 -1
  109. package/src/sap/m/MessageView.js +1 -1
  110. package/src/sap/m/MultiComboBox.js +1 -1
  111. package/src/sap/m/MultiEditField.js +1 -1
  112. package/src/sap/m/MultiInput.js +1 -1
  113. package/src/sap/m/NavContainer.js +1 -1
  114. package/src/sap/m/NewsContent.js +1 -1
  115. package/src/sap/m/NotificationList.js +1 -1
  116. package/src/sap/m/NotificationListBase.js +1 -1
  117. package/src/sap/m/NotificationListGroup.js +1 -1
  118. package/src/sap/m/NotificationListItem.js +1 -1
  119. package/src/sap/m/NumericContent.js +1 -1
  120. package/src/sap/m/NumericInput.js +1 -1
  121. package/src/sap/m/ObjectAttribute.js +1 -1
  122. package/src/sap/m/ObjectHeader.js +1 -1
  123. package/src/sap/m/ObjectIdentifier.js +3 -3
  124. package/src/sap/m/ObjectListItem.js +1 -1
  125. package/src/sap/m/ObjectMarker.js +1 -1
  126. package/src/sap/m/ObjectNumber.js +3 -3
  127. package/src/sap/m/ObjectStatus.js +52 -8
  128. package/src/sap/m/ObjectStatusRenderer.js +1 -1
  129. package/src/sap/m/OverflowToolbar.js +1 -1
  130. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  131. package/src/sap/m/OverflowToolbarButton.js +1 -1
  132. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  133. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  134. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  135. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  136. package/src/sap/m/P13nColumnsItem.js +1 -1
  137. package/src/sap/m/P13nColumnsPanel.js +1 -1
  138. package/src/sap/m/P13nConditionPanel.js +1 -1
  139. package/src/sap/m/P13nDialog.js +1 -1
  140. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  141. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  142. package/src/sap/m/P13nFilterItem.js +1 -1
  143. package/src/sap/m/P13nFilterPanel.js +1 -1
  144. package/src/sap/m/P13nGroupItem.js +1 -1
  145. package/src/sap/m/P13nGroupPanel.js +1 -1
  146. package/src/sap/m/P13nItem.js +1 -1
  147. package/src/sap/m/P13nPanel.js +1 -1
  148. package/src/sap/m/P13nSelectionItem.js +1 -1
  149. package/src/sap/m/P13nSelectionPanel.js +1 -1
  150. package/src/sap/m/P13nSortItem.js +1 -1
  151. package/src/sap/m/P13nSortPanel.js +1 -1
  152. package/src/sap/m/PDFViewer.js +1 -1
  153. package/src/sap/m/Page.js +1 -1
  154. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  155. package/src/sap/m/PagingButton.js +1 -1
  156. package/src/sap/m/Panel.js +1 -1
  157. package/src/sap/m/PlanningCalendar.js +32 -1
  158. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  159. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  160. package/src/sap/m/PlanningCalendarRow.js +1 -1
  161. package/src/sap/m/PlanningCalendarView.js +1 -1
  162. package/src/sap/m/Popover.js +7 -2
  163. package/src/sap/m/ProgressIndicator.js +1 -1
  164. package/src/sap/m/PullToRefresh.js +1 -1
  165. package/src/sap/m/QuickView.js +1 -1
  166. package/src/sap/m/QuickViewBase.js +1 -1
  167. package/src/sap/m/QuickViewCard.js +1 -1
  168. package/src/sap/m/QuickViewGroup.js +1 -1
  169. package/src/sap/m/QuickViewGroupElement.js +1 -1
  170. package/src/sap/m/QuickViewPage.js +3 -2
  171. package/src/sap/m/RadioButton.js +1 -1
  172. package/src/sap/m/RadioButtonGroup.js +1 -1
  173. package/src/sap/m/RangeSlider.js +1 -1
  174. package/src/sap/m/RatingIndicator.js +9 -16
  175. package/src/sap/m/RatingIndicatorRenderer.js +4 -1
  176. package/src/sap/m/ResponsivePopover.js +7 -1
  177. package/src/sap/m/ResponsiveScale.js +1 -1
  178. package/src/sap/m/ScrollBar.js +1 -1
  179. package/src/sap/m/ScrollContainer.js +1 -1
  180. package/src/sap/m/SearchField.js +1 -1
  181. package/src/sap/m/SegmentedButton.js +1 -1
  182. package/src/sap/m/SegmentedButtonItem.js +1 -1
  183. package/src/sap/m/Select.js +3 -2
  184. package/src/sap/m/SelectDialog.js +1 -1
  185. package/src/sap/m/SelectDialogBase.js +1 -1
  186. package/src/sap/m/SelectList.js +1 -1
  187. package/src/sap/m/SelectionDetails.js +1 -1
  188. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  189. package/src/sap/m/SelectionDetailsItem.js +1 -1
  190. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  191. package/src/sap/m/Shell.js +1 -1
  192. package/src/sap/m/SimpleFixFlex.js +1 -1
  193. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  194. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  195. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -1
  196. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +1 -1
  197. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +9 -6
  198. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarMonthView.js +2 -2
  200. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  202. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  203. package/src/sap/m/SlideTile.js +263 -41
  204. package/src/sap/m/SlideTileRenderer.js +12 -0
  205. package/src/sap/m/Slider.js +1 -1
  206. package/src/sap/m/SliderTooltip.js +1 -1
  207. package/src/sap/m/SliderTooltipBase.js +1 -1
  208. package/src/sap/m/SliderTooltipContainer.js +1 -1
  209. package/src/sap/m/SplitApp.js +1 -1
  210. package/src/sap/m/SplitButton.js +4 -3
  211. package/src/sap/m/SplitContainer.js +1 -1
  212. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  213. package/src/sap/m/StandardListItem.js +1 -1
  214. package/src/sap/m/StandardTile.js +1 -1
  215. package/src/sap/m/StandardTreeItem.js +1 -1
  216. package/src/sap/m/StepInput.js +4 -4
  217. package/src/sap/m/SuggestionItem.js +1 -1
  218. package/src/sap/m/SuggestionsPopover.js +1 -1
  219. package/src/sap/m/Switch.js +1 -1
  220. package/src/sap/m/TabContainer.js +1 -1
  221. package/src/sap/m/TabContainerItem.js +1 -1
  222. package/src/sap/m/TabStrip.js +1 -1
  223. package/src/sap/m/TabStripItem.js +1 -1
  224. package/src/sap/m/Table.js +40 -24
  225. package/src/sap/m/TablePersoController.js +1 -1
  226. package/src/sap/m/TablePersoDialog.js +1 -1
  227. package/src/sap/m/TablePersoProvider.js +1 -1
  228. package/src/sap/m/TableRenderer.js +12 -2
  229. package/src/sap/m/TableSelectDialog.js +1 -1
  230. package/src/sap/m/Text.js +1 -1
  231. package/src/sap/m/TextArea.js +1 -1
  232. package/src/sap/m/Tile.js +1 -1
  233. package/src/sap/m/TileContainer.js +1 -1
  234. package/src/sap/m/TileContent.js +1 -1
  235. package/src/sap/m/TileInfo.js +1 -1
  236. package/src/sap/m/TimePicker.js +12 -1
  237. package/src/sap/m/TimePickerClock.js +1 -1
  238. package/src/sap/m/TimePickerClocks.js +1 -1
  239. package/src/sap/m/TimePickerInputs.js +1 -1
  240. package/src/sap/m/TimePickerInternals.js +1 -1
  241. package/src/sap/m/TimePickerRenderer.js +0 -13
  242. package/src/sap/m/TimePickerSlider.js +1 -1
  243. package/src/sap/m/TimePickerSliders.js +1 -1
  244. package/src/sap/m/Title.js +1 -1
  245. package/src/sap/m/TitlePropagationSupport.js +1 -1
  246. package/src/sap/m/ToggleButton.js +1 -1
  247. package/src/sap/m/Token.js +1 -1
  248. package/src/sap/m/Tokenizer.js +1 -1
  249. package/src/sap/m/Toolbar.js +1 -1
  250. package/src/sap/m/ToolbarLayoutData.js +1 -1
  251. package/src/sap/m/ToolbarSeparator.js +1 -1
  252. package/src/sap/m/ToolbarSpacer.js +1 -1
  253. package/src/sap/m/Tree.js +1 -1
  254. package/src/sap/m/TreeItemBase.js +1 -1
  255. package/src/sap/m/UploadCollection.js +1 -1
  256. package/src/sap/m/UploadCollectionItem.js +1 -1
  257. package/src/sap/m/UploadCollectionParameter.js +1 -1
  258. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  259. package/src/sap/m/VBox.js +1 -1
  260. package/src/sap/m/ValueStateHeader.js +1 -1
  261. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  262. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  263. package/src/sap/m/ViewSettingsDialog.js +1 -1
  264. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  265. package/src/sap/m/ViewSettingsItem.js +1 -1
  266. package/src/sap/m/VisibleItem.js +1 -1
  267. package/src/sap/m/WheelSlider.js +1 -1
  268. package/src/sap/m/WheelSliderContainer.js +1 -1
  269. package/src/sap/m/Wizard.js +1 -1
  270. package/src/sap/m/WizardProgressNavigator.js +1 -1
  271. package/src/sap/m/WizardStep.js +1 -1
  272. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  273. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  274. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  275. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  276. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  277. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  278. package/src/sap/m/library.js +11 -3
  279. package/src/sap/m/messagebundle_ar.properties +0 -14
  280. package/src/sap/m/messagebundle_bg.properties +0 -14
  281. package/src/sap/m/messagebundle_ca.properties +0 -14
  282. package/src/sap/m/messagebundle_cnr.properties +0 -14
  283. package/src/sap/m/messagebundle_cs.properties +0 -14
  284. package/src/sap/m/messagebundle_cy.properties +0 -14
  285. package/src/sap/m/messagebundle_da.properties +0 -14
  286. package/src/sap/m/messagebundle_de.properties +0 -14
  287. package/src/sap/m/messagebundle_el.properties +0 -14
  288. package/src/sap/m/messagebundle_en_GB.properties +0 -14
  289. package/src/sap/m/messagebundle_en_US_sappsd.properties +0 -14
  290. package/src/sap/m/messagebundle_en_US_saprigi.properties +0 -14
  291. package/src/sap/m/messagebundle_en_US_saptrc.properties +0 -14
  292. package/src/sap/m/messagebundle_es.properties +0 -14
  293. package/src/sap/m/messagebundle_es_MX.properties +0 -14
  294. package/src/sap/m/messagebundle_et.properties +0 -14
  295. package/src/sap/m/messagebundle_fi.properties +0 -14
  296. package/src/sap/m/messagebundle_fr.properties +0 -14
  297. package/src/sap/m/messagebundle_fr_CA.properties +0 -14
  298. package/src/sap/m/messagebundle_hi.properties +0 -14
  299. package/src/sap/m/messagebundle_hr.properties +0 -14
  300. package/src/sap/m/messagebundle_hu.properties +0 -14
  301. package/src/sap/m/messagebundle_id.properties +0 -14
  302. package/src/sap/m/messagebundle_it.properties +0 -14
  303. package/src/sap/m/messagebundle_iw.properties +0 -14
  304. package/src/sap/m/messagebundle_ja.properties +0 -14
  305. package/src/sap/m/messagebundle_kk.properties +0 -14
  306. package/src/sap/m/messagebundle_ko.properties +0 -14
  307. package/src/sap/m/messagebundle_lt.properties +0 -14
  308. package/src/sap/m/messagebundle_lv.properties +0 -14
  309. package/src/sap/m/messagebundle_mk.properties +0 -14
  310. package/src/sap/m/messagebundle_ms.properties +0 -14
  311. package/src/sap/m/messagebundle_nl.properties +0 -14
  312. package/src/sap/m/messagebundle_no.properties +0 -14
  313. package/src/sap/m/messagebundle_pl.properties +0 -14
  314. package/src/sap/m/messagebundle_pt.properties +0 -14
  315. package/src/sap/m/messagebundle_pt_PT.properties +0 -14
  316. package/src/sap/m/messagebundle_ro.properties +0 -14
  317. package/src/sap/m/messagebundle_ru.properties +0 -14
  318. package/src/sap/m/messagebundle_sh.properties +0 -14
  319. package/src/sap/m/messagebundle_sk.properties +0 -14
  320. package/src/sap/m/messagebundle_sl.properties +0 -14
  321. package/src/sap/m/messagebundle_sr.properties +0 -14
  322. package/src/sap/m/messagebundle_sv.properties +0 -14
  323. package/src/sap/m/messagebundle_th.properties +7 -21
  324. package/src/sap/m/messagebundle_tr.properties +0 -14
  325. package/src/sap/m/messagebundle_uk.properties +0 -14
  326. package/src/sap/m/messagebundle_vi.properties +0 -14
  327. package/src/sap/m/messagebundle_zh_CN.properties +0 -14
  328. package/src/sap/m/messagebundle_zh_TW.properties +0 -14
  329. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  330. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  331. package/src/sap/m/p13n/BasePanel.js +1 -1
  332. package/src/sap/m/p13n/Container.js +1 -1
  333. package/src/sap/m/p13n/Engine.js +1 -1
  334. package/src/sap/m/p13n/FilterController.js +1 -1
  335. package/src/sap/m/p13n/FilterPanel.js +1 -1
  336. package/src/sap/m/p13n/GroupController.js +1 -1
  337. package/src/sap/m/p13n/GroupPanel.js +1 -1
  338. package/src/sap/m/p13n/MessageStrip.js +4 -4
  339. package/src/sap/m/p13n/Popup.js +1 -1
  340. package/src/sap/m/p13n/QueryPanel.js +1 -1
  341. package/src/sap/m/p13n/SelectionController.js +9 -4
  342. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  343. package/src/sap/m/p13n/SortController.js +1 -1
  344. package/src/sap/m/p13n/SortPanel.js +1 -1
  345. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  346. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  347. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  348. package/src/sap/m/p13n/modules/xConfigAPI.js +28 -4
  349. package/src/sap/m/plugins/CellSelector.js +3 -3
  350. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  351. package/src/sap/m/plugins/ContextMenuSetting.js +1 -1
  352. package/src/sap/m/plugins/CopyProvider.js +1 -1
  353. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  354. package/src/sap/m/plugins/PasteProvider.js +1 -1
  355. package/src/sap/m/plugins/PluginBase.js +1 -1
  356. package/src/sap/m/plugins/UploadSetwithTable.js +5 -6
  357. package/src/sap/m/semantic/AddAction.js +1 -1
  358. package/src/sap/m/semantic/CancelAction.js +1 -1
  359. package/src/sap/m/semantic/DeleteAction.js +1 -1
  360. package/src/sap/m/semantic/DetailPage.js +1 -1
  361. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  362. package/src/sap/m/semantic/EditAction.js +1 -1
  363. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  364. package/src/sap/m/semantic/FilterAction.js +1 -1
  365. package/src/sap/m/semantic/FilterSelect.js +1 -1
  366. package/src/sap/m/semantic/FlagAction.js +1 -1
  367. package/src/sap/m/semantic/ForwardAction.js +1 -1
  368. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  369. package/src/sap/m/semantic/GroupAction.js +1 -1
  370. package/src/sap/m/semantic/GroupSelect.js +1 -1
  371. package/src/sap/m/semantic/MainAction.js +1 -1
  372. package/src/sap/m/semantic/MasterPage.js +1 -1
  373. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  374. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  375. package/src/sap/m/semantic/NegativeAction.js +1 -1
  376. package/src/sap/m/semantic/OpenInAction.js +1 -1
  377. package/src/sap/m/semantic/PositiveAction.js +1 -1
  378. package/src/sap/m/semantic/PrintAction.js +1 -1
  379. package/src/sap/m/semantic/SaveAction.js +1 -1
  380. package/src/sap/m/semantic/Segment.js +1 -1
  381. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  382. package/src/sap/m/semantic/SemanticButton.js +1 -1
  383. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  384. package/src/sap/m/semantic/SemanticControl.js +1 -1
  385. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  386. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  387. package/src/sap/m/semantic/SemanticPage.js +1 -1
  388. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  389. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  390. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  391. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  392. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  393. package/src/sap/m/semantic/ShareMenu.js +1 -1
  394. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  395. package/src/sap/m/semantic/SortAction.js +1 -1
  396. package/src/sap/m/semantic/SortSelect.js +1 -1
  397. package/src/sap/m/table/ColumnWidthController.js +1 -1
  398. package/src/sap/m/table/Util.js +6 -4
  399. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  400. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  401. package/src/sap/m/table/columnmenu/Item.js +1 -1
  402. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  403. package/src/sap/m/table/columnmenu/Menu.js +1 -1
  404. package/src/sap/m/table/columnmenu/MenuBase.js +1 -1
  405. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  406. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  407. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  408. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  409. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  410. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  411. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  412. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  413. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  414. package/src/sap/m/themes/base/ActionSelect.less +2 -2
  415. package/src/sap/m/themes/base/ActionSheet.less +11 -7
  416. package/src/sap/m/themes/base/Avatar.less +62 -60
  417. package/src/sap/m/themes/base/Bar.less +17 -12
  418. package/src/sap/m/themes/base/Carousel.less +4 -0
  419. package/src/sap/m/themes/base/ColorPalette.less +81 -44
  420. package/src/sap/m/themes/base/ComboBox.less +1 -1
  421. package/src/sap/m/themes/base/ComboBoxBase.less +6 -6
  422. package/src/sap/m/themes/base/DateTimePicker.less +20 -12
  423. package/src/sap/m/themes/base/Dialog.less +45 -44
  424. package/src/sap/m/themes/base/DynamicDateRange.less +10 -4
  425. package/src/sap/m/themes/base/ExpandableText.less +7 -5
  426. package/src/sap/m/themes/base/FacetFilter.less +13 -10
  427. package/src/sap/m/themes/base/FacetFilterItem.less +5 -13
  428. package/src/sap/m/themes/base/FacetFilterList.less +7 -10
  429. package/src/sap/m/themes/base/FlexBox.less +33 -8
  430. package/src/sap/m/themes/base/FormattedText.less +4 -4
  431. package/src/sap/m/themes/base/GenericTile.less +12 -14
  432. package/src/sap/m/themes/base/Link.less +1 -1
  433. package/src/sap/m/themes/base/ListBase.less +11 -7
  434. package/src/sap/m/themes/base/MessageView.less +0 -4
  435. package/src/sap/m/themes/base/ObjectStatus.less +6 -0
  436. package/src/sap/m/themes/base/QuickView.less +9 -5
  437. package/src/sap/m/themes/base/RatingIndicator.less +30 -38
  438. package/src/sap/m/themes/base/SinglePlanningCalendar.less +1 -1
  439. package/src/sap/m/themes/base/SlideTile.less +242 -13
  440. package/src/sap/m/themes/base/Table.less +50 -12
  441. package/src/sap/m/themes/base/TileContent.less +34 -7
  442. package/src/sap/m/themes/base/Token.less +9 -6
  443. package/src/sap/m/themes/base/Toolbar.less +3 -2
  444. package/src/sap/m/themes/base/ViewSettingsDialog.less +6 -0
  445. package/src/sap/m/themes/sap_hcb/base_Dialog.less +1 -7
  446. package/src/sap/m/themes/sap_hcb/base_Token.less +4 -4
  447. package/src/sap/m/upload/ActionsPlaceholder.js +3 -4
  448. package/src/sap/m/upload/Column.js +1 -1
  449. package/src/sap/m/upload/FilePreviewDialog.js +1 -1
  450. package/src/sap/m/upload/UploadItem.js +1 -2
  451. package/src/sap/m/upload/UploadItemConfiguration.js +1 -2
  452. package/src/sap/m/upload/UploadSet.js +14 -6
  453. package/src/sap/m/upload/UploadSetItem.js +2 -1
  454. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +2 -1
  455. package/src/sap/m/upload/UploadSetwithTable.js +1 -1
  456. package/src/sap/m/upload/UploadSetwithTableItem.js +1 -1
  457. package/src/sap/m/upload/Uploader.js +1 -0
  458. package/src/sap/m/upload/UploaderTableItem.js +1 -2
  459. package/src/sap/m/upload/p13n/PersManager.js +1 -1
  460. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +1 -1
  461. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +1 -1
  462. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +1 -1
  463. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +1 -1
  464. package/src/sap/m/upload/p13n/mediator/SortMediator.js +1 -1
  465. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +1 -1
@@ -15,7 +15,8 @@ sap.ui.define([
15
15
  "sap/ui/events/PseudoEvents",
16
16
  "sap/ui/thirdparty/jquery",
17
17
  "sap/ui/core/InvisibleText",
18
- "sap/ui/core/Lib"
18
+ "sap/ui/core/Lib",
19
+ "sap/m/Button"
19
20
  ],
20
21
  function(
21
22
  library,
@@ -28,12 +29,17 @@ sap.ui.define([
28
29
  PseudoEvents,
29
30
  jQuery,
30
31
  InvisibleText,
31
- CoreLib
32
+ CoreLib,
33
+ Button
32
34
  ) {
33
35
  "use strict";
34
36
 
35
37
  var GenericTileScope = library.GenericTileScope;
36
38
  var TileSizeBehavior = library.TileSizeBehavior;
39
+ var ButtonType = library.ButtonType,
40
+ FrameType = library.FrameType,
41
+ //The following value provides the size of the each dot within its indicator
42
+ INDICATOR_SIZE = 24;
37
43
 
38
44
  /**
39
45
  * Constructor for a new sap.m.SlideTile control.
@@ -45,7 +51,7 @@ sap.ui.define([
45
51
  * @extends sap.ui.core.Control
46
52
  *
47
53
  * @author SAP SE
48
- * @version 1.128.0
54
+ * @version 1.129.0
49
55
  * @since 1.34
50
56
  *
51
57
  * @public
@@ -151,6 +157,28 @@ sap.ui.define([
151
157
  }), true);
152
158
 
153
159
  this._oInvisibleText = new InvisibleText(this.getId() + "-ariaText");
160
+ this._oLeftScroll = new Button({
161
+ icon : "sap-icon://navigation-left-arrow",
162
+ type: ButtonType.Transparent,
163
+ ariaDescribedBy: this._oInvisibleText,
164
+ press: () => {
165
+ this._scrollToNextTile(true,true,null,true);
166
+ this._setInvisibleText(this._getPrefixText());
167
+ }
168
+ });
169
+ this._oRightScroll = new Button({
170
+ icon : "sap-icon://navigation-right-arrow",
171
+ type: ButtonType.Transparent,
172
+ ariaDescribedBy: this._oInvisibleText,
173
+ press: () => {
174
+ this._scrollToNextTile(true,false,null,true);
175
+ this._setInvisibleText(this._getPrefixText());
176
+ }
177
+ });
178
+ this._tabKeyPressedTile = false;
179
+ this._tabKeyPressedButton = false;
180
+ this.addDependent(this._oLeftScroll);
181
+ this.addDependent(this._oRightScroll);
154
182
  this.setAggregation("_invisibleText", this._oInvisibleText, true);
155
183
  };
156
184
 
@@ -198,6 +226,7 @@ sap.ui.define([
198
226
  }
199
227
  if (cTiles > 1 && sScope === GenericTileScope.Display) {
200
228
  this._startAnimation();
229
+ this._resetIndicator(true);
201
230
  }
202
231
  // in actions scope, the more icon color is changed when the displayed tile has news content (dark background)
203
232
  if (sScope === GenericTileScope.Actions && this._iCurrentTile >= 0 &&
@@ -213,7 +242,7 @@ sap.ui.define([
213
242
  oCurrentTile._oNavigateAction._bExcludeFromTabChain = false;
214
243
  oCurrentTile._oNavigateAction.invalidate();
215
244
  }
216
- oCurrentBullet = document.querySelector('span[id$="tileIndicator-' + i + '"]');
245
+ oCurrentBullet = document.querySelector('div[id$="indicatorTap-' + i + '"]');
217
246
  if (oCurrentBullet) {
218
247
  oCurrentBullet.addEventListener("click", function(event) {
219
248
  var sId = event.currentTarget.id,
@@ -226,7 +255,7 @@ sap.ui.define([
226
255
  }.bind(this));
227
256
  }
228
257
  }
229
- this._attachFocusEvents();
258
+ this._attachEvents();
230
259
 
231
260
  //Removing the child aria attributes becasuse its interfering with the Jaws when its in VPC mode on
232
261
  this._removeChildAria();
@@ -311,10 +340,17 @@ sap.ui.define([
311
340
  */
312
341
  SlideTile.prototype.onkeydown = function (oEvent) {
313
342
  if (this.getScope() === GenericTileScope.Display) {
314
- if (PseudoEvents.events.sapenter.fnCheck(oEvent)) {
343
+ if (PseudoEvents.events.sapenter.fnCheck(oEvent) && oEvent.target?.tagName !== "BUTTON") {
315
344
  var oGenericTile = this.getTiles()[this._iCurrentTile];
316
345
  oGenericTile.onkeydown(oEvent);
317
346
  }
347
+ if (oEvent.which === KeyCodes.TAB && oEvent.target?.tagName !== "BUTTON") {
348
+ this._tabKeyPressedTile = true;
349
+ this._tabKeyPressedButton = false;
350
+ } else if (oEvent.which === KeyCodes.TAB && oEvent.target?.tagName === "BUTTON") {
351
+ this._tabKeyPressedButton = true;
352
+ this._tabKeyPressedTile = false;
353
+ }
318
354
  }
319
355
  };
320
356
 
@@ -326,12 +362,12 @@ sap.ui.define([
326
362
  SlideTile.prototype.onkeyup = function (oEvent) {
327
363
  var oParams;
328
364
  if (this.getScope() === GenericTileScope.Display) {
329
- if (PseudoEvents.events.sapenter.fnCheck(oEvent)) {
365
+ if (PseudoEvents.events.sapenter.fnCheck(oEvent) && oEvent.target?.tagName !== "BUTTON") {
330
366
  var oGenericTile = this.getTiles()[this._iCurrentTile];
331
367
  oGenericTile.onkeyup(oEvent);
332
368
  return;
333
369
  }
334
- if (PseudoEvents.events.sapspace.fnCheck(oEvent)) {
370
+ if (PseudoEvents.events.sapspace.fnCheck(oEvent) && oEvent?.target?.tagName !== 'BUTTON') {
335
371
  this._toggleAnimation();
336
372
  // Saving the current state in the following variable so that when the focus goes out it would remain in the present state
337
373
  this.bIsPrevStateNormal = !this._bAnimationPause;
@@ -385,8 +421,8 @@ sap.ui.define([
385
421
  SlideTile.prototype.onmousedown = function (oEvent) {
386
422
  if (jQuery(oEvent.target).hasClass("sapMSTIconClickTapArea")) {
387
423
  this.addStyleClass("sapMSTIconPressed");
424
+ this.mouseDown = true;
388
425
  }
389
- this.mouseDown = true;
390
426
  };
391
427
 
392
428
  /* --- Public methods --- */
@@ -429,31 +465,94 @@ sap.ui.define([
429
465
  };
430
466
 
431
467
  /**
432
- *Attaching focusin and foucusout event handles, and activating them when the tile is focused by tabnavigating
468
+ *Attaching events to the tiles and scroll buttons
433
469
  * @private
434
470
  */
435
471
 
436
- SlideTile.prototype._attachFocusEvents = function() {
472
+ SlideTile.prototype._attachEvents = function() {
473
+ /**
474
+ * ACC guidelines for SlideTile
475
+ *
476
+ * When the focus moves to the tile, we pause the tile and read the speech accordingly
477
+ * When the focus moves to the inner scrolling buttons via tab navigation on the tile, we do not re-read the tile since it has already been read as mentioned in the previous point
478
+ * If the user navigates directly to a scrolling button using "Shift + Tab," we will read the tile's history to provide context
479
+ * The original state (pause/play) of the tile will be preserved when the focus moves out of the SlideTile
480
+ */
437
481
  var oSlideTile = this.getDomRef();
438
- //These Event Listeners should be activated only when the tile gets it focus by tab navigation not by clicking on the tile
482
+ var oLeftScroll = this._oLeftScroll.getDomRef();
483
+ var oRightScroll = this._oRightScroll.getDomRef();
484
+ var aTileInnerIds = [this.getId(),this._oLeftScroll.getId(),this._oRightScroll.getId()];
485
+
486
+ // In "focusin" events the "target" would give the newly focused item where as in "focusout" events "relatedTarget" gives you the newly focused item
439
487
  if (oSlideTile) {
440
- oSlideTile.addEventListener('focusin', function() {
488
+ oSlideTile.addEventListener('focusin', function(oEvent) {
489
+ var bIsTileGettingFocus = oEvent.target.id === oSlideTile.id;
441
490
  if (!this.mouseDown) {
442
491
  this.bIsPrevStateNormal = this.getDomRef().classList.contains("sapMSTPauseIcon");
443
- this._stopAnimation();
492
+ // When the tile is not getting focused, we let the buttons inside the tile to dictate the speech
493
+ this._stopAnimation(null,!bIsTileGettingFocus);
444
494
  this._updatePausePlayIcon();
445
495
  }
446
496
  }.bind(this));
447
- oSlideTile.addEventListener('focusout', function(){
497
+ oSlideTile.addEventListener('focusout', function(oEvent){
498
+ var bIsNextFocusableItemInsideTile = aTileInnerIds.find((sId) => sId === oEvent?.relatedTarget?.id);
448
499
  if (!this.mouseDown) {
449
500
  if (this.bIsPrevStateNormal) {
450
- this._startAnimation(true);
501
+ //Suppressing the tiles speech history to stop any unwanted speech coming out of the tile when the focus has been completely went outside
502
+ this._startAnimation(true,!bIsNextFocusableItemInsideTile);
503
+ this._updatePausePlayIcon();
451
504
  }
452
- this._updatePausePlayIcon();
453
505
  }
454
506
  this.mouseDown = false;
507
+ //Resetting the tab values when we go outside of the tile
508
+ if (this.getTiles().length === 1 || !bIsNextFocusableItemInsideTile) {
509
+ this._tabKeyPressedTile = false;
510
+ this._tabKeyPressedButton = false;
511
+ }
455
512
  }.bind(this));
456
513
  }
514
+ if (oLeftScroll) {
515
+ oLeftScroll.addEventListener('focusin',() => {
516
+ //This means that the focus is coming to the arrow directly without touching the tile through backward navigation
517
+ if (!this._tabKeyPressedTile && !this._tabKeyPressedButton && !this._focusToggled) {
518
+ this._setInvisibleText(this._getPrefixText(true));
519
+ } else {
520
+ //If tab key is pressed that means the speech history is already been told and no need to repeat ourselves
521
+ this._setInvisibleText();
522
+ }
523
+ this._focusToggled = false;
524
+ });
525
+
526
+ oLeftScroll.addEventListener('focusout',(oEvent) => {
527
+ //Checking if the next focusable item is part of the current control
528
+ var bIsNextFocusableItemInsideTile = aTileInnerIds.find((sId) => sId === oEvent.relatedTarget?.id);
529
+ if (!bIsNextFocusableItemInsideTile) {
530
+ this._tabKeyPressedTile = false;
531
+ this._tabKeyPressedButton = false;
532
+ }
533
+ });
534
+ }
535
+
536
+ if (oRightScroll) {
537
+ oRightScroll.addEventListener('focusin',() => {
538
+ //This means that the focus is coming to the arrow directly without touching the tile
539
+ if (!this._tabKeyPressedTile && !this._tabKeyPressedButton && !this._focusToggled) {
540
+ this._setInvisibleText(this._getPrefixText(true));
541
+ } else {
542
+ //If tab key is pressed that means the speech history is already been told and no need to reread the history again
543
+ this._setInvisibleText();
544
+ }
545
+ this._focusToggled = false;
546
+ });
547
+
548
+ oRightScroll.addEventListener('focusout',(oEvent) => {
549
+ var bIsNextFocusableItemInsideTile = aTileInnerIds.find((sId) => sId === oEvent.relatedTarget?.id);
550
+ if (!bIsNextFocusableItemInsideTile) {
551
+ this._tabKeyPressedTile = false;
552
+ this._tabKeyPressedButton = false;
553
+ }
554
+ });
555
+ }
457
556
  };
458
557
 
459
558
  /**
@@ -510,25 +609,18 @@ sap.ui.define([
510
609
  * Stops the animation
511
610
  *
512
611
  * @param {boolean} needInvalidate decides whether invalidates the control for setScope
612
+ * @param {boolean} bAvoidAriaUpdate decides whether the aria text should be updated
513
613
  * @private
514
614
  */
515
- SlideTile.prototype._stopAnimation = function (needInvalidate) {
615
+ SlideTile.prototype._stopAnimation = function (needInvalidate,bAvoidAriaUpdate) {
516
616
  this._iCurrAnimationTime += Date.now() - this._iStartTime;
517
617
  clearTimeout(this._sTimerId);
518
- if (this._iCurrentTile != undefined) {
519
- var oWrapperTo = this.$("wrapper-" + this._iCurrentTile);
520
- oWrapperTo.stop();
521
- }
522
- if (this._iPreviousTile != undefined) {
523
- var oWrapperFrom = this.$("wrapper-" + this._iPreviousTile);
524
- oWrapperFrom.stop();
525
- }
526
618
  this._bAnimationPause = true;
527
619
  if (this._iCurrAnimationTime > this.getDisplayTime()) {
528
- this._scrollToNextTile(true); //Completes the animation and stops
620
+ this._scrollToNextTile(true,null,null,bAvoidAriaUpdate); //Completes the animation and stops
529
621
  } else {
530
622
  if (this.getTiles()[this._iCurrentTile]) {
531
- this._setAriaDescriptor();
623
+ this._setAriaDescriptor(bAvoidAriaUpdate);
532
624
  }
533
625
  if (needInvalidate) {
534
626
  this.invalidate();
@@ -539,9 +631,10 @@ sap.ui.define([
539
631
  /**
540
632
  * Starts the animation
541
633
  * @param {boolean} bIsFocusOut Checks if the focus is moving out
634
+ * @param {boolean} bAvoidAriaUpdate decides whether the aria text should be updated
542
635
  * @private
543
636
  */
544
- SlideTile.prototype._startAnimation = function (bIsFocusOut) {
637
+ SlideTile.prototype._startAnimation = function (bIsFocusOut,bAvoidAriaUpdate) {
545
638
  var iDisplayTime = this.getDisplayTime() - this._iCurrAnimationTime;
546
639
 
547
640
  clearTimeout(this._sTimerId);
@@ -552,7 +645,7 @@ sap.ui.define([
552
645
  this._bAnimationPause = false;
553
646
  //Restricting the updation of aria text while focusing out because its causing the aria text to read twice
554
647
  if (this.getTiles()[this._iCurrentTile] && !bIsFocusOut) {
555
- this._setAriaDescriptor();
648
+ this._setAriaDescriptor(bAvoidAriaUpdate);
556
649
  }
557
650
  };
558
651
 
@@ -585,8 +678,9 @@ sap.ui.define([
585
678
  * @param {boolean} pause Triggers if the animation gets paused or not
586
679
  * @param {boolean} backward Sets the direction backward or forward
587
680
  * @param {int} iNextTile Scrolls to custom tile
681
+ * @param {boolean} bAvoidAriaUpdate decides whether the aria text should be updated
588
682
  */
589
- SlideTile.prototype._scrollToNextTile = function (pause, backward, iNextTile) {
683
+ SlideTile.prototype._scrollToNextTile = function (pause, backward, iNextTile,bAvoidAriaUpdate) {
590
684
  var iTransitionTime = this._iCurrAnimationTime - this.getDisplayTime(),
591
685
  bFirstAnimation, iNxtTile, oWrapperFrom, oWrapperTo, sWidthFrom, fWidthTo, fWidthFrom, bChangeSizeBefore, sDir, oDir;
592
686
 
@@ -603,7 +697,7 @@ sap.ui.define([
603
697
  this._iCurrentTile = iNxtTile;
604
698
  }
605
699
 
606
- if (iNextTile >= 0) {
700
+ if (iNextTile && iNextTile >= 0) {
607
701
  this._iCurrentTile = iNextTile;
608
702
  }
609
703
 
@@ -676,26 +770,127 @@ sap.ui.define([
676
770
  }
677
771
 
678
772
  if (this.getTiles()[this._iCurrentTile]) {
679
- this._setAriaDescriptor();
773
+ this._setAriaDescriptor(bAvoidAriaUpdate);
680
774
  }
681
775
  this._updateTilesIndicator();
776
+ this._enableIndicatorScrolling(backward);
777
+ };
778
+
779
+ /**
780
+ * It adds an animation to the scroller when an indicator moves out of the boundary
781
+ *
782
+ * @private
783
+ * @param {boolean} bBackward Sets the direction backward or forward
784
+ */
785
+
786
+ SlideTile.prototype._enableIndicatorScrolling = function (bBackward) {
787
+ //If the bForward is set to null it means that the tile is in non-paused state
788
+ var bForward = (bBackward === undefined) ? null : !bBackward;
789
+ // Adding a delay to ensure that when the focus changes, the current ARIA text is read completely before the new one is read.
790
+ setTimeout(() => {
791
+ this._oLeftScroll.setEnabled((this._iCurrentTile === this._iIndexOfStartIndicator) ? false : true);
792
+ this._oRightScroll.setEnabled((this._iCurrentTile === this._iIndexOfEndIndicator) ? false : true);
793
+ }, 200);
794
+ var {overflow} = this._getIndicatorLastIndexInfo();
795
+ if (this._iCurrentTile === 0 && overflow) {
796
+ this._resetIndicator(true);
797
+ } else if (this._iCurrentTile === this._iIndexOfEndIndicator && overflow) {
798
+ this._resetIndicator(false);
799
+ } else if ( (bForward === null && this._iCurrentTile > this._iIndexOfVisibleEndIndicator) || (bForward && this._iCurrentTile > this._iIndexOfVisibleEndIndicator)) {
800
+ //Forward navigation that makes the next indicator visible from its hidden state
801
+ //The forward navigation occurs when the tile automatically moves right or when the user clicks on the right scroller button
802
+ //Both the scenarios are valid only when the active marker is at the indicator on the far right
803
+ this._iIndexOfVisibleEndIndicator++;
804
+ this._iIndexOfVisibleStartIndicator++;
805
+ this._iIndicatorScrolling -= INDICATOR_SIZE;
806
+ this._scrollIndicator();
807
+ } else if (!bForward && this._iCurrentTile < this._iIndexOfVisibleStartIndicator){
808
+ //Backward navigation that makes the previous indicator visible from its hidden state
809
+ //The backward navigation occurs when the user clicks on the left scroller button
810
+ //Both the scenarios are valid only when the active marker is at the indicator on the far left
811
+ this._iIndexOfVisibleEndIndicator--;
812
+ this._iIndexOfVisibleStartIndicator--;
813
+ this._iIndicatorScrolling += INDICATOR_SIZE;
814
+ this._scrollIndicator();
815
+ }
816
+ };
817
+
818
+ SlideTile.prototype.onfocusfail = function() {
819
+ setTimeout(() => {
820
+ var oScroll = (this._oLeftScroll.getEnabled()) ? this._oLeftScroll : this._oRightScroll;
821
+ this._focusToggled = true;
822
+ oScroll.getDomRef().focus();
823
+ }, 100);
824
+ };
825
+
826
+ /**
827
+ * It resets the indicator when it is present either at the starting tile or at the last tile
828
+ * @param {boolean} bStart True when the indicator is on the starting tile, and false when the indicator is on the last tile
829
+ * @private
830
+ */
831
+
832
+ SlideTile.prototype._resetIndicator = function(bStart) {
833
+ this._iIndexOfStartIndicator = 0;
834
+ this._iIndexOfEndIndicator = this.getTiles().length - 1;
835
+ var {index,overflow} = this._getIndicatorLastIndexInfo();
836
+ if (bStart) {
837
+ this._iIndexOfVisibleStartIndicator = 0;
838
+ this._iIndexOfVisibleEndIndicator = index;
839
+ this._iIndicatorScrolling = 0;
840
+ } else if (overflow){
841
+ //iScrolls calculates how many times the animation moves to the right before the last indicator becomes visible
842
+ var iScrolls = this._iIndexOfEndIndicator - index;
843
+ this._iIndicatorScrolling = -1 * INDICATOR_SIZE * iScrolls;
844
+ this._iIndexOfVisibleStartIndicator = this._iIndexOfEndIndicator - index;
845
+ this._iIndexOfVisibleEndIndicator = this._iIndexOfEndIndicator;
846
+ }
847
+ this._scrollIndicator();
848
+ };
849
+
850
+
851
+ /**
852
+ * The scrolling happens by the respective _iIndicatorScrolling value
853
+ * @private
854
+ */
855
+ SlideTile.prototype._scrollIndicator = function() {
856
+ for (var i = 0; i <= this._iIndexOfEndIndicator; i++) {
857
+ this.getDomRef("indicatorTap-" + i).style.transform = `translateX(${this._iIndicatorScrolling}px)`;
858
+ }
859
+ };
860
+
861
+
862
+ /**
863
+ * It returns the last visible indicator's index and if an overflow exists
864
+ * @private
865
+ * @returns {{index: number, overflow: boolean}} - The resulting object containing the index and overflow status
866
+ */
867
+ SlideTile.prototype._getIndicatorLastIndexInfo = function() {
868
+ var sTileType = this.getTiles()[0]?.getFrameType();
869
+ var sTileSize = this.getTiles()[0]?.getSizeBehavior();
870
+ if (sTileType === FrameType.TwoByOne || sTileType === FrameType.Stretch) {
871
+ return (this._iIndexOfEndIndicator > 4) ? {index: 4,overflow:true} : {index: this._iIndexOfEndIndicator,overflow:false};
872
+ } else if (sTileType === FrameType.OneByOne && (sTileSize === TileSizeBehavior.Small || this.getDomRef().classList.contains("sapMTileSmallPhone"))) {
873
+ return (this._iIndexOfEndIndicator > 2) ? {index: 2,overflow:true} : {index: this._iIndexOfEndIndicator,overflow:false};
874
+ } else if (sTileType === FrameType.OneByOne) {
875
+ return (this._iIndexOfEndIndicator > 3) ? {index: 3,overflow:true} : {index: this._iIndexOfEndIndicator,overflow:false};
876
+ }
877
+ return {};
682
878
  };
683
879
 
684
880
  /**
685
881
  * Sets the ARIA descriptor
686
882
  *
687
883
  * @private
884
+ * @param {boolean} bAvoidAriaUpdate decides whether the aria text should be updated
688
885
  */
689
- SlideTile.prototype._setAriaDescriptor = function () {
690
- var sText = "", sScope, aTiles, oCurrentTile,iTiles,sPrefixText,sState;
886
+ SlideTile.prototype._setAriaDescriptor = function (bAvoidAriaUpdate) {
887
+ if (bAvoidAriaUpdate) {
888
+ return;
889
+ }
890
+ var sText = "", aTiles,
691
891
  sScope = this.getScope();
692
892
  aTiles = this.getTiles();
693
- iTiles = aTiles.length;
694
- sState = (this._bAnimationPause) ? "SLIDETILE_INSTANCE_FOCUS_PAUSE" : "SLIDETILE_INSTANCE_FOCUS_SCROLL";
695
- sPrefixText = this._oRb.getText(sState,[this._iCurrentTile + 1,iTiles]);
696
- sText += sPrefixText;
697
- oCurrentTile = aTiles[this._iCurrentTile];
698
- sText += oCurrentTile._getAriaText(true).replace(/\s/g, " ");// Gets Tile's ARIA text and collapses whitespaces
893
+ sText += this._getPrefixText();
699
894
 
700
895
  if (sScope === GenericTileScope.Actions) {
701
896
  sText = this._oRb.getText("GENERICTILE_ACTIONS_ARIA_TEXT") + "\n" + sText;
@@ -708,6 +903,33 @@ sap.ui.define([
708
903
  }
709
904
  }
710
905
  sText += "\n" + this._oRb.getText("SLIDETILE_ACTIVATE");
906
+ this._setInvisibleText(sText);
907
+ };
908
+
909
+ /**
910
+ * Gets the text which includes the GenericTile information and state
911
+ * @returns {String} Returns the text which includes the information of the currently focused tile
912
+ * @private
913
+ */
914
+ SlideTile.prototype._getPrefixText = function(bPause) {
915
+ var sText = "", aTiles, oCurrentTile,iTiles,sPrefixText,sState;
916
+ aTiles = this.getTiles();
917
+ iTiles = aTiles.length;
918
+ sState = (bPause || this._bAnimationPause) ? "SLIDETILE_INSTANCE_FOCUS_PAUSE" : "SLIDETILE_INSTANCE_FOCUS_SCROLL";
919
+ sPrefixText = this._oRb.getText(sState,[this._iCurrentTile + 1,iTiles]);
920
+ sText += sPrefixText;
921
+ oCurrentTile = aTiles[this._iCurrentTile];
922
+ sText += oCurrentTile._getAriaText(true).replace(/\s/g, " ");// Gets Tile's ARIA text and collapses whitespaces
923
+ return sText;
924
+ };
925
+
926
+ /**
927
+ * Sets the text for the InvisibleText
928
+ *
929
+ * @private
930
+ * @param {boolean} sText Text to be updated inside
931
+ */
932
+ SlideTile.prototype._setInvisibleText = function(sText) {
711
933
  this.getAggregation("_invisibleText").setText(sText);
712
934
  };
713
935
 
@@ -101,13 +101,25 @@ sap.ui.define(['./library', "sap/base/security/encodeCSS"],
101
101
 
102
102
  oRm.openStart("div", oControl.getId() + "-tilesIndicator");
103
103
  oRm.class("sapMSTBulleted");
104
+ oRm.class("sapUiSizeCompact");
105
+ oRm.openEnd();
106
+ oRm.renderControl(oControl._oLeftScroll);
107
+ oRm.openStart("div", oControl.getId() + "-tilesWrapper");
108
+ oRm.class("sapMSTIndicatorWrapper");
104
109
  oRm.openEnd();
105
110
  for ( var i = 0; i < iPageCount; i++) {
111
+ oRm.openStart("div",oControl.getId() + "-indicatorTap-" + i);
112
+ oRm.class("sapMSTIndicatorTapArea");
113
+ oRm.openEnd();
106
114
  oRm.openStart("span", oControl.getId() + "-tileIndicator-" + i );
115
+ oRm.class("sapMSTIndicator");
107
116
  oRm.openEnd();
108
117
  oRm.close("span");
118
+ oRm.close("div");
109
119
  }
110
120
  oRm.close("div");
121
+ oRm.renderControl(oControl._oRightScroll);
122
+ oRm.close("div");
111
123
  };
112
124
 
113
125
  SlideTileRenderer._renderPausePlayIcon = function(oRm, oControl) {
@@ -104,7 +104,7 @@ function(
104
104
  * @borrows sap.ui.core.ISemanticFormContent.getFormRenderAsControl as #getFormRenderAsControl
105
105
  *
106
106
  * @author SAP SE
107
- * @version 1.128.0
107
+ * @version 1.129.0
108
108
  *
109
109
  * @constructor
110
110
  * @public
@@ -42,7 +42,7 @@ function(
42
42
  * @extends sap.m.SliderTooltipBase
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.128.0
45
+ * @version 1.129.0
46
46
  *
47
47
  * @constructor
48
48
  * @private
@@ -21,7 +21,7 @@ function(Control, Library, SliderTooltipBaseRenderer) {
21
21
  * @abstract
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.128.0
24
+ * @version 1.129.0
25
25
  *
26
26
  * @constructor
27
27
  * @public
@@ -39,7 +39,7 @@ function(
39
39
  * @extends sap.ui.core.Control
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.128.0
42
+ * @version 1.129.0
43
43
  *
44
44
  * @constructor
45
45
  * @private
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.m.SplitContainer
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.128.0
39
+ * @version 1.129.0
40
40
  *
41
41
  * @constructor
42
42
  * @public
@@ -48,7 +48,7 @@ function(
48
48
  * @extends sap.ui.core.Control
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.128.0
51
+ * @version 1.129.0
52
52
  *
53
53
  * @constructor
54
54
  * @private
@@ -155,8 +155,9 @@ function(
155
155
 
156
156
  $textButtonRef.attr("tabindex", "-1");
157
157
  $arrowButtonRef.attr("tabindex", "-1");
158
- $textButtonRef.removeAttr("title");
159
- $arrowButtonRef.removeAttr("title");
158
+ if (this.getTooltip()) {
159
+ $textButtonRef.removeAttr("title");
160
+ }
160
161
  $textButtonRef.removeAttr("aria-describedby");
161
162
  $arrowButtonRef.removeAttr("aria-describedby");
162
163
  };
@@ -88,7 +88,7 @@ function(
88
88
  *
89
89
  * @extends sap.ui.core.Control
90
90
  * @author SAP SE
91
- * @version 1.128.0
91
+ * @version 1.129.0
92
92
  *
93
93
  * @constructor
94
94
  * @public
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.m.DynamicDateOption
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.128.0
49
+ * @version 1.129.0
50
50
  *
51
51
  * @private
52
52
  * @alias sap.m.StandardDynamicDateOption
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @extends sap.m.ListItemBase
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.128.0
42
+ * @version 1.129.0
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @extends sap.m.Tile
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.128.0
38
+ * @version 1.129.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.m.TreeItemBase
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.128.0
29
+ * @version 1.129.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -121,7 +121,7 @@ function(
121
121
  * @implements sap.ui.core.IFormContent
122
122
  *
123
123
  * @author SAP SE
124
- * @version 1.128.0
124
+ * @version 1.129.0
125
125
  *
126
126
  * @constructor
127
127
  * @public
@@ -753,16 +753,16 @@ function(
753
753
  if (bHasValidationErrorListeners && sBindingConstraintMax) {
754
754
  return;
755
755
  }
756
- sMessage = oCoreMessageBundle.getText("EnterNumberMax", [max]);
756
+ sMessage = this.getValueStateText() ? this.getValueStateText() : oCoreMessageBundle.getText("EnterNumberMax", [max]);
757
757
  aViolatedConstraints.push("maximum");
758
758
  } else if (this._isLessThanMin(value)) {
759
759
  if (bHasValidationErrorListeners && sBindingConstraintMin) {
760
760
  return;
761
761
  }
762
- sMessage = oCoreMessageBundle.getText("EnterNumberMin", [min]);
762
+ sMessage = this.getValueStateText() ? this.getValueStateText() : oCoreMessageBundle.getText("EnterNumberMin", [min]);
763
763
  aViolatedConstraints.push("minimum");
764
764
  } else if (this._areFoldChangeRequirementsFulfilled() && (value % this.getStep() !== 0)) {
765
- sMessage = oCoreMessageBundle.getText("Float.Invalid");
765
+ sMessage = this.getValueStateText() ? this.getValueStateText() : oCoreMessageBundle.getText("Float.Invalid");
766
766
  }
767
767
 
768
768
  if (sMessage) {
@@ -22,7 +22,7 @@ sap.ui.define(['./library', 'sap/ui/core/Item', 'sap/ui/core/IconPool'],
22
22
  * @extends sap.ui.core.Item
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.128.0
25
+ * @version 1.129.0
26
26
  * @since 1.34
27
27
  *
28
28
  * @constructor
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @alias sap.m.SuggestionsPopover
53
53
  *
54
54
  * @author SAP SE
55
- * @version 1.128.0
55
+ * @version 1.129.0
56
56
  */
57
57
  var SuggestionsPopover = EventProvider.extend("sap.m.SuggestionsPopover", /** @lends sap.m.SuggestionsPopover.prototype */ {
58
58