@openui5/sap.m 1.100.0 → 1.102.1

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 (510) hide show
  1. package/.eslintrc.json +18 -0
  2. package/THIRDPARTY.txt +5 -5
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +2 -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 +10 -3
  9. package/src/sap/m/App.js +1 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -1
  12. package/src/sap/m/Bar.js +12 -21
  13. package/src/sap/m/Breadcrumbs.js +3 -3
  14. package/src/sap/m/BreadcrumbsRenderer.js +0 -5
  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 +1 -1
  18. package/src/sap/m/Carousel.js +4 -1
  19. package/src/sap/m/CarouselLayout.js +1 -1
  20. package/src/sap/m/CarouselRenderer.js +2 -1
  21. package/src/sap/m/CheckBox.js +1 -1
  22. package/src/sap/m/ColorPalette.js +13 -1
  23. package/src/sap/m/ColorPalettePopover.js +1 -1
  24. package/src/sap/m/Column.js +10 -1
  25. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  26. package/src/sap/m/ColumnListItem.js +1 -1
  27. package/src/sap/m/ColumnListItemRenderer.js +1 -0
  28. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  33. package/src/sap/m/ComboBox.js +22 -2
  34. package/src/sap/m/ComboBoxBase.js +4 -2
  35. package/src/sap/m/ComboBoxTextField.js +1 -1
  36. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  37. package/src/sap/m/CustomListItem.js +1 -1
  38. package/src/sap/m/CustomTile.js +1 -1
  39. package/src/sap/m/CustomTreeItem.js +1 -1
  40. package/src/sap/m/DatePicker.js +53 -7
  41. package/src/sap/m/DatePickerRenderer.js +0 -1
  42. package/src/sap/m/DateRangeSelection.js +42 -4
  43. package/src/sap/m/DateTimeField.js +5 -2
  44. package/src/sap/m/DateTimeInput.js +1 -1
  45. package/src/sap/m/DateTimePicker.js +40 -53
  46. package/src/sap/m/DateTimePickerRenderer.js +2 -2
  47. package/src/sap/m/Dialog.js +21 -8
  48. package/src/sap/m/DialogRenderer.js +1 -1
  49. package/src/sap/m/DisplayListItem.js +1 -1
  50. package/src/sap/m/DraftIndicator.js +1 -1
  51. package/src/sap/m/DynamicDate.js +1 -1
  52. package/src/sap/m/DynamicDateFormat.js +5 -4
  53. package/src/sap/m/DynamicDateOption.js +12 -2
  54. package/src/sap/m/DynamicDateRange.js +107 -16
  55. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  56. package/src/sap/m/ExpandableText.js +1 -1
  57. package/src/sap/m/FacetFilter.js +8 -1
  58. package/src/sap/m/FacetFilterItem.js +1 -1
  59. package/src/sap/m/FacetFilterList.js +1 -1
  60. package/src/sap/m/FeedContent.js +1 -1
  61. package/src/sap/m/FeedInput.js +2 -2
  62. package/src/sap/m/FeedListItem.js +1 -1
  63. package/src/sap/m/FeedListItemAction.js +1 -1
  64. package/src/sap/m/Fiori20Adapter.js +2 -2
  65. package/src/sap/m/FlexBox.js +1 -1
  66. package/src/sap/m/FlexItemData.js +1 -1
  67. package/src/sap/m/FormattedText.js +10 -10
  68. package/src/sap/m/GenericTag.js +1 -1
  69. package/src/sap/m/GenericTagRenderer.js +10 -2
  70. package/src/sap/m/GenericTile.js +132 -16
  71. package/src/sap/m/GenericTileLineModeRenderer.js +80 -3
  72. package/src/sap/m/GenericTileRenderer.js +174 -87
  73. package/src/sap/m/GroupHeaderListItem.js +1 -1
  74. package/src/sap/m/GrowingEnablement.js +127 -93
  75. package/src/sap/m/GrowingList.js +1 -1
  76. package/src/sap/m/HBox.js +1 -1
  77. package/src/sap/m/HeaderContainer.js +41 -21
  78. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  79. package/src/sap/m/IconTabBar.js +3 -3
  80. package/src/sap/m/IconTabBarSelectList.js +1 -1
  81. package/src/sap/m/IconTabFilter.js +1 -1
  82. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  83. package/src/sap/m/IconTabHeader.js +1 -1
  84. package/src/sap/m/IconTabSeparator.js +1 -1
  85. package/src/sap/m/IllustratedMessage.js +19 -1
  86. package/src/sap/m/Illustration.js +1 -1
  87. package/src/sap/m/Image.js +1 -1
  88. package/src/sap/m/ImageContent.js +1 -1
  89. package/src/sap/m/Input.js +4 -10
  90. package/src/sap/m/InputBase.js +5 -5
  91. package/src/sap/m/InputListItem.js +1 -1
  92. package/src/sap/m/Label.js +1 -1
  93. package/src/sap/m/LightBox.js +1 -1
  94. package/src/sap/m/LightBoxItem.js +1 -1
  95. package/src/sap/m/Link.js +1 -1
  96. package/src/sap/m/List.js +1 -1
  97. package/src/sap/m/ListBase.js +52 -20
  98. package/src/sap/m/ListBaseRenderer.js +19 -3
  99. package/src/sap/m/ListItemBase.js +7 -5
  100. package/src/sap/m/MaskEnabler.js +1 -1
  101. package/src/sap/m/MaskInput.js +1 -1
  102. package/src/sap/m/MaskInputRule.js +1 -1
  103. package/src/sap/m/Menu.js +1 -1
  104. package/src/sap/m/MenuButton.js +5 -1
  105. package/src/sap/m/MenuItem.js +1 -1
  106. package/src/sap/m/MenuListItem.js +1 -1
  107. package/src/sap/m/MessageBox.js +1 -1
  108. package/src/sap/m/MessageItem.js +1 -1
  109. package/src/sap/m/MessageListItem.js +1 -1
  110. package/src/sap/m/MessagePage.js +1 -1
  111. package/src/sap/m/MessagePopover.js +18 -36
  112. package/src/sap/m/MessagePopoverItem.js +1 -1
  113. package/src/sap/m/MessageStrip.js +1 -1
  114. package/src/sap/m/MessageToast.js +1 -1
  115. package/src/sap/m/MessageView.js +1 -1
  116. package/src/sap/m/MultiComboBox.js +3 -2
  117. package/src/sap/m/MultiEditField.js +1 -1
  118. package/src/sap/m/MultiInput.js +8 -3
  119. package/src/sap/m/NavContainer.js +40 -40
  120. package/src/sap/m/NewsContent.js +1 -1
  121. package/src/sap/m/NotificationList.js +1 -1
  122. package/src/sap/m/NotificationListBase.js +175 -79
  123. package/src/sap/m/NotificationListGroup.js +1 -2
  124. package/src/sap/m/NotificationListGroupRenderer.js +4 -16
  125. package/src/sap/m/NotificationListItem.js +5 -16
  126. package/src/sap/m/NotificationListItemRenderer.js +0 -1
  127. package/src/sap/m/NumericContent.js +1 -1
  128. package/src/sap/m/NumericInput.js +3 -2
  129. package/src/sap/m/NumericInputRenderer.js +13 -1
  130. package/src/sap/m/ObjectAttribute.js +1 -1
  131. package/src/sap/m/ObjectAttributeRenderer.js +1 -1
  132. package/src/sap/m/ObjectHeader.js +1 -1
  133. package/src/sap/m/ObjectIdentifier.js +1 -1
  134. package/src/sap/m/ObjectListItem.js +1 -1
  135. package/src/sap/m/ObjectMarker.js +34 -10
  136. package/src/sap/m/ObjectMarkerRenderer.js +14 -2
  137. package/src/sap/m/ObjectNumber.js +1 -1
  138. package/src/sap/m/ObjectStatus.js +1 -1
  139. package/src/sap/m/OverflowToolbar.js +17 -1
  140. package/src/sap/m/OverflowToolbarAssociativePopover.js +2 -2
  141. package/src/sap/m/OverflowToolbarButton.js +1 -1
  142. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  143. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  144. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  145. package/src/sap/m/P13nColumnsItem.js +1 -1
  146. package/src/sap/m/P13nColumnsPanel.js +1 -1
  147. package/src/sap/m/P13nConditionPanel.js +9 -12
  148. package/src/sap/m/P13nDialog.js +1 -1
  149. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  150. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  151. package/src/sap/m/P13nFilterItem.js +1 -1
  152. package/src/sap/m/P13nFilterPanel.js +1 -1
  153. package/src/sap/m/P13nGroupItem.js +1 -1
  154. package/src/sap/m/P13nGroupPanel.js +1 -1
  155. package/src/sap/m/P13nItem.js +1 -1
  156. package/src/sap/m/P13nPanel.js +1 -1
  157. package/src/sap/m/P13nSelectionItem.js +1 -1
  158. package/src/sap/m/P13nSelectionPanel.js +1 -1
  159. package/src/sap/m/P13nSortItem.js +1 -1
  160. package/src/sap/m/P13nSortPanel.js +1 -1
  161. package/src/sap/m/PDFViewer.js +3 -3
  162. package/src/sap/m/PDFViewerRenderer.js +15 -7
  163. package/src/sap/m/Page.js +4 -4
  164. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  165. package/src/sap/m/PagingButton.js +1 -1
  166. package/src/sap/m/Panel.js +1 -1
  167. package/src/sap/m/PlanningCalendar.js +14 -14
  168. package/src/sap/m/PlanningCalendarHeader.js +1 -4
  169. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  170. package/src/sap/m/PlanningCalendarRow.js +1 -1
  171. package/src/sap/m/PlanningCalendarView.js +1 -1
  172. package/src/sap/m/Popover.js +15 -10
  173. package/src/sap/m/ProgressIndicator.js +1 -1
  174. package/src/sap/m/PullToRefresh.js +1 -1
  175. package/src/sap/m/QuickView.js +1 -1
  176. package/src/sap/m/QuickViewBase.js +1 -1
  177. package/src/sap/m/QuickViewCard.js +1 -1
  178. package/src/sap/m/QuickViewGroup.js +1 -1
  179. package/src/sap/m/QuickViewGroupElement.js +1 -1
  180. package/src/sap/m/QuickViewPage.js +1 -1
  181. package/src/sap/m/RadioButton.js +2 -2
  182. package/src/sap/m/RadioButtonGroup.js +3 -2
  183. package/src/sap/m/RangeSlider.js +19 -4
  184. package/src/sap/m/RatingIndicator.js +1 -1
  185. package/src/sap/m/ResponsivePopover.js +1 -1
  186. package/src/sap/m/ResponsiveScale.js +1 -1
  187. package/src/sap/m/ScrollBar.js +1 -1
  188. package/src/sap/m/ScrollContainer.js +1 -1
  189. package/src/sap/m/SearchField.js +1 -1
  190. package/src/sap/m/SegmentedButton.js +5 -3
  191. package/src/sap/m/SegmentedButtonItem.js +1 -1
  192. package/src/sap/m/Select.js +24 -3
  193. package/src/sap/m/SelectDialog.js +14 -18
  194. package/src/sap/m/SelectDialogBase.js +1 -1
  195. package/src/sap/m/SelectList.js +1 -1
  196. package/src/sap/m/SelectionDetails.js +1 -1
  197. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  198. package/src/sap/m/SelectionDetailsItem.js +1 -1
  199. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  200. package/src/sap/m/Shell.js +1 -1
  201. package/src/sap/m/SimpleFixFlex.js +1 -1
  202. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  203. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  204. package/src/sap/m/SinglePlanningCalendarGrid.js +94 -52
  205. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +10 -9
  206. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +22 -10
  207. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  208. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  209. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  210. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  211. package/src/sap/m/SlideTile.js +1 -1
  212. package/src/sap/m/Slider.js +1 -1
  213. package/src/sap/m/SliderTooltip.js +1 -1
  214. package/src/sap/m/SliderTooltipBase.js +1 -1
  215. package/src/sap/m/SliderTooltipContainer.js +5 -1
  216. package/src/sap/m/SplitApp.js +1 -1
  217. package/src/sap/m/SplitButton.js +1 -1
  218. package/src/sap/m/SplitContainer.js +1 -1
  219. package/src/sap/m/StandardDynamicDateOption.js +36 -13
  220. package/src/sap/m/StandardListItem.js +3 -3
  221. package/src/sap/m/StandardListItemRenderer.js +1 -1
  222. package/src/sap/m/StandardTile.js +1 -1
  223. package/src/sap/m/StandardTreeItem.js +1 -1
  224. package/src/sap/m/StepInput.js +3 -3
  225. package/src/sap/m/SuggestionItem.js +1 -1
  226. package/src/sap/m/SuggestionsPopover.js +5 -13
  227. package/src/sap/m/Switch.js +1 -1
  228. package/src/sap/m/TabContainer.js +1 -1
  229. package/src/sap/m/TabContainerItem.js +1 -1
  230. package/src/sap/m/TabStrip.js +5 -3
  231. package/src/sap/m/TabStripItem.js +1 -1
  232. package/src/sap/m/Table.js +34 -3
  233. package/src/sap/m/TablePersoController.js +1 -1
  234. package/src/sap/m/TablePersoDialog.js +1 -1
  235. package/src/sap/m/TablePersoProvider.js +1 -1
  236. package/src/sap/m/TableRenderer.js +9 -4
  237. package/src/sap/m/TableSelectDialog.js +13 -9
  238. package/src/sap/m/Text.js +1 -1
  239. package/src/sap/m/TextArea.js +1 -1
  240. package/src/sap/m/Tile.js +1 -1
  241. package/src/sap/m/TileContainer.js +1 -1
  242. package/src/sap/m/TileContent.js +8 -14
  243. package/src/sap/m/TileContentRenderer.js +16 -7
  244. package/src/sap/m/TimePicker.js +52 -60
  245. package/src/sap/m/TimePickerClock.js +1 -1
  246. package/src/sap/m/TimePickerClocks.js +1 -1
  247. package/src/sap/m/TimePickerInputs.js +1 -1
  248. package/src/sap/m/TimePickerInternals.js +1 -1
  249. package/src/sap/m/TimePickerRenderer.js +0 -1
  250. package/src/sap/m/TimePickerSlider.js +1 -1
  251. package/src/sap/m/TimePickerSliders.js +1 -1
  252. package/src/sap/m/Title.js +1 -1
  253. package/src/sap/m/TitlePropagationSupport.js +1 -1
  254. package/src/sap/m/ToggleButton.js +1 -1
  255. package/src/sap/m/Token.js +1 -1
  256. package/src/sap/m/Tokenizer.js +15 -3
  257. package/src/sap/m/Toolbar.js +7 -1
  258. package/src/sap/m/ToolbarLayoutData.js +1 -1
  259. package/src/sap/m/ToolbarSeparator.js +1 -1
  260. package/src/sap/m/ToolbarSpacer.js +1 -1
  261. package/src/sap/m/Tree.js +1 -1
  262. package/src/sap/m/TreeItemBase.js +1 -1
  263. package/src/sap/m/UploadCollection.js +1 -1
  264. package/src/sap/m/UploadCollectionItem.js +2 -1
  265. package/src/sap/m/UploadCollectionParameter.js +2 -1
  266. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +2 -1
  267. package/src/sap/m/VBox.js +1 -1
  268. package/src/sap/m/ValueStateHeader.js +1 -1
  269. package/src/sap/m/VariantManagement.js +2492 -0
  270. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  271. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  272. package/src/sap/m/ViewSettingsDialog.js +8 -9
  273. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  274. package/src/sap/m/ViewSettingsItem.js +1 -1
  275. package/src/sap/m/VisibleItem.js +2 -2
  276. package/src/sap/m/WheelSlider.js +1 -1
  277. package/src/sap/m/WheelSliderContainer.js +1 -1
  278. package/src/sap/m/Wizard.js +22 -4
  279. package/src/sap/m/WizardProgressNavigator.js +10 -3
  280. package/src/sap/m/WizardStep.js +1 -1
  281. package/src/sap/m/changeHandler/AddTableColumn.js +3 -5
  282. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  283. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  284. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  285. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  286. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  287. package/src/sap/m/designtime/ListBase.designtime.js +3 -0
  288. package/src/sap/m/designtime/VariantManagement.designtime.js +56 -0
  289. package/src/sap/m/inputUtils/SuggestionsPopoverDialogMixin.js +22 -16
  290. package/src/sap/m/inputUtils/SuggestionsPopoverPopoverMixin.js +10 -2
  291. package/src/sap/m/inputUtils/highlightDOMElements.js +3 -2
  292. package/src/sap/m/library.js +55 -19
  293. package/src/sap/m/messagebundle.properties +168 -27
  294. package/src/sap/m/messagebundle_ar.properties +104 -14
  295. package/src/sap/m/messagebundle_bg.properties +104 -14
  296. package/src/sap/m/messagebundle_ca.properties +104 -14
  297. package/src/sap/m/messagebundle_cs.properties +104 -14
  298. package/src/sap/m/messagebundle_cy.properties +104 -14
  299. package/src/sap/m/messagebundle_da.properties +104 -14
  300. package/src/sap/m/messagebundle_de.properties +104 -14
  301. package/src/sap/m/messagebundle_el.properties +104 -14
  302. package/src/sap/m/messagebundle_en.properties +103 -13
  303. package/src/sap/m/messagebundle_en_GB.properties +103 -13
  304. package/src/sap/m/messagebundle_en_US_sappsd.properties +102 -12
  305. package/src/sap/m/messagebundle_en_US_saprigi.properties +102 -12
  306. package/src/sap/m/messagebundle_en_US_saptrc.properties +102 -12
  307. package/src/sap/m/messagebundle_es.properties +104 -14
  308. package/src/sap/m/messagebundle_es_MX.properties +104 -14
  309. package/src/sap/m/messagebundle_et.properties +104 -14
  310. package/src/sap/m/messagebundle_fi.properties +103 -13
  311. package/src/sap/m/messagebundle_fr.properties +105 -15
  312. package/src/sap/m/messagebundle_fr_CA.properties +104 -14
  313. package/src/sap/m/messagebundle_hi.properties +104 -14
  314. package/src/sap/m/messagebundle_hr.properties +104 -14
  315. package/src/sap/m/messagebundle_hu.properties +104 -14
  316. package/src/sap/m/messagebundle_id.properties +104 -14
  317. package/src/sap/m/messagebundle_it.properties +112 -22
  318. package/src/sap/m/messagebundle_iw.properties +104 -14
  319. package/src/sap/m/messagebundle_ja.properties +104 -14
  320. package/src/sap/m/messagebundle_kk.properties +104 -14
  321. package/src/sap/m/messagebundle_ko.properties +105 -15
  322. package/src/sap/m/messagebundle_lt.properties +104 -14
  323. package/src/sap/m/messagebundle_lv.properties +103 -13
  324. package/src/sap/m/messagebundle_ms.properties +104 -14
  325. package/src/sap/m/messagebundle_nl.properties +103 -13
  326. package/src/sap/m/messagebundle_no.properties +104 -14
  327. package/src/sap/m/messagebundle_pl.properties +104 -14
  328. package/src/sap/m/messagebundle_pt.properties +112 -22
  329. package/src/sap/m/messagebundle_pt_PT.properties +104 -14
  330. package/src/sap/m/messagebundle_ro.properties +104 -14
  331. package/src/sap/m/messagebundle_ru.properties +104 -14
  332. package/src/sap/m/messagebundle_sh.properties +104 -14
  333. package/src/sap/m/messagebundle_sk.properties +104 -14
  334. package/src/sap/m/messagebundle_sl.properties +104 -14
  335. package/src/sap/m/messagebundle_sv.properties +105 -15
  336. package/src/sap/m/messagebundle_th.properties +104 -14
  337. package/src/sap/m/messagebundle_tr.properties +104 -14
  338. package/src/sap/m/messagebundle_uk.properties +104 -14
  339. package/src/sap/m/messagebundle_vi.properties +104 -14
  340. package/src/sap/m/messagebundle_zh_CN.properties +104 -14
  341. package/src/sap/m/messagebundle_zh_TW.properties +104 -14
  342. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  343. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  344. package/src/sap/m/p13n/BasePanel.js +9 -3
  345. package/src/sap/m/p13n/Container.js +11 -4
  346. package/src/sap/m/p13n/GroupPanel.js +17 -5
  347. package/src/sap/m/p13n/Popup.js +9 -2
  348. package/src/sap/m/p13n/QueryPanel.js +89 -37
  349. package/src/sap/m/p13n/SelectionPanel.js +30 -5
  350. package/src/sap/m/p13n/SortPanel.js +27 -13
  351. package/src/sap/m/plugins/ColumnResizer.js +41 -6
  352. package/src/sap/m/plugins/DataStateIndicator.js +3 -2
  353. package/src/sap/m/plugins/PasteProvider.js +1 -1
  354. package/src/sap/m/plugins/PluginBase.js +1 -1
  355. package/src/sap/m/rules/CheckBox.support.js +1 -1
  356. package/src/sap/m/rules/Image.support.js +1 -1
  357. package/src/sap/m/rules/Link.support.js +1 -1
  358. package/src/sap/m/rules/MessagePage.support.js +1 -1
  359. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  360. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  361. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  362. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  363. package/src/sap/m/rules/Select.support.js +1 -1
  364. package/src/sap/m/rules/Table.support.js +3 -3
  365. package/src/sap/m/semantic/AddAction.js +1 -1
  366. package/src/sap/m/semantic/CancelAction.js +1 -1
  367. package/src/sap/m/semantic/DeleteAction.js +1 -1
  368. package/src/sap/m/semantic/DetailPage.js +1 -1
  369. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  370. package/src/sap/m/semantic/EditAction.js +1 -1
  371. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  372. package/src/sap/m/semantic/FilterAction.js +1 -1
  373. package/src/sap/m/semantic/FilterSelect.js +1 -1
  374. package/src/sap/m/semantic/FlagAction.js +1 -1
  375. package/src/sap/m/semantic/ForwardAction.js +1 -1
  376. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  377. package/src/sap/m/semantic/GroupAction.js +1 -1
  378. package/src/sap/m/semantic/GroupSelect.js +1 -1
  379. package/src/sap/m/semantic/MainAction.js +1 -1
  380. package/src/sap/m/semantic/MasterPage.js +1 -1
  381. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  382. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  383. package/src/sap/m/semantic/NegativeAction.js +1 -1
  384. package/src/sap/m/semantic/OpenInAction.js +1 -1
  385. package/src/sap/m/semantic/PositiveAction.js +1 -1
  386. package/src/sap/m/semantic/PrintAction.js +1 -1
  387. package/src/sap/m/semantic/SaveAction.js +1 -1
  388. package/src/sap/m/semantic/Segment.js +1 -1
  389. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  390. package/src/sap/m/semantic/SemanticButton.js +1 -1
  391. package/src/sap/m/semantic/SemanticConfiguration.js +7 -14
  392. package/src/sap/m/semantic/SemanticControl.js +1 -1
  393. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  394. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  395. package/src/sap/m/semantic/SemanticPage.js +1 -1
  396. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  397. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  398. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  399. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  400. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  401. package/src/sap/m/semantic/ShareMenu.js +1 -1
  402. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  403. package/src/sap/m/semantic/SortAction.js +1 -1
  404. package/src/sap/m/semantic/SortSelect.js +1 -1
  405. package/src/sap/m/table/Util.js +98 -16
  406. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  407. package/src/sap/m/table/columnmenu/Entry.js +1 -11
  408. package/src/sap/m/table/columnmenu/Item.js +1 -1
  409. package/src/sap/m/table/columnmenu/ItemBase.js +11 -1
  410. package/src/sap/m/table/columnmenu/ItemContainer.js +29 -0
  411. package/src/sap/m/table/columnmenu/Menu.js +222 -34
  412. package/src/sap/m/table/columnmenu/MenuRenderer.js +5 -28
  413. package/src/sap/m/table/columnmenu/QuickAction.js +14 -3
  414. package/src/sap/m/table/columnmenu/QuickActionBase.js +11 -1
  415. package/src/sap/m/table/columnmenu/QuickActionContainer.js +29 -0
  416. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -5
  417. package/src/sap/m/table/columnmenu/QuickGroup.js +20 -16
  418. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  419. package/src/sap/m/table/columnmenu/QuickSort.js +2 -1
  420. package/src/sap/m/table/columnmenu/QuickSortItem.js +29 -28
  421. package/src/sap/m/table/columnmenu/QuickTotal.js +20 -25
  422. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  423. package/src/sap/m/themes/base/ActionListItem.less +1 -1
  424. package/src/sap/m/themes/base/Avatar.less +11 -5
  425. package/src/sap/m/themes/base/Button.less +1 -6
  426. package/src/sap/m/themes/base/Carousel.less +72 -87
  427. package/src/sap/m/themes/base/CheckBox.less +0 -1
  428. package/src/sap/m/themes/base/ColumnListItem.less +0 -3
  429. package/src/sap/m/themes/base/ColumnMenu.less +12 -4
  430. package/src/sap/m/themes/base/Dialog.less +10 -6
  431. package/src/sap/m/themes/base/GenericTile.less +758 -179
  432. package/src/sap/m/themes/base/IconTabBar.less +45 -14
  433. package/src/sap/m/themes/base/IconTabBarSelectList.less +5 -4
  434. package/src/sap/m/themes/base/Input.less +1 -1
  435. package/src/sap/m/themes/base/InputBase.less +114 -11
  436. package/src/sap/m/themes/base/Label.less +3 -0
  437. package/src/sap/m/themes/base/LightBox.less +9 -7
  438. package/src/sap/m/themes/base/Link.less +12 -4
  439. package/src/sap/m/themes/base/ListBase.less +4 -0
  440. package/src/sap/m/themes/base/ListItemBase.less +1 -12
  441. package/src/sap/m/themes/base/MenuButton.less +16 -0
  442. package/src/sap/m/themes/base/MessageBox.less +5 -5
  443. package/src/sap/m/themes/base/MultiInput.less +1 -1
  444. package/src/sap/m/themes/base/NewsContent.less +0 -9
  445. package/src/sap/m/themes/base/NotificationListBase.less +9 -14
  446. package/src/sap/m/themes/base/NotificationListGroup.less +30 -44
  447. package/src/sap/m/themes/base/NotificationListItem.less +14 -18
  448. package/src/sap/m/themes/base/ObjectAttribute.less +1 -1
  449. package/src/sap/m/themes/base/ObjectListItem.less +3 -0
  450. package/src/sap/m/themes/base/ObjectMarker.less +3 -1
  451. package/src/sap/m/themes/base/ObjectStatus.less +8 -0
  452. package/src/sap/m/themes/base/Panel.less +1 -1
  453. package/src/sap/m/themes/base/Popover.less +10 -7
  454. package/src/sap/m/themes/base/QuickView.less +14 -2
  455. package/src/sap/m/themes/base/RadioButton.less +21 -3
  456. package/src/sap/m/themes/base/RatingIndicator.less +4 -0
  457. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +3 -29
  458. package/src/sap/m/themes/base/SlideTile.less +18 -0
  459. package/src/sap/m/themes/base/Slider.less +18 -18
  460. package/src/sap/m/themes/base/StandardListItem.less +5 -9
  461. package/src/sap/m/themes/base/SuggestionsPopover.less +1 -1
  462. package/src/sap/m/themes/base/Table.less +18 -21
  463. package/src/sap/m/themes/base/TextArea.less +32 -0
  464. package/src/sap/m/themes/base/Token.less +17 -15
  465. package/src/sap/m/themes/base/Tokenizer.less +2 -2
  466. package/src/sap/m/themes/base/Toolbar.less +1 -1
  467. package/src/sap/m/themes/base/UploadCollection.less +2 -0
  468. package/src/sap/m/themes/base/ValueStateMessage.less +3 -3
  469. package/src/sap/m/themes/base/VariantManagement.less +97 -0
  470. package/src/sap/m/themes/base/Wizard.less +5 -4
  471. package/src/sap/m/themes/base/WizardProgressNavigator.less +8 -0
  472. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyCalendar.svg +73 -72
  473. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-EmptyList.svg +33 -18
  474. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoEntries.svg +1 -3
  475. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-NoNotifications.svg +3 -5
  476. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SimpleBell.svg +12 -9
  477. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SimpleCalendar.svg +41 -40
  478. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-SleepingBell.svg +29 -22
  479. package/src/sap/m/themes/base/illustrations/sapIllus-Dialog-Tent.svg +28 -23
  480. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-Connection.svg +27 -27
  481. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyCalendar.svg +86 -85
  482. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-EmptyList.svg +42 -26
  483. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoData.svg +0 -2
  484. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-NoEntries.svg +0 -2
  485. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SimpleBell.svg +15 -12
  486. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SimpleCalendar.svg +43 -42
  487. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-SleepingBell.svg +49 -42
  488. package/src/sap/m/themes/base/illustrations/sapIllus-Scene-Tent.svg +58 -53
  489. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyCalendar.svg +42 -41
  490. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-EmptyList.svg +24 -16
  491. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoEntries.svg +10 -20
  492. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-NoNotifications.svg +8 -13
  493. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SimpleBell.svg +11 -8
  494. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SimpleCalendar.svg +37 -39
  495. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-SleepingBell.svg +38 -22
  496. package/src/sap/m/themes/base/illustrations/sapIllus-Spot-Tent.svg +28 -23
  497. package/src/sap/m/themes/base/library.source.less +1 -0
  498. package/src/sap/m/themes/sap_hcb/Carousel.less +3 -7
  499. package/src/sap/m/themes/sap_hcb/ComboBoxBase.less +0 -12
  500. package/src/sap/m/themes/sap_hcb/InputBase.less +7 -42
  501. package/src/sap/m/themes/sap_hcb/Panel.less +4 -0
  502. package/src/sap/m/themes/sap_hcb/Popover.less +3 -0
  503. package/src/sap/m/themes/sap_hcb/Slider.less +11 -0
  504. package/src/sap/m/themes/sap_hcb/Token.less +4 -0
  505. package/src/sap/m/themes/sap_hcb/Tokenizer.less +1 -0
  506. package/src/sap/m/themes/sap_hcb/ValueStateHeader.less +4 -0
  507. package/src/sap/m/themes/sap_hcb/ValueStateMessage.less +12 -1
  508. package/src/sap/m/upload/UploadSet.js +162 -17
  509. package/src/sap/m/upload/UploadSetItem.js +24 -1
  510. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +45 -0
