@openui5/sap.m 1.94.0 → 1.97.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 (520) hide show
  1. package/.reuse/dep5 +12 -12
  2. package/THIRDPARTY.txt +21 -17
  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 +10 -2
  12. package/src/sap/m/AvatarRenderer.js +3 -0
  13. package/src/sap/m/Bar.js +13 -7
  14. package/src/sap/m/Breadcrumbs.js +2 -2
  15. package/src/sap/m/BusyDialog.js +1 -1
  16. package/src/sap/m/BusyIndicator.js +1 -1
  17. package/src/sap/m/Button.js +34 -1
  18. package/src/sap/m/Carousel.js +11 -3
  19. package/src/sap/m/CarouselLayout.js +1 -1
  20. package/src/sap/m/CheckBox.js +1 -1
  21. package/src/sap/m/ColorPalette.js +7 -11
  22. package/src/sap/m/ColorPalettePopover.js +1 -6
  23. package/src/sap/m/Column.js +6 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +1 -1
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +39 -6
  32. package/src/sap/m/ComboBoxBase.js +125 -16
  33. package/src/sap/m/ComboBoxRenderer.js +25 -9
  34. package/src/sap/m/ComboBoxTextField.js +21 -7
  35. package/src/sap/m/CustomDynamicDateOption.js +9 -1
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +72 -18
  40. package/src/sap/m/DatePickerRenderer.js +14 -1
  41. package/src/sap/m/DateRangeSelection.js +6 -9
  42. package/src/sap/m/DateTimeField.js +1 -1
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +53 -60
  45. package/src/sap/m/Dialog.js +35 -49
  46. package/src/sap/m/DialogRenderer.js +1 -1
  47. package/src/sap/m/DisplayListItem.js +1 -1
  48. package/src/sap/m/DraftIndicator.js +1 -1
  49. package/src/sap/m/DynamicDate.js +1 -1
  50. package/src/sap/m/DynamicDateFormat.js +5 -5
  51. package/src/sap/m/DynamicDateOption.js +3 -2
  52. package/src/sap/m/DynamicDateRange.js +20 -8
  53. package/src/sap/m/DynamicDateUtil.js +14 -9
  54. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  55. package/src/sap/m/ExpandableText.js +1 -1
  56. package/src/sap/m/FacetFilter.js +1 -1
  57. package/src/sap/m/FacetFilterItem.js +1 -1
  58. package/src/sap/m/FacetFilterList.js +1 -1
  59. package/src/sap/m/FeedContent.js +1 -1
  60. package/src/sap/m/FeedInput.js +1 -1
  61. package/src/sap/m/FeedListItem.js +1 -1
  62. package/src/sap/m/FeedListItemAction.js +1 -1
  63. package/src/sap/m/Fiori20Adapter.js +2 -2
  64. package/src/sap/m/FlexBox.js +1 -1
  65. package/src/sap/m/FlexItemData.js +1 -1
  66. package/src/sap/m/FormattedText.js +1 -1
  67. package/src/sap/m/GenericTag.js +8 -1
  68. package/src/sap/m/GenericTagRenderer.js +1 -1
  69. package/src/sap/m/GenericTile.js +236 -56
  70. package/src/sap/m/GenericTileRenderer.js +229 -84
  71. package/src/sap/m/GroupHeaderListItem.js +1 -1
  72. package/src/sap/m/GrowingList.js +1 -1
  73. package/src/sap/m/HBox.js +1 -1
  74. package/src/sap/m/HeaderContainer.js +1 -1
  75. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  76. package/src/sap/m/IconTabBar.js +8 -1
  77. package/src/sap/m/IconTabBarSelectList.js +1 -1
  78. package/src/sap/m/IconTabFilter.js +2 -2
  79. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  80. package/src/sap/m/IconTabHeader.js +25 -6
  81. package/src/sap/m/IconTabSeparator.js +1 -1
  82. package/src/sap/m/Image.js +1 -1
  83. package/src/sap/m/ImageContent.js +1 -1
  84. package/src/sap/m/Input.js +67 -16
  85. package/src/sap/m/InputBase.js +96 -14
  86. package/src/sap/m/InputBaseRenderer.js +8 -20
  87. package/src/sap/m/InputListItem.js +1 -1
  88. package/src/sap/m/Label.js +1 -1
  89. package/src/sap/m/LightBox.js +1 -1
  90. package/src/sap/m/LightBoxItem.js +1 -1
  91. package/src/sap/m/Link.js +1 -1
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +2 -2
  94. package/src/sap/m/ListItemBase.js +12 -4
  95. package/src/sap/m/MaskEnabler.js +106 -4
  96. package/src/sap/m/MaskInput.js +19 -4
  97. package/src/sap/m/MaskInputRule.js +1 -1
  98. package/src/sap/m/Menu.js +8 -6
  99. package/src/sap/m/MenuButton.js +7 -1
  100. package/src/sap/m/MenuButtonRenderer.js +1 -0
  101. package/src/sap/m/MenuItem.js +1 -1
  102. package/src/sap/m/MenuListItem.js +1 -1
  103. package/src/sap/m/MessageItem.js +1 -16
  104. package/src/sap/m/MessageListItem.js +1 -1
  105. package/src/sap/m/MessagePage.js +35 -6
  106. package/src/sap/m/MessagePopover.js +1 -4
  107. package/src/sap/m/MessagePopoverItem.js +1 -1
  108. package/src/sap/m/MessageStrip.js +7 -3
  109. package/src/sap/m/MessageStripRenderer.js +2 -2
  110. package/src/sap/m/MessageToast.js +1 -1
  111. package/src/sap/m/MessageView.js +16 -27
  112. package/src/sap/m/MultiComboBox.js +412 -150
  113. package/src/sap/m/MultiComboBoxRenderer.js +4 -0
  114. package/src/sap/m/MultiEditField.js +1 -1
  115. package/src/sap/m/MultiInput.js +78 -6
  116. package/src/sap/m/NavContainer.js +13 -5
  117. package/src/sap/m/NewsContent.js +19 -10
  118. package/src/sap/m/NewsContentRenderer.js +1 -2
  119. package/src/sap/m/NotificationList.js +1 -1
  120. package/src/sap/m/NotificationListBase.js +1 -1
  121. package/src/sap/m/NotificationListGroup.js +1 -1
  122. package/src/sap/m/NotificationListGroupRenderer.js +1 -0
  123. package/src/sap/m/NotificationListItem.js +1 -1
  124. package/src/sap/m/NumericContent.js +1 -1
  125. package/src/sap/m/NumericContentRenderer.js +34 -17
  126. package/src/sap/m/ObjectAttribute.js +46 -5
  127. package/src/sap/m/ObjectHeader.js +3 -3
  128. package/src/sap/m/ObjectIdentifier.js +1 -1
  129. package/src/sap/m/ObjectListItem.js +1 -1
  130. package/src/sap/m/ObjectMarker.js +19 -2
  131. package/src/sap/m/ObjectNumber.js +1 -1
  132. package/src/sap/m/ObjectNumberRenderer.js +1 -1
  133. package/src/sap/m/ObjectStatus.js +1 -1
  134. package/src/sap/m/ObjectStatusRenderer.js +4 -1
  135. package/src/sap/m/OverflowToolbar.js +10 -6
  136. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  137. package/src/sap/m/OverflowToolbarButton.js +4 -2
  138. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  139. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  140. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  141. package/src/sap/m/P13nColumnsItem.js +1 -1
  142. package/src/sap/m/P13nColumnsPanel.js +3 -3
  143. package/src/sap/m/P13nConditionPanel.js +22 -52
  144. package/src/sap/m/P13nDialog.js +1 -1
  145. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  146. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  147. package/src/sap/m/P13nFilterItem.js +1 -1
  148. package/src/sap/m/P13nFilterPanel.js +1 -3
  149. package/src/sap/m/P13nGroupItem.js +1 -1
  150. package/src/sap/m/P13nGroupPanel.js +1 -3
  151. package/src/sap/m/P13nItem.js +1 -1
  152. package/src/sap/m/P13nPanel.js +4 -1
  153. package/src/sap/m/P13nSelectionItem.js +1 -1
  154. package/src/sap/m/P13nSelectionPanel.js +1 -1
  155. package/src/sap/m/P13nSortItem.js +1 -1
  156. package/src/sap/m/P13nSortPanel.js +1 -3
  157. package/src/sap/m/PDFViewer.js +14 -5
  158. package/src/sap/m/Page.js +1 -1
  159. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  160. package/src/sap/m/PagingButton.js +1 -1
  161. package/src/sap/m/Panel.js +1 -1
  162. package/src/sap/m/PlanningCalendar.js +70 -35
  163. package/src/sap/m/PlanningCalendarHeader.js +5 -8
  164. package/src/sap/m/PlanningCalendarLegend.js +25 -10
  165. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -7
  166. package/src/sap/m/PlanningCalendarRow.js +8 -3
  167. package/src/sap/m/PlanningCalendarView.js +1 -6
  168. package/src/sap/m/Popover.js +3 -3
  169. package/src/sap/m/PopoverRenderer.js +3 -2
  170. package/src/sap/m/ProgressIndicator.js +13 -1
  171. package/src/sap/m/PullToRefresh.js +1 -1
  172. package/src/sap/m/QuickView.js +1 -1
  173. package/src/sap/m/QuickViewBase.js +1 -1
  174. package/src/sap/m/QuickViewCard.js +1 -1
  175. package/src/sap/m/QuickViewGroup.js +1 -1
  176. package/src/sap/m/QuickViewGroupElement.js +1 -1
  177. package/src/sap/m/QuickViewPage.js +1 -1
  178. package/src/sap/m/RadioButton.js +1 -1
  179. package/src/sap/m/RadioButtonGroup.js +1 -1
  180. package/src/sap/m/RangeSlider.js +1 -1
  181. package/src/sap/m/RatingIndicator.js +10 -8
  182. package/src/sap/m/ResponsivePopover.js +1 -1
  183. package/src/sap/m/ResponsiveScale.js +1 -1
  184. package/src/sap/m/ScrollBar.js +1 -1
  185. package/src/sap/m/ScrollContainer.js +1 -1
  186. package/src/sap/m/SearchField.js +2 -33
  187. package/src/sap/m/SegmentedButton.js +31 -19
  188. package/src/sap/m/SegmentedButtonItem.js +1 -1
  189. package/src/sap/m/SegmentedButtonRenderer.js +6 -0
  190. package/src/sap/m/Select.js +34 -13
  191. package/src/sap/m/SelectDialog.js +1 -1
  192. package/src/sap/m/SelectDialogBase.js +1 -1
  193. package/src/sap/m/SelectList.js +1 -1
  194. package/src/sap/m/SelectRenderer.js +10 -1
  195. package/src/sap/m/SelectionDetails.js +7 -9
  196. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  197. package/src/sap/m/SelectionDetailsItem.js +8 -4
  198. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  199. package/src/sap/m/Shell.js +9 -17
  200. package/src/sap/m/SimpleFixFlex.js +1 -1
  201. package/src/sap/m/SinglePlanningCalendar.js +7 -10
  202. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  203. package/src/sap/m/SinglePlanningCalendarGrid.js +29 -34
  204. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +34 -22
  205. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -6
  206. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +7 -8
  207. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -6
  208. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  209. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -6
  210. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -6
  211. package/src/sap/m/SlideTile.js +31 -3
  212. package/src/sap/m/SlideTileRenderer.js +9 -0
  213. package/src/sap/m/Slider.js +1 -1
  214. package/src/sap/m/SliderTooltip.js +1 -1
  215. package/src/sap/m/SliderTooltipBase.js +1 -1
  216. package/src/sap/m/SliderTooltipContainer.js +1 -1
  217. package/src/sap/m/SplitApp.js +1 -1
  218. package/src/sap/m/SplitButton.js +1 -1
  219. package/src/sap/m/SplitButtonRenderer.js +5 -1
  220. package/src/sap/m/SplitContainer.js +10 -4
  221. package/src/sap/m/StandardDynamicDateOption.js +98 -69
  222. package/src/sap/m/StandardListItem.js +33 -21
  223. package/src/sap/m/StandardListItemRenderer.js +21 -9
  224. package/src/sap/m/StandardTile.js +1 -1
  225. package/src/sap/m/StandardTreeItem.js +1 -1
  226. package/src/sap/m/StepInput.js +17 -12
  227. package/src/sap/m/Suggest.js +25 -25
  228. package/src/sap/m/SuggestionItem.js +1 -7
  229. package/src/sap/m/SuggestionsPopover.js +44 -1
  230. package/src/sap/m/Switch.js +9 -1
  231. package/src/sap/m/TabContainer.js +1 -1
  232. package/src/sap/m/TabContainerItem.js +33 -3
  233. package/src/sap/m/TabStrip.js +1 -1
  234. package/src/sap/m/TabStripItem.js +11 -15
  235. package/src/sap/m/TabStripRenderer.js +1 -1
  236. package/src/sap/m/Table.js +4 -3
  237. package/src/sap/m/TablePersoController.js +1 -1
  238. package/src/sap/m/TablePersoDialog.js +1 -1
  239. package/src/sap/m/TablePersoProvider.js +1 -1
  240. package/src/sap/m/TableRenderer.js +1 -1
  241. package/src/sap/m/TableSelectDialog.js +1 -1
  242. package/src/sap/m/Text.js +1 -1
  243. package/src/sap/m/TextArea.js +2 -2
  244. package/src/sap/m/Tile.js +1 -1
  245. package/src/sap/m/TileContainer.js +1 -1
  246. package/src/sap/m/TileContent.js +22 -4
  247. package/src/sap/m/TileContentRenderer.js +73 -5
  248. package/src/sap/m/TimePicker.js +45 -6
  249. package/src/sap/m/TimePickerClock.js +2 -2
  250. package/src/sap/m/TimePickerClocks.js +1 -1
  251. package/src/sap/m/TimePickerInputs.js +3 -3
  252. package/src/sap/m/TimePickerInternals.js +1 -1
  253. package/src/sap/m/TimePickerRenderer.js +4 -0
  254. package/src/sap/m/TimePickerSlider.js +2 -2
  255. package/src/sap/m/TimePickerSliders.js +1 -1
  256. package/src/sap/m/Title.js +1 -1
  257. package/src/sap/m/TitlePropagationSupport.js +1 -1
  258. package/src/sap/m/ToggleButton.js +1 -1
  259. package/src/sap/m/ToggleButtonRenderer.js +1 -1
  260. package/src/sap/m/Token.js +1 -1
  261. package/src/sap/m/Tokenizer.js +2 -1
  262. package/src/sap/m/TokenizerRenderer.js +1 -0
  263. package/src/sap/m/Toolbar.js +1 -1
  264. package/src/sap/m/ToolbarLayoutData.js +1 -1
  265. package/src/sap/m/ToolbarSeparator.js +1 -1
  266. package/src/sap/m/ToolbarSpacer.js +1 -1
  267. package/src/sap/m/Tree.js +1 -1
  268. package/src/sap/m/TreeItemBase.js +1 -1
  269. package/src/sap/m/UploadCollection.js +2 -7
  270. package/src/sap/m/UploadCollectionItem.js +1 -1
  271. package/src/sap/m/UploadCollectionParameter.js +1 -1
  272. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  273. package/src/sap/m/VBox.js +1 -1
  274. package/src/sap/m/ValueStateHeader.js +1 -1
  275. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  276. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  277. package/src/sap/m/ViewSettingsDialog.js +18 -6
  278. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  279. package/src/sap/m/ViewSettingsItem.js +1 -1
  280. package/src/sap/m/VisibleItem.js +1 -1
  281. package/src/sap/m/WheelSlider.js +2 -2
  282. package/src/sap/m/WheelSliderContainer.js +1 -1
  283. package/src/sap/m/Wizard.js +18 -8
  284. package/src/sap/m/WizardProgressNavigator.js +1 -1
  285. package/src/sap/m/WizardProgressNavigatorRenderer.js +3 -2
  286. package/src/sap/m/WizardStep.js +1 -1
  287. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  288. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  289. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  290. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  291. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +98 -0
  292. package/src/sap/m/changeHandler/SplitMenuButton.js +5 -2
  293. package/src/sap/m/delegate/DateNavigation.js +4 -5
  294. package/src/sap/m/delegate/ValueStateMessage.js +4 -7
  295. package/src/sap/m/designtime/IconTabBar.designtime.js +86 -2
  296. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  297. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  298. package/src/sap/m/designtime/messagebundle.properties +9 -0
  299. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  300. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_de.properties +8 -2
  306. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  333. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  334. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  335. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  336. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  337. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  338. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  339. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  340. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  341. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  342. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  343. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  344. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  345. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  346. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  347. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  348. package/src/sap/m/inputUtils/ListHelpers.js +16 -3
  349. package/src/sap/m/library.js +122 -35
  350. package/src/sap/m/messagebundle.properties +83 -5
  351. package/src/sap/m/messagebundle_ar.properties +64 -2
  352. package/src/sap/m/messagebundle_bg.properties +64 -2
  353. package/src/sap/m/messagebundle_ca.properties +69 -7
  354. package/src/sap/m/messagebundle_cs.properties +75 -13
  355. package/src/sap/m/messagebundle_cy.properties +64 -2
  356. package/src/sap/m/messagebundle_da.properties +64 -2
  357. package/src/sap/m/messagebundle_de.properties +64 -2
  358. package/src/sap/m/messagebundle_el.properties +64 -2
  359. package/src/sap/m/messagebundle_en.properties +64 -2
  360. package/src/sap/m/messagebundle_en_GB.properties +64 -2
  361. package/src/sap/m/messagebundle_en_US_sappsd.properties +65 -3
  362. package/src/sap/m/messagebundle_en_US_saptrc.properties +65 -3
  363. package/src/sap/m/messagebundle_es.properties +67 -5
  364. package/src/sap/m/messagebundle_es_MX.properties +65 -3
  365. package/src/sap/m/messagebundle_et.properties +64 -2
  366. package/src/sap/m/messagebundle_fi.properties +64 -2
  367. package/src/sap/m/messagebundle_fr.properties +84 -22
  368. package/src/sap/m/messagebundle_fr_CA.properties +65 -3
  369. package/src/sap/m/messagebundle_hi.properties +64 -2
  370. package/src/sap/m/messagebundle_hr.properties +64 -2
  371. package/src/sap/m/messagebundle_hu.properties +64 -2
  372. package/src/sap/m/messagebundle_id.properties +65 -3
  373. package/src/sap/m/messagebundle_it.properties +70 -8
  374. package/src/sap/m/messagebundle_iw.properties +64 -2
  375. package/src/sap/m/messagebundle_ja.properties +64 -2
  376. package/src/sap/m/messagebundle_kk.properties +64 -2
  377. package/src/sap/m/messagebundle_ko.properties +65 -3
  378. package/src/sap/m/messagebundle_lt.properties +64 -2
  379. package/src/sap/m/messagebundle_lv.properties +64 -2
  380. package/src/sap/m/messagebundle_ms.properties +65 -3
  381. package/src/sap/m/messagebundle_nl.properties +65 -3
  382. package/src/sap/m/messagebundle_no.properties +76 -14
  383. package/src/sap/m/messagebundle_pl.properties +68 -6
  384. package/src/sap/m/messagebundle_pt.properties +67 -5
  385. package/src/sap/m/messagebundle_pt_PT.properties +65 -3
  386. package/src/sap/m/messagebundle_ro.properties +70 -8
  387. package/src/sap/m/messagebundle_ru.properties +66 -4
  388. package/src/sap/m/messagebundle_sh.properties +66 -4
  389. package/src/sap/m/messagebundle_sk.properties +64 -2
  390. package/src/sap/m/messagebundle_sl.properties +64 -2
  391. package/src/sap/m/messagebundle_sv.properties +64 -2
  392. package/src/sap/m/messagebundle_th.properties +64 -2
  393. package/src/sap/m/messagebundle_tr.properties +64 -2
  394. package/src/sap/m/messagebundle_uk.properties +71 -9
  395. package/src/sap/m/messagebundle_vi.properties +65 -3
  396. package/src/sap/m/messagebundle_zh_CN.properties +64 -2
  397. package/src/sap/m/messagebundle_zh_TW.properties +64 -2
  398. package/src/sap/m/p13n/AbstractContainer.js +286 -0
  399. package/src/sap/m/p13n/AbstractContainerItem.js +94 -0
  400. package/src/sap/m/p13n/BasePanel.js +644 -0
  401. package/src/sap/m/p13n/Container.js +301 -0
  402. package/src/sap/m/p13n/GroupPanel.js +121 -0
  403. package/src/sap/m/p13n/Popup.js +358 -0
  404. package/src/sap/m/p13n/QueryPanel.js +316 -0
  405. package/src/sap/m/p13n/SelectionPanel.js +403 -0
  406. package/src/sap/m/p13n/SortPanel.js +141 -0
  407. package/src/sap/m/plugins/ColumnResizer.js +1 -1
  408. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  409. package/src/sap/m/plugins/PasteProvider.js +9 -1
  410. package/src/sap/m/plugins/PluginBase.js +1 -1
  411. package/src/sap/m/routing/TargetHandler.js +9 -4
  412. package/src/sap/m/semantic/AddAction.js +1 -1
  413. package/src/sap/m/semantic/CancelAction.js +1 -1
  414. package/src/sap/m/semantic/DeleteAction.js +1 -1
  415. package/src/sap/m/semantic/DetailPage.js +1 -1
  416. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  417. package/src/sap/m/semantic/EditAction.js +1 -1
  418. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  419. package/src/sap/m/semantic/FilterAction.js +1 -1
  420. package/src/sap/m/semantic/FilterSelect.js +1 -1
  421. package/src/sap/m/semantic/FlagAction.js +1 -1
  422. package/src/sap/m/semantic/ForwardAction.js +1 -1
  423. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  424. package/src/sap/m/semantic/GroupAction.js +1 -1
  425. package/src/sap/m/semantic/GroupSelect.js +1 -1
  426. package/src/sap/m/semantic/MainAction.js +1 -1
  427. package/src/sap/m/semantic/MasterPage.js +1 -1
  428. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  429. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  430. package/src/sap/m/semantic/NegativeAction.js +1 -1
  431. package/src/sap/m/semantic/OpenInAction.js +1 -1
  432. package/src/sap/m/semantic/PositiveAction.js +1 -1
  433. package/src/sap/m/semantic/PrintAction.js +1 -1
  434. package/src/sap/m/semantic/SaveAction.js +1 -1
  435. package/src/sap/m/semantic/Segment.js +1 -1
  436. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  437. package/src/sap/m/semantic/SemanticButton.js +1 -1
  438. package/src/sap/m/semantic/SemanticConfiguration.js +3 -5
  439. package/src/sap/m/semantic/SemanticControl.js +1 -1
  440. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  441. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  442. package/src/sap/m/semantic/SemanticPage.js +1 -1
  443. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  444. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  445. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  446. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  447. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  448. package/src/sap/m/semantic/ShareMenu.js +1 -1
  449. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  450. package/src/sap/m/semantic/SortAction.js +1 -1
  451. package/src/sap/m/semantic/SortSelect.js +1 -1
  452. package/src/sap/m/table/ActionItem.js +69 -0
  453. package/src/sap/m/table/ColumnMenu.js +377 -0
  454. package/src/sap/m/table/ColumnMenuEntry.js +101 -0
  455. package/src/sap/m/table/ColumnMenuRenderer.js +82 -0
  456. package/src/sap/m/table/Item.js +130 -0
  457. package/src/sap/m/table/ItemBase.js +153 -0
  458. package/src/sap/m/table/QuickAction.js +53 -0
  459. package/src/sap/m/table/QuickActionBase.js +53 -0
  460. package/src/sap/m/table/Util.js +192 -0
  461. package/src/sap/m/themes/base/AbstractContainer.less +32 -0
  462. package/src/sap/m/themes/base/Breadcrumbs.less +2 -2
  463. package/src/sap/m/themes/base/Carousel.less +37 -2
  464. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  465. package/src/sap/m/themes/base/ColumnMenu.less +41 -0
  466. package/src/sap/m/themes/base/ComboBox.less +2 -2
  467. package/src/sap/m/themes/base/ComboBoxBase.less +20 -0
  468. package/src/sap/m/themes/base/DatePicker.less +4 -0
  469. package/src/sap/m/themes/base/DateTimePicker.less +20 -1
  470. package/src/sap/m/themes/base/Dialog.less +12 -12
  471. package/src/sap/m/themes/base/GenericTile.less +464 -18
  472. package/src/sap/m/themes/base/IconTabBar.less +17 -16
  473. package/src/sap/m/themes/base/IconTabBarSelectList.less +4 -2
  474. package/src/sap/m/themes/base/Input.less +2 -2
  475. package/src/sap/m/themes/base/InputBase.less +0 -24
  476. package/src/sap/m/themes/base/Label.less +6 -0
  477. package/src/sap/m/themes/base/ListBase.less +7 -5
  478. package/src/sap/m/themes/base/ListItemBase.less +4 -2
  479. package/src/sap/m/themes/base/MessageView.less +4 -0
  480. package/src/sap/m/themes/base/MultiComboBox.less +19 -2
  481. package/src/sap/m/themes/base/NewsContent.less +48 -1
  482. package/src/sap/m/themes/base/NotificationListBase.less +1 -1
  483. package/src/sap/m/themes/base/NumericContent.less +87 -0
  484. package/src/sap/m/themes/base/ObjectAttribute.less +3 -4
  485. package/src/sap/m/themes/base/ObjectNumber.less +10 -2
  486. package/src/sap/m/themes/base/ObjectStatus.less +14 -0
  487. package/src/sap/m/themes/base/P13nContainer.less +17 -0
  488. package/src/sap/m/themes/base/P13nDialog.less +1 -1
  489. package/src/sap/m/themes/base/ProgressIndicator.less +3 -2
  490. package/src/sap/m/themes/base/ScrollContainer.less +1 -3
  491. package/src/sap/m/themes/base/SearchField.less +21 -14
  492. package/src/sap/m/themes/base/SegmentedButton.less +1 -1
  493. package/src/sap/m/themes/base/Select.less +2 -1
  494. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +17 -18
  495. package/src/sap/m/themes/base/SlideTile.less +15 -0
  496. package/src/sap/m/themes/base/StandardListItem.less +6 -1
  497. package/src/sap/m/themes/base/Table.less +16 -27
  498. package/src/sap/m/themes/base/Text.less +6 -0
  499. package/src/sap/m/themes/base/TextArea.less +2 -2
  500. package/src/sap/m/themes/base/TileContent.less +20 -0
  501. package/src/sap/m/themes/base/TimePicker.less +3 -0
  502. package/src/sap/m/themes/base/Token.less +0 -3
  503. package/src/sap/m/themes/base/ValueStateHeader.less +1 -3
  504. package/src/sap/m/themes/base/ViewSettingsDialog.less +5 -5
  505. package/src/sap/m/themes/base/WizardProgressNavigator.less +1 -1
  506. package/src/sap/m/themes/base/library.source.less +5 -0
  507. package/src/sap/m/themes/base/p13n.Container.less +21 -0
  508. package/src/sap/m/themes/base/p13n.QueryPanel.less +7 -0
  509. package/src/sap/m/themes/base/p13n.SelectionPanel.less +32 -0
  510. package/src/sap/m/themes/sap_hcb/ComboBox.less +9 -0
  511. package/src/sap/m/themes/sap_hcb/Input.less +4 -0
  512. package/src/sap/m/themes/sap_hcb/InputBase.less +25 -0
  513. package/src/sap/m/themes/sap_hcb/MultiComboBox.less +8 -0
  514. package/src/sap/m/themes/sap_hcb/ValueStateHeader.less +3 -0
  515. package/src/sap/m/themes/sap_hcb/WizardProgressNavigator.less +0 -4
  516. package/src/sap/m/themes/sap_hcb/library.source.less +2 -0
  517. package/src/sap/m/upload/UploadSet.js +16 -19
  518. package/src/sap/m/upload/UploadSetItem.js +22 -2
  519. package/ui5.yaml +4 -1
  520. package/src/sap/m/ios7.js +0 -199
