@openui5/sap.m 1.103.1 → 1.106.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 (494) hide show
  1. package/.eslintrc.json +2 -3
  2. package/.reuse/dep5 +35 -15
  3. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  4. package/THIRDPARTY.txt +64 -21
  5. package/package.json +4 -4
  6. package/src/sap/m/.library +17 -1
  7. package/src/sap/m/AccButton.js +1 -1
  8. package/src/sap/m/ActionListItem.js +1 -1
  9. package/src/sap/m/ActionSelect.js +1 -1
  10. package/src/sap/m/ActionSheet.js +1 -1
  11. package/src/sap/m/App.js +2 -3
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +2 -2
  14. package/src/sap/m/BadgeEnabler.js +1 -2
  15. package/src/sap/m/Bar.js +11 -10
  16. package/src/sap/m/Breadcrumbs.js +2 -2
  17. package/src/sap/m/BusyDialog.js +1 -1
  18. package/src/sap/m/BusyIndicator.js +1 -1
  19. package/src/sap/m/Button.js +49 -10
  20. package/src/sap/m/ButtonRenderer.js +10 -2
  21. package/src/sap/m/Carousel.js +3 -4
  22. package/src/sap/m/CarouselLayout.js +1 -1
  23. package/src/sap/m/CarouselRenderer.js +3 -3
  24. package/src/sap/m/CheckBox.js +46 -6
  25. package/src/sap/m/CheckBoxRenderer.js +1 -0
  26. package/src/sap/m/ColorPalette.js +1 -1
  27. package/src/sap/m/ColorPalettePopover.js +1 -1
  28. package/src/sap/m/Column.js +5 -5
  29. package/src/sap/m/ColumnHeaderPopover.js +5 -7
  30. package/src/sap/m/ColumnListItem.js +1 -4
  31. package/src/sap/m/ColumnListItemRenderer.js +1 -2
  32. package/src/sap/m/ColumnPopoverActionItem.js +3 -3
  33. package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
  34. package/src/sap/m/ColumnPopoverItem.js +3 -3
  35. package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
  36. package/src/sap/m/ColumnPopoverSortItem.js +3 -3
  37. package/src/sap/m/ComboBox.js +6 -5
  38. package/src/sap/m/ComboBoxBase.js +3 -7
  39. package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
  40. package/src/sap/m/ComboBoxTextField.js +1 -7
  41. package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
  42. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  43. package/src/sap/m/CustomListItem.js +1 -1
  44. package/src/sap/m/CustomTile.js +1 -1
  45. package/src/sap/m/CustomTreeItem.js +3 -3
  46. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  47. package/src/sap/m/DatePicker.js +16 -26
  48. package/src/sap/m/DateRangeSelection.js +45 -38
  49. package/src/sap/m/DateTimeField.js +87 -20
  50. package/src/sap/m/DateTimeInput.js +1 -1
  51. package/src/sap/m/DateTimePicker.js +58 -32
  52. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  53. package/src/sap/m/Dialog.js +44 -2
  54. package/src/sap/m/DisplayListItem.js +1 -1
  55. package/src/sap/m/DraftIndicator.js +1 -1
  56. package/src/sap/m/DynamicDate.js +1 -1
  57. package/src/sap/m/DynamicDateFormat.js +2 -5
  58. package/src/sap/m/DynamicDateOption.js +43 -16
  59. package/src/sap/m/DynamicDateRange.js +49 -7
  60. package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
  61. package/src/sap/m/DynamicDateUtil.js +23 -2
  62. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  63. package/src/sap/m/ExpandableText.js +1 -1
  64. package/src/sap/m/FacetFilter.js +2 -2
  65. package/src/sap/m/FacetFilterItem.js +1 -1
  66. package/src/sap/m/FacetFilterList.js +4 -4
  67. package/src/sap/m/FeedContent.js +1 -1
  68. package/src/sap/m/FeedInput.js +1 -1
  69. package/src/sap/m/FeedListItem.js +1 -1
  70. package/src/sap/m/FeedListItemAction.js +1 -1
  71. package/src/sap/m/Fiori20Adapter.js +2 -2
  72. package/src/sap/m/FlexBox.js +1 -1
  73. package/src/sap/m/FlexItemData.js +1 -1
  74. package/src/sap/m/FormattedText.js +1 -1
  75. package/src/sap/m/GenericTag.js +1 -1
  76. package/src/sap/m/GenericTile.js +116 -23
  77. package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
  78. package/src/sap/m/GenericTileRenderer.js +23 -10
  79. package/src/sap/m/GroupHeaderListItem.js +1 -1
  80. package/src/sap/m/GrowingEnablement.js +60 -36
  81. package/src/sap/m/GrowingList.js +1 -1
  82. package/src/sap/m/HBox.js +1 -1
  83. package/src/sap/m/HeaderContainer.js +34 -32
  84. package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
  85. package/src/sap/m/IconTabBar.js +54 -22
  86. package/src/sap/m/IconTabBarSelectList.js +1 -1
  87. package/src/sap/m/IconTabFilter.js +1 -1
  88. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  89. package/src/sap/m/IconTabHeader.js +6 -19
  90. package/src/sap/m/IconTabSeparator.js +1 -1
  91. package/src/sap/m/IllustratedMessage.js +98 -25
  92. package/src/sap/m/IllustratedMessageRenderer.js +10 -6
  93. package/src/sap/m/Illustration.js +8 -1
  94. package/src/sap/m/IllustrationPool.js +1 -0
  95. package/src/sap/m/IllustrationRenderer.js +2 -1
  96. package/src/sap/m/Image.js +73 -3
  97. package/src/sap/m/ImageContent.js +1 -1
  98. package/src/sap/m/ImageRenderer.js +66 -2
  99. package/src/sap/m/Input.js +62 -7
  100. package/src/sap/m/InputBase.js +1 -1
  101. package/src/sap/m/InputBaseRenderer.js +2 -2
  102. package/src/sap/m/InputListItem.js +1 -1
  103. package/src/sap/m/InputRenderer.js +4 -0
  104. package/src/sap/m/InstanceManager.js +6 -6
  105. package/src/sap/m/Label.js +34 -4
  106. package/src/sap/m/LabelRenderer.js +7 -2
  107. package/src/sap/m/LightBox.js +2 -2
  108. package/src/sap/m/LightBoxItem.js +1 -1
  109. package/src/sap/m/Link.js +74 -10
  110. package/src/sap/m/LinkRenderer.js +26 -12
  111. package/src/sap/m/List.js +38 -1
  112. package/src/sap/m/ListBase.js +109 -44
  113. package/src/sap/m/ListBaseRenderer.js +7 -15
  114. package/src/sap/m/ListItemBase.js +40 -11
  115. package/src/sap/m/ListItemBaseRenderer.js +17 -6
  116. package/src/sap/m/ListRenderer.js +2 -2
  117. package/src/sap/m/MaskEnabler.js +52 -2
  118. package/src/sap/m/MaskInput.js +23 -1
  119. package/src/sap/m/MaskInputRule.js +1 -1
  120. package/src/sap/m/Menu.js +1 -1
  121. package/src/sap/m/MenuButton.js +1 -1
  122. package/src/sap/m/MenuItem.js +1 -1
  123. package/src/sap/m/MenuListItem.js +1 -1
  124. package/src/sap/m/MessageBox.js +1 -1
  125. package/src/sap/m/MessageItem.js +3 -4
  126. package/src/sap/m/MessageListItem.js +10 -6
  127. package/src/sap/m/MessagePage.js +1 -1
  128. package/src/sap/m/MessagePopover.js +4 -1
  129. package/src/sap/m/MessagePopoverItem.js +1 -1
  130. package/src/sap/m/MessageStrip.js +1 -1
  131. package/src/sap/m/MessageToast.js +1 -1
  132. package/src/sap/m/MessageView.js +1 -1
  133. package/src/sap/m/MultiComboBox.js +5 -16
  134. package/src/sap/m/MultiEditField.js +1 -1
  135. package/src/sap/m/MultiInput.js +1 -15
  136. package/src/sap/m/NavContainer.js +21 -19
  137. package/src/sap/m/NewsContent.js +2 -3
  138. package/src/sap/m/NotificationList.js +1 -1
  139. package/src/sap/m/NotificationListBase.js +1 -1
  140. package/src/sap/m/NotificationListGroup.js +3 -7
  141. package/src/sap/m/NotificationListGroupRenderer.js +1 -1
  142. package/src/sap/m/NotificationListItem.js +1 -1
  143. package/src/sap/m/NumericContent.js +1 -1
  144. package/src/sap/m/NumericInput.js +1 -1
  145. package/src/sap/m/ObjectAttribute.js +1 -1
  146. package/src/sap/m/ObjectHeader.js +3 -3
  147. package/src/sap/m/ObjectIdentifier.js +8 -5
  148. package/src/sap/m/ObjectListItem.js +7 -1
  149. package/src/sap/m/ObjectMarker.js +1 -1
  150. package/src/sap/m/ObjectNumber.js +2 -3
  151. package/src/sap/m/ObjectNumberRenderer.js +10 -3
  152. package/src/sap/m/ObjectStatus.js +2 -3
  153. package/src/sap/m/ObjectStatusRenderer.js +2 -2
  154. package/src/sap/m/OverflowToolbar.js +3 -8
  155. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  156. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
  157. package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
  158. package/src/sap/m/OverflowToolbarButton.js +2 -2
  159. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  160. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  161. package/src/sap/m/P13nAnyFilterItem.js +3 -3
  162. package/src/sap/m/P13nColumnsItem.js +3 -3
  163. package/src/sap/m/P13nColumnsPanel.js +3 -3
  164. package/src/sap/m/P13nConditionPanel.js +10 -3
  165. package/src/sap/m/P13nDialog.js +3 -3
  166. package/src/sap/m/P13nDimMeasureItem.js +3 -3
  167. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  168. package/src/sap/m/P13nFilterItem.js +3 -3
  169. package/src/sap/m/P13nFilterPanel.js +3 -3
  170. package/src/sap/m/P13nGroupItem.js +3 -3
  171. package/src/sap/m/P13nGroupPanel.js +3 -3
  172. package/src/sap/m/P13nItem.js +3 -3
  173. package/src/sap/m/P13nOperationsHelper.js +2 -2
  174. package/src/sap/m/P13nPanel.js +3 -3
  175. package/src/sap/m/P13nSelectionItem.js +3 -3
  176. package/src/sap/m/P13nSelectionPanel.js +3 -3
  177. package/src/sap/m/P13nSortItem.js +3 -3
  178. package/src/sap/m/P13nSortPanel.js +3 -3
  179. package/src/sap/m/PDFViewer.js +2 -2
  180. package/src/sap/m/PDFViewerRenderer.js +1 -0
  181. package/src/sap/m/Page.js +1 -3
  182. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  183. package/src/sap/m/PagingButton.js +1 -1
  184. package/src/sap/m/Panel.js +1 -1
  185. package/src/sap/m/PlanningCalendar.js +4 -16
  186. package/src/sap/m/PlanningCalendarHeader.js +1 -5
  187. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  188. package/src/sap/m/PlanningCalendarRow.js +1 -1
  189. package/src/sap/m/PlanningCalendarView.js +1 -1
  190. package/src/sap/m/Popover.js +11 -4
  191. package/src/sap/m/ProgressIndicator.js +1 -1
  192. package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
  193. package/src/sap/m/PullToRefresh.js +1 -1
  194. package/src/sap/m/QuickView.js +3 -3
  195. package/src/sap/m/QuickViewBase.js +3 -3
  196. package/src/sap/m/QuickViewCard.js +3 -3
  197. package/src/sap/m/QuickViewGroup.js +1 -1
  198. package/src/sap/m/QuickViewGroupElement.js +3 -3
  199. package/src/sap/m/QuickViewPage.js +3 -3
  200. package/src/sap/m/RadioButton.js +47 -20
  201. package/src/sap/m/RadioButtonGroup.js +29 -26
  202. package/src/sap/m/RangeSlider.js +1 -3
  203. package/src/sap/m/RatingIndicator.js +8 -1
  204. package/src/sap/m/RatingIndicatorRenderer.js +13 -4
  205. package/src/sap/m/ResponsivePopover.js +3 -3
  206. package/src/sap/m/ResponsiveScale.js +1 -1
  207. package/src/sap/m/ScrollBar.js +1 -1
  208. package/src/sap/m/ScrollContainer.js +1 -1
  209. package/src/sap/m/SearchField.js +1 -1
  210. package/src/sap/m/SearchFieldRenderer.js +1 -0
  211. package/src/sap/m/SegmentedButton.js +1 -1
  212. package/src/sap/m/SegmentedButtonItem.js +1 -1
  213. package/src/sap/m/Select.js +8 -14
  214. package/src/sap/m/SelectDialog.js +2 -1
  215. package/src/sap/m/SelectDialogBase.js +1 -1
  216. package/src/sap/m/SelectList.js +1 -1
  217. package/src/sap/m/SelectListRenderer.js +2 -2
  218. package/src/sap/m/SelectionDetails.js +2 -2
  219. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  220. package/src/sap/m/SelectionDetailsItem.js +1 -1
  221. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  222. package/src/sap/m/Shell.js +1 -1
  223. package/src/sap/m/SimpleFixFlex.js +1 -1
  224. package/src/sap/m/SinglePlanningCalendar.js +7 -9
  225. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  226. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
  227. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  228. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
  229. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  230. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  231. package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
  232. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  233. package/src/sap/m/SlideTile.js +30 -5
  234. package/src/sap/m/Slider.js +1 -1
  235. package/src/sap/m/SliderTooltip.js +1 -3
  236. package/src/sap/m/SliderTooltipBase.js +1 -1
  237. package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
  238. package/src/sap/m/SliderTooltipContainer.js +1 -1
  239. package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
  240. package/src/sap/m/SliderTooltipRenderer.js +2 -2
  241. package/src/sap/m/SplitApp.js +1 -1
  242. package/src/sap/m/SplitButton.js +1 -3
  243. package/src/sap/m/SplitContainer.js +3 -7
  244. package/src/sap/m/StandardDynamicDateOption.js +9 -15
  245. package/src/sap/m/StandardListItem.js +1 -1
  246. package/src/sap/m/StandardListItemRenderer.js +2 -2
  247. package/src/sap/m/StandardTile.js +1 -1
  248. package/src/sap/m/StandardTreeItem.js +1 -1
  249. package/src/sap/m/StepInput.js +1 -1
  250. package/src/sap/m/SuggestionItem.js +1 -1
  251. package/src/sap/m/SuggestionsPopover.js +4 -2
  252. package/src/sap/m/Switch.js +1 -1
  253. package/src/sap/m/TabContainer.js +1 -1
  254. package/src/sap/m/TabContainerItem.js +1 -1
  255. package/src/sap/m/TabStrip.js +1 -1
  256. package/src/sap/m/TabStripItem.js +1 -1
  257. package/src/sap/m/Table.js +11 -9
  258. package/src/sap/m/TablePersoController.js +1 -1
  259. package/src/sap/m/TablePersoDialog.js +6 -15
  260. package/src/sap/m/TablePersoProvider.js +1 -1
  261. package/src/sap/m/TableRenderer.js +2 -9
  262. package/src/sap/m/TableSelectDialog.js +1 -1
  263. package/src/sap/m/Text.js +1 -1
  264. package/src/sap/m/TextArea.js +1 -1
  265. package/src/sap/m/TextAreaRenderer.js +1 -2
  266. package/src/sap/m/Tile.js +1 -1
  267. package/src/sap/m/TileContainer.js +1 -1
  268. package/src/sap/m/TileContent.js +8 -9
  269. package/src/sap/m/TileContentRenderer.js +3 -3
  270. package/src/sap/m/TimePicker.js +45 -8
  271. package/src/sap/m/TimePickerClock.js +2 -3
  272. package/src/sap/m/TimePickerClocks.js +5 -3
  273. package/src/sap/m/TimePickerClocksRenderer.js +4 -2
  274. package/src/sap/m/TimePickerInputs.js +1 -1
  275. package/src/sap/m/TimePickerInputsRenderer.js +1 -1
  276. package/src/sap/m/TimePickerInternals.js +1 -1
  277. package/src/sap/m/TimePickerSlider.js +1 -1
  278. package/src/sap/m/TimePickerSliders.js +3 -5
  279. package/src/sap/m/Title.js +1 -1
  280. package/src/sap/m/TitlePropagationSupport.js +1 -1
  281. package/src/sap/m/ToggleButton.js +2 -2
  282. package/src/sap/m/Token.js +1 -3
  283. package/src/sap/m/Tokenizer.js +1 -1
  284. package/src/sap/m/Toolbar.js +1 -1
  285. package/src/sap/m/ToolbarLayoutData.js +1 -1
  286. package/src/sap/m/ToolbarSeparator.js +1 -1
  287. package/src/sap/m/ToolbarSpacer.js +1 -1
  288. package/src/sap/m/Tree.js +8 -1
  289. package/src/sap/m/TreeItemBase.js +1 -1
  290. package/src/sap/m/TreeRenderer.js +0 -10
  291. package/src/sap/m/UploadCollection.js +2 -2
  292. package/src/sap/m/UploadCollectionItem.js +1 -1
  293. package/src/sap/m/UploadCollectionParameter.js +1 -1
  294. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  295. package/src/sap/m/VBox.js +1 -1
  296. package/src/sap/m/ValueStateHeader.js +1 -1
  297. package/src/sap/m/VariantItem.js +160 -0
  298. package/src/sap/m/VariantManagement.js +717 -571
  299. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  300. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  301. package/src/sap/m/ViewSettingsDialog.js +1 -1
  302. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  303. package/src/sap/m/ViewSettingsItem.js +1 -1
  304. package/src/sap/m/VisibleItem.js +1 -1
  305. package/src/sap/m/WheelSlider.js +1 -1
  306. package/src/sap/m/WheelSliderContainer.js +1 -1
  307. package/src/sap/m/Wizard.js +10 -3
  308. package/src/sap/m/WizardProgressNavigator.js +1 -1
  309. package/src/sap/m/WizardStep.js +3 -1
  310. package/src/sap/m/_thirdparty/purify.js +1622 -0
  311. package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
  312. package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
  313. package/src/sap/m/changeHandler/CombineButtons.js +19 -22
  314. package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
  315. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
  316. package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
  317. package/src/sap/m/delegate/DateNavigation.js +0 -4
  318. package/src/sap/m/designtime/Link.designtime.js +19 -11
  319. package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
  320. package/src/sap/m/flexibility/EngineFlex.js +48 -0
  321. package/src/sap/m/inputUtils/selectionRange.js +1 -2
  322. package/src/sap/m/library.js +60 -7
  323. package/src/sap/m/messagebundle.properties +57 -6
  324. package/src/sap/m/messagebundle_ar.properties +39 -9
  325. package/src/sap/m/messagebundle_bg.properties +33 -3
  326. package/src/sap/m/messagebundle_ca.properties +32 -2
  327. package/src/sap/m/messagebundle_cs.properties +32 -2
  328. package/src/sap/m/messagebundle_cy.properties +34 -4
  329. package/src/sap/m/messagebundle_da.properties +32 -2
  330. package/src/sap/m/messagebundle_de.properties +32 -2
  331. package/src/sap/m/messagebundle_el.properties +35 -5
  332. package/src/sap/m/messagebundle_en.properties +34 -4
  333. package/src/sap/m/messagebundle_en_GB.properties +34 -4
  334. package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
  335. package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
  336. package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
  337. package/src/sap/m/messagebundle_es.properties +33 -3
  338. package/src/sap/m/messagebundle_es_MX.properties +32 -2
  339. package/src/sap/m/messagebundle_et.properties +32 -2
  340. package/src/sap/m/messagebundle_fi.properties +36 -6
  341. package/src/sap/m/messagebundle_fr.properties +33 -3
  342. package/src/sap/m/messagebundle_fr_CA.properties +34 -4
  343. package/src/sap/m/messagebundle_hi.properties +34 -4
  344. package/src/sap/m/messagebundle_hr.properties +36 -6
  345. package/src/sap/m/messagebundle_hu.properties +34 -4
  346. package/src/sap/m/messagebundle_id.properties +34 -4
  347. package/src/sap/m/messagebundle_it.properties +33 -3
  348. package/src/sap/m/messagebundle_iw.properties +34 -4
  349. package/src/sap/m/messagebundle_ja.properties +33 -3
  350. package/src/sap/m/messagebundle_kk.properties +32 -2
  351. package/src/sap/m/messagebundle_ko.properties +40 -10
  352. package/src/sap/m/messagebundle_lt.properties +32 -2
  353. package/src/sap/m/messagebundle_lv.properties +32 -2
  354. package/src/sap/m/messagebundle_ms.properties +33 -3
  355. package/src/sap/m/messagebundle_nl.properties +46 -16
  356. package/src/sap/m/messagebundle_no.properties +34 -4
  357. package/src/sap/m/messagebundle_pl.properties +33 -3
  358. package/src/sap/m/messagebundle_pt.properties +37 -7
  359. package/src/sap/m/messagebundle_pt_PT.properties +32 -2
  360. package/src/sap/m/messagebundle_ro.properties +33 -3
  361. package/src/sap/m/messagebundle_ru.properties +33 -3
  362. package/src/sap/m/messagebundle_sh.properties +33 -3
  363. package/src/sap/m/messagebundle_sk.properties +32 -2
  364. package/src/sap/m/messagebundle_sl.properties +33 -3
  365. package/src/sap/m/messagebundle_sv.properties +32 -2
  366. package/src/sap/m/messagebundle_th.properties +65 -35
  367. package/src/sap/m/messagebundle_tr.properties +36 -6
  368. package/src/sap/m/messagebundle_uk.properties +33 -3
  369. package/src/sap/m/messagebundle_vi.properties +33 -3
  370. package/src/sap/m/messagebundle_zh_CN.properties +33 -3
  371. package/src/sap/m/messagebundle_zh_TW.properties +32 -2
  372. package/src/sap/m/p13n/AbstractContainer.js +7 -7
  373. package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
  374. package/src/sap/m/p13n/BasePanel.js +24 -13
  375. package/src/sap/m/p13n/Container.js +3 -3
  376. package/src/sap/m/p13n/Engine.js +1254 -0
  377. package/src/sap/m/p13n/FlexUtil.js +161 -0
  378. package/src/sap/m/p13n/GroupController.js +145 -0
  379. package/src/sap/m/p13n/GroupPanel.js +12 -5
  380. package/src/sap/m/p13n/MetadataHelper.js +35 -0
  381. package/src/sap/m/p13n/PersistenceProvider.js +160 -0
  382. package/src/sap/m/p13n/Popup.js +49 -12
  383. package/src/sap/m/p13n/QueryPanel.js +3 -3
  384. package/src/sap/m/p13n/SelectionController.js +548 -0
  385. package/src/sap/m/p13n/SelectionPanel.js +23 -5
  386. package/src/sap/m/p13n/SortController.js +153 -0
  387. package/src/sap/m/p13n/SortPanel.js +15 -5
  388. package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
  389. package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
  390. package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
  391. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
  392. package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
  393. package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
  394. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
  395. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
  396. package/src/sap/m/p13n/modules/UIManager.js +230 -0
  397. package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
  398. package/src/sap/m/plugins/CellSelector.js +741 -0
  399. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  400. package/src/sap/m/plugins/DataStateIndicator.js +2 -2
  401. package/src/sap/m/plugins/PasteProvider.js +1 -1
  402. package/src/sap/m/plugins/PluginBase.js +4 -3
  403. package/src/sap/m/rules/CheckBox.support.js +1 -1
  404. package/src/sap/m/rules/Image.support.js +1 -1
  405. package/src/sap/m/rules/Link.support.js +1 -1
  406. package/src/sap/m/rules/MessagePage.support.js +1 -1
  407. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  408. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  409. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  410. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  411. package/src/sap/m/rules/Panel.support.js +1 -1
  412. package/src/sap/m/rules/Select.support.js +1 -1
  413. package/src/sap/m/rules/Table.support.js +3 -3
  414. package/src/sap/m/semantic/AddAction.js +1 -1
  415. package/src/sap/m/semantic/CancelAction.js +1 -1
  416. package/src/sap/m/semantic/DeleteAction.js +1 -1
  417. package/src/sap/m/semantic/DetailPage.js +1 -1
  418. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  419. package/src/sap/m/semantic/EditAction.js +1 -1
  420. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  421. package/src/sap/m/semantic/FilterAction.js +1 -1
  422. package/src/sap/m/semantic/FilterSelect.js +1 -1
  423. package/src/sap/m/semantic/FlagAction.js +1 -1
  424. package/src/sap/m/semantic/ForwardAction.js +1 -1
  425. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  426. package/src/sap/m/semantic/GroupAction.js +1 -1
  427. package/src/sap/m/semantic/GroupSelect.js +1 -1
  428. package/src/sap/m/semantic/MainAction.js +1 -1
  429. package/src/sap/m/semantic/MasterPage.js +1 -1
  430. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  431. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  432. package/src/sap/m/semantic/NegativeAction.js +1 -1
  433. package/src/sap/m/semantic/OpenInAction.js +1 -1
  434. package/src/sap/m/semantic/PositiveAction.js +1 -1
  435. package/src/sap/m/semantic/PrintAction.js +1 -1
  436. package/src/sap/m/semantic/SaveAction.js +1 -1
  437. package/src/sap/m/semantic/Segment.js +1 -1
  438. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  439. package/src/sap/m/semantic/SemanticButton.js +1 -1
  440. package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
  441. package/src/sap/m/semantic/SemanticControl.js +1 -1
  442. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  443. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  444. package/src/sap/m/semantic/SemanticPage.js +1 -1
  445. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  446. package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
  447. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  448. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  449. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  450. package/src/sap/m/semantic/ShareMenu.js +1 -1
  451. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  452. package/src/sap/m/semantic/SortAction.js +1 -1
  453. package/src/sap/m/semantic/SortSelect.js +1 -1
  454. package/src/sap/m/table/Util.js +30 -11
  455. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  456. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  457. package/src/sap/m/table/columnmenu/Item.js +1 -1
  458. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  459. package/src/sap/m/table/columnmenu/Menu.js +50 -13
  460. package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
  461. package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
  462. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
  463. package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
  464. package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
  465. package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
  466. package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
  467. package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
  468. package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
  469. package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
  470. package/src/sap/m/themes/base/Button.less +0 -1
  471. package/src/sap/m/themes/base/Carousel.less +8 -8
  472. package/src/sap/m/themes/base/CellSelector.less +9 -0
  473. package/src/sap/m/themes/base/CheckBox.less +1 -0
  474. package/src/sap/m/themes/base/Dialog.less +1 -0
  475. package/src/sap/m/themes/base/DisplayListItem.less +3 -3
  476. package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
  477. package/src/sap/m/themes/base/FeedContent.less +13 -5
  478. package/src/sap/m/themes/base/GenericTile.less +56 -9
  479. package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
  480. package/src/sap/m/themes/base/NewsContent.less +6 -0
  481. package/src/sap/m/themes/base/NumericContent.less +1 -1
  482. package/src/sap/m/themes/base/ObjectStatus.less +2 -1
  483. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
  484. package/src/sap/m/themes/base/SelectList.less +0 -5
  485. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
  486. package/src/sap/m/themes/base/SlideTile.less +35 -4
  487. package/src/sap/m/themes/base/Table.less +11 -2
  488. package/src/sap/m/themes/base/TileContent.less +17 -0
  489. package/src/sap/m/themes/base/library.source.less +1 -0
  490. package/src/sap/m/upload/UploadSet.js +300 -23
  491. package/src/sap/m/upload/UploadSetItem.js +18 -7
  492. package/src/sap/m/upload/UploadSetRenderer.js +8 -16
  493. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  494. package/src/sap/m/upload/Uploader.js +1 -2
