@openui5/sap.m 1.95.0 → 1.96.3

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 (466) hide show
  1. package/.reuse/dep5 +10 -5
  2. package/THIRDPARTY.txt +17 -8
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +1 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -1
  12. package/src/sap/m/Bar.js +1 -1
  13. package/src/sap/m/Breadcrumbs.js +1 -1
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +1 -1
  17. package/src/sap/m/Carousel.js +1 -1
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +1 -1
  20. package/src/sap/m/ColorPalette.js +7 -11
  21. package/src/sap/m/ColorPalettePopover.js +1 -6
  22. package/src/sap/m/Column.js +5 -1
  23. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  24. package/src/sap/m/ColumnListItem.js +1 -1
  25. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  26. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  30. package/src/sap/m/ComboBox.js +1 -1
  31. package/src/sap/m/ComboBoxBase.js +1 -1
  32. package/src/sap/m/ComboBoxTextField.js +1 -1
  33. package/src/sap/m/CustomDynamicDateOption.js +9 -1
  34. package/src/sap/m/CustomListItem.js +1 -1
  35. package/src/sap/m/CustomTile.js +1 -1
  36. package/src/sap/m/CustomTreeItem.js +1 -1
  37. package/src/sap/m/DatePicker.js +12 -10
  38. package/src/sap/m/DateRangeSelection.js +6 -9
  39. package/src/sap/m/DateTimeField.js +1 -1
  40. package/src/sap/m/DateTimeInput.js +1 -1
  41. package/src/sap/m/DateTimePicker.js +6 -9
  42. package/src/sap/m/Dialog.js +16 -37
  43. package/src/sap/m/DisplayListItem.js +1 -1
  44. package/src/sap/m/DraftIndicator.js +1 -1
  45. package/src/sap/m/DynamicDate.js +1 -1
  46. package/src/sap/m/DynamicDateOption.js +3 -2
  47. package/src/sap/m/DynamicDateRange.js +7 -4
  48. package/src/sap/m/DynamicDateUtil.js +6 -3
  49. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  50. package/src/sap/m/ExpandableText.js +1 -1
  51. package/src/sap/m/FacetFilter.js +1 -1
  52. package/src/sap/m/FacetFilterItem.js +1 -1
  53. package/src/sap/m/FacetFilterList.js +1 -1
  54. package/src/sap/m/FeedContent.js +1 -1
  55. package/src/sap/m/FeedInput.js +1 -1
  56. package/src/sap/m/FeedListItem.js +1 -1
  57. package/src/sap/m/FeedListItemAction.js +1 -1
  58. package/src/sap/m/Fiori20Adapter.js +2 -2
  59. package/src/sap/m/FlexBox.js +1 -1
  60. package/src/sap/m/FlexItemData.js +1 -1
  61. package/src/sap/m/FormattedText.js +1 -1
  62. package/src/sap/m/GenericTag.js +1 -1
  63. package/src/sap/m/GenericTile.js +264 -57
  64. package/src/sap/m/GenericTileRenderer.js +228 -84
  65. package/src/sap/m/GroupHeaderListItem.js +1 -1
  66. package/src/sap/m/GrowingList.js +1 -1
  67. package/src/sap/m/HBox.js +1 -1
  68. package/src/sap/m/HeaderContainer.js +1 -1
  69. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  70. package/src/sap/m/IconTabBar.js +7 -1
  71. package/src/sap/m/IconTabBarSelectList.js +1 -1
  72. package/src/sap/m/IconTabFilter.js +1 -1
  73. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  74. package/src/sap/m/IconTabHeader.js +13 -4
  75. package/src/sap/m/IconTabSeparator.js +1 -1
  76. package/src/sap/m/Image.js +1 -1
  77. package/src/sap/m/ImageContent.js +1 -1
  78. package/src/sap/m/Input.js +18 -7
  79. package/src/sap/m/InputBase.js +95 -13
  80. package/src/sap/m/InputBaseRenderer.js +8 -20
  81. package/src/sap/m/InputListItem.js +1 -1
  82. package/src/sap/m/Label.js +1 -1
  83. package/src/sap/m/LightBox.js +1 -1
  84. package/src/sap/m/LightBoxItem.js +1 -1
  85. package/src/sap/m/Link.js +1 -1
  86. package/src/sap/m/List.js +1 -1
  87. package/src/sap/m/ListBase.js +1 -1
  88. package/src/sap/m/ListItemBase.js +2 -2
  89. package/src/sap/m/MaskEnabler.js +106 -4
  90. package/src/sap/m/MaskInput.js +19 -4
  91. package/src/sap/m/MaskInputRule.js +1 -1
  92. package/src/sap/m/Menu.js +8 -6
  93. package/src/sap/m/MenuButton.js +1 -1
  94. package/src/sap/m/MenuItem.js +1 -1
  95. package/src/sap/m/MenuListItem.js +1 -1
  96. package/src/sap/m/MessageItem.js +1 -16
  97. package/src/sap/m/MessageListItem.js +1 -1
  98. package/src/sap/m/MessagePage.js +1 -1
  99. package/src/sap/m/MessagePopover.js +1 -1
  100. package/src/sap/m/MessagePopoverItem.js +1 -1
  101. package/src/sap/m/MessageStrip.js +7 -3
  102. package/src/sap/m/MessageStripRenderer.js +2 -2
  103. package/src/sap/m/MessageToast.js +1 -1
  104. package/src/sap/m/MessageView.js +12 -23
  105. package/src/sap/m/MultiComboBox.js +348 -115
  106. package/src/sap/m/MultiEditField.js +1 -1
  107. package/src/sap/m/MultiInput.js +30 -4
  108. package/src/sap/m/NavContainer.js +13 -5
  109. package/src/sap/m/NewsContent.js +19 -10
  110. package/src/sap/m/NewsContentRenderer.js +1 -2
  111. package/src/sap/m/NotificationList.js +1 -1
  112. package/src/sap/m/NotificationListBase.js +1 -1
  113. package/src/sap/m/NotificationListGroup.js +1 -1
  114. package/src/sap/m/NotificationListItem.js +1 -1
  115. package/src/sap/m/NumericContent.js +1 -1
  116. package/src/sap/m/NumericContentRenderer.js +34 -17
  117. package/src/sap/m/NumericInput.js +138 -0
  118. package/src/sap/m/NumericInputRenderer.js +120 -0
  119. package/src/sap/m/ObjectAttribute.js +46 -5
  120. package/src/sap/m/ObjectHeader.js +3 -3
  121. package/src/sap/m/ObjectIdentifier.js +1 -1
  122. package/src/sap/m/ObjectListItem.js +1 -1
  123. package/src/sap/m/ObjectMarker.js +1 -1
  124. package/src/sap/m/ObjectNumber.js +1 -1
  125. package/src/sap/m/ObjectStatus.js +1 -1
  126. package/src/sap/m/ObjectStatusRenderer.js +4 -1
  127. package/src/sap/m/OverflowToolbar.js +3 -5
  128. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  129. package/src/sap/m/OverflowToolbarButton.js +4 -2
  130. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  131. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  132. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  133. package/src/sap/m/P13nColumnsItem.js +1 -1
  134. package/src/sap/m/P13nColumnsPanel.js +3 -3
  135. package/src/sap/m/P13nConditionPanel.js +22 -52
  136. package/src/sap/m/P13nDialog.js +1 -1
  137. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  138. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  139. package/src/sap/m/P13nFilterItem.js +1 -1
  140. package/src/sap/m/P13nFilterPanel.js +1 -3
  141. package/src/sap/m/P13nGroupItem.js +1 -1
  142. package/src/sap/m/P13nGroupPanel.js +1 -3
  143. package/src/sap/m/P13nItem.js +1 -1
  144. package/src/sap/m/P13nPanel.js +1 -1
  145. package/src/sap/m/P13nSelectionItem.js +1 -1
  146. package/src/sap/m/P13nSelectionPanel.js +1 -1
  147. package/src/sap/m/P13nSortItem.js +1 -1
  148. package/src/sap/m/P13nSortPanel.js +1 -3
  149. package/src/sap/m/PDFViewer.js +1 -1
  150. package/src/sap/m/Page.js +1 -1
  151. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  152. package/src/sap/m/PagingButton.js +1 -1
  153. package/src/sap/m/Panel.js +1 -1
  154. package/src/sap/m/PlanningCalendar.js +46 -31
  155. package/src/sap/m/PlanningCalendarHeader.js +5 -8
  156. package/src/sap/m/PlanningCalendarLegend.js +1 -6
  157. package/src/sap/m/PlanningCalendarLegendRenderer.js +0 -5
  158. package/src/sap/m/PlanningCalendarRow.js +1 -1
  159. package/src/sap/m/PlanningCalendarView.js +1 -6
  160. package/src/sap/m/Popover.js +3 -3
  161. package/src/sap/m/PopoverRenderer.js +3 -2
  162. package/src/sap/m/ProgressIndicator.js +13 -1
  163. package/src/sap/m/PullToRefresh.js +1 -1
  164. package/src/sap/m/QuickView.js +1 -1
  165. package/src/sap/m/QuickViewBase.js +1 -1
  166. package/src/sap/m/QuickViewCard.js +1 -1
  167. package/src/sap/m/QuickViewGroup.js +1 -1
  168. package/src/sap/m/QuickViewGroupElement.js +1 -1
  169. package/src/sap/m/QuickViewPage.js +1 -1
  170. package/src/sap/m/RadioButton.js +1 -1
  171. package/src/sap/m/RadioButtonGroup.js +1 -1
  172. package/src/sap/m/RangeSlider.js +1 -1
  173. package/src/sap/m/RatingIndicator.js +1 -1
  174. package/src/sap/m/ResponsivePopover.js +1 -1
  175. package/src/sap/m/ResponsiveScale.js +1 -1
  176. package/src/sap/m/ScrollBar.js +1 -1
  177. package/src/sap/m/ScrollContainer.js +1 -1
  178. package/src/sap/m/SearchField.js +2 -33
  179. package/src/sap/m/SegmentedButton.js +1 -1
  180. package/src/sap/m/SegmentedButtonItem.js +1 -1
  181. package/src/sap/m/SegmentedButtonRenderer.js +6 -0
  182. package/src/sap/m/Select.js +3 -4
  183. package/src/sap/m/SelectDialog.js +1 -1
  184. package/src/sap/m/SelectDialogBase.js +1 -1
  185. package/src/sap/m/SelectList.js +1 -1
  186. package/src/sap/m/SelectRenderer.js +10 -1
  187. package/src/sap/m/SelectionDetails.js +7 -9
  188. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  189. package/src/sap/m/SelectionDetailsItem.js +8 -4
  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 +7 -10
  194. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  195. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -6
  196. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +17 -7
  197. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -6
  198. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +4 -6
  199. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -6
  200. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -6
  202. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -6
  203. package/src/sap/m/SlideTile.js +46 -3
  204. package/src/sap/m/SlideTileRenderer.js +13 -2
  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 +1 -1
  211. package/src/sap/m/SplitButtonRenderer.js +5 -1
  212. package/src/sap/m/SplitContainer.js +10 -4
  213. package/src/sap/m/StandardDynamicDateOption.js +6 -3
  214. package/src/sap/m/StandardListItem.js +11 -18
  215. package/src/sap/m/StandardTile.js +1 -1
  216. package/src/sap/m/StandardTreeItem.js +1 -1
  217. package/src/sap/m/StepInput.js +67 -166
  218. package/src/sap/m/SuggestionItem.js +1 -7
  219. package/src/sap/m/SuggestionsPopover.js +44 -1
  220. package/src/sap/m/Switch.js +9 -1
  221. package/src/sap/m/TabContainer.js +1 -1
  222. package/src/sap/m/TabContainerItem.js +1 -1
  223. package/src/sap/m/TabStrip.js +1 -1
  224. package/src/sap/m/TabStripItem.js +1 -1
  225. package/src/sap/m/Table.js +1 -1
  226. package/src/sap/m/TablePersoController.js +1 -1
  227. package/src/sap/m/TablePersoDialog.js +1 -1
  228. package/src/sap/m/TablePersoProvider.js +1 -1
  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 +22 -4
  235. package/src/sap/m/TileContentRenderer.js +73 -5
  236. package/src/sap/m/TimePicker.js +1 -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/TimePickerSlider.js +1 -1
  242. package/src/sap/m/TimePickerSliders.js +1 -1
  243. package/src/sap/m/Title.js +1 -1
  244. package/src/sap/m/TitlePropagationSupport.js +1 -1
  245. package/src/sap/m/ToggleButton.js +1 -1
  246. package/src/sap/m/Token.js +1 -1
  247. package/src/sap/m/Tokenizer.js +2 -1
  248. package/src/sap/m/Toolbar.js +1 -1
  249. package/src/sap/m/ToolbarLayoutData.js +1 -1
  250. package/src/sap/m/ToolbarSeparator.js +1 -1
  251. package/src/sap/m/ToolbarSpacer.js +1 -1
  252. package/src/sap/m/Tree.js +1 -1
  253. package/src/sap/m/TreeItemBase.js +1 -1
  254. package/src/sap/m/UploadCollection.js +1 -6
  255. package/src/sap/m/UploadCollectionItem.js +1 -1
  256. package/src/sap/m/UploadCollectionParameter.js +1 -1
  257. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  258. package/src/sap/m/VBox.js +1 -1
  259. package/src/sap/m/ValueStateHeader.js +1 -1
  260. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  261. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  262. package/src/sap/m/ViewSettingsDialog.js +1 -1
  263. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  264. package/src/sap/m/ViewSettingsItem.js +1 -1
  265. package/src/sap/m/VisibleItem.js +1 -1
  266. package/src/sap/m/WheelSlider.js +1 -1
  267. package/src/sap/m/WheelSliderContainer.js +1 -1
  268. package/src/sap/m/Wizard.js +40 -12
  269. package/src/sap/m/WizardProgressNavigator.js +1 -1
  270. package/src/sap/m/WizardProgressNavigatorRenderer.js +3 -2
  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 +24 -15
  277. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  278. package/src/sap/m/delegate/DateNavigation.js +4 -5
  279. package/src/sap/m/delegate/ValueStateMessage.js +4 -7
  280. package/src/sap/m/designtime/IconTabBar.designtime.js +4 -1
  281. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  282. package/src/sap/m/designtime/messagebundle_ar.properties +3 -3
  283. package/src/sap/m/designtime/messagebundle_bg.properties +3 -3
  284. package/src/sap/m/designtime/messagebundle_ca.properties +3 -3
  285. package/src/sap/m/designtime/messagebundle_cs.properties +3 -3
  286. package/src/sap/m/designtime/messagebundle_cy.properties +3 -3
  287. package/src/sap/m/designtime/messagebundle_da.properties +3 -3
  288. package/src/sap/m/designtime/messagebundle_de.properties +5 -5
  289. package/src/sap/m/designtime/messagebundle_el.properties +3 -3
  290. package/src/sap/m/designtime/messagebundle_en_US_saprigi.properties +6 -0
  291. package/src/sap/m/designtime/messagebundle_es.properties +3 -3
  292. package/src/sap/m/designtime/messagebundle_es_MX.properties +3 -3
  293. package/src/sap/m/designtime/messagebundle_et.properties +3 -3
  294. package/src/sap/m/designtime/messagebundle_fi.properties +3 -3
  295. package/src/sap/m/designtime/messagebundle_fr.properties +3 -3
  296. package/src/sap/m/designtime/messagebundle_fr_CA.properties +3 -3
  297. package/src/sap/m/designtime/messagebundle_hi.properties +3 -3
  298. package/src/sap/m/designtime/messagebundle_hr.properties +3 -3
  299. package/src/sap/m/designtime/messagebundle_hu.properties +3 -3
  300. package/src/sap/m/designtime/messagebundle_id.properties +3 -3
  301. package/src/sap/m/designtime/messagebundle_it.properties +3 -3
  302. package/src/sap/m/designtime/messagebundle_iw.properties +3 -3
  303. package/src/sap/m/designtime/messagebundle_ja.properties +3 -3
  304. package/src/sap/m/designtime/messagebundle_kk.properties +3 -3
  305. package/src/sap/m/designtime/messagebundle_ko.properties +3 -3
  306. package/src/sap/m/designtime/messagebundle_lt.properties +3 -3
  307. package/src/sap/m/designtime/messagebundle_lv.properties +3 -3
  308. package/src/sap/m/designtime/messagebundle_ms.properties +3 -3
  309. package/src/sap/m/designtime/messagebundle_nl.properties +3 -3
  310. package/src/sap/m/designtime/messagebundle_no.properties +3 -3
  311. package/src/sap/m/designtime/messagebundle_pl.properties +3 -3
  312. package/src/sap/m/designtime/messagebundle_pt.properties +3 -3
  313. package/src/sap/m/designtime/messagebundle_pt_PT.properties +3 -3
  314. package/src/sap/m/designtime/messagebundle_ro.properties +3 -3
  315. package/src/sap/m/designtime/messagebundle_ru.properties +3 -3
  316. package/src/sap/m/designtime/messagebundle_sh.properties +3 -3
  317. package/src/sap/m/designtime/messagebundle_sk.properties +3 -3
  318. package/src/sap/m/designtime/messagebundle_sl.properties +3 -3
  319. package/src/sap/m/designtime/messagebundle_sv.properties +3 -3
  320. package/src/sap/m/designtime/messagebundle_th.properties +3 -3
  321. package/src/sap/m/designtime/messagebundle_tr.properties +3 -3
  322. package/src/sap/m/designtime/messagebundle_uk.properties +3 -3
  323. package/src/sap/m/designtime/messagebundle_vi.properties +3 -3
  324. package/src/sap/m/designtime/messagebundle_zh_CN.properties +3 -3
  325. package/src/sap/m/designtime/messagebundle_zh_TW.properties +3 -3
  326. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  327. package/src/sap/m/inputUtils/ListHelpers.js +16 -3
  328. package/src/sap/m/library.js +58 -31
  329. package/src/sap/m/messagebundle.properties +50 -3
  330. package/src/sap/m/messagebundle_ar.properties +29 -6
  331. package/src/sap/m/messagebundle_bg.properties +29 -6
  332. package/src/sap/m/messagebundle_ca.properties +33 -10
  333. package/src/sap/m/messagebundle_cs.properties +31 -8
  334. package/src/sap/m/messagebundle_cy.properties +31 -8
  335. package/src/sap/m/messagebundle_da.properties +31 -8
  336. package/src/sap/m/messagebundle_de.properties +30 -7
  337. package/src/sap/m/messagebundle_el.properties +30 -7
  338. package/src/sap/m/messagebundle_en.properties +30 -7
  339. package/src/sap/m/messagebundle_en_GB.properties +30 -7
  340. package/src/sap/m/messagebundle_en_US_sappsd.properties +17 -1
  341. package/src/sap/m/messagebundle_en_US_saprigi.properties +39 -3
  342. package/src/sap/m/messagebundle_en_US_saptrc.properties +3 -1
  343. package/src/sap/m/messagebundle_es.properties +29 -6
  344. package/src/sap/m/messagebundle_es_MX.properties +31 -8
  345. package/src/sap/m/messagebundle_et.properties +30 -7
  346. package/src/sap/m/messagebundle_fi.properties +31 -8
  347. package/src/sap/m/messagebundle_fr.properties +37 -14
  348. package/src/sap/m/messagebundle_fr_CA.properties +31 -8
  349. package/src/sap/m/messagebundle_hi.properties +31 -8
  350. package/src/sap/m/messagebundle_hr.properties +30 -7
  351. package/src/sap/m/messagebundle_hu.properties +30 -7
  352. package/src/sap/m/messagebundle_id.properties +31 -8
  353. package/src/sap/m/messagebundle_it.properties +29 -6
  354. package/src/sap/m/messagebundle_iw.properties +29 -6
  355. package/src/sap/m/messagebundle_ja.properties +30 -7
  356. package/src/sap/m/messagebundle_kk.properties +31 -8
  357. package/src/sap/m/messagebundle_ko.properties +31 -8
  358. package/src/sap/m/messagebundle_lt.properties +31 -8
  359. package/src/sap/m/messagebundle_lv.properties +31 -8
  360. package/src/sap/m/messagebundle_ms.properties +29 -6
  361. package/src/sap/m/messagebundle_nl.properties +29 -6
  362. package/src/sap/m/messagebundle_no.properties +29 -6
  363. package/src/sap/m/messagebundle_pl.properties +31 -8
  364. package/src/sap/m/messagebundle_pt.properties +31 -8
  365. package/src/sap/m/messagebundle_pt_PT.properties +29 -6
  366. package/src/sap/m/messagebundle_ro.properties +31 -8
  367. package/src/sap/m/messagebundle_ru.properties +31 -8
  368. package/src/sap/m/messagebundle_sh.properties +30 -7
  369. package/src/sap/m/messagebundle_sk.properties +30 -7
  370. package/src/sap/m/messagebundle_sl.properties +30 -7
  371. package/src/sap/m/messagebundle_sv.properties +30 -7
  372. package/src/sap/m/messagebundle_th.properties +31 -8
  373. package/src/sap/m/messagebundle_tr.properties +27 -4
  374. package/src/sap/m/messagebundle_uk.properties +35 -12
  375. package/src/sap/m/messagebundle_vi.properties +31 -8
  376. package/src/sap/m/messagebundle_zh_CN.properties +29 -6
  377. package/src/sap/m/messagebundle_zh_TW.properties +31 -8
  378. package/src/sap/m/p13n/AbstractContainer.js +243 -0
  379. package/src/sap/m/p13n/AbstractContainerItem.js +94 -0
  380. package/src/sap/m/p13n/BasePanel.js +643 -0
  381. package/src/sap/m/p13n/Container.js +239 -0
  382. package/src/sap/m/p13n/GroupPanel.js +119 -0
  383. package/src/sap/m/p13n/QueryPanel.js +312 -0
  384. package/src/sap/m/p13n/SelectionPanel.js +403 -0
  385. package/src/sap/m/p13n/SortPanel.js +139 -0
  386. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  387. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  388. package/src/sap/m/plugins/PasteProvider.js +1 -1
  389. package/src/sap/m/plugins/PluginBase.js +1 -1
  390. package/src/sap/m/routing/TargetHandler.js +9 -4
  391. package/src/sap/m/semantic/AddAction.js +1 -1
  392. package/src/sap/m/semantic/CancelAction.js +1 -1
  393. package/src/sap/m/semantic/DeleteAction.js +1 -1
  394. package/src/sap/m/semantic/DetailPage.js +1 -1
  395. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  396. package/src/sap/m/semantic/EditAction.js +1 -1
  397. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  398. package/src/sap/m/semantic/FilterAction.js +1 -1
  399. package/src/sap/m/semantic/FilterSelect.js +1 -1
  400. package/src/sap/m/semantic/FlagAction.js +1 -1
  401. package/src/sap/m/semantic/ForwardAction.js +1 -1
  402. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  403. package/src/sap/m/semantic/GroupAction.js +1 -1
  404. package/src/sap/m/semantic/GroupSelect.js +1 -1
  405. package/src/sap/m/semantic/MainAction.js +1 -1
  406. package/src/sap/m/semantic/MasterPage.js +1 -1
  407. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  408. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  409. package/src/sap/m/semantic/NegativeAction.js +1 -1
  410. package/src/sap/m/semantic/OpenInAction.js +1 -1
  411. package/src/sap/m/semantic/PositiveAction.js +1 -1
  412. package/src/sap/m/semantic/PrintAction.js +1 -1
  413. package/src/sap/m/semantic/SaveAction.js +1 -1
  414. package/src/sap/m/semantic/Segment.js +1 -1
  415. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  416. package/src/sap/m/semantic/SemanticButton.js +1 -1
  417. package/src/sap/m/semantic/SemanticConfiguration.js +3 -5
  418. package/src/sap/m/semantic/SemanticControl.js +1 -1
  419. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  420. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  421. package/src/sap/m/semantic/SemanticPage.js +1 -1
  422. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  423. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  424. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  425. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  426. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  427. package/src/sap/m/semantic/ShareMenu.js +1 -1
  428. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  429. package/src/sap/m/semantic/SortAction.js +1 -1
  430. package/src/sap/m/semantic/SortSelect.js +1 -1
  431. package/src/sap/m/table/Util.js +192 -0
  432. package/src/sap/m/themes/base/AbstractContainer.less +17 -0
  433. package/src/sap/m/themes/base/Carousel.less +37 -2
  434. package/src/sap/m/themes/base/Dialog.less +11 -5
  435. package/src/sap/m/themes/base/GenericTile.less +441 -18
  436. package/src/sap/m/themes/base/IconTabBar.less +13 -7
  437. package/src/sap/m/themes/base/IconTabBarSelectList.less +4 -2
  438. package/src/sap/m/themes/base/InputBase.less +0 -24
  439. package/src/sap/m/themes/base/Label.less +6 -0
  440. package/src/sap/m/themes/base/ListItemBase.less +4 -2
  441. package/src/sap/m/themes/base/MultiComboBox.less +17 -0
  442. package/src/sap/m/themes/base/NewsContent.less +48 -1
  443. package/src/sap/m/themes/base/NotificationListBase.less +1 -1
  444. package/src/sap/m/themes/base/NumericContent.less +87 -0
  445. package/src/sap/m/themes/base/ObjectNumber.less +10 -2
  446. package/src/sap/m/themes/base/ObjectStatus.less +5 -1
  447. package/src/sap/m/themes/base/P13nContainer.less +17 -0
  448. package/src/sap/m/themes/base/P13nDialog.less +4 -0
  449. package/src/sap/m/themes/base/SearchField.less +21 -14
  450. package/src/sap/m/themes/base/SegmentedButton.less +1 -1
  451. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -2
  452. package/src/sap/m/themes/base/SlideTile.less +15 -0
  453. package/src/sap/m/themes/base/StandardListItem.less +1 -1
  454. package/src/sap/m/themes/base/Table.less +9 -8
  455. package/src/sap/m/themes/base/Text.less +6 -0
  456. package/src/sap/m/themes/base/TileContent.less +20 -0
  457. package/src/sap/m/themes/base/Token.less +0 -3
  458. package/src/sap/m/themes/base/library.source.less +4 -0
  459. package/src/sap/m/themes/base/p13n.Container.less +17 -0
  460. package/src/sap/m/themes/base/p13n.QueryPanel.less +7 -0
  461. package/src/sap/m/themes/base/p13n.SelectionPanel.less +32 -0
  462. package/src/sap/m/themes/sap_hcb/InputBase.less +25 -0
  463. package/src/sap/m/upload/UploadSet.js +14 -18
  464. package/src/sap/m/upload/UploadSetItem.js +7 -2
  465. package/ui5.yaml +4 -1
  466. package/src/sap/m/ios7.js +0 -199