@@ -13,8 +13,7 @@ sap.ui.define([
13
13
  'sap/ui/base/ManagedObjectMetadata',
14
14
  'sap/ui/core/HTML',
15
15
  'sap/m/CustomListItem',
16
- 'sap/base/security/encodeXML',
17
- 'sap/base/util/UriParameters'
16
+ 'sap/base/security/encodeXML'
18
17
  ],
19
18
  function(
20
19
  BaseObject,
@@ -24,8 +23,7 @@ sap.ui.define([
24
23
  ManagedObjectMetadata,
25
24
  HTML,
26
25
  CustomListItem,
27
- encodeXML,
28
- UriParameters
26
+ encodeXML
29
27
  ) {
30
28
  "use strict";
31
29
 
@@ -65,13 +63,12 @@ sap.ui.define([
65
63
  this._sGroupingPath = "";
66
64
  this._bDataRequested = false;
67
65
  this._bSkippedItemsUpdateUntilDataReceived = false;
68
- this._oContainerDomRef = null;
69
66
  this._iLastItemsCount = 0;
70
67
  this._iTriggerTimer = 0;
71
68
  this._aChunk = [];
72
69
  this._oRM = null;
73
70
 
74
- if (UriParameters.fromQuery(window.location.href).get("sap-ui-xx-enableItemsPool") === "true") {
71
+ if (document.location.href.search("sap-ui-xx-enableItemsPool") > 0) {
75
72
  this._aItemsPool = [];
76
73
  }
77
74
  },
@@ -100,7 +97,6 @@ sap.ui.define([
100
97
  this._oControl.$("triggerList").remove();
101
98
  this._oControl.bUseExtendedChangeDetection = false;
102
99
  this._oControl.removeDelegate(this);
103
- this._oContainerDomRef = null;
104
100
  this._oControl = null;
105
101
  },
106
102
 
@@ -210,6 +206,10 @@ sap.ui.define([
210
206
 
211
207
  // called after new page loaded
212
208
  _onAfterPageLoaded : function(sChangeReason) {
209
+ if (!this._oControl) {
210
+ return;
211
+ }
212
+
213
213
  this._bLoading = false;
214
214
  this._updateTriggerDelayed(false);
215
215
  this._oControl.onAfterPageLoaded(this.getInfo(), sChangeReason);
@@ -417,11 +417,29 @@ sap.ui.define([
417
417
 
418
418
  // render all the collected items in the chunk and flush them into the DOM
419
419
  // vInsert whether to append (true) or replace (falsy) or to insert at a certain position (int)
420
- applyChunk : function(vInsert, oDomRef) {
420
+ applyChunk : function(vInsert, bAsync) {
421
+ if (!this._oControl) {
422
+ return;
423
+ }
424
+
421
425
  this.applyPendingGroupItem();
422
426
 
427
+ var iTimer = this._iChunkTimer;
423
428
  var iLength = this._aChunk.length;
424
- if (!iLength || !this._oControl.shouldRenderItems()) {
429
+ var oDomRef = this._oControl.getItemsContainerDomRef();
430
+
431
+ if (iTimer) {
432
+ this._iChunkTimer = clearTimeout(iTimer);
433
+ }
434
+
435
+ if (!iLength || !oDomRef || !this._oControl.shouldRenderItems()) {
436
+ this._aChunk = [];
437
+ return;
438
+ }
439
+
440
+ if (iTimer && !bAsync) {
441
+ this._oControl.invalidate();
442
+ this._aChunk = [];
425
443
  return;
426
444
  }
427
445
 
@@ -434,17 +452,26 @@ sap.ui.define([
434
452
  }
435
453
  }
436
454
 
437
- oDomRef = oDomRef || this._oContainerDomRef;
438
455
  this._oRM = this._oRM || sap.ui.getCore().createRenderManager();
439
-
440
456
  for (var i = 0; i < iLength; i++) {
441
457
  this._oRM.renderControl(this._aChunk[i]);
442
458
  }
443
459
 
460
+ var bHasFocus = (vInsert == false) && oDomRef.contains(document.activeElement);
444
461
  this._oRM.flush(oDomRef, false, this._getDomIndex(vInsert));
462
+ bHasFocus && this._oControl.focus();
445
463
  this._aChunk = [];
446
464
  },
447
465
 
466
+ // async version of applyChunk
467
+ applyChunkAsync : function(vInsert) {
468
+ if (this._bApplyChunkAsync) {
469
+ this._iChunkTimer = setTimeout(this.applyChunk.bind(this, vInsert, true));
470
+ } else {
471
+ this.applyChunk(vInsert);
472
+ }
473
+ },
474
+
448
475
  // add multiple items to the list via BindingContext
449
476
  addListItems : function(aContexts, oBindingInfo, bSuppressInvalidate) {
450
477
  for (var i = 0; i < aContexts.length; i++) {
@@ -457,9 +484,7 @@ sap.ui.define([
457
484
  this.destroyListItems(bSuppressInvalidate);
458
485
  this.addListItems(aContexts, oBindingInfo, bSuppressInvalidate);
459
486
  if (bSuppressInvalidate) {
460
- var bHasFocus = this._oContainerDomRef.contains(document.activeElement);
461
- this.applyChunk(false);
462
- bHasFocus && this._oControl.focus();
487
+ this.applyChunkAsync(false);
463
488
  } else {
464
489
  this.applyPendingGroupItem();
465
490
  }
@@ -482,26 +507,35 @@ sap.ui.define([
482
507
  * refresh items only for OData model.
483
508
  */
484
509
  refreshItems : function(sChangeReason) {
510
+ var oControl = this._oControl;
511
+ var oBinding = oControl.getBinding("items");
512
+
513
+ // the value of the ODataV4PropertyBinding created during the template clone gets resolved asynchronously
514
+ this._bApplyChunkAsync = oBinding.isA("sap.ui.model.odata.v4.ODataListBinding") && oControl.checkGrowingFromScratch();
515
+
516
+ // if the data is not already requested then let the updateStarted event to be fired
485
517
  if (!this._bDataRequested) {
486
518
  this._bDataRequested = true;
487
519
  this._onBeforePageLoaded(sChangeReason);
488
520
  }
489
521
 
490
522
  // set iItemCount to initial value if not set or no items at the control yet
491
- if (!this._iLimit || this.shouldReset(sChangeReason) || !this._oControl.getItems(true).length) {
492
- this._iLimit = this._oControl.getGrowingThreshold();
493
-
523
+ if (!this._iLimit || this.shouldReset(sChangeReason) || !oControl.getItems(true).length) {
524
+ this._iLimit = oControl.getGrowingThreshold();
494
525
  }
495
526
 
496
- // send the request to get the context
497
- var oBinding = this._oControl.getBinding("items");
498
-
527
+ // pre-initialize items during the request is ongoing
499
528
  if (this._aItemsPool) {
500
- oBinding.attachEventOnce("dataRequested", function() {
529
+ if (oControl._bBusy) {
501
530
  setTimeout(this.fillItemsPool.bind(this));
502
- }, this);
531
+ } else {
532
+ oBinding.attachEventOnce("dataRequested", function() {
533
+ setTimeout(this.fillItemsPool.bind(this));
534
+ }, this);
535
+ }
503
536
  }
504
537
 
538
+ // send the request to get the context
505
539
  oBinding.getContexts(0, this._iLimit);
506
540
  },
507
541
 
@@ -513,7 +547,8 @@ sap.ui.define([
513
547
  var oControl = this._oControl,
514
548
  oBinding = oControl.getBinding("items"),
515
549
  oBindingInfo = oControl.getBindingInfo("items"),
516
- aItems = oControl.getItems(true);
550
+ aItems = oControl.getItems(true),
551
+ sGroupingPath = this._sGroupingPath;
517
552
 
518
553
  // set limit to initial value if not set yet or no items at the control yet
519
554
  if (!this._iLimit || this.shouldReset(sChangeReason) || !aItems.length) {
@@ -545,102 +580,101 @@ sap.ui.define([
545
580
  }
546
581
  }
547
582
 
548
- // cache dom ref for internal functions not to lookup again and again
549
- this._oContainerDomRef = oControl.getItemsContainerDomRef();
583
+ // let the grouping path to be stored
584
+ this._sGroupingPath = this._getGroupingPath(oBinding);
550
585
 
551
586
  // aContexts.diff ==> undefined : New data we should build from scratch
552
587
  // aContexts.diff ==> [] : There is no diff, means data did not changed at all
553
588
  // aContexts.diff ==> [{index: 0, type: "delete"}, {index: 1, type: "insert"},...] : Run the diff logic
554
- var aDiff = aContexts.diff,
555
- bFromScratch = false,
556
- vInsertIndex;
589
+ var aDiff = aContexts.diff;
557
590
 
558
591
  // process the diff
559
592
  if (!aContexts.length) {
560
593
  // no context, destroy list items
561
594
  this.destroyListItems();
562
- } else if (!this._oContainerDomRef) {
595
+ } else if (!oControl.getItemsContainerDomRef()) {
563
596
  // no dom ref for compatibility reason start from scratch
564
597
  this.rebuildListItems(aContexts, oBindingInfo);
565
598
  } else if (!aDiff || !aItems.length && aDiff.length) {
566
599
  // new records need to be applied from scratch
567
600
  this.rebuildListItems(aContexts, oBindingInfo, oControl.shouldGrowingSuppressInvalidation());
568
- } else if (oBinding.isGrouped() || oControl.checkGrowingFromScratch()) {
601
+ } else {
602
+ // diff handling case for grouping and merging
603
+ var bFromScratch = false, vInsertIndex = true;
604
+ if (oBinding.isGrouped() || oControl.checkGrowingFromScratch()) {
569
605
 
570
- if (this._sGroupingPath != this._getGroupingPath(oBinding)) {
571
- // grouping is changed so we need to rebuild the list for the group headers
572
- bFromScratch = true;
573
- } else {
574
- // append items if possible
575
- for (var i = 0; i < aDiff.length; i++) {
576
- var oDiff = aDiff[i],
577
- oContext = aContexts[oDiff.index];
578
-
579
- if (oDiff.type == "delete" || oDiff.type == "replace") {
580
- // group header may need to be deleted as well
581
- bFromScratch = true;
582
- break;
583
- } else if (oDiff.index != this._iRenderedDataItems) {
584
- // this item is not appended
585
- bFromScratch = true;
586
- break;
587
- } else {
588
- this.addListItem(oContext, oBindingInfo, true);
589
- vInsertIndex = true;
606
+ if (sGroupingPath != this._sGroupingPath) {
607
+ // grouping is changed so we need to rebuild the list for the group headers
608
+ bFromScratch = true;
609
+ } else {
610
+ // append items if possible
611
+ for (var i = 0; i < aDiff.length; i++) {
612
+ var oDiff = aDiff[i],
613
+ oContext = aContexts[oDiff.index];
614
+
615
+ if (oDiff.type == "delete" || oDiff.type == "replace") {
616
+ // group header may need to be deleted as well
617
+ bFromScratch = true;
618
+ break;
619
+ } else if (oDiff.index != this._iRenderedDataItems) {
620
+ // this item is not appended
621
+ bFromScratch = true;
622
+ break;
623
+ } else {
624
+ // the item is appended
625
+ this.addListItem(oContext, oBindingInfo, true);
626
+ }
590
627
  }
591
628
  }
592
- }
593
-
594
- } else {
595
629
 
596
- if (this._sGroupingPath) {
597
- // if it was already grouped then we need to remove group headers first
598
- oControl.removeGroupHeaders(true);
599
- }
630
+ } else {
600
631
 
601
- vInsertIndex = -1;
602
- var iLastInsertIndex = -1;
603
- for (var i = 0; i < aDiff.length; i++) {
604
- var oDiff = aDiff[i],
605
- iDiffIndex = oDiff.index,
606
- oContext = aContexts[iDiffIndex];
607
-
608
- if (oDiff.type == "delete") {
609
- if (vInsertIndex != -1) {
610
- // this record is deleted while the chunk is getting build
611
- this.applyChunk(vInsertIndex);
612
- iLastInsertIndex = -1;
613
- vInsertIndex = -1;
614
- }
632
+ if (sGroupingPath && !this._sGroupingPath) {
633
+ // if it was already grouped then we need to remove group headers first
634
+ oControl.removeGroupHeaders(true);
635
+ }
615
636
 
616
- this.deleteListItem(iDiffIndex);
617
- } else if (oDiff.type == "insert") {
618
- if (vInsertIndex == -1) {
619
- // the subsequent of items needs to be inserted at this position
620
- vInsertIndex = iDiffIndex;
621
- } else if (iLastInsertIndex > -1 && iDiffIndex != iLastInsertIndex + 1) {
622
- // this item is not simply appended to the last one but has been inserted
623
- this.applyChunk(vInsertIndex);
624
- vInsertIndex = iDiffIndex;
637
+ vInsertIndex = -1;
638
+ var iLastInsertIndex = -1;
639
+ for (var i = 0; i < aDiff.length; i++) {
640
+ var oDiff = aDiff[i],
641
+ iDiffIndex = oDiff.index,
642
+ oContext = aContexts[iDiffIndex];
643
+
644
+ if (oDiff.type == "delete") {
645
+ if (vInsertIndex != -1) {
646
+ // this record is deleted while the chunk is getting build
647
+ this.applyChunk(vInsertIndex);
648
+ iLastInsertIndex = -1;
649
+ vInsertIndex = -1;
650
+ }
651
+
652
+ this.deleteListItem(iDiffIndex);
653
+ } else if (oDiff.type == "insert") {
654
+ if (vInsertIndex == -1) {
655
+ // the subsequent of items needs to be inserted at this position
656
+ vInsertIndex = iDiffIndex;
657
+ } else if (iLastInsertIndex > -1 && iDiffIndex != iLastInsertIndex + 1) {
658
+ // this item is not simply appended to the last one but has been inserted
659
+ this.applyChunk(vInsertIndex);
660
+ vInsertIndex = iDiffIndex;
661
+ }
662
+
663
+ this.insertListItem(oContext, oBindingInfo, iDiffIndex);
664
+ iLastInsertIndex = iDiffIndex;
625
665
  }
626
-
627
- this.insertListItem(oContext, oBindingInfo, iDiffIndex);
628
- iLastInsertIndex = iDiffIndex;
629
666
  }
630
667
  }
631
- }
632
668
 
633
- if (bFromScratch) {
634
- this.rebuildListItems(aContexts, oBindingInfo, true);
635
- } else if (this._oContainerDomRef && aDiff) {
636
- // set the binding context of items inserting/deleting entries shifts the index of all following items
637
- this.updateItemsBindingContext(aContexts, oBindingInfo.model);
638
- this.applyChunk(vInsertIndex);
669
+ if (bFromScratch) {
670
+ this.rebuildListItems(aContexts, oBindingInfo, true);
671
+ } else {
672
+ // set the binding context of items inserting/deleting entries shifts the index of all following items
673
+ this.updateItemsBindingContext(aContexts, oBindingInfo.model);
674
+ this.applyChunkAsync(vInsertIndex);
675
+ }
639
676
  }
640
677
 
641
- this._oContainerDomRef = null;
642
- this._sGroupingPath = this._getGroupingPath(oBinding);
643
-
644
678
  if (!this._bDataRequested) {
645
679
  this._onAfterPageLoaded(sChangeReason);
646
680
  }
@@ -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.100.0
25
+ * @version 1.102.1
26
26
  *
27
27
  * @constructor
28
28
  * @public
package/src/sap/m/HBox.js CHANGED
@@ -25,7 +25,7 @@ sap.ui.define(['./FlexBox', './library', './HBoxRenderer'],
25
25
  * @extends sap.m.FlexBox
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.100.0
28
+ * @version 1.102.1
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -125,7 +125,7 @@ sap.ui.define([
125
125
  * @since 1.44.0
126
126
  *
127
127
  * @author SAP SE
128
- * @version 1.100.0
128
+ * @version 1.102.1
129
129
  *
130
130
  * @public
131
131
  * @alias sap.m.HeaderContainer
@@ -350,23 +350,44 @@ sap.ui.define([
350
350
  this._handleMobileScrolling();
351
351
  }
352
352
  if (this._isMobileView()) {
353
- var aItems = this._filterVisibleItems();
354
- this.aItemSize = [];
355
- this.aItemScrollValue = [0];
356
- var fnGetItemSize = function (oItem) {
357
- return oItem.getDomRef().parentElement.offsetWidth
358
- + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginLeft)
359
- + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginRight);
360
- };
361
- for (var i = 0; i < aItems.length; i++) {
362
- this.aItemSize.push(fnGetItemSize(aItems[i]));
363
- this.aItemScrollValue.push(this.aItemScrollValue[i] ? this.aItemScrollValue[i] + this.aItemSize[i] : this.aItemSize[i]);
364
- }
353
+ this._oScrollCntr.attachBrowserEvent("scrollstart", function(oEvent){
354
+ var aItems = this._filterVisibleItems();
355
+ this.aItemSize = [];
356
+ this.aItemScrollValue = [0];
357
+ var fnGetItemSize = function (oItem) {
358
+ if (oItem.getDomRef() && oItem.getDomRef().parentElement) {
359
+ return oItem.getDomRef().parentElement.offsetWidth
360
+ + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginLeft)
361
+ + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginRight);
362
+ }
363
+ };
364
+ for (var i = 0; i < aItems.length; i++) {
365
+ this.aItemSize.push(fnGetItemSize(aItems[i]));
366
+ this.aItemScrollValue.push(this.aItemScrollValue[i] ? this.aItemScrollValue[i] + this.aItemSize[i] : this.aItemSize[i]);
367
+ }
368
+ this.triggerScrollStop = false;
369
+ }.bind(this));
365
370
  this._oScrollCntr.attachBrowserEvent("scrollstop", function(oEvent){
366
- if (!this.triggerScrollStop) {
367
- this.triggerScrollStop = true;
368
- var iScrollValue = 0, iScrollOffset = 15;
369
- var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
371
+ if (!this.triggerScrollStop) {
372
+ var aItems = this._filterVisibleItems();
373
+ this.triggerScrollStop = true;
374
+ var iScrollValue = 0, iScrollOffset = 15;
375
+
376
+ var iScrollContainerScrollLeft = this._oScrollCntr.getDomRef().scrollLeft;
377
+ var iScrollContainerWidth = iScrollContainerScrollLeft + this._oScrollCntr.getDomRef().clientWidth;
378
+
379
+ var oFinalItem = aItems[aItems.length - 1];
380
+
381
+ var iFinalElementScrollLeft = oFinalItem.getParent().getDomRef().offsetLeft;
382
+ var iFinalElementContainerWidth = iFinalElementScrollLeft + oFinalItem.getDomRef().clientWidth;
383
+
384
+ var bIsFinalItemVisible = ((iFinalElementContainerWidth <= iScrollContainerWidth) && (iFinalElementScrollLeft >= iScrollContainerScrollLeft));
385
+ var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
386
+
387
+ if (bIsFinalItemVisible) {
388
+ iScrollValue = this.aItemScrollValue[aItems.length - 1] - iScrollOffset - iCurrectScrollValue;
389
+ this.triggerScrollStop = false;
390
+ } else {
370
391
  var value = this.aItemScrollValue.reduce(function(a, b) {
371
392
  var aDiff = Math.abs(a - iCurrectScrollValue);
372
393
  var bDiff = Math.abs(b - iCurrectScrollValue);
@@ -382,11 +403,10 @@ sap.ui.define([
382
403
  } else {
383
404
  iScrollValue = value - iScrollOffset - iCurrectScrollValue;
384
405
  }
385
- this._scroll(iScrollValue, this.getScrollTime());
386
- } else {
387
- this.triggerScrollStop = false;
388
406
  }
389
- }.bind(this));
407
+ this._scroll(iScrollValue, this.getScrollTime());
408
+ }
409
+ }.bind(this));
390
410
  }
391
411
  }.bind(this)
392
412
  });
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @since 1.67.0
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.100.0
22
+ * @version 1.102.1
23
23
  *
24
24
  * @constructor
25
25
  * @alias sap.m.HeaderContainerItemNavigator
@@ -89,12 +89,12 @@ sap.ui.define([
89
89
  *<li>On desktop, tabs can be dragged and dropped (property <code>enableTabReordering</code>).</li>
90
90
  *<li>If you have a large number of tabs, only the tabs that can fit on screen will be visible. All other tabs that can't fit on the screen are available in an overflow tab "More".</li>
91
91
  *</ul>
92
- * When using the <code>sap.m.IconTabBar</code> in SAP Quartz themes, the breakpoints and layout paddings could be determined by the Icon Tab Bar's width. To enable this concept and add responsive paddings to an element of the Icon Tab Bar control, you have to add the following classes depending on your use case: <code>sapUiResponsivePadding--header</code>, <code>sapUiResponsivePadding--content</code>.
92
+ * When using the <code>sap.m.IconTabBar</code> in SAP Quartz and Horizon themes, the breakpoints and layout paddings could be determined by the Icon Tab Bar's width. To enable this concept and add responsive paddings to an element of the Icon Tab Bar control, you have to add the following classes depending on your use case: <code>sapUiResponsivePadding--header</code>, <code>sapUiResponsivePadding--content</code>.
93
93
  * @extends sap.ui.core.Control
94
94
  * @implements sap.m.ObjectHeaderContainer, sap.f.IDynamicPageStickyContent
95
95
  *
96
96
  * @author SAP SE
97
- * @version 1.100.0
97
+ * @version 1.102.1
98
98
  *
99
99
  * @public
100
100
  * @alias sap.m.IconTabBar
@@ -361,7 +361,7 @@ sap.ui.define([
361
361
 
362
362
  // toggle animation if control is already rendered
363
363
  if (this.$().length) {
364
- this._toggleExpandCollapse(bExpanded);
364
+ this._toggleExpandCollapse(this.getProperty("expanded"));
365
365
  }
366
366
  return this;
367
367
  };
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Control
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.100.0
41
+ * @version 1.102.1
42
42
  *
43
43
  * @constructor
44
44
  * @private
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @implements sap.m.IconTab
95
95
  *
96
96
  * @author SAP SE
97
- * @version 1.100.0
97
+ * @version 1.102.1
98
98
  *
99
99
  * @constructor
100
100
  * @public
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @extends sap.ui.core.Control
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.100.0
34
+ * @version 1.102.1
35
35
  *
36
36
  * @constructor
37
37
  * @private
@@ -77,7 +77,7 @@ sap.ui.define([
77
77
  * @extends sap.ui.core.Control
78
78
  *
79
79
  * @author SAP SE
80
- * @version 1.100.0
80
+ * @version 1.102.1
81
81
  *
82
82
  * @constructor
83
83
  * @public
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @implements sap.m.IconTab
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.100.0
39
+ * @version 1.102.1
40
40
  *
41
41
  * @constructor
42
42
  * @public
@@ -82,7 +82,7 @@ sap.ui.define([
82
82
  * @extends sap.ui.core.Control
83
83
  *
84
84
  * @author SAP SE
85
- * @version 1.100.0
85
+ * @version 1.102.1
86
86
  *
87
87
  * @constructor
88
88
  * @public
@@ -616,6 +616,24 @@ sap.ui.define([
616
616
  };
617
617
  };
618
618
 
619
+ /**
620
+ * @see sap.ui.core.Control#getAccessibilityInfo
621
+ * @returns {object} Accessibility information for <code>sap.m.IllustratedMessage</code> control
622
+ * @since 1.101
623
+ * @protected
624
+ */
625
+ IllustratedMessage.prototype.getAccessibilityInfo = function () {
626
+ var sTitle = this._getTitle().getText(),
627
+ sDescription = this._getDescription().getText(),
628
+ aAdditionalContent = this.getAdditionalContent();
629
+ return {
630
+ type: this._getResourceBundle().getText("ACC_CTR_ILLUSTRATED_MESSAGE"),
631
+ description: sTitle + ". " + sDescription,
632
+ focusable: !!aAdditionalContent.length,
633
+ children: aAdditionalContent
634
+ };
635
+ };
636
+
619
637
 
620
638
  return IllustratedMessage;
621
639
 
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.100.0
35
+ * @version 1.102.1
36
36
  *
37
37
  * @constructor
38
38
  * @public
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @implements sap.ui.core.IFormContent
58
58
  *
59
59
  * @author SAP SE
60
- * @version 1.100.0
60
+ * @version 1.102.1
61
61
  *
62
62
  * @public
63
63
  * @alias sap.m.Image
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.core.Control
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.100.0
36
+ * @version 1.102.1
37
37
  * @since 1.38
38
38
  *
39
39
  * @public
@@ -7,13 +7,10 @@
7
7
  // Provides control sap.m.Input.
8
8
  sap.ui.define([
9
9
  './InputBase',
10
- './Popover',
11
10
  'sap/ui/core/Item',
12
11
  './ColumnListItem',
13
12
  './GroupHeaderListItem',
14
- './StandardListItem',
15
13
  'sap/ui/core/SeparatorItem',
16
- './List',
17
14
  './Table',
18
15
  './library',
19
16
  'sap/ui/core/IconPool',
@@ -42,13 +39,10 @@ sap.ui.define([
42
39
  ],
43
40
  function(
44
41
  InputBase,
45
- Popover,
46
42
  Item,
47
43
  ColumnListItem,
48
44
  GroupHeaderListItem,
49
- StandardListItem,
50
45
  SeparatorItem,
51
- List,
52
46
  Table,
53
47
  library,
54
48
  IconPool,
@@ -156,7 +150,7 @@ function(
156
150
  *
157
151
  * @extends sap.m.InputBase
158
152
  * @author SAP SE
159
- * @version 1.100.0
153
+ * @version 1.102.1
160
154
  *
161
155
  * @constructor
162
156
  * @public
@@ -2866,7 +2860,7 @@ function(
2866
2860
  Input.prototype._createSuggestionsPopoverPopup = function () {
2867
2861
  var oSuggPopover = this._getSuggestionsPopover();
2868
2862
  var oPopover;
2869
- oSuggPopover.createSuggestionPopup(this, { showSelectedButton: this._hasShowSelectedButton() });
2863
+ oSuggPopover.createSuggestionPopup(this, { showSelectedButton: this._hasShowSelectedButton() }, Input);
2870
2864
  this._decoratePopupInput(oSuggPopover.getInput());
2871
2865
 
2872
2866
  oPopover = oSuggPopover.getPopover();
@@ -2913,8 +2907,8 @@ function(
2913
2907
  "showClearIcon",
2914
2908
  "effectiveShowClearIcon"
2915
2909
  ].forEach(function(sPropName) {
2916
- oSuggestionsInput.setProperty(sPropName, this.getProperty(sPropName));
2917
- }, this);
2910
+ oSuggestionsInput.setProperty(sPropName, this.getProperty(sPropName));
2911
+ }, this);
2918
2912
  }, this);
2919
2913
  } else {
2920
2914
  oPopover