@@ -64,7 +64,7 @@ function(
64
64
  * @implements sap.ui.core.IFormContent
65
65
  *
66
66
  * @author SAP SE
67
- * @version 1.103.1
67
+ * @version 1.106.0
68
68
  *
69
69
  * @constructor
70
70
  * @public
@@ -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(['sap/ui/core/Renderer', 'sap/ui/core/Core', 'sap/ui/core/library', 'sap/ui/core/ValueStateSupport', 'sap/ui/core/LabelEnablement', 'sap/ui/Device'],
8
- function(Renderer, Core, coreLibrary, ValueStateSupport, LabelEnablement, Device) {
7
+ sap.ui.define(['sap/ui/core/Renderer', 'sap/ui/core/Core', 'sap/ui/core/library', 'sap/ui/core/ValueStateSupport', 'sap/ui/Device'],
8
+ function(Renderer, Core, coreLibrary, ValueStateSupport, Device) {
9
9
  "use strict";
10
10
 
11
11
  // shortcut for sap.ui.core.TextDirection
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.103.1
33
+ * @version 1.106.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -72,6 +72,10 @@ sap.ui.define(['sap/ui/core/InvisibleText', 'sap/ui/core/Renderer', './InputBase
72
72
  }
73
73
  };
74
74
 
75
+ InputRenderer.writeOuterAttributes = function (oRm, oControl) {
76
+ oRm.attr("data-ui5-accesskey", oControl.getProperty("accesskey"));
77
+ };
78
+
75
79
  /**
76
80
  * Adds inner css classes to the input field
77
81
  *
@@ -66,7 +66,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
66
66
  *
67
67
  * @param {string} sCategoryId The category's id.
68
68
  * @param {object} oInstance The instance that will be removed from the given category.
69
- * @returns {object|null} The removed instance or <code>null</code>. If the instance isn't managed, this method returns <code>null</code> instead of the instance object.
69
+ * @returns {object|null} The removed instance, or <code>null</code> if the instance isn't managed.
70
70
  * @protected
71
71
  */
72
72
  InstanceManager.removeInstance = function(sCategoryId, oInstance) {
@@ -169,7 +169,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
169
169
  /**
170
170
  * Adds a control to predefined lightbox category in instance manager.
171
171
  *
172
- * @param {sap.m.LightBox} oLightBox Dialog to be added to instance manager. Dialog which doesn't inherit from sap.m.Dialog can also be added as long as it has a close method.
172
+ * @param {sap.m.LightBox} oLightBox LightBox to be added to instance manager.
173
173
  * @returns {this} Enable method chaining.
174
174
  * @protected
175
175
  */
@@ -186,7 +186,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
186
186
  * Removes control from predefined popover category in instance manager.
187
187
  *
188
188
  * @param {sap.ui.core.Control} oPopover to be removed from instance manager.
189
- * @returns {sap.ui.core.Control|null} The removed popover or <code>null</code>. If the popover isn't managed, this method returns <code>null</code> instead of the removed popover.
189
+ * @returns {sap.ui.core.Control|null} The removed popover, or <code>null</code> if the popover isn't managed.
190
190
  * @protected
191
191
  */
192
192
  InstanceManager.removePopoverInstance = function(oPopover){
@@ -197,7 +197,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
197
197
  * Removes control from predefined dialog category in instance manager.
198
198
  *
199
199
  * @param {sap.ui.core.Control} oDialog to be removed from instance manager.
200
- * @returns {sap.ui.core.Control} The removed popover or <code>null</code>. If the popover isn't managed, this method returns <code>null</code> instead of the removed popover.
200
+ * @returns {sap.ui.core.Control|null} The removed dialog, or <code>null</code> if the dialog isn't managed.
201
201
  * @protected
202
202
  */
203
203
  InstanceManager.removeDialogInstance = function(oDialog){
@@ -208,7 +208,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
208
208
  * Removes control from predefined lightbox category in instance manager.
209
209
  *
210
210
  * @param {sap.m.LightBox} oLightBox to be removed from instance manager.
211
- * @returns {sap.m.LightBox|null} The removed popover or <code>null</code>. If the LightBox isn't managed, this method returns <code>null</code> instead of the removed LightBox.
211
+ * @returns {sap.m.LightBox|null} The removed LightBox, or <code>null</code> if the LightBox isn't managed.
212
212
  * @protected
213
213
  */
214
214
  InstanceManager.removeLightBoxInstance = function(oLightBox){
@@ -314,7 +314,7 @@ sap.ui.define(["sap/base/assert", "sap/base/Log", "sap/ui/thirdparty/jquery"],
314
314
  };
315
315
 
316
316
  /**
317
- * Gets all of the open LightBoxes. If there's no dialog open, an empty array is returned.
317
+ * Gets all of the open LightBoxes. If there's no LightBox open, an empty array is returned.
318
318
  *
319
319
  * @returns {sap.m.LightBox[]} The opened LightBoxes.
320
320
  * @public
@@ -7,6 +7,7 @@
7
7
  // Provides control sap.m.Label
8
8
  sap.ui.define([
9
9
  './library',
10
+ "sap/ui/core/Core",
10
11
  'sap/ui/core/Control',
11
12
  'sap/ui/core/LabelEnablement',
12
13
  'sap/m/HyphenationSupport',
@@ -15,6 +16,7 @@ sap.ui.define([
15
16
  ],
16
17
  function(
17
18
  library,
19
+ Core,
18
20
  Control,
19
21
  LabelEnablement,
20
22
  HyphenationSupport,
@@ -73,10 +75,10 @@ function(
73
75
  * <li> It is not recommended to use labels in Bold.</li>
74
76
  * </ul>
75
77
  * @extends sap.ui.core.Control
76
- * @implements sap.ui.core.Label, sap.ui.core.IShrinkable
78
+ * @implements sap.ui.core.Label, sap.ui.core.IShrinkable, sap.ui.core.IAccessKeySupport
77
79
  *
78
80
  * @author SAP SE
79
- * @version 1.103.1
81
+ * @version 1.106.0
80
82
  *
81
83
  * @constructor
82
84
  * @public
@@ -90,7 +92,8 @@ function(
90
92
  "sap.ui.core.Label",
91
93
  "sap.ui.core.IShrinkable",
92
94
  "sap.m.IOverflowToolbarContent",
93
- "sap.m.IHyphenation"
95
+ "sap.m.IHyphenation",
96
+ "sap.ui.core.IAccessKeySupport"
94
97
  ],
95
98
  library : "sap.m",
96
99
  properties : {
@@ -168,7 +171,15 @@ function(
168
171
  * regardless of the value of the <code>showColon</code> property.
169
172
  * @since 1.98
170
173
  */
171
- showColon : {type : "boolean", group : "Appearance", defaultValue : false}
174
+ showColon : {type : "boolean", group : "Appearance", defaultValue : false},
175
+
176
+ /**
177
+ * Indicates whether the access keys ref of the control should be highlighted.
178
+ * NOTE: this property is used only when access keys feature is turned on.
179
+ *
180
+ * @private
181
+ */
182
+ highlightAccKeysRef: { type: "boolean", defaultValue: false, visibility: "hidden" }
172
183
  },
173
184
  associations : {
174
185
 
@@ -201,6 +212,25 @@ function(
201
212
  };
202
213
  };
203
214
 
215
+ Label.prototype.onBeforeRendering = function () {
216
+ this._handleAccessKeysHighlighting();
217
+ };
218
+
219
+ Label.prototype._handleAccessKeysHighlighting = function () {
220
+ var sLabelForId = this.getLabelFor();
221
+ var sText = this.getText();
222
+
223
+ if (!sLabelForId || !sText) {
224
+ return;
225
+ }
226
+
227
+ var oLabeledControl = Core.byId(sLabelForId);
228
+
229
+ if (oLabeledControl && oLabeledControl.isA("sap.m.Input") && oLabeledControl.getProperty("highlightAccKeysRef")) {
230
+ Core.byId(sLabelForId).setProperty("accesskey", (sText[0].toLowerCase()), true);
231
+ }
232
+ };
233
+
204
234
  /**
205
235
  * Enables the <code>sap.m.Label</code> to move inside the sap.m.OverflowToolbar.
206
236
  * Required by the {@link sap.m.IOverflowToolbarContent} interface.
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  // Provides the default renderer for control sap.m.Label
8
- sap.ui.define(['sap/ui/core/Core', 'sap/ui/core/Renderer', 'sap/m/library', 'sap/ui/core/library', 'sap/m/HyphenationSupport', "sap/ui/core/LabelEnablement"],
9
- function(Core, Renderer, library, coreLibrary, HyphenationSupport, LabelEnablement) {
8
+ sap.ui.define(['sap/ui/core/Core', 'sap/ui/core/Renderer', 'sap/ui/core/AccessKeysEnablement', 'sap/m/library', 'sap/ui/core/library', 'sap/m/HyphenationSupport', "sap/ui/core/LabelEnablement"],
9
+ function(Core, Renderer, AccessKeysEnablement, library, coreLibrary, HyphenationSupport, LabelEnablement) {
10
10
  "use strict";
11
11
 
12
12
  // shortcut for sap.ui.core.TextDirection
@@ -123,6 +123,11 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/core/Renderer', 'sap/m/library', 'sap
123
123
  // wrap the label text
124
124
  rm.openStart("span", oLabel.getId() + "-text");
125
125
  rm.class("sapMLabelTextWrapper");
126
+
127
+ if (oLabel.getProperty("highlightAccKeysRef")) {
128
+ rm.class(AccessKeysEnablement.CSS_CLASS);
129
+ }
130
+
126
131
  rm.openEnd();
127
132
 
128
133
  // write the label text
@@ -95,11 +95,11 @@ sap.ui.define([
95
95
  *
96
96
  * <h3>Additional Information</h3>
97
97
  *
98
- * Check out the <a href="/#docs/api/symbols/sap.m.LightBox.html" >API Reference</a>.
98
+ * Check out the {@link sap.m.LightBoxItem API Reference}.
99
99
  * @extends sap.ui.core.Control
100
100
  *
101
101
  * @author SAP SE
102
- * @version 1.103.1
102
+ * @version 1.106.0
103
103
  *
104
104
  * @constructor
105
105
  * @public
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @extends sap.ui.core.Element
44
44
  *
45
45
  * @author SAP SE
46
- * @version 1.103.1
46
+ * @version 1.106.0
47
47
  *
48
48
  * @constructor
49
49
  * @public
package/src/sap/m/Link.js CHANGED
@@ -7,28 +7,30 @@
7
7
  // Provides control sap.m.Link.
8
8
  sap.ui.define([
9
9
  "./library",
10
+ "sap/ui/core/Core",
10
11
  "sap/ui/core/Control",
11
12
  "sap/ui/core/InvisibleText",
12
13
  "sap/ui/core/EnabledPropagator",
14
+ "sap/ui/core/AccessKeysEnablement",
13
15
  "sap/ui/core/LabelEnablement",
14
16
  "sap/ui/core/library",
15
17
  "sap/ui/Device",
16
18
  "./LinkRenderer",
17
19
  "sap/ui/events/KeyCodes",
18
- "sap/base/Log",
19
20
  "sap/base/security/URLListValidator"
20
21
  ],
21
22
  function(
22
23
  library,
24
+ Core,
23
25
  Control,
24
26
  InvisibleText,
25
27
  EnabledPropagator,
28
+ AccessKeysEnablement,
26
29
  LabelEnablement,
27
30
  coreLibrary,
28
31
  Device,
29
32
  LinkRenderer,
30
33
  KeyCodes,
31
- Log,
32
34
  URLListValidator
33
35
  ) {
34
36
  "use strict";
@@ -42,6 +44,9 @@ function(
42
44
  // shortcut for sap.ui.core.aria.HasPopup
43
45
  var AriaHasPopup = coreLibrary.aria.HasPopup;
44
46
 
47
+ // shortcut for sap.m.LinkAccessibleRole
48
+ var LinkAccessibleRole = library.LinkAccessibleRole;
49
+
45
50
  // shortcut for sap.m.EmptyIndicator
46
51
  var EmptyIndicatorMode = library.EmptyIndicatorMode;
47
52
 
@@ -78,10 +83,10 @@ function(
78
83
  * @see {@link fiori:https://experience.sap.com/fiori-design-web/link/ Link}
79
84
  *
80
85
  * @extends sap.ui.core.Control
81
- * @implements sap.ui.core.IShrinkable, sap.ui.core.IFormContent, sap.ui.core.ITitleContent
86
+ * @implements sap.ui.core.IShrinkable, sap.ui.core.IFormContent, sap.ui.core.ITitleContent, sap.ui.core.IAccessKeySupport
82
87
  *
83
88
  * @author SAP SE
84
- * @version 1.103.1
89
+ * @version 1.106.0
85
90
  *
86
91
  * @constructor
87
92
  * @public
@@ -94,7 +99,8 @@ function(
94
99
  interfaces : [
95
100
  "sap.ui.core.IShrinkable",
96
101
  "sap.ui.core.IFormContent",
97
- "sap.ui.core.ITitleContent"
102
+ "sap.ui.core.ITitleContent",
103
+ "sap.ui.core.IAccessKeySupport"
98
104
  ],
99
105
  library : "sap.m",
100
106
  designtime: "sap/m/designtime/Link.designtime",
@@ -135,8 +141,9 @@ function(
135
141
  width : {type : "sap.ui.core.CSSSize", group : "Dimension", defaultValue : null},
136
142
 
137
143
  /**
138
- * Defines the link target URI. Supports standard hyperlink behavior. If a JavaScript action should be triggered,
139
- * this should not be set, but instead an event handler for the <code>press</code> event should be registered.
144
+ * Defines the link target URI. Supports standard hyperlink behavior.
145
+ * <b>Note:</b> Don't set <code>href</code> property if an action should be triggered by the link. Instead set <code>accessibleRole</code>
146
+ * property to <code>LinkAccessibleRole.Button</code> and register a <code>press</code> event handler.
140
147
  */
141
148
  href : {type : "sap.ui.core.URI", group : "Data", defaultValue : null},
142
149
 
@@ -194,12 +201,38 @@ function(
194
201
  */
195
202
  ariaHasPopup : {type : "sap.ui.core.aria.HasPopup", group : "Accessibility", defaultValue : AriaHasPopup.None},
196
203
 
204
+ /**
205
+ * Describes the accessibility role of the link:<ul>
206
+ * <li><code>LinkAccessibleRole.Default</code> - a navagation is expected to the location given in <code>href</code> property</li>
207
+ * <li><code>LinkAccessibleRole.Button</code> - there will be <code>role</code> attribute with value "Button" rendered. In this scenario the <code>href</code>
208
+ * property value shouldn't be set as navigation isn't expected to occur.</li></ul>
209
+ *
210
+ * @since 1.104.0
211
+ */
212
+ accessibleRole : {type : "sap.m.LinkAccessibleRole", group : "Accessibility", defaultValue : LinkAccessibleRole.Default},
213
+
197
214
  /**
198
215
  * Specifies if an empty indicator should be displayed when there is no text.
199
216
  *
200
217
  * @since 1.89
201
218
  */
202
- emptyIndicatorMode: { type: "sap.m.EmptyIndicatorMode", group: "Appearance", defaultValue: EmptyIndicatorMode.Off }
219
+ emptyIndicatorMode: { type: "sap.m.EmptyIndicatorMode", group: "Appearance", defaultValue: EmptyIndicatorMode.Off },
220
+
221
+ /**
222
+ * Indicates whether the access keys ref of the control should be highlighted.
223
+ * NOTE: this property is used only when access keys feature is turned on.
224
+ *
225
+ * @private
226
+ */
227
+ highlightAccKeysRef: { type: "boolean", defaultValue: false, visibility: "hidden" },
228
+
229
+ /**
230
+ * Indicates which keyboard key should be pressed to focus the access key ref
231
+ * NOTE: this property is used only when access keys feature is turned on.
232
+ *
233
+ * @private
234
+ */
235
+ accesskey: { type: "string", defaultValue: "", visibility: "hidden" }
203
236
  },
204
237
  associations : {
205
238
 
@@ -245,6 +278,10 @@ function(
245
278
 
246
279
  EnabledPropagator.call(Link.prototype); // inherit "disabled" state from parent controls
247
280
 
281
+ Link.prototype.init = function () {
282
+ AccessKeysEnablement.registerControl(this);
283
+ };
284
+
248
285
  /**
249
286
  * Required adaptations before rendering.
250
287
  *
@@ -252,6 +289,18 @@ function(
252
289
  */
253
290
  Link.prototype.onBeforeRendering = function() {};
254
291
 
292
+ Link.prototype.getAccessKeysFocusTarget = function () {
293
+ return this.getFocusDomRef();
294
+ };
295
+
296
+ Link.prototype.onAccKeysHighlightStart = function () {
297
+ setRefLabelsHighlightAccKeysRef.call(this, true);
298
+ };
299
+
300
+ Link.prototype.onAccKeysHighlightEnd = function () {
301
+ setRefLabelsHighlightAccKeysRef.call(this, false);
302
+ };
303
+
255
304
  /**
256
305
  * Handle the key down event for SPACE
257
306
  * SHIFT or ESCAPE on pressed SPACE cancels the action
@@ -405,7 +454,8 @@ function(
405
454
  sEmphasizedInfo = this.getEmphasized() ? oResourceBundle.getText("LINK_EMPHASIZED") : "",
406
455
  sSubtleInfo = this.getSubtle() ? oResourceBundle.getText("LINK_SUBTLE") : "",
407
456
  sText = this.getText(),
408
- sDescription = sText;
457
+ sDescription = sText,
458
+ sAccessibleRole = this.getAccessibleRole();
409
459
 
410
460
  if (sText) {
411
461
  sEmphasizedInfo && (sDescription += " " + sEmphasizedInfo);
@@ -413,7 +463,7 @@ function(
413
463
  }
414
464
 
415
465
  return {
416
- role: "link",
466
+ role: sAccessibleRole === LinkAccessibleRole.Default ? "link" : sAccessibleRole,
417
467
  type: sText ? oResourceBundle.getText("ACC_CTR_TYPE_LINK") : undefined,
418
468
  description: sDescription,
419
469
  focusable: this.getEnabled(),
@@ -454,6 +504,20 @@ function(
454
504
  return !bAlreadyHasSelfReference && (aAriaLabelledBy.length > 0 || bHasReferencingLabels || bAllowEnhancingByParent);
455
505
  };
456
506
 
507
+ var setRefLabelsHighlightAccKeysRef = function (bHighlightAccKeysRef) {
508
+ var aLabels = this.getAriaLabelledBy();
509
+
510
+ if (aLabels.length) {
511
+ var oLabel = Core.byId(aLabels[0]);
512
+
513
+ oLabel.setProperty("highlightAccKeysRef", bHighlightAccKeysRef);
514
+
515
+ if (oLabel.getText && oLabel.getText()) {
516
+ this.setProperty("accesskey", oLabel.getText()[0].toLowerCase());
517
+ }
518
+ }
519
+ };
520
+
457
521
  return Link;
458
522
 
459
523
  });
@@ -7,11 +7,12 @@
7
7
  sap.ui.define([
8
8
  "sap/ui/core/Renderer",
9
9
  "sap/ui/core/library",
10
+ 'sap/ui/core/AccessKeysEnablement',
10
11
  "sap/ui/util/defaultLinkTypes",
11
12
  './library',
12
13
  'sap/ui/core/Core'
13
14
  ],
14
- function(Renderer, coreLibrary, defaultLinkTypes, mobileLibrary, Core) {
15
+ function(Renderer, coreLibrary, AccessKeysEnablement, defaultLinkTypes, mobileLibrary, Core) {
15
16
  "use strict";
16
17
 
17
18
  // shortcut for sap.ui.core.TextDirection
@@ -20,6 +21,9 @@
20
21
  // shortcut for sap.ui.core.aria.HasPopup
21
22
  var AriaHasPopup = coreLibrary.aria.HasPopup;
22
23
 
24
+ // shortcut for sap.m.LinkAccessibleRole
25
+ var LinkAccessibleRole = mobileLibrary.LinkAccessibleRole;
26
+
23
27
  /**
24
28
  * Link renderer
25
29
  * @namespace
@@ -46,15 +50,16 @@
46
50
  sTextAlign = Renderer.getTextAlign(oControl.getTextAlign(), sTextDir),
47
51
  bShouldHaveOwnLabelledBy = oControl._determineSelfReferencePresence(),
48
52
  sHasPopupType = oControl.getAriaHasPopup(),
49
- sHref = oControl.getHref(),
50
53
  sRel = defaultLinkTypes(oControl.getRel(), oControl.getTarget()),
54
+ sHref = oControl.getHref(),
55
+ sAccessibleRole = oControl.getAccessibleRole(),
51
56
  oAccAttributes = {
52
57
  labelledby: bShouldHaveOwnLabelledBy ? {value: oControl.getId(), append: true } : undefined,
53
58
  haspopup: (sHasPopupType === AriaHasPopup.None) ? null : sHasPopupType.toLowerCase()
54
59
  },
55
- bIsValid = sHref && oControl._isHrefValid(sHref),
56
60
  bEnabled = oControl.getEnabled(),
57
- sTypeSemanticInfo = "";
61
+ sTypeSemanticInfo = "",
62
+ sAcccessKey = oControl.getProperty("accesskey");
58
63
 
59
64
  // Link is rendered as a "<a>" element
60
65
  oRm.openStart("a", oControl);
@@ -70,6 +75,23 @@
70
75
  sTypeSemanticInfo += " " + oControl._sAriaLinkEmphasizedId;
71
76
  }
72
77
 
78
+ if (sAcccessKey) {
79
+ oRm.attr("data-ui5-accesskey", sAcccessKey);
80
+ }
81
+
82
+ switch (sAccessibleRole) {
83
+ case LinkAccessibleRole.Button:
84
+ oAccAttributes.role = LinkAccessibleRole.Button;
85
+ break;
86
+ default:
87
+ // Set a valid non empty value for the href attribute representing that there is no navigation,
88
+ // so we don't confuse the screen readers.
89
+ /*eslint-disable no-script-url */
90
+ sHref = sHref && oControl._isHrefValid(sHref) && oControl.getEnabled() ? sHref : "javascript:void(0)";
91
+ }
92
+
93
+ sHref && oRm.attr("href", sHref);
94
+
73
95
  oAccAttributes.describedby = sTypeSemanticInfo ? {value: sTypeSemanticInfo.trim(), append: true} : undefined;
74
96
 
75
97
  if (!bEnabled) {
@@ -86,14 +108,6 @@
86
108
  oRm.attr("title", oControl.getTooltip_AsString());
87
109
  }
88
110
 
89
- /* set href only if link is enabled - BCP incident 1570020625 */
90
- if (bIsValid && bEnabled) {
91
- oRm.attr("href", sHref);
92
- } else if (oControl.getText()) {
93
- // Add href only if there's text. Otherwise virtual cursor would stop on the empty link. BCP 2070055617
94
- oRm.attr("href", "");
95
- }
96
-
97
111
  if (oControl.getTarget()) {
98
112
  oRm.attr("target", oControl.getTarget());
99
113
  }
package/src/sap/m/List.js CHANGED
@@ -30,7 +30,7 @@ sap.ui.define(["./library", "./ListBase", "./ListRenderer"],
30
30
  * @extends sap.m.ListBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.103.1
33
+ * @version 1.106.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -51,6 +51,43 @@ sap.ui.define(["./library", "./ListBase", "./ListRenderer"],
51
51
  }
52
52
  }});
53
53
 
54
+ List.prototype.getAriaRole = function() {
55
+ return this._sAriaRole || "list";
56
+ };
57
+
58
+ /**
59
+ * Applies the aria <code>role</code> attribute to the control.
60
+ *
61
+ * Supported values are:
62
+ * <ul>
63
+ * <li><code>list</code>: This is the default since version 1.105. The rendered items will have the <code>role="listitem"</code>.</li>
64
+ * <li><code>listbox</code>: Legacy support. The rendererd items will have the <code>role="option"</code>.</li>
65
+ * </ul>
66
+ * <b>Note:</b> This method must be called before the control renders.
67
+ * @param {string} sRole role attribute for the control
68
+ * @protected
69
+ * @ui5-restricted
70
+ * @since 1.105
71
+ */
72
+ List.prototype.applyAriaRole = function(sRole) {
73
+ this._sAriaRole = sRole;
74
+ };
75
+
76
+ List.prototype.enhanceAccessibilityState = function(oElement, mAriaProps) {
77
+ ListBase.prototype.enhanceAccessibilityState.apply(this, arguments);
78
+
79
+ // update listitem Accessibility state according to the list's role attribute
80
+ if (this.getAriaRole() === "listbox" && oElement.isA("sap.m.ListItemBase")) {
81
+ mAriaProps.roledescription = null;
82
+ mAriaProps.role = "option";
83
+ mAriaProps.owns = null;
84
+
85
+ if (oElement.isSelectable()) {
86
+ mAriaProps.selected = oElement.getSelected();
87
+ }
88
+ }
89
+ };
90
+
54
91
  return List;
55
92
 
56
93
  });