@@ -121,7 +121,7 @@ function(
121
121
  * @implements sap.ui.core.ISemanticFormContent
122
122
  *
123
123
  * @author SAP SE
124
- * @version 1.95.0
124
+ * @version 1.96.3
125
125
  *
126
126
  * @constructor
127
127
  * @public
@@ -992,7 +992,7 @@ function(
992
992
  this._validateCurrentText();
993
993
  }
994
994
 
995
- if (oEvent && oEvent.setMarked && this._bTokenIsValidated) {
995
+ if (oEvent && oEvent.setMarked && (this._bTokenIsValidated || this.getDOMValue())) {
996
996
  oEvent.setMarked();
997
997
  }
998
998
 
@@ -1403,10 +1403,36 @@ function(
1403
1403
 
1404
1404
  var oInfo = Input.prototype.getAccessibilityInfo.apply(this, arguments);
1405
1405
  oInfo.type = oRb.getText("ACC_CTR_TYPE_MULTIINPUT");
1406
- oInfo.description = ((oInfo.description || "") + " " + sText).trim();
1406
+ oInfo.description = (this.getValueDescriptionInfo() + " " + sText).trim();
1407
1407
  return oInfo;
1408
1408
  };
1409
1409
 
1410
+ /**
1411
+ * Gets the value of the accessibility description info field.
1412
+ *
1413
+ * @protected
1414
+ * @override
1415
+ * @returns {string} The value of the accessibility description info
1416
+ */
1417
+ MultiInput.prototype.getValueDescriptionInfo = function () {
1418
+ var iTokensLength = this.getTokens().length;
1419
+ var sDescriptionText = this.getDescription() || "";
1420
+ var sValue = this.getValue();
1421
+
1422
+ if (sValue) {
1423
+ return sValue;
1424
+ }
1425
+
1426
+ // Empty string or the description text should be set as acc description in case there are no tokens and no value.
1427
+ // This way the tokens will be announced as the control's value.
1428
+ if (iTokensLength > 0) {
1429
+ return sDescriptionText;
1430
+ } else {
1431
+ // "Empty" or the description text should be set as acc description in case there are no tokens and no value.
1432
+ return sDescriptionText ? sDescriptionText : sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("INPUTBASE_VALUE_EMPTY");
1433
+ }
1434
+ };
1435
+
1410
1436
  /**
1411
1437
  * Decorates Input
1412
1438
  *
@@ -1660,7 +1686,7 @@ function(
1660
1686
  }
1661
1687
 
1662
1688
  iSummedIconsWidth = this._calculateIconsSpace();
1663
- iTokenizerWidth = Math.ceil(oTokenizer.getDomRef().getBoundingClientRect().width);
1689
+ iTokenizerWidth = oTokenizer.getDomRef().scrollWidth;
1664
1690
  oFocusDomRef.style.width = 'calc(100% - ' + Math.floor(iSummedIconsWidth + iTokenizerWidth) + "px";
1665
1691
  };
1666
1692
 
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @extends sap.ui.core.Control
44
44
  *
45
45
  * @author SAP SE
46
- * @version 1.95.0
46
+ * @version 1.96.3
47
47
  *
48
48
  * @constructor
49
49
  * @public
@@ -1815,21 +1815,28 @@ sap.ui.define([
1815
1815
  * Shows the placeholder if NavContainer is rendered.
1816
1816
  * Otherwise, registers the 'onAfterRendering' delegate which shows the placeholder.
1817
1817
  *
1818
- * @param {object} mSettings Object containing the placeholder instance
1818
+ * @param {object} [mSettings] Object containing the placeholder instance.
1819
+ * Can be omitted if a placeholder instance is already created by <code>sap.ui.core.routing.async.Target</code>.
1820
+ * @param {object} [mSettings.placeholder] The placeholder instance
1819
1821
  * @param {sap.ui.core.Placeholder} mSettings.placeholder The placeholder instance
1820
1822
  * @return {Promise} Promise that resolves with the placeholder
1821
1823
  *
1822
- * @public
1824
+ * @private
1825
+ * @ui5-restricted SAPUI5 Distribution libraries only
1823
1826
  * @since 1.91
1824
1827
  */
1825
1828
  NavContainer.prototype.showPlaceholder = function(mSettings) {
1826
1829
  var pLoaded;
1827
1830
 
1831
+ if (!sap.ui.getCore().getConfiguration().getPlaceholder()) {
1832
+ return;
1833
+ }
1834
+
1828
1835
  if (this._placeholder) {
1829
1836
  this.hidePlaceholder();
1830
1837
  }
1831
1838
 
1832
- if (mSettings.placeholder) {
1839
+ if (mSettings && mSettings.placeholder) {
1833
1840
  this._placeholder = mSettings.placeholder;
1834
1841
  pLoaded = this._placeholder._load();
1835
1842
  } else {
@@ -1848,7 +1855,8 @@ sap.ui.define([
1848
1855
  /**
1849
1856
  * Hides the placeholder and removes the 'onAfterRendering' placeholder delegate.
1850
1857
  *
1851
- * @public
1858
+ * @private
1859
+ * @ui5-restricted SAP internal apps
1852
1860
  * @since 1.91
1853
1861
  */
1854
1862
  NavContainer.prototype.hidePlaceholder = function() {
@@ -8,11 +8,12 @@ sap.ui.define([
8
8
  './library',
9
9
  'sap/ui/core/Control',
10
10
  'sap/m/Text',
11
+ 'sap/m/FormattedText',
11
12
  'sap/ui/Device',
12
13
  './NewsContentRenderer',
13
14
  "sap/ui/events/KeyCodes"
14
15
  ],
15
- function(library, Control, Text, Device, NewsContentRenderer, KeyCodes) {
16
+ function(library, Control, Text, FormattedText, Device, NewsContentRenderer, KeyCodes) {
16
17
  "use strict";
17
18
 
18
19
  /**
@@ -25,7 +26,7 @@ sap.ui.define([
25
26
  * @extends sap.ui.core.Control
26
27
  *
27
28
  * @author SAP SE
28
- * @version 1.95.0
29
+ * @version 1.96.3
29
30
  * @since 1.34
30
31
  *
31
32
  * @public
@@ -56,7 +57,11 @@ sap.ui.define([
56
57
  /**
57
58
  * The hidden aggregation for the content text.
58
59
  */
59
- "_contentText" : {type : "sap.m.Text", multiple : false, visibility : "hidden"}
60
+ "_contentText" : {type : "sap.m.FormattedText", multiple : false, visibility : "hidden"},
61
+ /**
62
+ * The hidden aggregation for the subHeader text.
63
+ */
64
+ "_subHeaderText" : {type : "sap.m.FormattedText", multiple : false, visibility : "hidden"}
60
65
  },
61
66
  events : {
62
67
  /**
@@ -73,11 +78,10 @@ sap.ui.define([
73
78
  * Init function for the control
74
79
  */
75
80
  NewsContent.prototype.init = function() {
76
- this._oContentText = new Text(this.getId() + "-content-text", {
77
- maxLines : 2
78
- });
79
- this._oContentText.cacheLineHeight = false;
81
+ this._oContentText = new FormattedText(this.getId() + "-content-text");
82
+ this._oSubHeaderText = new FormattedText(this.getId() + "-subheader-text");
80
83
  this.setAggregation("_contentText", this._oContentText, true);
84
+ this.setAggregation("_subHeaderText", this._oSubHeaderText, true);
81
85
  this.setTooltip("{AltText}");
82
86
  };
83
87
 
@@ -131,8 +135,8 @@ sap.ui.define([
131
135
  NewsContent.prototype.getAltText = function() {
132
136
  var sAltText = "";
133
137
  var bIsFirst = true;
134
- if (this.getAggregation("_contentText").getText()) {
135
- sAltText += this.getAggregation("_contentText").getText();
138
+ if (this.getContentText()) {
139
+ sAltText += this.getContentText();
136
140
  bIsFirst = false;
137
141
  }
138
142
  if (this.getSubheader()) {
@@ -160,10 +164,15 @@ sap.ui.define([
160
164
  };
161
165
 
162
166
  NewsContent.prototype.setContentText = function(text) {
163
- this._oContentText.setText(text);
167
+ this._oContentText.setHtmlText(text);
164
168
  return this.setProperty("contentText", text, true);
165
169
  };
166
170
 
171
+ NewsContent.prototype.setSubheader = function(text) {
172
+ this._oSubHeaderText.setHtmlText(text);
173
+ return this.setProperty("subheader", text, true);
174
+ };
175
+
167
176
  /* --- Event Handling --- */
168
177
 
169
178
  /**
@@ -23,7 +23,6 @@ sap.ui.define([],
23
23
  * @param {sap.m.GenericTile} oControl the control to be rendered
24
24
  */
25
25
  NewsContentRenderer.render = function(oRm, oControl) {
26
- var sSubheader = oControl.getSubheader();
27
26
  var sTooltip = oControl.getTooltip_AsString();
28
27
  if (typeof sTooltip !== "string") {
29
28
  sTooltip = "";
@@ -49,7 +48,7 @@ sap.ui.define([],
49
48
  oRm.openStart("div", oControl.getId() + "-subheader");
50
49
  oRm.class("sapMNwCSbh");
51
50
  oRm.openEnd();
52
- oRm.text(sSubheader);
51
+ oRm.renderControl(oControl._oSubHeaderText);
53
52
  oRm.close("div");
54
53
  oRm.close("div");
55
54
  };
@@ -27,7 +27,7 @@ function(
27
27
  * @extends sap.m.ListBase
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.95.0
30
+ * @version 1.96.3
31
31
  *
32
32
  * @constructor
33
33
  * @public
@@ -78,7 +78,7 @@ sap.ui.define([
78
78
  * @extends sap.m.ListItemBase
79
79
  *
80
80
  * @author SAP SE
81
- * @version 1.95.0
81
+ * @version 1.96.3
82
82
  *
83
83
  * @constructor
84
84
  * @public
@@ -66,7 +66,7 @@ function(
66
66
  * @extends sap.m.NotificationListBase
67
67
  *
68
68
  * @author SAP SE
69
- * @version 1.95.0
69
+ * @version 1.96.3
70
70
  *
71
71
  * @constructor
72
72
  * @public
@@ -66,7 +66,7 @@ function(
66
66
  * @extends sap.m.NotificationListBase
67
67
  *
68
68
  * @author SAP SE
69
- * @version 1.95.0
69
+ * @version 1.96.3
70
70
  *
71
71
  * @constructor
72
72
  * @public
@@ -107,7 +107,7 @@ sap.ui.define([
107
107
  * @extends sap.ui.core.Control
108
108
  *
109
109
  * @author SAP SE
110
- * @version 1.95.0
110
+ * @version 1.96.3
111
111
  * @since 1.34
112
112
  *
113
113
  * @public
@@ -184,28 +184,45 @@ sap.ui.define([
184
184
  oRm.class(oControl.getState());
185
185
  oRm.openEnd();
186
186
 
187
- var oMaxDigitsData = oControl._getMaxDigitsData();
188
- this._prepareAndRenderIcon(oRm, oControl, oControl._oIcon, oMaxDigitsData.fontClass);
189
-
190
- var iChar = oControl.getTruncateValueTo() || oMaxDigitsData.maxLength;
191
- oRm.openStart("span" , oControl.getId() + "-value-inner");
192
- if (oMaxDigitsData.fontClass) {
193
- oRm.class(oMaxDigitsData.fontClass);
194
- }
195
- oRm.openEnd();
187
+ if (oControl.getState() === LoadState.Loading) {
188
+ oRm.openStart("div").class("sapMNCContentShimmerPlaceholderItem");
189
+ oRm.openEnd();
190
+ oRm.openStart("div")
191
+ .class("sapMNCContentShimmerPlaceholderRows")
192
+ .openEnd();
193
+ oRm.openStart("div")
194
+ .class("sapMNCContentShimmerPlaceholderItemHeader")
195
+ .class("sapMNCLoadingShimmer")
196
+ .openEnd()
197
+ .close("div");
196
198
 
197
- //Control shows only iChar characters. If the last shown character is decimal separator - show only first N-1 characters. So "144.5" is shown like "144" and not like "144.".
198
- if (sValue.length >= iChar && (sValue[iChar - 1] === "." || sValue[iChar - 1] === ",")) {
199
- oRm.text(sValue.substring(0, iChar - 1));
199
+ oRm.close("div");
200
+ oRm.close("div");
201
+ oRm.close("div");
200
202
  } else {
201
- oRm.text(sValue ? sValue.substring(0, iChar) : sEmptyValue);
202
- }
203
+ var oMaxDigitsData = oControl._getMaxDigitsData();
204
+ this._prepareAndRenderIcon(oRm, oControl, oControl._oIcon, oMaxDigitsData.fontClass);
203
205
 
204
- oRm.close("span");
206
+ var iChar = oControl.getTruncateValueTo() || oMaxDigitsData.maxLength;
207
+ oRm.openStart("span" , oControl.getId() + "-value-inner");
208
+ if (oMaxDigitsData.fontClass) {
209
+ oRm.class(oMaxDigitsData.fontClass);
210
+ }
211
+ oRm.openEnd();
205
212
 
206
- this._renderScaleAndIndicator(oRm, oControl, sWithoutMargin, sValue, sScale, oMaxDigitsData.fontClass);
213
+ //Control shows only iChar characters. If the last shown character is decimal separator - show only first N-1 characters. So "144.5" is shown like "144" and not like "144.".
214
+ if (sValue.length >= iChar && (sValue[iChar - 1] === "." || sValue[iChar - 1] === ",")) {
215
+ oRm.text(sValue.substring(0, iChar - 1));
216
+ } else {
217
+ oRm.text(sValue ? sValue.substring(0, iChar) : sEmptyValue);
218
+ }
207
219
 
208
- oRm.close("div");
220
+ oRm.close("span");
221
+
222
+ this._renderScaleAndIndicator(oRm, oControl, sWithoutMargin, sValue, sScale, oMaxDigitsData.fontClass);
223
+
224
+ oRm.close("div");
225
+ }
209
226
  };
210
227
 
211
228
  return NumericContentRenderer;
@@ -0,0 +1,138 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "./InputBase",
9
+ "./Input",
10
+ "./NumericInputRenderer",
11
+ "./library",
12
+ "sap/ui/core/format/NumberFormat",
13
+ "sap/ui/Device",
14
+ "sap/ui/events/KeyCodes",
15
+ "sap/ui/dom/jquery/cursorPos"],
16
+ function(
17
+ InputBase,
18
+ Input,
19
+ NumericInputRenderer,
20
+ library,
21
+ NumberFormat,
22
+ Device,
23
+ KeyCodes) {
24
+ "use strict";
25
+
26
+ var InputType = library.InputType;
27
+
28
+ /**
29
+ * Constructor for a new <code>sap.m.NumericInput</code>.
30
+ * Only used inside a StepInput control.
31
+ *
32
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
33
+ * @param {object} [mSettings] Initial settings for the new control
34
+ *
35
+ * @class
36
+ * The <code>sap.m.NumericInput</code> control provides functionality for a editing numbers.
37
+ *
38
+ * @extends sap.m.Input
39
+ *
40
+ * @author SAP SE
41
+ * @version 1.96.3
42
+ *
43
+ * @constructor
44
+ * @private
45
+ * @since 1.97.0
46
+ * @alias sap.m.NumericInput
47
+ */
48
+ var NumericInput = Input.extend("sap.m.NumericInput", {
49
+ metadata: {
50
+ library: "sap.m"
51
+ }
52
+ });
53
+
54
+ NumericInput.prototype.onBeforeRendering = function() {
55
+ InputBase.prototype.onBeforeRendering.call(this);
56
+
57
+ // The Input is handling its width in its onBeforeRendering method - if noting is set, the width is 100%.
58
+ // As the NumericInput is using the InputBase's onBeforeRendering method, the width must be handled here too.
59
+ // The real width of the StepInput is handled from its width property, so the NumericInput's width should be 100%.
60
+ this.setWidth("100%");
61
+
62
+ this._deregisterEvents();
63
+ };
64
+
65
+ NumericInput.prototype.setValue = function(sValue) {
66
+ Input.prototype.setValue.apply(this, arguments);
67
+
68
+ if (this.getDomRef()) {
69
+ this.getDomRef("inner").setAttribute("aria-valuenow", sValue);
70
+ }
71
+
72
+ return this;
73
+ };
74
+
75
+ NumericInput.prototype.setType = function(sType) {
76
+ return Input.prototype.setType.call(this, InputType.Number);
77
+ };
78
+
79
+ NumericInput.prototype.onkeydown = function(oEvent) {
80
+ var sTypedValue,
81
+ iCursorPos,
82
+ fParsedValue;
83
+
84
+ Input.prototype.onkeydown.apply(this, arguments);
85
+
86
+ if (!Device.system.desktop
87
+ || oEvent.ctrlKey
88
+ || oEvent.metaKey
89
+ || (oEvent.originalEvent.key && oEvent.originalEvent.key.length !== 1)) {
90
+ return;
91
+ }
92
+
93
+ iCursorPos = this._$input.cursorPos();
94
+
95
+ // a special key that is meant to be a decimal separator, always
96
+ // so replace in the input if needed
97
+ if (oEvent.which === KeyCodes.NUMPAD_COMMA) {
98
+ oEvent.preventDefault();
99
+
100
+ sTypedValue = this.getValue().substring(0, iCursorPos) + this._getNumberFormat().oFormatOptions.decimalSeparator + this.getValue().substring(iCursorPos);
101
+ fParsedValue = this._getNumberFormat().parse(sTypedValue);
102
+ if (fParsedValue || fParsedValue === 0) {
103
+ this.setDOMValue(sTypedValue);
104
+ }
105
+
106
+ return;
107
+ }
108
+
109
+ sTypedValue = this.getValue().substring(0, iCursorPos) + oEvent.originalEvent.key + this.getValue().substring(iCursorPos);
110
+ fParsedValue = this._getNumberFormat().parse(sTypedValue);
111
+ if (!isKeyAllowed(oEvent.which) || (!fParsedValue && fParsedValue !== 0)) {
112
+ oEvent.preventDefault();
113
+ }
114
+ };
115
+
116
+ var aNotAllowedKeyCodeRanges = [
117
+ [KeyCodes.A, KeyCodes.Z],
118
+ [KeyCodes.OPEN_BRACKET, KeyCodes.OPEN_BRACKET],
119
+ [KeyCodes.PIPE, KeyCodes.SEMICOLON],
120
+ [KeyCodes.GREAT_ACCENT, KeyCodes.BACKSLASH]
121
+ ];
122
+
123
+ function isKeyAllowed(iKeyCode) {
124
+ return Object.values(KeyCodes).includes(iKeyCode) && !aNotAllowedKeyCodeRanges.some(function(aRange) {
125
+ return iKeyCode >= aRange[0] && iKeyCode <= aRange[1];
126
+ });
127
+ }
128
+
129
+ NumericInput.prototype._getNumberFormat = function() {
130
+ if (!this._oNumberFormat) {
131
+ this._oNumberFormat = NumberFormat.getFloatInstance();
132
+ }
133
+
134
+ return this._oNumberFormat;
135
+ };
136
+
137
+ return NumericInput;
138
+ });
@@ -0,0 +1,120 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define(["sap/ui/core/Renderer", "./InputRenderer", "sap/ui/Device", "sap/ui/core/LabelEnablement"],
8
+ function(Renderer, InputRenderer, Device, LabelEnablement) {
9
+ "use strict";
10
+
11
+ /**
12
+ * NumericInput renderer.
13
+ *
14
+ * NumericInputRenderer extends the InputRenderer.
15
+ *
16
+ * @namespace
17
+ */
18
+ var NumericInputRenderer = Renderer.extend(InputRenderer);
19
+ NumericInputRenderer.apiVersion = 2;
20
+
21
+ NumericInputRenderer.writeInnerAttributes = function(oRm, oControl) {
22
+ var oStepInput = oControl.getParent(),
23
+ mAccAttributes = this.getAccessibilityState(oControl);
24
+
25
+ oRm.attr("type", Device.system.desktop ? "text" : "number");
26
+
27
+ // inside the Input this function also sets explicitly textAlign to "End" if the type
28
+ // of the Input is Numeric (our case)
29
+ // so we have to overwrite it by leaving only the text direction
30
+ // and the textAlign will be controlled by textAlign property of the StepInput
31
+
32
+ if (sap.ui.getCore().getConfiguration().getRTL()) {
33
+ oRm.attr("dir", "ltr");
34
+ }
35
+ // prevent rendering of aria-disabled attribute to avoid having
36
+ // both aria-disabled and disabled at the same time
37
+ mAccAttributes.disabled = null;
38
+
39
+ if (NumericInputRenderer._isStepInput(oStepInput)) {
40
+ oRm.accessibilityState(oStepInput, mAccAttributes);
41
+ }
42
+ };
43
+
44
+ //Accessibility behavior of the Input needs to be extended
45
+ /**
46
+ * Overwrites the accessibility state using the <code>getAccessibilityState</code> method of the <code>InputBaseRenderer</code>.
47
+ *
48
+ * @param {NumericInput} oNumericInput The numeric input instance
49
+ * @returns {Array} mAccessibilityState
50
+ */
51
+ NumericInputRenderer.getAccessibilityState = function(oNumericInput) {
52
+ var mAccessibilityState = InputRenderer.getAccessibilityState(oNumericInput),
53
+ fMin,
54
+ fMax,
55
+ fNow,
56
+ sDescription,
57
+ aAriaLabelledByRefs,
58
+ aReferencingLabels,
59
+ sDescribedBy,
60
+ sResultingLabelledBy,
61
+ oStepInput = oNumericInput.getParent(),
62
+ sValue = oNumericInput.getValue();
63
+
64
+ if (!NumericInputRenderer._isStepInput(oStepInput)) {
65
+ return mAccessibilityState;
66
+ }
67
+
68
+ fMin = oStepInput._getMin();
69
+ fMax = oStepInput._getMax();
70
+ fNow = oStepInput.getValue();
71
+ sDescription = oStepInput.getDescription();
72
+ aAriaLabelledByRefs = oStepInput.getAriaLabelledBy();
73
+ // If we don't check this manually, we won't have the labels, which were referencing SI,
74
+ // in aria-labelledby (which normally comes out of the box). This is because writeAccessibilityState
75
+ // is called for NumericInput, while any labels will be for the parent StepInput.
76
+ aReferencingLabels = LabelEnablement.getReferencingLabels(oStepInput);
77
+ sDescribedBy = oStepInput.getAriaDescribedBy().join(" ");
78
+
79
+ mAccessibilityState.valuenow = fNow;
80
+
81
+ if (Device.system.desktop && sValue) {
82
+ mAccessibilityState.valuetext = sValue;
83
+ }
84
+
85
+ if (sDescription) {
86
+ // If there is a description, we should add a reference to it in the aria-labelledby
87
+ aAriaLabelledByRefs.push(oStepInput._getInput().getId() + "-descr");
88
+ }
89
+
90
+ sResultingLabelledBy = aReferencingLabels.concat(aAriaLabelledByRefs).join(" ");
91
+
92
+ if (typeof fMin === "number") {
93
+ mAccessibilityState.valuemin = fMin;
94
+ }
95
+
96
+ if (typeof fMax === "number") {
97
+ mAccessibilityState.valuemax = fMax;
98
+ }
99
+
100
+ if (!oStepInput.getEditable()) {
101
+ mAccessibilityState.readonly = true;
102
+ }
103
+
104
+ if (sDescribedBy) {
105
+ mAccessibilityState.describedby = sDescribedBy;
106
+ }
107
+
108
+ if (sResultingLabelledBy) {
109
+ mAccessibilityState.labelledby = sResultingLabelledBy;
110
+ }
111
+
112
+ return mAccessibilityState;
113
+ };
114
+
115
+ NumericInputRenderer._isStepInput = function(oControl) {
116
+ return oControl && oControl.getMetadata().getName() === "sap.m.StepInput";
117
+ };
118
+
119
+ return NumericInputRenderer;
120
+ });
@@ -13,9 +13,10 @@ sap.ui.define([
13
13
  'sap/ui/events/KeyCodes',
14
14
  './ObjectAttributeRenderer',
15
15
  'sap/base/Log',
16
+ 'sap/ui/base/ManagedObjectObserver',
16
17
  'sap/ui/core/Core'
17
18
  ],
18
- function(library, Control, coreLibrary, Text, KeyCodes, ObjectAttributeRenderer, Log, Core) {
19
+ function(library, Control, coreLibrary, Text, KeyCodes, ObjectAttributeRenderer, Log, ManagedObjectObserver, Core) {
19
20
  "use strict";
20
21
 
21
22
  // shortcut for sap.ui.core.TextDirection
@@ -38,7 +39,7 @@ function(library, Control, coreLibrary, Text, KeyCodes, ObjectAttributeRenderer,
38
39
  * <code>text</code> property is styled and acts as a link. In this case the <code>text</code>
39
40
  * property must also be set, as otherwise there will be no link displayed for the user.
40
41
  * @extends sap.ui.core.Control
41
- * @version 1.95.0
42
+ * @version 1.96.3
42
43
  *
43
44
  * @constructor
44
45
  * @public
@@ -116,13 +117,24 @@ function(library, Control, coreLibrary, Text, KeyCodes, ObjectAttributeRenderer,
116
117
  this.setAggregation('_textControl', new Text());
117
118
  };
118
119
 
120
+ ObjectAttribute.prototype.exit = function() {
121
+ if (this._oCustomContentObserver) {
122
+ this._oCustomContentObserver.disconnect();
123
+ this._oCustomContentObserver = null;
124
+ }
125
+
126
+ if (this._oCustomContentCloning) {
127
+ this._oCustomContentCloning.destroy();
128
+ }
129
+ };
130
+
119
131
  /**
120
132
  * Delivers text control with updated title, text and maxLines properties.
121
133
  *
122
134
  * @private
123
135
  */
124
136
  ObjectAttribute.prototype._getUpdatedTextControl = function() {
125
- var oAttrAggregation = this.getAggregation('customContent') || this.getAggregation('_textControl'),
137
+ var oAttrAggregation = this._oCustomContentCloning || this.getAggregation('_textControl'),
126
138
  sTitle = this.getTitle(),
127
139
  sText = this.getAggregation('customContent') ? this.getAggregation('customContent').getText() : this.getText(),
128
140
  sTextDir = this.getTextDirection(),
@@ -280,11 +292,40 @@ function(library, Control, coreLibrary, Text, KeyCodes, ObjectAttributeRenderer,
280
292
  };
281
293
 
282
294
  ObjectAttribute.prototype.setCustomContent = function(oCustomContent) {
283
- if (oCustomContent && oCustomContent.isA('sap.m.Link')) {
284
- oCustomContent._getTabindex = function() {
295
+ var oCurrentCustomContent = this.getCustomContent(),
296
+ fnGetTabIndex = function() {
285
297
  return "-1";
286
298
  };
299
+
300
+ //for the cases where the original custom content is rendered
301
+ if (oCustomContent && oCustomContent.isA('sap.m.Link')) {
302
+ oCustomContent._getTabindex = fnGetTabIndex;
303
+ }
304
+
305
+ // clone the new aggregation, but first destroy the previous cloning
306
+ if (this._oCustomContentCloning) {
307
+ this._oCustomContentCloning.destroy();
308
+ }
309
+ this._oCustomContentCloning = oCustomContent && oCustomContent.clone();
310
+
311
+ if (this._oCustomContentCloning && this._oCustomContentCloning.isA('sap.m.Link')) {
312
+ this._oCustomContentCloning._getTabindex = fnGetTabIndex;
313
+ }
314
+
315
+ if (!this._oCustomContentObserver) {
316
+ this._oCustomContentObserver = new ManagedObjectObserver(function() {
317
+ this.invalidate();
318
+ }.bind(this));
287
319
  }
320
+
321
+ // do not listen for property changes on the old control
322
+ if (oCurrentCustomContent) {
323
+ this._oCustomContentObserver.unobserve(oCurrentCustomContent);
324
+ }
325
+
326
+ // listen on the new one
327
+ oCustomContent && this._oCustomContentObserver.observe(oCustomContent, { properties: true });
328
+
288
329
  return this.setAggregation('customContent', oCustomContent);
289
330
  };
290
331