@openui5/sap.m 1.102.0 → 1.102.4

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 (345) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/m/.library +2 -1
  4. package/src/sap/m/AccButton.js +1 -1
  5. package/src/sap/m/ActionListItem.js +1 -1
  6. package/src/sap/m/ActionSelect.js +1 -1
  7. package/src/sap/m/ActionSheet.js +1 -1
  8. package/src/sap/m/App.js +1 -1
  9. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  10. package/src/sap/m/Avatar.js +1 -1
  11. package/src/sap/m/Bar.js +1 -1
  12. package/src/sap/m/Breadcrumbs.js +1 -1
  13. package/src/sap/m/BusyDialog.js +1 -1
  14. package/src/sap/m/BusyIndicator.js +1 -1
  15. package/src/sap/m/Button.js +1 -1
  16. package/src/sap/m/Carousel.js +1 -1
  17. package/src/sap/m/CarouselLayout.js +1 -1
  18. package/src/sap/m/CheckBox.js +1 -1
  19. package/src/sap/m/ColorPalette.js +1 -1
  20. package/src/sap/m/ColorPalettePopover.js +1 -1
  21. package/src/sap/m/Column.js +1 -1
  22. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  23. package/src/sap/m/ColumnListItem.js +1 -1
  24. package/src/sap/m/ColumnListItemRenderer.js +6 -2
  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 +1 -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 +21 -23
  38. package/src/sap/m/DateRangeSelection.js +45 -38
  39. package/src/sap/m/DateTimeField.js +48 -28
  40. package/src/sap/m/DateTimeInput.js +1 -1
  41. package/src/sap/m/DateTimePicker.js +26 -20
  42. package/src/sap/m/Dialog.js +2 -2
  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/DynamicDateFormat.js +36 -1
  47. package/src/sap/m/DynamicDateOption.js +38 -13
  48. package/src/sap/m/DynamicDateRange.js +33 -20
  49. package/src/sap/m/DynamicDateUtil.js +23 -2
  50. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  51. package/src/sap/m/ExpandableText.js +1 -1
  52. package/src/sap/m/FacetFilter.js +1 -1
  53. package/src/sap/m/FacetFilterItem.js +1 -1
  54. package/src/sap/m/FacetFilterList.js +1 -1
  55. package/src/sap/m/FeedContent.js +1 -1
  56. package/src/sap/m/FeedInput.js +1 -1
  57. package/src/sap/m/FeedListItem.js +1 -1
  58. package/src/sap/m/FeedListItemAction.js +1 -1
  59. package/src/sap/m/Fiori20Adapter.js +2 -2
  60. package/src/sap/m/FlexBox.js +1 -1
  61. package/src/sap/m/FlexItemData.js +1 -1
  62. package/src/sap/m/FormattedText.js +1 -1
  63. package/src/sap/m/GenericTag.js +1 -1
  64. package/src/sap/m/GenericTile.js +67 -15
  65. package/src/sap/m/GenericTileRenderer.js +75 -55
  66. package/src/sap/m/GroupHeaderListItem.js +1 -1
  67. package/src/sap/m/GrowingEnablement.js +80 -19
  68. package/src/sap/m/GrowingList.js +1 -1
  69. package/src/sap/m/HBox.js +1 -1
  70. package/src/sap/m/HeaderContainer.js +48 -44
  71. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  72. package/src/sap/m/IconTabBar.js +54 -22
  73. package/src/sap/m/IconTabBarSelectList.js +1 -1
  74. package/src/sap/m/IconTabFilter.js +1 -1
  75. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  76. package/src/sap/m/IconTabHeader.js +3 -2
  77. package/src/sap/m/IconTabSeparator.js +1 -1
  78. package/src/sap/m/IllustratedMessage.js +1 -1
  79. package/src/sap/m/Illustration.js +1 -1
  80. package/src/sap/m/Image.js +1 -1
  81. package/src/sap/m/ImageContent.js +1 -1
  82. package/src/sap/m/Input.js +1 -1
  83. package/src/sap/m/InputBase.js +1 -1
  84. package/src/sap/m/InputListItem.js +1 -1
  85. package/src/sap/m/Label.js +1 -1
  86. package/src/sap/m/LightBox.js +1 -1
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +21 -5
  89. package/src/sap/m/LinkRenderer.js +17 -9
  90. package/src/sap/m/List.js +1 -1
  91. package/src/sap/m/ListBase.js +4 -1
  92. package/src/sap/m/ListItemBase.js +1 -1
  93. package/src/sap/m/MaskEnabler.js +1 -1
  94. package/src/sap/m/MaskInput.js +1 -1
  95. package/src/sap/m/MaskInputRule.js +1 -1
  96. package/src/sap/m/Menu.js +1 -1
  97. package/src/sap/m/MenuButton.js +1 -1
  98. package/src/sap/m/MenuItem.js +1 -1
  99. package/src/sap/m/MenuListItem.js +1 -1
  100. package/src/sap/m/MessageItem.js +1 -1
  101. package/src/sap/m/MessageListItem.js +1 -1
  102. package/src/sap/m/MessagePage.js +1 -1
  103. package/src/sap/m/MessagePopover.js +1 -1
  104. package/src/sap/m/MessagePopoverItem.js +1 -1
  105. package/src/sap/m/MessageStrip.js +1 -1
  106. package/src/sap/m/MessageToast.js +1 -1
  107. package/src/sap/m/MessageView.js +1 -1
  108. package/src/sap/m/MultiComboBox.js +1 -1
  109. package/src/sap/m/MultiEditField.js +1 -1
  110. package/src/sap/m/MultiInput.js +1 -1
  111. package/src/sap/m/NavContainer.js +1 -1
  112. package/src/sap/m/NewsContent.js +1 -1
  113. package/src/sap/m/NotificationList.js +1 -1
  114. package/src/sap/m/NotificationListBase.js +1 -1
  115. package/src/sap/m/NotificationListGroup.js +1 -1
  116. package/src/sap/m/NotificationListItem.js +1 -1
  117. package/src/sap/m/NumericContent.js +1 -1
  118. package/src/sap/m/NumericInput.js +1 -1
  119. package/src/sap/m/ObjectAttribute.js +1 -1
  120. package/src/sap/m/ObjectHeader.js +1 -1
  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/OverflowToolbar.js +5 -2
  127. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  128. package/src/sap/m/OverflowToolbarButton.js +1 -1
  129. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  130. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  131. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  132. package/src/sap/m/P13nColumnsItem.js +1 -1
  133. package/src/sap/m/P13nColumnsPanel.js +1 -1
  134. package/src/sap/m/P13nConditionPanel.js +8 -1
  135. package/src/sap/m/P13nDialog.js +1 -1
  136. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  137. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  138. package/src/sap/m/P13nFilterItem.js +1 -1
  139. package/src/sap/m/P13nFilterPanel.js +1 -1
  140. package/src/sap/m/P13nGroupItem.js +1 -1
  141. package/src/sap/m/P13nGroupPanel.js +1 -1
  142. package/src/sap/m/P13nItem.js +1 -1
  143. package/src/sap/m/P13nPanel.js +1 -1
  144. package/src/sap/m/P13nSelectionItem.js +1 -1
  145. package/src/sap/m/P13nSelectionPanel.js +1 -1
  146. package/src/sap/m/P13nSortItem.js +1 -1
  147. package/src/sap/m/P13nSortPanel.js +1 -1
  148. package/src/sap/m/PDFViewer.js +2 -2
  149. package/src/sap/m/Page.js +1 -1
  150. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  151. package/src/sap/m/PagingButton.js +1 -1
  152. package/src/sap/m/Panel.js +1 -1
  153. package/src/sap/m/PlanningCalendar.js +1 -1
  154. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  155. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  156. package/src/sap/m/PlanningCalendarRow.js +1 -1
  157. package/src/sap/m/PlanningCalendarView.js +1 -1
  158. package/src/sap/m/Popover.js +1 -1
  159. package/src/sap/m/ProgressIndicator.js +1 -1
  160. package/src/sap/m/PullToRefresh.js +1 -1
  161. package/src/sap/m/QuickView.js +1 -1
  162. package/src/sap/m/QuickViewBase.js +1 -1
  163. package/src/sap/m/QuickViewCard.js +1 -1
  164. package/src/sap/m/QuickViewGroup.js +1 -1
  165. package/src/sap/m/QuickViewGroupElement.js +1 -1
  166. package/src/sap/m/QuickViewPage.js +1 -1
  167. package/src/sap/m/RadioButton.js +1 -1
  168. package/src/sap/m/RadioButtonGroup.js +1 -1
  169. package/src/sap/m/RangeSlider.js +1 -1
  170. package/src/sap/m/RatingIndicator.js +1 -1
  171. package/src/sap/m/ResponsivePopover.js +1 -1
  172. package/src/sap/m/ResponsiveScale.js +1 -1
  173. package/src/sap/m/ScrollBar.js +1 -1
  174. package/src/sap/m/ScrollContainer.js +1 -1
  175. package/src/sap/m/SearchField.js +1 -1
  176. package/src/sap/m/SegmentedButton.js +1 -1
  177. package/src/sap/m/SegmentedButtonItem.js +1 -1
  178. package/src/sap/m/Select.js +1 -1
  179. package/src/sap/m/SelectDialog.js +1 -1
  180. package/src/sap/m/SelectDialogBase.js +1 -1
  181. package/src/sap/m/SelectList.js +1 -1
  182. package/src/sap/m/SelectionDetails.js +1 -1
  183. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  184. package/src/sap/m/SelectionDetailsItem.js +1 -1
  185. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  186. package/src/sap/m/Shell.js +1 -1
  187. package/src/sap/m/SimpleFixFlex.js +1 -1
  188. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  189. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  190. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -1
  191. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  192. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  193. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  194. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  195. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  196. package/src/sap/m/SlideTile.js +1 -1
  197. package/src/sap/m/Slider.js +1 -1
  198. package/src/sap/m/SliderTooltip.js +1 -1
  199. package/src/sap/m/SliderTooltipBase.js +1 -1
  200. package/src/sap/m/SliderTooltipContainer.js +1 -1
  201. package/src/sap/m/SplitApp.js +1 -1
  202. package/src/sap/m/SplitButton.js +1 -1
  203. package/src/sap/m/SplitContainer.js +1 -1
  204. package/src/sap/m/StandardDynamicDateOption.js +9 -5
  205. package/src/sap/m/StandardListItem.js +1 -1
  206. package/src/sap/m/StandardTile.js +1 -1
  207. package/src/sap/m/StandardTreeItem.js +1 -1
  208. package/src/sap/m/StepInput.js +1 -1
  209. package/src/sap/m/SuggestionItem.js +1 -1
  210. package/src/sap/m/SuggestionsPopover.js +1 -1
  211. package/src/sap/m/Switch.js +1 -1
  212. package/src/sap/m/TabContainer.js +1 -1
  213. package/src/sap/m/TabContainerItem.js +1 -1
  214. package/src/sap/m/TabStrip.js +1 -1
  215. package/src/sap/m/TabStripItem.js +1 -1
  216. package/src/sap/m/Table.js +7 -1
  217. package/src/sap/m/TablePersoController.js +1 -1
  218. package/src/sap/m/TablePersoDialog.js +1 -1
  219. package/src/sap/m/TablePersoProvider.js +1 -1
  220. package/src/sap/m/TableRenderer.js +27 -0
  221. package/src/sap/m/TableSelectDialog.js +1 -1
  222. package/src/sap/m/Text.js +1 -1
  223. package/src/sap/m/TextArea.js +1 -1
  224. package/src/sap/m/Tile.js +1 -1
  225. package/src/sap/m/TileContainer.js +1 -1
  226. package/src/sap/m/TileContent.js +26 -16
  227. package/src/sap/m/TileContentRenderer.js +15 -5
  228. package/src/sap/m/TimePicker.js +14 -2
  229. package/src/sap/m/TimePickerClock.js +1 -1
  230. package/src/sap/m/TimePickerClocks.js +5 -3
  231. package/src/sap/m/TimePickerInputs.js +1 -1
  232. package/src/sap/m/TimePickerInternals.js +1 -1
  233. package/src/sap/m/TimePickerSlider.js +1 -1
  234. package/src/sap/m/TimePickerSliders.js +1 -1
  235. package/src/sap/m/Title.js +1 -1
  236. package/src/sap/m/TitlePropagationSupport.js +1 -1
  237. package/src/sap/m/ToggleButton.js +1 -1
  238. package/src/sap/m/Token.js +1 -1
  239. package/src/sap/m/Tokenizer.js +1 -1
  240. package/src/sap/m/Toolbar.js +1 -1
  241. package/src/sap/m/ToolbarLayoutData.js +1 -1
  242. package/src/sap/m/ToolbarSeparator.js +1 -1
  243. package/src/sap/m/ToolbarSpacer.js +1 -1
  244. package/src/sap/m/Tree.js +1 -1
  245. package/src/sap/m/TreeItemBase.js +1 -1
  246. package/src/sap/m/UploadCollection.js +1 -1
  247. package/src/sap/m/UploadCollectionItem.js +1 -1
  248. package/src/sap/m/UploadCollectionParameter.js +1 -1
  249. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  250. package/src/sap/m/VBox.js +1 -1
  251. package/src/sap/m/ValueStateHeader.js +1 -1
  252. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  253. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  254. package/src/sap/m/ViewSettingsDialog.js +1 -1
  255. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  256. package/src/sap/m/ViewSettingsItem.js +1 -1
  257. package/src/sap/m/VisibleItem.js +1 -1
  258. package/src/sap/m/WheelSlider.js +1 -1
  259. package/src/sap/m/WheelSliderContainer.js +1 -1
  260. package/src/sap/m/Wizard.js +1 -1
  261. package/src/sap/m/WizardProgressNavigator.js +1 -2
  262. package/src/sap/m/WizardStep.js +1 -1
  263. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  264. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  265. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  266. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  267. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  268. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  269. package/src/sap/m/library.js +69 -2
  270. package/src/sap/m/messagebundle.properties +11 -9
  271. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  272. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  273. package/src/sap/m/p13n/BasePanel.js +1 -1
  274. package/src/sap/m/p13n/Container.js +1 -1
  275. package/src/sap/m/p13n/GroupPanel.js +1 -1
  276. package/src/sap/m/p13n/Popup.js +1 -1
  277. package/src/sap/m/p13n/QueryPanel.js +1 -1
  278. package/src/sap/m/p13n/SelectionPanel.js +2 -2
  279. package/src/sap/m/p13n/SortPanel.js +1 -1
  280. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  281. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  282. package/src/sap/m/plugins/PasteProvider.js +1 -1
  283. package/src/sap/m/plugins/PluginBase.js +1 -1
  284. package/src/sap/m/semantic/AddAction.js +1 -1
  285. package/src/sap/m/semantic/CancelAction.js +1 -1
  286. package/src/sap/m/semantic/DeleteAction.js +1 -1
  287. package/src/sap/m/semantic/DetailPage.js +1 -1
  288. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  289. package/src/sap/m/semantic/EditAction.js +1 -1
  290. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  291. package/src/sap/m/semantic/FilterAction.js +1 -1
  292. package/src/sap/m/semantic/FilterSelect.js +1 -1
  293. package/src/sap/m/semantic/FlagAction.js +1 -1
  294. package/src/sap/m/semantic/ForwardAction.js +1 -1
  295. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  296. package/src/sap/m/semantic/GroupAction.js +1 -1
  297. package/src/sap/m/semantic/GroupSelect.js +1 -1
  298. package/src/sap/m/semantic/MainAction.js +1 -1
  299. package/src/sap/m/semantic/MasterPage.js +1 -1
  300. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  301. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  302. package/src/sap/m/semantic/NegativeAction.js +1 -1
  303. package/src/sap/m/semantic/OpenInAction.js +1 -1
  304. package/src/sap/m/semantic/PositiveAction.js +1 -1
  305. package/src/sap/m/semantic/PrintAction.js +1 -1
  306. package/src/sap/m/semantic/SaveAction.js +1 -1
  307. package/src/sap/m/semantic/Segment.js +1 -1
  308. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  309. package/src/sap/m/semantic/SemanticButton.js +1 -1
  310. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  311. package/src/sap/m/semantic/SemanticControl.js +1 -1
  312. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  313. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  314. package/src/sap/m/semantic/SemanticPage.js +1 -1
  315. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  316. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  317. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  318. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  319. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  320. package/src/sap/m/semantic/ShareMenu.js +1 -1
  321. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  322. package/src/sap/m/semantic/SortAction.js +1 -1
  323. package/src/sap/m/semantic/SortSelect.js +1 -1
  324. package/src/sap/m/table/Util.js +7 -7
  325. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  326. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  327. package/src/sap/m/table/columnmenu/Item.js +1 -1
  328. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  329. package/src/sap/m/table/columnmenu/Menu.js +1 -1
  330. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  331. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  332. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  333. package/src/sap/m/table/columnmenu/QuickGroup.js +1 -1
  334. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  335. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  336. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  337. package/src/sap/m/table/columnmenu/QuickTotal.js +1 -1
  338. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  339. package/src/sap/m/themes/base/GenericTile.less +143 -27
  340. package/src/sap/m/themes/base/SlideTile.less +16 -0
  341. package/src/sap/m/themes/base/Table.less +11 -1
  342. package/src/sap/m/themes/base/TileContent.less +17 -0
  343. package/src/sap/m/upload/UploadSet.js +93 -15
  344. package/src/sap/m/upload/UploadSetItem.js +15 -2
  345. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +45 -0
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @extends sap.ui.core.Control
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.102.0
43
+ * @version 1.102.4
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -54,7 +54,7 @@ function(
54
54
  * @extends sap.m.ListItemBase
55
55
  *
56
56
  * @author SAP SE
57
- * @version 1.102.0
57
+ * @version 1.102.4
58
58
  *
59
59
  * @constructor
60
60
  * @public
@@ -19,7 +19,7 @@ sap.ui.define(["sap/ui/core/Element"],
19
19
  * @extends sap.ui.core.Element
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.0
22
+ * @version 1.102.4
23
23
  *
24
24
  * @constructor
25
25
  * @public
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  *
28
28
  *
29
29
  * @class text
30
- * @version 1.102.0
30
+ * @version 1.102.4
31
31
  * @private
32
32
  * @since 1.38
33
33
  * @alias HeaderAdapter
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  * Constructor for an sap.m.Fiori20Adapter.
228
228
  *
229
229
  * @class text
230
- * @version 1.102.0
230
+ * @version 1.102.4
231
231
  * @private
232
232
  * @since 1.38
233
233
  * @alias sap.m.Fiori20Adapter
@@ -62,7 +62,7 @@ function(
62
62
  * @extends sap.ui.core.Control
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.102.0
65
+ * @version 1.102.4
66
66
  *
67
67
  * @public
68
68
  * @alias sap.m.FlexBox
@@ -24,7 +24,7 @@ sap.ui.define(["./FlexBoxStylingHelper", "./library", "sap/ui/core/LayoutData"],
24
24
  * @class
25
25
  * Holds layout data for a FlexBox / HBox / VBox.
26
26
  * @extends sap.ui.core.LayoutData
27
- * @version 1.102.0
27
+ * @version 1.102.4
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -44,7 +44,7 @@ function(
44
44
  * @class
45
45
  * The FormattedText control allows the usage of a limited set of tags for inline display of formatted text in HTML format.
46
46
  * @extends sap.ui.core.Control
47
- * @version 1.102.0
47
+ * @version 1.102.4
48
48
  *
49
49
  * @constructor
50
50
  * @public
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @extends sap.ui.core.Control
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.102.0
56
+ * @version 1.102.4
57
57
  *
58
58
  * @constructor
59
59
  * @public
@@ -20,6 +20,7 @@ sap.ui.define([
20
20
  "sap/base/strings/camelize",
21
21
  "sap/base/util/deepEqual",
22
22
  "sap/ui/events/PseudoEvents",
23
+ "sap/ui/core/theming/Parameters",
23
24
  "sap/ui/thirdparty/jquery"
24
25
  ], function (
25
26
  library,
@@ -37,6 +38,7 @@ sap.ui.define([
37
38
  camelize,
38
39
  deepEqual,
39
40
  PseudoEvents,
41
+ Parameters,
40
42
  jQuery
41
43
  ) {
42
44
  "use strict";
@@ -64,7 +66,7 @@ sap.ui.define([
64
66
  * @extends sap.ui.core.Control
65
67
  *
66
68
  * @author SAP SE
67
- * @version 1.102.0
69
+ * @version 1.102.4
68
70
  * @since 1.34.0
69
71
  *
70
72
  * @public
@@ -208,10 +210,14 @@ sap.ui.define([
208
210
  backgroundColor: {type: "sap.ui.core.CSSColor", group: "Appearance"},
209
211
  /**
210
212
  * The semantic color of the value.
211
- * @experimental
213
+ * @experimental Since 1.95
212
214
  * @since 1.95
213
215
  */
214
- valueColor: {type: "sap.m.ValueColor", group: "Appearance", defaultValue: "None"}
216
+ valueColor: {type: "sap.m.ValueColor", group: "Appearance", defaultValue: "None"},
217
+ /**
218
+ * The load state of the tileIcon.
219
+ */
220
+ iconLoaded: {type: "boolean", group: "Misc", defaultValue: true}
215
221
  },
216
222
  defaultAggregation: "tileContent",
217
223
  aggregations: {
@@ -424,13 +430,19 @@ sap.ui.define([
424
430
  */
425
431
  GenericTile.prototype._initScopeContent = function (sTileClass) {
426
432
  if (!this.getState || this.getState() !== LoadState.Disabled) {
433
+ if (this._oMoreIcon) {
434
+ //It destroys the existing button when the Tile is getting rendered more than once
435
+ this._oMoreIcon.destroy();
436
+ this._oMoreIcon = null;
437
+ }
427
438
  if (this.isA("sap.m.GenericTile") && this._isIconMode() && this.getFrameType() === FrameType.TwoByHalf){
428
439
  // Acts Like an actual Button in Icon mode for TwoByHalf Tile
429
440
  this._oMoreIcon = this._oMoreIcon || new Button({
430
441
  id: this.getId() + "-action-more",
431
442
  icon: "sap-icon://overflow",
432
- type: "Transparent"
433
- }).addStyleClass("sapMPointer").addStyleClass(sTileClass + "MoreIcon");
443
+ type: "Transparent",
444
+ tooltip :this._oRb.getText("GENERICTILE_MORE_ACTIONBUTTON_TEXT")
445
+ }).addStyleClass("sapMPointer").addStyleClass(sTileClass + "MoreIcon").addStyleClass(sTileClass + "ActionMoreButton");
434
446
  this._oMoreIcon.ontouchstart = function() {
435
447
  this.removeFocus();
436
448
  }.bind(this);
@@ -625,8 +637,28 @@ sap.ui.define([
625
637
  this._addClassesForButton();
626
638
  }
627
639
 
640
+ //Adds Extra height to the TileContent when GenericTile is in ActionMode
641
+ if (this.getFrameType() === FrameType.TwoByOne && this.getMode() === GenericTileMode.ActionMode && this.getState() === LoadState.Loaded) {
642
+ this._applyExtraHeight();
643
+ }
644
+
628
645
  this.onDragComplete();
629
646
  };
647
+ /**
648
+ * Increases the height of the TileContent when the header-text has one line
649
+ * @private
650
+ */
651
+ GenericTile.prototype._applyExtraHeight = function(){
652
+ var iHeight = this.getDomRef("hdr-text").offsetHeight,
653
+ iLineHeight = parseInt(getComputedStyle(this.getDomRef("title")).lineHeight.slice(0,2)),
654
+ iHeaderLines = Math.ceil(iHeight / iLineHeight);
655
+ if (iHeaderLines === 1 && !this.getHeaderImage()) {
656
+ this.getDomRef("content").classList.add("sapMGTFtrMarginTop");
657
+ } else {
658
+ this.getDomRef("content").classList.remove("sapMGTFtrMarginTop");
659
+ }
660
+ };
661
+
630
662
  GenericTile.prototype._setMaxLines = function() {
631
663
  var sFrameType = this.getFrameType(),
632
664
  iLines = sFrameType === FrameType.OneByOne || sFrameType === FrameType.TwoByHalf ? 1 : 2;
@@ -1276,14 +1308,16 @@ sap.ui.define([
1276
1308
  var aContent = this.getTileContent();
1277
1309
  var sAdditionalTooltip = this.getAdditionalTooltip();
1278
1310
 
1279
- if (!this._isInActionScope() && (this.getMode() === GenericTileMode.ContentMode || this.getMode() === GenericTileMode.ArticleMode)) {
1311
+ if (!this._isInActionScope() && (this.getMode() === GenericTileMode.ContentMode || this.getMode() === GenericTileMode.ArticleMode || this.getMode() === GenericTileMode.ActionMode)) {
1280
1312
  for (var i = 0; i < aContent.length; i++) {
1281
- if (typeof aContent[i]._getAriaAndTooltipText === "function") {
1282
- sText += (bIsFirst ? "" : "\n") + aContent[i]._getAriaAndTooltipText();
1283
- } else if (aContent[i].getTooltip_AsString()) {
1284
- sText += (bIsFirst ? "" : "\n") + aContent[i].getTooltip_AsString();
1313
+ if (aContent[i].getVisible()){
1314
+ if (typeof aContent[i]._getAriaAndTooltipText === "function") {
1315
+ sText += (bIsFirst ? "" : "\n") + aContent[i]._getAriaAndTooltipText();
1316
+ } else if (aContent[i].getTooltip_AsString()) {
1317
+ sText += (bIsFirst ? "" : "\n") + aContent[i].getTooltip_AsString();
1318
+ }
1319
+ bIsFirst = false;
1285
1320
  }
1286
- bIsFirst = false;
1287
1321
  }
1288
1322
  }
1289
1323
 
@@ -1514,7 +1548,7 @@ sap.ui.define([
1514
1548
  $Tile.attr("aria-label", sAriaText);
1515
1549
  }
1516
1550
  if (this._isInActionScope()) {
1517
- $Tile.find('*:not(.sapMGTRemoveButton)').removeAttr("aria-label").removeAttr("title").off("mouseenter");
1551
+ $Tile.find('*:not(.sapMGTRemoveButton,.sapMGTActionMoreButton)').removeAttr("aria-label").removeAttr("title").off("mouseenter");
1518
1552
  } else {
1519
1553
  $Tile.find('*').removeAttr("aria-label").removeAttr("title").off("mouseenter");
1520
1554
  }
@@ -1652,14 +1686,32 @@ sap.ui.define([
1652
1686
  */
1653
1687
  GenericTile.prototype._isIconMode = function () {
1654
1688
  if (this.getMode() === GenericTileMode.IconMode
1655
- && (this.getFrameType() === FrameType.OneByOne || this.getFrameType() === FrameType.TwoByHalf)
1656
- && this.getBackgroundColor() && this.getTileIcon()){
1657
- return true;
1689
+ && (this.getFrameType() === FrameType.OneByOne || this.getFrameType() === FrameType.TwoByHalf)){
1690
+ if (!this.getBackgroundColor() && this.getFrameType() === FrameType.TwoByHalf) {
1691
+ this._setDefaultBackgroundColor();
1692
+ }
1693
+ if (this.getTileIcon() && this.getBackgroundColor()) {
1694
+ return true;
1695
+ } else {
1696
+ if (!this.getIconLoaded()) {
1697
+ return true;
1698
+ } else {
1699
+ return false;
1700
+ }
1701
+ }
1658
1702
  } else {
1659
1703
  return false;
1660
1704
  }
1661
1705
  };
1662
1706
 
1707
+ /**
1708
+ * Sets the default background color when the tile is in iconmode.
1709
+ */
1710
+ GenericTile.prototype._setDefaultBackgroundColor = function() {
1711
+ var sColor = Parameters.get("sapUiContentPlaceholderloadingBackground");
1712
+ this.setProperty("backgroundColor" , sColor, true);
1713
+ };
1714
+
1663
1715
  /**
1664
1716
  * Checks if Navigate Action Button should be used in Article Mode
1665
1717
  * @returns {boolean} - true if Navigate Action Button is enabled
@@ -50,7 +50,7 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
50
50
  var isHalfFrame = frameType === frameTypes.OneByHalf || frameType === frameTypes.TwoByHalf;
51
51
 
52
52
  // Render a link when URL is provided, not in action scope and the state is enabled
53
- var bRenderLink = oControl.getUrl() && !oControl._isInActionScope() && sState !== LoadState.Disabled && !oControl._isNavigateActionEnabled() && !oControl._isActionMode();
53
+ var bRenderLink = oControl.getUrl() && (!oControl._isInActionScope() || oControl.getMode() === GenericTileMode.IconMode) && sState !== LoadState.Disabled && !oControl._isNavigateActionEnabled() && !oControl._isActionMode();
54
54
 
55
55
  if (oControl._isInActionScope()) {
56
56
  sScopeClass = encodeCSS("sapMGTScopeActions");
@@ -159,46 +159,56 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
159
159
  var iLength = aTileContent.length;
160
160
  var isFooterPresent = false;
161
161
  var isContentPresent = false;
162
- if (sState === LoadState.Loading) {
163
- //Setplaceholders for IconMode.
164
- if ( oControl._isIconMode() ) {
165
- if (frameType === frameTypes.OneByOne) {
166
- oRm.openStart("div").class("sapMGTContentShimmerPlaceholderItemOneByOne");
167
- oRm.class("sapMGTContentShimmerPlaceholderWithDescriptionOneByOne");
168
- oRm.openEnd();
169
- oRm.openStart("div")
170
- .class("sapMGTContentShimmerPlaceholderRowsOneByOne")
171
- .openEnd();
172
- oRm.openStart("div")
173
- .class("sapMGTContentShimmerPlaceholderIconOneByOne")
174
- .class("sapMGTLoadingShimmer")
175
- .openEnd()
176
- .close("div");
177
- oRm.openStart("div")
178
- .class("sapMGTContentShimmerPlaceholderItemTextOneByOne")
179
- .class("sapMGTLoadingShimmer")
180
- .openEnd()
181
- .close("div");
182
- } else {
183
- oRm.openStart("div").class("sapMGTContentShimmerPlaceholderItemTwoByHalf");
184
- oRm.class("sapMGTContentShimmerPlaceholderWithDescriptionTwoByHalf");
185
- oRm.openEnd();
186
- oRm.openStart("div")
187
- .class("sapMGTContentShimmerPlaceholderRowsTwoByHalf")
188
- .openEnd();
162
+ function renderLoadingShimmerIconMode(oRm, bIsLoading) {
163
+ if (frameType === frameTypes.OneByOne) {
164
+ oRm.openStart("div").class("sapMGTContentShimmerPlaceholderItemOneByOne");
165
+ oRm.class("sapMGTContentShimmerPlaceholderWithDescriptionOneByOne");
166
+ oRm.openEnd();
167
+ oRm.openStart("div")
168
+ .class("sapMGTContentShimmerPlaceholderRowsOneByOne")
169
+ .openEnd();
170
+ oRm.openStart("div")
171
+ .class("sapMGTContentShimmerPlaceholderIconOneByOne")
172
+ .class("sapMGTLoadingShimmer")
173
+ .openEnd()
174
+ .close("div");
175
+ if (bIsLoading){
189
176
  oRm.openStart("div")
190
- .class("sapMGTContentShimmerPlaceholderIconTwoByHalf")
191
- .class("sapMGTLoadingShimmer")
192
- .openEnd()
193
- .close("div");
177
+ .class("sapMGTContentShimmerPlaceholderItemTextOneByOne")
178
+ .class("sapMGTLoadingShimmer")
179
+ .openEnd()
180
+ .close("div");
181
+ }
182
+ } else {
183
+ oRm.openStart("div").class("sapMGTContentShimmerPlaceholderItemTwoByHalf");
184
+ oRm.class("sapMGTContentShimmerPlaceholderWithDescriptionTwoByHalf");
185
+ if (!oControl.getIconLoaded() && !bIsLoading) {
186
+ oRm.class("sapMGTContentShimmerPlaceholderWithDescriptionTwoByHalfIconLoaded");
187
+ }
188
+ oRm.openEnd();
189
+ oRm.openStart("div")
190
+ .class("sapMGTContentShimmerPlaceholderRowsTwoByHalf")
191
+ .openEnd();
192
+ oRm.openStart("div")
193
+ .class("sapMGTContentShimmerPlaceholderIconTwoByHalf")
194
+ .class("sapMGTLoadingShimmer")
195
+ .openEnd()
196
+ .close("div");
197
+ if (bIsLoading){
194
198
  oRm.openStart("div")
195
- .class("sapMGTContentShimmerPlaceholderItemTextTwoByHalf")
196
- .class("sapMGTLoadingShimmer")
197
- .openEnd()
198
- .close("div");
199
+ .class("sapMGTContentShimmerPlaceholderItemTextTwoByHalf")
200
+ .class("sapMGTLoadingShimmer")
201
+ .openEnd()
202
+ .close("div");
199
203
  }
200
- oRm.close("div");
201
- oRm.close("div");
204
+ }
205
+ oRm.close("div");
206
+ oRm.close("div");
207
+ }
208
+ if (sState === LoadState.Loading) {
209
+ //Setplaceholders for IconMode.
210
+ if (oControl._isIconMode()) {
211
+ renderLoadingShimmerIconMode(oRm, true);
202
212
  } else {
203
213
  oRm.openStart("div").class("sapMGTContentShimmerPlaceholderItem");
204
214
  oRm.class("sapMGTContentShimmerPlaceholderWithDescription");
@@ -225,7 +235,7 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
225
235
  oRm.close("div");
226
236
  }
227
237
  } else {
228
- if (this._isValueColorValid(oControl.getValueColor())) {
238
+ if (!bIsActionMode && this._isValueColorValid(oControl.getValueColor())) {
229
239
  oRm.openStart("div");
230
240
  oRm.class("sapMGTCriticalBorder");
231
241
  oRm.class(oControl.getValueColor());
@@ -234,27 +244,31 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
234
244
  }
235
245
  //Set respective Class/ BackgroundColor for IconMode
236
246
  if (oControl._isIconMode()) {
237
- oRm.openStart("div");
238
- if (frameType === frameTypes.OneByOne) {
239
- oRm.class("sapMGTOneByOneIcon");
247
+ if (!oControl.getIconLoaded()) {
248
+ renderLoadingShimmerIconMode(oRm, false);
240
249
  } else {
241
- oRm.class("sapMGTTwoByHalfIcon");
242
- if (!this._isThemeHighContrast()) {
243
- oRm.style("background-color", oControl.getBackgroundColor());
250
+ oRm.openStart("div");
251
+ if (frameType === frameTypes.OneByOne) {
252
+ oRm.class("sapMGTOneByOneIcon");
244
253
  } else {
245
- oRm.class("HighContrastTile");
246
- oRm.style("border-color", oControl.getBackgroundColor());
247
- oRm.style("box-shadow", "0 0 0 1px" + oControl.getBackgroundColor());
254
+ oRm.class("sapMGTTwoByHalfIcon");
255
+ if (!this._isThemeHighContrast()) {
256
+ oRm.style("background-color", oControl.getBackgroundColor());
257
+ } else {
258
+ oRm.class("HighContrastTile");
259
+ oRm.style("border-color", oControl.getBackgroundColor());
260
+ oRm.style("box-shadow", "0 0 0 1px" + oControl.getBackgroundColor());
261
+ }
248
262
  }
249
- }
250
- oRm.openEnd();
251
- if (oControl.getTileIcon()) {
252
- var sAggregation = oControl._generateIconAggregation(oControl.getTileIcon());
253
- if (sAggregation) {
254
- oRm.renderControl(oControl.getAggregation(sAggregation));
263
+ oRm.openEnd();
264
+ if (oControl.getTileIcon()) {
265
+ var sAggregation = oControl._generateIconAggregation(oControl.getTileIcon());
266
+ if (sAggregation) {
267
+ oRm.renderControl(oControl.getAggregation(sAggregation));
268
+ }
255
269
  }
270
+ oRm.close("div");
256
271
  }
257
- oRm.close("div");
258
272
  }
259
273
 
260
274
  //Wrapper div for adjusting to Info Container
@@ -268,6 +282,9 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
268
282
  if (oControl._isIconMode() ){
269
283
  if (frameType === frameTypes.OneByOne) {
270
284
  var sClass = "sapMGTOneByOne";
285
+ if (!oControl.getIconLoaded()) {
286
+ sClass = sClass.concat(" sapMGTOneByOneIconLoaded");
287
+ }
271
288
  } else if (frameType === frameTypes.TwoByHalf) {
272
289
  var sClass = "TwoByHalf";
273
290
  }
@@ -276,6 +293,9 @@ sap.ui.define(["sap/m/library", "sap/base/security/encodeCSS"],
276
293
  if (sTooltipText) {
277
294
  oRm.attr("title", sTooltipText);
278
295
  }
296
+ if (bIsActionMode && oControl.getFrameType() === frameTypes.TwoByOne && sHeaderImage) {
297
+ oRm.class("sapMGTHdrImage");
298
+ }
279
299
  oRm.openEnd();
280
300
 
281
301
  //Render Header Image
@@ -30,7 +30,7 @@ sap.ui.define(["sap/ui/core/library", "./library", "./ListItemBase", "./GroupHea
30
30
  * @extends sap.m.ListItemBase
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.102.0
33
+ * @version 1.102.4
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -14,7 +14,8 @@ sap.ui.define([
14
14
  'sap/ui/core/HTML',
15
15
  'sap/m/CustomListItem',
16
16
  'sap/base/security/encodeXML',
17
- 'sap/base/util/UriParameters'
17
+ 'sap/ui/core/Core',
18
+ "sap/ui/thirdparty/jquery"
18
19
  ],
19
20
  function(
20
21
  BaseObject,
@@ -25,7 +26,8 @@ sap.ui.define([
25
26
  HTML,
26
27
  CustomListItem,
27
28
  encodeXML,
28
- UriParameters
29
+ Core,
30
+ jQuery
29
31
  ) {
30
32
  "use strict";
31
33
 
@@ -70,7 +72,7 @@ sap.ui.define([
70
72
  this._aChunk = [];
71
73
  this._oRM = null;
72
74
 
73
- if (UriParameters.fromQuery(window.location.href).get("sap-ui-xx-enableItemsPool") === "true") {
75
+ if (document.location.href.search("sap-ui-xx-enableItemsPool") > 0) {
74
76
  this._aItemsPool = [];
75
77
  }
76
78
  },
@@ -130,14 +132,43 @@ sap.ui.define([
130
132
  }
131
133
  },
132
134
 
135
+ onsapdown: function(oEvent) {
136
+ // Navigate from last item to growing trigger and vice versa via arrow keys
137
+ var oControl = this._oControl;
138
+ if (oControl._oItemNavigation && !oEvent.isMarked()) {
139
+ var aItemDomRefs = oControl._oItemNavigation.getItemDomRefs();
140
+ var sDir = oControl.getGrowingDirection();
141
+ if ((sDir != ListGrowingDirection.Upwards && oEvent.type == "sapdown" && oEvent.target === aItemDomRefs[aItemDomRefs.length - 1])
142
+ || (sDir == ListGrowingDirection.Upwards && oEvent.type == "sapup" && oEvent.target === aItemDomRefs[0])) {
143
+ var $Trigger = oControl.$("trigger");
144
+ $Trigger.trigger("focus");
145
+ oEvent.setMarked();
146
+ oEvent.stopImmediatePropagation(); // to prevent ItemNavigation
147
+ } else if ((sDir == ListGrowingDirection.Upwards && oEvent.type == "sapdown")
148
+ || (sDir != ListGrowingDirection.Upwards && oEvent.type == "sapup")
149
+ && oEvent.target === oControl.getDomRef("trigger")) {
150
+ jQuery(aItemDomRefs[oEvent.type == "sapdown" ? 0 : aItemDomRefs.length - 1]).trigger("focus");
151
+ oEvent.setMarked();
152
+ }
153
+ }
154
+ },
155
+
156
+ onsapup: function(oEvent) {
157
+ return this.onsapdown(oEvent);
158
+ },
159
+
133
160
  setTriggerText : function(sText) {
134
161
  this._oControl.$("triggerText").text(sText);
135
162
  },
136
163
 
137
164
  // reset paging on rebind
138
- reset : function() {
165
+ reset : function(bPageSizeOnly) {
139
166
  this._iLimit = 0;
140
167
 
168
+ if (bPageSizeOnly) {
169
+ return;
170
+ }
171
+
141
172
  // if factory function is used we do not activate the replace option of the extended change detection
142
173
  var oBindingInfo = this._oControl.getBindingInfo("items");
143
174
  this._oControl.oExtendedChangeDetectionConfig = (!oBindingInfo || !oBindingInfo.template) ? null : {replace: true};
@@ -227,7 +258,7 @@ sap.ui.define([
227
258
  var sTriggerID = this._oControl.getId() + "-trigger",
228
259
  sTriggerText = this._oControl.getGrowingTriggerText();
229
260
 
230
- sTriggerText = sTriggerText || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA");
261
+ sTriggerText = sTriggerText || Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA");
231
262
  this._oControl.addNavSection(sTriggerID);
232
263
 
233
264
  if (this._oTrigger) {
@@ -246,6 +277,7 @@ sap.ui.define([
246
277
  '<span class="sapMSLITitle" id="' + sTriggerID + 'Text">' + encodeXML(sTriggerText) + '</span>' +
247
278
  '</div>' +
248
279
  '<div class="sapMGrowingListDescription sapMSLIDescription" id="' + sTriggerID + 'Info"></div>' +
280
+ '<div class="sapUiInvisibleText" id="' + sTriggerID + 'Message"></div>' +
249
281
  '</div>'
250
282
  })
251
283
  }).setParent(this._oControl, null, true).attachPress(this.requestNewPage, this).addDelegate({
@@ -265,7 +297,8 @@ sap.ui.define([
265
297
  $oTrigger.attr({
266
298
  "tabindex": 0,
267
299
  "role": "button",
268
- "aria-labelledby": sTriggerID + "Text" + " " + sTriggerID + "Info"
300
+ "aria-labelledby": sTriggerID + "Text",
301
+ "aria-describedby": sTriggerID + "Message"
269
302
  });
270
303
  }
271
304
  }, this);
@@ -280,7 +313,14 @@ sap.ui.define([
280
313
 
281
314
  // returns the growing information to be shown at the growing button
282
315
  _getListItemInfo : function() {
283
- return ("[ " + this._iRenderedDataItems + " / " + NumberFormat.getFloatInstance().format(this._oControl.getMaxItemsCount()) + " ]");
316
+ var aCounts = this._getItemCounts();
317
+ var oFormat = NumberFormat.getFloatInstance();
318
+ return "[ " + oFormat.format(aCounts[0]) + " / " + oFormat.format(aCounts[1]) + " ]";
319
+ },
320
+
321
+ // returns the item counts for the growing information (current vs. total)
322
+ _getItemCounts : function() {
323
+ return [this._iRenderedDataItems, this._oControl.getMaxItemsCount()];
284
324
  },
285
325
 
286
326
  // returns the first sorters grouping path when available
@@ -419,16 +459,29 @@ sap.ui.define([
419
459
 
420
460
  // render all the collected items in the chunk and flush them into the DOM
421
461
  // vInsert whether to append (true) or replace (falsy) or to insert at a certain position (int)
422
- applyChunk : function(vInsert) {
462
+ applyChunk : function(vInsert, bAsync) {
423
463
  if (!this._oControl) {
424
464
  return;
425
465
  }
426
466
 
427
467
  this.applyPendingGroupItem();
428
468
 
469
+ var iTimer = this._iChunkTimer;
429
470
  var iLength = this._aChunk.length;
430
471
  var oDomRef = this._oControl.getItemsContainerDomRef();
472
+
473
+ if (iTimer) {
474
+ this._iChunkTimer = clearTimeout(iTimer);
475
+ }
476
+
431
477
  if (!iLength || !oDomRef || !this._oControl.shouldRenderItems()) {
478
+ this._aChunk = [];
479
+ return;
480
+ }
481
+
482
+ if (iTimer && !bAsync) {
483
+ this._oControl.invalidate();
484
+ this._aChunk = [];
432
485
  return;
433
486
  }
434
487
 
@@ -441,7 +494,7 @@ sap.ui.define([
441
494
  }
442
495
  }
443
496
 
444
- this._oRM = this._oRM || sap.ui.getCore().createRenderManager();
497
+ this._oRM = this._oRM || Core.createRenderManager();
445
498
  for (var i = 0; i < iLength; i++) {
446
499
  this._oRM.renderControl(this._aChunk[i]);
447
500
  }
@@ -454,8 +507,8 @@ sap.ui.define([
454
507
 
455
508
  // async version of applyChunk
456
509
  applyChunkAsync : function(vInsert) {
457
- if (this._bNonClientModel) {
458
- setTimeout(this.applyChunk.bind(this, vInsert));
510
+ if (this._bApplyChunkAsync) {
511
+ this._iChunkTimer = setTimeout(this.applyChunk.bind(this, vInsert, true));
459
512
  } else {
460
513
  this.applyChunk(vInsert);
461
514
  }
@@ -496,23 +549,26 @@ sap.ui.define([
496
549
  * refresh items only for OData model.
497
550
  */
498
551
  refreshItems : function(sChangeReason) {
499
- this._bNonClientModel = true;
552
+ var oControl = this._oControl;
553
+ var oBinding = oControl.getBinding("items");
554
+
555
+ // the value of the ODataV4PropertyBinding created during the template clone gets resolved asynchronously
556
+ this._bApplyChunkAsync = oBinding.isA("sap.ui.model.odata.v4.ODataListBinding") && oControl.checkGrowingFromScratch();
557
+
558
+ // if the data is not already requested then let the updateStarted event to be fired
500
559
  if (!this._bDataRequested) {
501
560
  this._bDataRequested = true;
502
561
  this._onBeforePageLoaded(sChangeReason);
503
562
  }
504
563
 
505
564
  // set iItemCount to initial value if not set or no items at the control yet
506
- if (!this._iLimit || this.shouldReset(sChangeReason) || !this._oControl.getItems(true).length) {
507
- this._iLimit = this._oControl.getGrowingThreshold();
508
-
565
+ if (!this._iLimit || this.shouldReset(sChangeReason) || !oControl.getItems(true).length) {
566
+ this._iLimit = oControl.getGrowingThreshold();
509
567
  }
510
568
 
511
- // send the request to get the context
512
- var oBinding = this._oControl.getBinding("items");
513
-
569
+ // pre-initialize items during the request is ongoing
514
570
  if (this._aItemsPool) {
515
- if (this._oControl._bBusy) {
571
+ if (oControl._bBusy) {
516
572
  setTimeout(this.fillItemsPool.bind(this));
517
573
  } else {
518
574
  oBinding.attachEventOnce("dataRequested", function() {
@@ -521,6 +577,7 @@ sap.ui.define([
521
577
  }
522
578
  }
523
579
 
580
+ // send the request to get the context
524
581
  oBinding.getContexts(0, this._iLimit);
525
582
  },
526
583
 
@@ -727,6 +784,10 @@ sap.ui.define([
727
784
  } else {
728
785
  if (bLengthFinal) {
729
786
  oControl.$("triggerInfo").css("display", "block").text(this._getListItemInfo());
787
+ var aCounts = this._getItemCounts();
788
+ oControl.$("triggerMessage").text(Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA_ACC_WITH_COUNT", aCounts));
789
+ } else {
790
+ oControl.$("triggerMessage").text(Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA_ACC"));
730
791
  }
731
792
 
732
793
  oControl.$("triggerList").css("display", "");
@@ -22,7 +22,7 @@ sap.ui.define(['./List', './library', './GrowingListRenderer'],
22
22
  * @extends sap.m.List
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.102.0
25
+ * @version 1.102.4
26
26
  *
27
27
  * @constructor
28
28
  * @public