@@ -159,7 +159,7 @@ function(
159
159
  *
160
160
  * @extends sap.m.InputBase
161
161
  * @author SAP SE
162
- * @version 1.94.0
162
+ * @version 1.97.0
163
163
  *
164
164
  * @constructor
165
165
  * @public
@@ -328,7 +328,13 @@ function(
328
328
  * Specifies whether the clear icon should be shown/hidden on user interaction.
329
329
  * @private
330
330
  */
331
- effectiveShowClearIcon: { type: "boolean", defaultValue: false, visibility: "hidden" }
331
+ effectiveShowClearIcon: { type: "boolean", defaultValue: false, visibility: "hidden" },
332
+
333
+ /**
334
+ * Specifies whether to display separators in tabular suggestions.
335
+ * @private
336
+ */
337
+ separateSuggestions: { type: "boolean", defaultValue: false, visibility: "hidden" }
332
338
  },
333
339
  defaultAggregation : "suggestionItems",
334
340
  aggregations : {
@@ -586,6 +592,10 @@ function(
586
592
  // indicates whether input is clicked (on mobile) or the clear button
587
593
  // used for identifying whether dialog should be open.
588
594
  this._bClearButtonPressed = false;
595
+
596
+ // indicates whether input's popover has finished opening
597
+ // we asume that after open its content has been rendered => we don't have the power user scenario
598
+ this._bAfterOpenFinisihed = false;
589
599
  };
590
600
 
591
601
  /**
@@ -627,7 +637,7 @@ function(
627
637
  Input.prototype.onBeforeRendering = function() {
628
638
  var sSelectedKey = this.getSelectedKey(),
629
639
  bShowValueHelpIcon = this.getShowValueHelp() && this.getEnabled() && this.getEditable(),
630
- bShowClearIcon = this.getShowClearIcon(),
640
+ bShowClearIcon = this.getProperty("effectiveShowClearIcon") && this.getEnabled() && this.getEditable(),
631
641
  oIcon = this._oValueHelpIcon,
632
642
  oSuggestionsPopover = this._getSuggestionsPopover(),
633
643
  bSuggestionsPopoverIsOpen = oSuggestionsPopover && this._isSuggestionsPopoverOpen(),
@@ -637,13 +647,15 @@ function(
637
647
 
638
648
  InputBase.prototype.onBeforeRendering.call(this);
639
649
 
640
- if (bShowClearIcon) {
641
- this._getClearIcon().setProperty("visible", this.getProperty("effectiveShowClearIcon"));
650
+ if (this.getShowClearIcon()) {
651
+ this._getClearIcon().setProperty("visible", bShowClearIcon);
652
+ } else if (this._oClearButton) {
653
+ this._getClearIcon().setProperty("visible", false);
642
654
  }
643
655
 
644
656
  this._deregisterEvents();
645
657
 
646
- if (sSelectedKey) {
658
+ if (sSelectedKey && !this.getSelectedItem() && this.getSuggestionItemByKey(sSelectedKey)) {
647
659
  this.setSelectedKey(sSelectedKey);
648
660
  }
649
661
 
@@ -1461,7 +1473,7 @@ function(
1461
1473
  // There's no typeahead for mobile devices.
1462
1474
  // If the popup has been focused, then the list would take care of that functionality.
1463
1475
  // There should be a matching item (proposed text in order to continue)
1464
- if (!this.isMobileDevice() && this._sProposedItemText) {
1476
+ if (!this.isMobileDevice() && this._sProposedItemText && !this._bAfterOpenFinisihed) {
1465
1477
  // Update selections for poweruser
1466
1478
  var oSelectedItem = this.getSuggestionItems()
1467
1479
  .filter(function (oItem) {
@@ -1738,8 +1750,6 @@ function(
1738
1750
  // always focus input field when typing in it
1739
1751
  this.addStyleClass("sapMFocus");
1740
1752
 
1741
- this.setProperty("effectiveShowClearIcon", !!sValue);
1742
-
1743
1753
  // No need to fire suggest event when suggestion feature isn't enabled or runs on the phone.
1744
1754
  // Because suggest event should only be fired by the input in dialog when runs on the phone.
1745
1755
  if (this.getShowSuggestion() && !this.isMobileDevice()) {
@@ -1765,6 +1775,18 @@ function(
1765
1775
  this._bDoTypeAhead = !Device.os.android && this.getAutocomplete() && (oEvent.which !== KeyCodes.BACKSPACE) && (oEvent.which !== KeyCodes.DELETE);
1766
1776
  };
1767
1777
 
1778
+ Input.prototype.onkeyup = function (oEvent) {
1779
+ var sValue = this.getValue();
1780
+ var sLastValue = this.getLastValue();
1781
+
1782
+ if ([KeyCodes.BACKSPACE, KeyCodes.DELETE].indexOf(oEvent.which) !== -1 && !sValue) {
1783
+ this.getShowSuggestion() && this.setSelectedKey(null);
1784
+ (sLastValue !== sValue) && this.setLastValue(sLastValue);
1785
+ }
1786
+
1787
+ this.getShowClearIcon() && this.setProperty("effectiveShowClearIcon", !!sValue);
1788
+ };
1789
+
1768
1790
  /**
1769
1791
  * Gets the input value.
1770
1792
  *
@@ -2284,7 +2306,7 @@ function(
2284
2306
  var oSuggestionsTable = new Table(this.getId() + "-popup-table", {
2285
2307
  mode: ListMode.SingleSelectMaster,
2286
2308
  showNoData: false,
2287
- showSeparators: ListSeparators.None,
2309
+ showSeparators: this.getProperty("separateSuggestions") ? ListSeparators.Inner : ListSeparators.None,
2288
2310
  width: "100%",
2289
2311
  enableBusyIndicator: false,
2290
2312
  rememberSelections : false,
@@ -2460,6 +2482,7 @@ function(
2460
2482
  */
2461
2483
  Input.prototype.getAccessibilityInfo = function() {
2462
2484
  var oInfo = InputBase.prototype.getAccessibilityInfo.apply(this, arguments);
2485
+
2463
2486
  oInfo.description = ((oInfo.description || "") + " " + this.getDescription()).trim();
2464
2487
  return oInfo;
2465
2488
  };
@@ -2783,10 +2806,8 @@ function(
2783
2806
  bPreviosFocusOnGroup = oPreviousItem && oPreviousItem.isA("sap.m.GroupHeaderListItem"),
2784
2807
  iSelectionStart = calculateSelectionStart(selectionRange(oFocusDomRef, bPreviosFocusOnGroup), sNewValue, sTypedValue, bPreviosFocusOnGroup);
2785
2808
 
2786
- if (!oItem) { // When out of the list, reset to user's input
2809
+ if (!oItem || bIsGroupItem) { // When out of the list or a GroupHeader item, reset to user's input
2787
2810
  this.setDOMValue(sTypedValue);
2788
- } else if (bIsGroupItem) { // If it's a GroupHeader item, reset the input
2789
- this.setDOMValue("");
2790
2811
  } else { // Replace the value and highlight it
2791
2812
  this.setDOMValue(sNewValue);
2792
2813
 
@@ -2888,8 +2909,9 @@ function(
2888
2909
  } else {
2889
2910
  oPopover
2890
2911
  .attachAfterClose(function() {
2891
- var oList = this._getSuggestionsPopover().getItemsContainer(),
2892
- oSelectedItem = oList && oList.getSelectedItem();
2912
+ var oList = this._getSuggestionsPopover().getItemsContainer();
2913
+ var oSelectedItem = oList && oList.getSelectedItem();
2914
+ var oDomRef = this.getDomRef();
2893
2915
 
2894
2916
  if (this.getSelectionUpdatedFromList()) {
2895
2917
  this.updateSelectionFromList(oSelectedItem);
@@ -2899,6 +2921,8 @@ function(
2899
2921
  return;
2900
2922
  }
2901
2923
 
2924
+ this._bAfterOpenFinisihed = false;
2925
+
2902
2926
  // only destroy items in simple suggestion mode
2903
2927
  if (oList instanceof Table) {
2904
2928
  oSelectedItem && oSelectedItem.removeStyleClass("sapMLIBFocused");
@@ -2908,13 +2932,20 @@ function(
2908
2932
  }
2909
2933
 
2910
2934
  this._deregisterPopupResize();
2911
- this.addStyleClass("sapMFocus");
2935
+
2936
+ if (oDomRef && oDomRef.contains(document.activeElement)) {
2937
+ this.addStyleClass("sapMFocus");
2938
+ }
2912
2939
  }, this)
2913
2940
  .attachBeforeOpen(function () {
2914
2941
  oSuggPopover._sPopoverContentWidth = this.getMaxSuggestionWidth();
2915
2942
 
2916
2943
  oSuggPopover.resizePopup(this);
2917
2944
  this._registerPopupResize();
2945
+ this._bAfterOpenFinisihed = false;
2946
+ }, this)
2947
+ .attachAfterOpen(function () {
2948
+ this._bAfterOpenFinisihed = true;
2918
2949
  }, this);
2919
2950
  }
2920
2951
 
@@ -3236,6 +3267,26 @@ function(
3236
3267
  return this._sTypedInValue;
3237
3268
  };
3238
3269
 
3270
+ /**
3271
+ * Setter for the separateSuggestions property representing whether to display separators in tabular suggestions.
3272
+ *
3273
+ * @private
3274
+ * @ui5-restricted sap.ui.comp.smartfield.SmartField
3275
+ * @param {boolean} bValue The new value for the property.
3276
+ * @returns {this} <code>this</code> to allow method chaining.
3277
+ */
3278
+ Input.prototype._setSeparateSuggestions = function (bValue) {
3279
+ var oSuggestionsTable = this._getSuggestionsTable();
3280
+
3281
+ this.setProperty("separateSuggestions", bValue);
3282
+
3283
+ if (oSuggestionsTable) {
3284
+ oSuggestionsTable.setShowSeparators(bValue ? ListSeparators.Inner : ListSeparators.None);
3285
+ }
3286
+
3287
+ return this;
3288
+ };
3289
+
3239
3290
  return Input;
3240
3291
 
3241
3292
  });
@@ -11,6 +11,7 @@ sap.ui.define([
11
11
  'sap/ui/core/IconPool',
12
12
  './delegate/ValueStateMessage',
13
13
  'sap/ui/core/message/MessageMixin',
14
+ 'sap/ui/core/InvisibleMessage',
14
15
  'sap/ui/core/library',
15
16
  'sap/ui/Device',
16
17
  './InputBaseRenderer',
@@ -31,6 +32,7 @@ function(
31
32
  IconPool,
32
33
  ValueStateMessage,
33
34
  MessageMixin,
35
+ InvisibleMessage,
34
36
  coreLibrary,
35
37
  Device,
36
38
  InputBaseRenderer,
@@ -62,7 +64,7 @@ function(
62
64
  * @implements sap.ui.core.IFormContent
63
65
  *
64
66
  * @author SAP SE
65
- * @version 1.94.0
67
+ * @version 1.97.0
66
68
  *
67
69
  * @constructor
68
70
  * @public
@@ -300,6 +302,9 @@ function(
300
302
  // handle composition events & validation of composition symbols
301
303
  this._bIsComposingCharacter = false;
302
304
 
305
+ this.setLastValueStateText("");
306
+ this.setErrorMessageAnnouncementState(false);
307
+
303
308
  this.fnCloseValueStateOnClick = function() {
304
309
  this.closeValueStateMessage();
305
310
  };
@@ -343,23 +348,39 @@ function(
343
348
  };
344
349
 
345
350
  InputBase.prototype.onBeforeRendering = function() {
351
+ var oFocusDomRef = this.getFocusDomRef();
346
352
  var oFormattedVSText = this.getFormattedValueStateText();
347
- var oFormattedVSTextContent = oFormattedVSText && oFormattedVSText.getHtmlText();
348
- var oFormattedVSTextAcc = this.getAggregation("_invisibleFormattedValueStateText");
349
- var oFormattedVSTextAccContent = oFormattedVSTextAcc && oFormattedVSTextAcc.getHtmlText();
353
+ var bFormattedValueStateUpdated;
350
354
 
351
- if (this._bCheckDomValue && !this.bRenderingPhase) {
355
+ if (!this._oInvisibleMessage) {
356
+ this._oInvisibleMessage = InvisibleMessage.getInstance();
357
+ }
352
358
 
359
+ if (this._bCheckDomValue && !this.bRenderingPhase) {
353
360
  // remember dom value in case of invalidation during keystrokes
354
361
  // so the following should only be used onAfterRendering
355
362
  if (this.isActive()) {
356
- this._sDomValue = this._getInputValue();
357
- } else {
358
- this._bCheckDomValue = false;
359
- }
363
+ this._sDomValue = this._getInputValue();
364
+ } else {
365
+ this._bCheckDomValue = false;
366
+ }
360
367
  }
361
368
 
362
- if (oFormattedVSText && oFormattedVSTextContent !== oFormattedVSTextAccContent) {
369
+ if (!oFormattedVSText) {
370
+ bFormattedValueStateUpdated = false;
371
+ } else {
372
+ var oFormattedVSTextAcc = this.getAggregation("_invisibleFormattedValueStateText");
373
+ bFormattedValueStateUpdated = oFormattedVSText.getHtmlText() !== (oFormattedVSTextAcc && oFormattedVSTextAcc.getHtmlText());
374
+ }
375
+
376
+ // The value state error should be announced, when there are dynamic changes
377
+ // to value state error or value state error message, due to user interaction
378
+ if (this.getValueState() === ValueState.Error && oFocusDomRef) {
379
+ var bValueStateUpdated = bFormattedValueStateUpdated || this.getValueStateText() !== this.getLastValueStateText();
380
+ this.setErrorMessageAnnouncementState(!oFocusDomRef.hasAttribute('aria-invalid') || bValueStateUpdated);
381
+ }
382
+
383
+ if (bFormattedValueStateUpdated) {
363
384
  oFormattedVSTextAcc && oFormattedVSTextAcc.destroy();
364
385
  this.setAggregation("_invisibleFormattedValueStateText", oFormattedVSText.clone());
365
386
  }
@@ -372,6 +393,7 @@ function(
372
393
  var sValueState = this.getValueState();
373
394
  var bIsFocused = this.getFocusDomRef() === document.activeElement;
374
395
  var bClosedValueState = sValueState === ValueState.None;
396
+ var sValueStateMessageHiddenText = document.getElementById(this.getValueStateMessageId() + '-sr');
375
397
 
376
398
  // maybe control is invalidated on keystrokes and
377
399
  // even the value property did not change
@@ -383,6 +405,12 @@ function(
383
405
  this.$("inner").val(this._sDomValue);
384
406
  }
385
407
 
408
+ // Announce error value state update, only when the visual focus is in the input field
409
+ if (this.getErrorMessageAnnouncementState() && this.hasStyleClass("sapMFocus")) {
410
+ sValueStateMessageHiddenText && this._oInvisibleMessage.announce(sValueStateMessageHiddenText.textContent);
411
+ this.setErrorMessageAnnouncementState(false);
412
+ }
413
+
386
414
  this.$("message").text(this.getValueStateText());
387
415
 
388
416
  // now dom value is up-to-date
@@ -400,6 +428,8 @@ function(
400
428
  oControl.getDomRef() && oControl.getDomRef().setAttribute("tabindex", -1);
401
429
  });
402
430
  }
431
+
432
+ this.setLastValueStateText(this.getValueStateText());
403
433
  };
404
434
 
405
435
  InputBase.prototype.exit = function() {
@@ -408,8 +438,12 @@ function(
408
438
  this._oValueStateMessage.destroy();
409
439
  }
410
440
 
441
+ if (this.oInvisibleMessage) {
442
+ this.oInvisibleMessage.destroy();
443
+ this.oInvisibleMessage = null;
444
+ }
445
+
411
446
  this._oValueStateMessage = null;
412
- this._oDomRefBeforeRendering = null;
413
447
  };
414
448
 
415
449
  /* =========================================================== */
@@ -514,7 +548,7 @@ function(
514
548
  mParameters = mParameters || this.getChangeEventParams();
515
549
 
516
550
  // check the control is editable or not
517
- if (!this.getEditable() || !this.getEnabled()) {
551
+ if (this.getDomRef() && (!this.getEditable() || !this.getEnabled())) {
518
552
  return;
519
553
  }
520
554
 
@@ -952,6 +986,42 @@ function(
952
986
  return this.getId() + "-message";
953
987
  };
954
988
 
989
+ /**
990
+ * Gets the state of the value state message announcemnt.
991
+ *
992
+ * @returns {boolean} True, if the error value state should be announced.
993
+ */
994
+ InputBase.prototype.getErrorMessageAnnouncementState = function() {
995
+ return this._bErrorStateShouldBeAnnounced;
996
+ };
997
+
998
+ /**
999
+ * Sets the state of the value state message announcemnt.
1000
+ *
1001
+ * @param {boolean} bAnnounce Determines, if the error value state message should be announced.
1002
+ */
1003
+ InputBase.prototype.setErrorMessageAnnouncementState = function(bAnnounce) {
1004
+ this._bErrorStateShouldBeAnnounced = bAnnounce;
1005
+ };
1006
+
1007
+ /**
1008
+ * Sets the last value state text.
1009
+ *
1010
+ * @param {string} sValueStateText The Last Value State Text to be set
1011
+ */
1012
+ InputBase.prototype.setLastValueStateText = function(sValueStateText) {
1013
+ this._sLastValueStateText = sValueStateText;
1014
+ };
1015
+
1016
+ /**
1017
+ * Gets the last stored value state text.
1018
+ *
1019
+ * @returns {string} The value state text
1020
+ */
1021
+ InputBase.prototype.getLastValueStateText = function() {
1022
+ return this._sLastValueStateText;
1023
+ };
1024
+
955
1025
  /**
956
1026
  * Gets the labels referencing this control.
957
1027
  *
@@ -1016,12 +1086,14 @@ function(
1016
1086
  var oEndIcon = this.getAggregation("_endIcon") || [],
1017
1087
  oBeginIcon = this.getAggregation("_beginIcon") || [],
1018
1088
  aIcons = oEndIcon.concat(oBeginIcon),
1089
+ iIconMargin,
1019
1090
  iIconWidth;
1020
1091
 
1021
1092
  return aIcons.reduce(function(iAcc, oIcon){
1093
+ iIconMargin = oIcon && oIcon.getDomRef() ? parseFloat(getComputedStyle(oIcon.getDomRef()).marginRight) : 0;
1022
1094
  iIconWidth = oIcon && oIcon.getDomRef() ? oIcon.getDomRef().offsetWidth : 0;
1023
1095
 
1024
- return iAcc + iIconWidth;
1096
+ return iAcc + iIconWidth + iIconMargin;
1025
1097
  }, 0);
1026
1098
  };
1027
1099
 
@@ -1080,13 +1152,23 @@ function(
1080
1152
  return {
1081
1153
  role: oRenderer.getAriaRole(this),
1082
1154
  type: sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("ACC_CTR_TYPE_INPUT"),
1083
- description: [this.getValue() || "", oRenderer.getLabelledByAnnouncement(this), oRenderer.getDescribedByAnnouncement(this), sRequired].join(" ").trim(),
1155
+ description: [this.getValueDescriptionInfo(), oRenderer.getLabelledByAnnouncement(this), oRenderer.getDescribedByAnnouncement(this), sRequired].join(" ").trim(),
1084
1156
  focusable: this.getEnabled(),
1085
1157
  enabled: this.getEnabled(),
1086
1158
  editable: this.getEnabled() && this.getEditable()
1087
1159
  };
1088
1160
  };
1089
1161
 
1162
+ /**
1163
+ * Gets the value of the accessibility description info field.
1164
+ *
1165
+ * @protected
1166
+ * @returns {string} The value of the accessibility description info
1167
+ */
1168
+ InputBase.prototype.getValueDescriptionInfo = function () {
1169
+ return this.getValue() || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("INPUTBASE_VALUE_EMPTY");
1170
+ };
1171
+
1090
1172
  /**
1091
1173
  * Adds an icon to be rendered
1092
1174
  * @param {string} sIconPosition a position for the icon to be rendered - begin or end
@@ -316,32 +316,20 @@ sap.ui.define(['sap/ui/core/Renderer', 'sap/ui/core/Core', 'sap/ui/core/library'
316
316
  */
317
317
  InputBaseRenderer.renderValueStateAccDom = function(oRm, oControl) {
318
318
  var sValueState = oControl.getValueState();
319
-
320
319
  if (sValueState === ValueState.None || !oControl.getEditable() || !oControl.getEnabled()) {
321
320
  return;
322
321
  }
323
322
 
324
- var bShouldBeLiveRegion = document.activeElement !== oControl.getFocusDomRef() || sValueState === ValueState.Error;
325
- var sAccDomNodeId = oControl.getValueStateMessageId() + "-sr";
326
323
  var oFormattedValueStateText = oControl.getAggregation("_invisibleFormattedValueStateText");
327
- var sValueStateTypeText = Core.getLibraryResourceBundle("sap.m").getText("INPUTBASE_VALUE_STATE_" + sValueState.toUpperCase());
328
-
329
- oRm.openStart("div", sAccDomNodeId).class("sapUiPseudoInvisibleText");
330
- // Prevent double announcements for value state messages other than errors (referenced by aria-describedby),
331
- // when value state is changed via user interaction
332
- // Only make the acc DOM element an "assertive" "live region"when aria-errormessage is used, otherwise
333
- // when the element is referenced by "aria-describedby" it is treated as "live region" by default
334
- if (bShouldBeLiveRegion) {
335
- oRm.attr("aria-live", "assertive");
336
- }
324
+ var sValueStateTypeText;
325
+
326
+
327
+ sValueStateTypeText = Core.getLibraryResourceBundle("sap.m").getText("INPUTBASE_VALUE_STATE_" + sValueState.toUpperCase());
328
+
329
+ oRm.openStart("div", oControl.getValueStateMessageId() + "-sr")
330
+ .class("sapUiPseudoInvisibleText");
337
331
 
338
- // Tells screen readers to announce the live region as a whole even if only part of it is changed.
339
- // This is needed because of the way semantic renderer works - it won't replace text content if it is the same -
340
- // the so called in-place DOM patching - and the control will get rerendered when value state is not changed.
341
- // For example if only the value state type is changed and not the text, if aria-atomic is not set to 'true'
342
- // the value state text won't be announced.
343
- oRm.attr("aria-atomic", "true")
344
- .openEnd()
332
+ oRm.openEnd()
345
333
  .text(sValueStateTypeText).text(" ");
346
334
 
347
335
  if (oFormattedValueStateText) {
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.94.0
33
+ * @version 1.97.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -76,7 +76,7 @@ function(
76
76
  * @implements sap.ui.core.Label, sap.ui.core.IShrinkable
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.94.0
79
+ * @version 1.97.0
80
80
  *
81
81
  * @constructor
82
82
  * @public
@@ -99,7 +99,7 @@ sap.ui.define([
99
99
  * @extends sap.ui.core.Control
100
100
  *
101
101
  * @author SAP SE
102
- * @version 1.94.0
102
+ * @version 1.97.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.94.0
46
+ * @version 1.97.0
47
47
  *
48
48
  * @constructor
49
49
  * @public
package/src/sap/m/Link.js CHANGED
@@ -81,7 +81,7 @@ function(
81
81
  * @implements sap.ui.core.IShrinkable, sap.ui.core.IFormContent, sap.ui.core.ITitleContent
82
82
  *
83
83
  * @author SAP SE
84
- * @version 1.94.0
84
+ * @version 1.97.0
85
85
  *
86
86
  * @constructor
87
87
  * @public
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.94.0
33
+ * @version 1.97.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -90,7 +90,7 @@ function(
90
90
  * @extends sap.ui.core.Control
91
91
  *
92
92
  * @author SAP SE
93
- * @version 1.94.0
93
+ * @version 1.97.0
94
94
  *
95
95
  * @constructor
96
96
  * @public
@@ -1588,7 +1588,7 @@ function(
1588
1588
 
1589
1589
  if (!this._mRangeSelection) {
1590
1590
  this._mRangeSelection = {
1591
- index: aVisibleItems.indexOf(oItem),
1591
+ index: this.indexOfItem(oItem),
1592
1592
  selected: oItem.getSelected()
1593
1593
  };
1594
1594
  }
@@ -76,7 +76,7 @@ function(
76
76
  * @extends sap.ui.core.Control
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.94.0
79
+ * @version 1.97.0
80
80
  *
81
81
  * @constructor
82
82
  * @public
@@ -505,7 +505,9 @@ function(
505
505
  }
506
506
 
507
507
  if (!this.DeleteIconURI) {
508
- ListItemBase.prototype.DeleteIconURI = IconPool.getIconURI(ThemeParameters.get("_sap_m_ListItemBase_DeleteIcon"));
508
+ ListItemBase.prototype.DeleteIconURI = IconPool.getIconURI(
509
+ ThemeParameters.get({name: "_sap_m_ListItemBase_DeleteIcon"}) || "decline"
510
+ );
509
511
  }
510
512
 
511
513
  this._oDeleteControl = new Button({
@@ -526,7 +528,9 @@ function(
526
528
  };
527
529
 
528
530
  ListItemBase.prototype.onThemeChanged = function() {
529
- ListItemBase.prototype.DeleteIconURI = IconPool.getIconURI(ThemeParameters.get("_sap_m_ListItemBase_DeleteIcon"));
531
+ ListItemBase.prototype.DeleteIconURI = IconPool.getIconURI(
532
+ ThemeParameters.get({name: "_sap_m_ListItemBase_DeleteIcon"})
533
+ );
530
534
  if (this._oDeleteControl) {
531
535
  this._oDeleteControl.setIcon(this.DeleteIconURI);
532
536
  }
@@ -992,6 +996,10 @@ function(
992
996
  if (this._eventHandledByControl ||
993
997
  oEvent.touches.length != 1 ||
994
998
  !this.hasActiveType()) {
999
+ if (this.getListProperty("includeItemInSelection") && this.getList()._mRangeSelection) {
1000
+ // prevet text selection when rangeSelection is detected
1001
+ oEvent.preventDefault();
1002
+ }
995
1003
  return;
996
1004
  }
997
1005
 
@@ -1267,6 +1275,7 @@ function(
1267
1275
  }
1268
1276
 
1269
1277
  this.informList("FocusIn", oEvent.srcControl);
1278
+ oEvent.setMarked();
1270
1279
 
1271
1280
  if (oEvent.srcControl === this) {
1272
1281
  return;
@@ -1279,7 +1288,6 @@ function(
1279
1288
 
1280
1289
  // inform the list async that this item should be focusable
1281
1290
  setTimeout(oList["setItemFocusable"].bind(oList, this), 0);
1282
- oEvent.setMarked();
1283
1291
  };
1284
1292
 
1285
1293
  // inform the list for the vertical navigation