@openui5/sap.m 1.101.0 → 1.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) 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 +4 -4
  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 +12 -22
  12. package/src/sap/m/BarInPageEnabler.js +1 -1
  13. package/src/sap/m/Breadcrumbs.js +29 -4
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +4 -4
  17. package/src/sap/m/Carousel.js +1 -1
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +1 -1
  20. package/src/sap/m/ColorPalette.js +13 -1
  21. package/src/sap/m/ColorPalettePopover.js +1 -1
  22. package/src/sap/m/Column.js +10 -1
  23. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  24. package/src/sap/m/ColumnListItem.js +1 -1
  25. package/src/sap/m/ColumnListItemRenderer.js +6 -2
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +22 -2
  32. package/src/sap/m/ComboBoxBase.js +7 -7
  33. package/src/sap/m/ComboBoxTextField.js +1 -1
  34. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  35. package/src/sap/m/CustomListItem.js +1 -1
  36. package/src/sap/m/CustomTile.js +1 -1
  37. package/src/sap/m/CustomTreeItem.js +1 -1
  38. package/src/sap/m/DatePicker.js +25 -7
  39. package/src/sap/m/DateRangeSelection.js +5 -5
  40. package/src/sap/m/DateTimeField.js +22 -10
  41. package/src/sap/m/DateTimeInput.js +1 -1
  42. package/src/sap/m/DateTimePicker.js +22 -10
  43. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  44. package/src/sap/m/Dialog.js +4 -11
  45. package/src/sap/m/DialogRenderer.js +1 -1
  46. package/src/sap/m/DisplayListItem.js +1 -1
  47. package/src/sap/m/DraftIndicator.js +1 -1
  48. package/src/sap/m/DynamicDate.js +1 -1
  49. package/src/sap/m/DynamicDateFormat.js +72 -18
  50. package/src/sap/m/DynamicDateOption.js +1 -1
  51. package/src/sap/m/DynamicDateRange.js +105 -26
  52. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  53. package/src/sap/m/ExpandableText.js +1 -1
  54. package/src/sap/m/FacetFilter.js +36 -28
  55. package/src/sap/m/FacetFilterItem.js +1 -1
  56. package/src/sap/m/FacetFilterList.js +1 -1
  57. package/src/sap/m/FeedContent.js +1 -1
  58. package/src/sap/m/FeedInput.js +1 -1
  59. package/src/sap/m/FeedListItem.js +1 -1
  60. package/src/sap/m/FeedListItemAction.js +1 -1
  61. package/src/sap/m/Fiori20Adapter.js +2 -2
  62. package/src/sap/m/FlexBox.js +1 -1
  63. package/src/sap/m/FlexItemData.js +2 -2
  64. package/src/sap/m/FormattedText.js +10 -10
  65. package/src/sap/m/GenericTag.js +5 -5
  66. package/src/sap/m/GenericTile.js +98 -16
  67. package/src/sap/m/GenericTileLineModeRenderer.js +3 -1
  68. package/src/sap/m/GenericTileRenderer.js +98 -62
  69. package/src/sap/m/GroupHeaderListItem.js +1 -1
  70. package/src/sap/m/GrowingEnablement.js +171 -95
  71. package/src/sap/m/GrowingList.js +1 -1
  72. package/src/sap/m/HBox.js +1 -1
  73. package/src/sap/m/HeaderContainer.js +50 -65
  74. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  75. package/src/sap/m/IconTabBar.js +3 -2
  76. package/src/sap/m/IconTabBarSelectList.js +1 -1
  77. package/src/sap/m/IconTabFilter.js +4 -4
  78. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  79. package/src/sap/m/IconTabHeader.js +8 -2
  80. package/src/sap/m/IconTabSeparator.js +1 -1
  81. package/src/sap/m/IllustratedMessage.js +1 -1
  82. package/src/sap/m/Illustration.js +1 -1
  83. package/src/sap/m/Image.js +1 -1
  84. package/src/sap/m/ImageContent.js +1 -1
  85. package/src/sap/m/Input.js +2 -14
  86. package/src/sap/m/InputBase.js +16 -9
  87. package/src/sap/m/InputListItem.js +1 -1
  88. package/src/sap/m/InstanceManager.js +14 -19
  89. package/src/sap/m/Label.js +1 -1
  90. package/src/sap/m/LightBox.js +1 -1
  91. package/src/sap/m/LightBoxItem.js +1 -1
  92. package/src/sap/m/Link.js +1 -1
  93. package/src/sap/m/List.js +1 -1
  94. package/src/sap/m/ListBase.js +17 -16
  95. package/src/sap/m/ListItemBase.js +5 -4
  96. package/src/sap/m/MaskEnabler.js +1 -1
  97. package/src/sap/m/MaskInput.js +1 -1
  98. package/src/sap/m/MaskInputRenderer.js +10 -0
  99. package/src/sap/m/MaskInputRule.js +1 -1
  100. package/src/sap/m/Menu.js +1 -1
  101. package/src/sap/m/MenuButton.js +2 -1
  102. package/src/sap/m/MenuItem.js +1 -1
  103. package/src/sap/m/MenuListItem.js +3 -3
  104. package/src/sap/m/MessageBox.js +1020 -908
  105. package/src/sap/m/MessageItem.js +1 -1
  106. package/src/sap/m/MessageListItem.js +1 -1
  107. package/src/sap/m/MessagePage.js +1 -1
  108. package/src/sap/m/MessagePopover.js +1 -1
  109. package/src/sap/m/MessagePopoverItem.js +1 -1
  110. package/src/sap/m/MessageStrip.js +1 -1
  111. package/src/sap/m/MessageToast.js +1 -1
  112. package/src/sap/m/MessageView.js +1 -1
  113. package/src/sap/m/MultiComboBox.js +4 -4
  114. package/src/sap/m/MultiEditField.js +1 -1
  115. package/src/sap/m/MultiInput.js +15 -10
  116. package/src/sap/m/NavContainer.js +4 -4
  117. package/src/sap/m/NewsContent.js +1 -1
  118. package/src/sap/m/NotificationList.js +1 -1
  119. package/src/sap/m/NotificationListBase.js +175 -79
  120. package/src/sap/m/NotificationListGroup.js +1 -2
  121. package/src/sap/m/NotificationListGroupRenderer.js +4 -16
  122. package/src/sap/m/NotificationListItem.js +5 -16
  123. package/src/sap/m/NotificationListItemRenderer.js +0 -1
  124. package/src/sap/m/NumericContent.js +1 -1
  125. package/src/sap/m/NumericInput.js +1 -1
  126. package/src/sap/m/ObjectAttribute.js +14 -1
  127. package/src/sap/m/ObjectAttributeRenderer.js +5 -4
  128. package/src/sap/m/ObjectHeader.js +4 -4
  129. package/src/sap/m/ObjectHeaderRenderer.js +11 -11
  130. package/src/sap/m/ObjectIdentifier.js +3 -3
  131. package/src/sap/m/ObjectListItem.js +1 -1
  132. package/src/sap/m/ObjectMarker.js +7 -4
  133. package/src/sap/m/ObjectNumber.js +1 -1
  134. package/src/sap/m/ObjectStatus.js +1 -1
  135. package/src/sap/m/OverflowToolbar.js +51 -12
  136. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  137. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +5 -0
  138. package/src/sap/m/OverflowToolbarButton.js +1 -1
  139. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  140. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  141. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  142. package/src/sap/m/P13nColumnsItem.js +1 -1
  143. package/src/sap/m/P13nColumnsPanel.js +1 -1
  144. package/src/sap/m/P13nConditionPanel.js +32 -35
  145. package/src/sap/m/P13nDialog.js +3 -1
  146. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  147. package/src/sap/m/P13nDimMeasurePanel.js +1 -1
  148. package/src/sap/m/P13nFilterItem.js +1 -1
  149. package/src/sap/m/P13nFilterPanel.js +1 -1
  150. package/src/sap/m/P13nGroupItem.js +1 -1
  151. package/src/sap/m/P13nGroupPanel.js +1 -1
  152. package/src/sap/m/P13nItem.js +1 -1
  153. package/src/sap/m/P13nPanel.js +1 -1
  154. package/src/sap/m/P13nSelectionItem.js +1 -1
  155. package/src/sap/m/P13nSelectionPanel.js +1 -1
  156. package/src/sap/m/P13nSortItem.js +1 -1
  157. package/src/sap/m/P13nSortPanel.js +1 -1
  158. package/src/sap/m/PDFViewer.js +1 -1
  159. package/src/sap/m/Page.js +4 -4
  160. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  161. package/src/sap/m/PagingButton.js +1 -1
  162. package/src/sap/m/Panel.js +1 -1
  163. package/src/sap/m/PlanningCalendar.js +1 -1
  164. package/src/sap/m/PlanningCalendarHeader.js +2 -2
  165. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  166. package/src/sap/m/PlanningCalendarRow.js +1 -1
  167. package/src/sap/m/PlanningCalendarView.js +1 -1
  168. package/src/sap/m/Popover.js +3 -3
  169. package/src/sap/m/PopoverRenderer.js +2 -2
  170. package/src/sap/m/ProgressIndicator.js +15 -29
  171. package/src/sap/m/ProgressIndicatorRenderer.js +7 -1
  172. package/src/sap/m/PullToRefresh.js +1 -1
  173. package/src/sap/m/QuickView.js +2 -2
  174. package/src/sap/m/QuickViewBase.js +1 -1
  175. package/src/sap/m/QuickViewCard.js +1 -1
  176. package/src/sap/m/QuickViewGroup.js +1 -1
  177. package/src/sap/m/QuickViewGroupElement.js +2 -1
  178. package/src/sap/m/QuickViewPage.js +1 -1
  179. package/src/sap/m/RadioButton.js +2 -2
  180. package/src/sap/m/RadioButtonGroup.js +2 -2
  181. package/src/sap/m/RangeSlider.js +82 -59
  182. package/src/sap/m/RangeSliderRenderer.js +34 -2
  183. package/src/sap/m/RatingIndicator.js +1 -1
  184. package/src/sap/m/ResponsivePopover.js +7 -6
  185. package/src/sap/m/ResponsiveScale.js +1 -1
  186. package/src/sap/m/ScrollBar.js +1 -1
  187. package/src/sap/m/ScrollContainer.js +1 -1
  188. package/src/sap/m/SearchField.js +1 -1
  189. package/src/sap/m/SegmentedButton.js +5 -3
  190. package/src/sap/m/SegmentedButtonItem.js +1 -1
  191. package/src/sap/m/Select.js +31 -8
  192. package/src/sap/m/SelectDialog.js +14 -18
  193. package/src/sap/m/SelectDialogBase.js +1 -1
  194. package/src/sap/m/SelectList.js +8 -8
  195. package/src/sap/m/SelectListRenderer.js +2 -2
  196. package/src/sap/m/SelectRenderer.js +37 -13
  197. package/src/sap/m/SelectionDetails.js +1 -1
  198. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  199. package/src/sap/m/SelectionDetailsItem.js +1 -1
  200. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  201. package/src/sap/m/Shell.js +1 -1
  202. package/src/sap/m/SimpleFixFlex.js +5 -6
  203. package/src/sap/m/SimpleFixFlexRenderer.js +1 -0
  204. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  205. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  206. package/src/sap/m/SinglePlanningCalendarGrid.js +5 -5
  207. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  208. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  209. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  210. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  211. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  212. package/src/sap/m/SlideTile.js +1 -1
  213. package/src/sap/m/Slider.js +14 -5
  214. package/src/sap/m/SliderRenderer.js +27 -2
  215. package/src/sap/m/SliderTooltip.js +1 -1
  216. package/src/sap/m/SliderTooltipBase.js +1 -1
  217. package/src/sap/m/SliderTooltipContainer.js +3 -3
  218. package/src/sap/m/SplitApp.js +1 -1
  219. package/src/sap/m/SplitButton.js +1 -1
  220. package/src/sap/m/SplitContainer.js +3 -11
  221. package/src/sap/m/StandardDynamicDateOption.js +12 -10
  222. package/src/sap/m/StandardListItem.js +3 -3
  223. package/src/sap/m/StandardListItemRenderer.js +1 -1
  224. package/src/sap/m/StandardTile.js +1 -1
  225. package/src/sap/m/StandardTreeItem.js +1 -1
  226. package/src/sap/m/StepInput.js +1 -1
  227. package/src/sap/m/SuggestionItem.js +1 -1
  228. package/src/sap/m/SuggestionsPopover.js +1 -1
  229. package/src/sap/m/Switch.js +1 -1
  230. package/src/sap/m/TabContainer.js +3 -2
  231. package/src/sap/m/TabContainerItem.js +1 -1
  232. package/src/sap/m/TabStrip.js +6 -4
  233. package/src/sap/m/TabStripItem.js +1 -1
  234. package/src/sap/m/Table.js +7 -1
  235. package/src/sap/m/TablePersoController.js +2 -2
  236. package/src/sap/m/TablePersoDialog.js +2 -2
  237. package/src/sap/m/TablePersoProvider.js +2 -2
  238. package/src/sap/m/TableRenderer.js +27 -0
  239. package/src/sap/m/TableSelectDialog.js +13 -9
  240. package/src/sap/m/Text.js +2 -2
  241. package/src/sap/m/TextArea.js +4 -3
  242. package/src/sap/m/TextRenderer.js +2 -0
  243. package/src/sap/m/Tile.js +1 -1
  244. package/src/sap/m/TileContainer.js +6 -6
  245. package/src/sap/m/TileContent.js +26 -14
  246. package/src/sap/m/TileContentRenderer.js +16 -7
  247. package/src/sap/m/TimePicker.js +82 -20
  248. package/src/sap/m/TimePickerClock.js +1 -1
  249. package/src/sap/m/TimePickerClocks.js +1 -1
  250. package/src/sap/m/TimePickerClocksRenderer.js +1 -0
  251. package/src/sap/m/TimePickerInputs.js +1 -1
  252. package/src/sap/m/TimePickerInternals.js +1 -1
  253. package/src/sap/m/TimePickerSlider.js +1 -1
  254. package/src/sap/m/TimePickerSliders.js +1 -1
  255. package/src/sap/m/Title.js +2 -2
  256. package/src/sap/m/TitlePropagationSupport.js +1 -1
  257. package/src/sap/m/ToggleButton.js +1 -1
  258. package/src/sap/m/Token.js +1 -1
  259. package/src/sap/m/Tokenizer.js +14 -3
  260. package/src/sap/m/Toolbar.js +7 -1
  261. package/src/sap/m/ToolbarLayoutData.js +6 -2
  262. package/src/sap/m/ToolbarSeparator.js +1 -1
  263. package/src/sap/m/ToolbarSpacer.js +1 -1
  264. package/src/sap/m/Tree.js +1 -1
  265. package/src/sap/m/TreeItemBase.js +1 -1
  266. package/src/sap/m/UploadCollection.js +5 -5
  267. package/src/sap/m/UploadCollectionItem.js +2 -1
  268. package/src/sap/m/UploadCollectionParameter.js +2 -1
  269. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +2 -1
  270. package/src/sap/m/VBox.js +1 -1
  271. package/src/sap/m/ValueStateHeader.js +1 -1
  272. package/src/sap/m/VariantManagement.js +2492 -0
  273. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  274. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  275. package/src/sap/m/ViewSettingsDialog.js +4 -4
  276. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  277. package/src/sap/m/ViewSettingsItem.js +1 -1
  278. package/src/sap/m/VisibleItem.js +1 -1
  279. package/src/sap/m/WheelSlider.js +1 -1
  280. package/src/sap/m/WheelSliderContainer.js +1 -1
  281. package/src/sap/m/Wizard.js +1 -1
  282. package/src/sap/m/WizardProgressNavigator.js +1 -2
  283. package/src/sap/m/WizardStep.js +1 -1
  284. package/src/sap/m/changeHandler/AddTableColumn.js +3 -5
  285. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  286. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  287. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  288. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  289. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  290. package/src/sap/m/designtime/VariantManagement.designtime.js +56 -0
  291. package/src/sap/m/designtime/messagebundle_de.properties +2 -2
  292. package/src/sap/m/inputUtils/forwardItemProperties.js +4 -0
  293. package/src/sap/m/inputUtils/highlightDOMElements.js +3 -2
  294. package/src/sap/m/library.js +48 -5
  295. package/src/sap/m/messagebundle.properties +156 -12
  296. package/src/sap/m/messagebundle_ar.properties +103 -7
  297. package/src/sap/m/messagebundle_bg.properties +103 -7
  298. package/src/sap/m/messagebundle_ca.properties +103 -7
  299. package/src/sap/m/messagebundle_cs.properties +105 -9
  300. package/src/sap/m/messagebundle_cy.properties +103 -7
  301. package/src/sap/m/messagebundle_da.properties +103 -7
  302. package/src/sap/m/messagebundle_de.properties +104 -8
  303. package/src/sap/m/messagebundle_el.properties +103 -7
  304. package/src/sap/m/messagebundle_en.properties +103 -7
  305. package/src/sap/m/messagebundle_en_GB.properties +103 -7
  306. package/src/sap/m/messagebundle_en_US_sappsd.properties +103 -7
  307. package/src/sap/m/messagebundle_en_US_saprigi.properties +105 -7
  308. package/src/sap/m/messagebundle_en_US_saptrc.properties +103 -7
  309. package/src/sap/m/messagebundle_es.properties +103 -7
  310. package/src/sap/m/messagebundle_es_MX.properties +103 -7
  311. package/src/sap/m/messagebundle_et.properties +103 -7
  312. package/src/sap/m/messagebundle_fi.properties +103 -7
  313. package/src/sap/m/messagebundle_fr.properties +117 -21
  314. package/src/sap/m/messagebundle_fr_CA.properties +103 -7
  315. package/src/sap/m/messagebundle_hi.properties +103 -7
  316. package/src/sap/m/messagebundle_hr.properties +103 -7
  317. package/src/sap/m/messagebundle_hu.properties +103 -7
  318. package/src/sap/m/messagebundle_id.properties +103 -7
  319. package/src/sap/m/messagebundle_it.properties +110 -14
  320. package/src/sap/m/messagebundle_iw.properties +103 -7
  321. package/src/sap/m/messagebundle_ja.properties +103 -7
  322. package/src/sap/m/messagebundle_kk.properties +103 -7
  323. package/src/sap/m/messagebundle_ko.properties +114 -18
  324. package/src/sap/m/messagebundle_lt.properties +103 -7
  325. package/src/sap/m/messagebundle_lv.properties +103 -7
  326. package/src/sap/m/messagebundle_ms.properties +103 -7
  327. package/src/sap/m/messagebundle_nl.properties +103 -7
  328. package/src/sap/m/messagebundle_no.properties +107 -11
  329. package/src/sap/m/messagebundle_pl.properties +103 -7
  330. package/src/sap/m/messagebundle_pt.properties +112 -16
  331. package/src/sap/m/messagebundle_pt_PT.properties +103 -7
  332. package/src/sap/m/messagebundle_ro.properties +104 -8
  333. package/src/sap/m/messagebundle_ru.properties +103 -7
  334. package/src/sap/m/messagebundle_sh.properties +104 -8
  335. package/src/sap/m/messagebundle_sk.properties +103 -7
  336. package/src/sap/m/messagebundle_sl.properties +105 -9
  337. package/src/sap/m/messagebundle_sv.properties +103 -7
  338. package/src/sap/m/messagebundle_th.properties +103 -7
  339. package/src/sap/m/messagebundle_tr.properties +104 -8
  340. package/src/sap/m/messagebundle_uk.properties +104 -8
  341. package/src/sap/m/messagebundle_vi.properties +103 -7
  342. package/src/sap/m/messagebundle_zh_CN.properties +104 -8
  343. package/src/sap/m/messagebundle_zh_TW.properties +107 -11
  344. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  345. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  346. package/src/sap/m/p13n/BasePanel.js +1 -1
  347. package/src/sap/m/p13n/Container.js +1 -1
  348. package/src/sap/m/p13n/GroupPanel.js +16 -5
  349. package/src/sap/m/p13n/Popup.js +1 -1
  350. package/src/sap/m/p13n/QueryPanel.js +55 -33
  351. package/src/sap/m/p13n/SelectionPanel.js +31 -6
  352. package/src/sap/m/p13n/SortPanel.js +24 -13
  353. package/src/sap/m/plugins/ColumnResizer.js +12 -6
  354. package/src/sap/m/plugins/DataStateIndicator.js +13 -4
  355. package/src/sap/m/plugins/PasteProvider.js +1 -1
  356. package/src/sap/m/plugins/PluginBase.js +2 -2
  357. package/src/sap/m/rules/CheckBox.support.js +1 -1
  358. package/src/sap/m/rules/DatePicker.support.js +4 -3
  359. package/src/sap/m/rules/Image.support.js +1 -1
  360. package/src/sap/m/rules/Link.support.js +1 -1
  361. package/src/sap/m/rules/MessagePage.support.js +1 -1
  362. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  363. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  364. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  365. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  366. package/src/sap/m/rules/Select.support.js +1 -1
  367. package/src/sap/m/rules/Table.support.js +3 -3
  368. package/src/sap/m/semantic/AddAction.js +1 -1
  369. package/src/sap/m/semantic/CancelAction.js +1 -1
  370. package/src/sap/m/semantic/DeleteAction.js +1 -1
  371. package/src/sap/m/semantic/DetailPage.js +1 -1
  372. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  373. package/src/sap/m/semantic/EditAction.js +1 -1
  374. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  375. package/src/sap/m/semantic/FilterAction.js +1 -1
  376. package/src/sap/m/semantic/FilterSelect.js +1 -1
  377. package/src/sap/m/semantic/FlagAction.js +1 -1
  378. package/src/sap/m/semantic/ForwardAction.js +1 -1
  379. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  380. package/src/sap/m/semantic/GroupAction.js +1 -1
  381. package/src/sap/m/semantic/GroupSelect.js +1 -1
  382. package/src/sap/m/semantic/MainAction.js +1 -1
  383. package/src/sap/m/semantic/MasterPage.js +1 -1
  384. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  385. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  386. package/src/sap/m/semantic/NegativeAction.js +1 -1
  387. package/src/sap/m/semantic/OpenInAction.js +1 -1
  388. package/src/sap/m/semantic/PositiveAction.js +1 -1
  389. package/src/sap/m/semantic/PrintAction.js +1 -1
  390. package/src/sap/m/semantic/SaveAction.js +1 -1
  391. package/src/sap/m/semantic/Segment.js +1 -1
  392. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  393. package/src/sap/m/semantic/SemanticButton.js +1 -1
  394. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  395. package/src/sap/m/semantic/SemanticControl.js +1 -1
  396. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +3 -3
  397. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +3 -3
  398. package/src/sap/m/semantic/SemanticPage.js +1 -1
  399. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  400. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  401. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  402. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  403. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  404. package/src/sap/m/semantic/ShareMenu.js +1 -1
  405. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  406. package/src/sap/m/semantic/SortAction.js +1 -1
  407. package/src/sap/m/semantic/SortSelect.js +1 -1
  408. package/src/sap/m/table/Util.js +17 -13
  409. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  410. package/src/sap/m/table/columnmenu/Entry.js +1 -11
  411. package/src/sap/m/table/columnmenu/Item.js +1 -1
  412. package/src/sap/m/table/columnmenu/ItemBase.js +11 -1
  413. package/src/sap/m/table/columnmenu/Menu.js +41 -27
  414. package/src/sap/m/table/columnmenu/MenuRenderer.js +4 -3
  415. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  416. package/src/sap/m/table/columnmenu/QuickActionBase.js +11 -1
  417. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -5
  418. package/src/sap/m/table/columnmenu/QuickGroup.js +2 -11
  419. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -13
  420. package/src/sap/m/table/columnmenu/QuickSort.js +2 -1
  421. package/src/sap/m/table/columnmenu/QuickSortItem.js +1 -1
  422. package/src/sap/m/table/columnmenu/QuickTotal.js +2 -22
  423. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -13
  424. package/src/sap/m/themes/base/ActionListItem.less +2 -2
  425. package/src/sap/m/themes/base/Breadcrumbs.less +11 -0
  426. package/src/sap/m/themes/base/Button.less +1 -6
  427. package/src/sap/m/themes/base/Carousel.less +72 -87
  428. package/src/sap/m/themes/base/CheckBox.less +1 -0
  429. package/src/sap/m/themes/base/ColumnListItem.less +0 -3
  430. package/src/sap/m/themes/base/Dialog.less +6 -2
  431. package/src/sap/m/themes/base/GenericTag.less +5 -3
  432. package/src/sap/m/themes/base/GenericTile.less +412 -148
  433. package/src/sap/m/themes/base/IconTabBarSelectList.less +5 -4
  434. package/src/sap/m/themes/base/InputBase.less +2 -1
  435. package/src/sap/m/themes/base/LightBox.less +6 -16
  436. package/src/sap/m/themes/base/ListItemBase.less +1 -12
  437. package/src/sap/m/themes/base/MenuButton.less +16 -0
  438. package/src/sap/m/themes/base/MessageBox.less +9 -8
  439. package/src/sap/m/themes/base/NewsContent.less +0 -9
  440. package/src/sap/m/themes/base/NotificationListBase.less +9 -14
  441. package/src/sap/m/themes/base/NotificationListGroup.less +30 -44
  442. package/src/sap/m/themes/base/NotificationListItem.less +14 -18
  443. package/src/sap/m/themes/base/ObjectListItem.less +3 -0
  444. package/src/sap/m/themes/base/ObjectNumber.less +5 -0
  445. package/src/sap/m/themes/base/ObjectStatus.less +3 -0
  446. package/src/sap/m/themes/base/Panel.less +1 -1
  447. package/src/sap/m/themes/base/Popover.less +1 -1
  448. package/src/sap/m/themes/base/ProgressIndicator.less +0 -4
  449. package/src/sap/m/themes/base/QuickView.less +14 -2
  450. package/src/sap/m/themes/base/RatingIndicator.less +4 -0
  451. package/src/sap/m/themes/base/Select.less +1 -3
  452. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +3 -29
  453. package/src/sap/m/themes/base/SlideTile.less +19 -0
  454. package/src/sap/m/themes/base/Slider.less +18 -18
  455. package/src/sap/m/themes/base/StandardListItem.less +6 -9
  456. package/src/sap/m/themes/base/Table.less +22 -21
  457. package/src/sap/m/themes/base/TextArea.less +5 -0
  458. package/src/sap/m/themes/base/TimePickerClock.less +7 -0
  459. package/src/sap/m/themes/base/Title.less +1 -1
  460. package/src/sap/m/themes/base/Token.less +3 -2
  461. package/src/sap/m/themes/base/Toolbar.less +1 -1
  462. package/src/sap/m/themes/base/UploadCollection.less +2 -0
  463. package/src/sap/m/themes/base/VariantManagement.less +97 -0
  464. package/src/sap/m/themes/base/Wizard.less +5 -4
  465. package/src/sap/m/themes/base/WizardProgressNavigator.less +8 -0
  466. package/src/sap/m/themes/base/library.source.less +1 -0
  467. package/src/sap/m/themes/sap_hcb/Carousel.less +3 -7
  468. package/src/sap/m/themes/sap_hcb/Panel.less +4 -0
  469. package/src/sap/m/themes/sap_hcb/Slider.less +11 -0
  470. package/src/sap/m/themes/sap_hcb/Tokenizer.less +1 -0
  471. package/src/sap/m/upload/UploadSet.js +90 -14
  472. package/src/sap/m/upload/UploadSetItem.js +18 -5
  473. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +46 -0
@@ -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
 
@@ -65,13 +67,12 @@ sap.ui.define([
65
67
  this._sGroupingPath = "";
66
68
  this._bDataRequested = false;
67
69
  this._bSkippedItemsUpdateUntilDataReceived = false;
68
- this._oContainerDomRef = null;
69
70
  this._iLastItemsCount = 0;
70
71
  this._iTriggerTimer = 0;
71
72
  this._aChunk = [];
72
73
  this._oRM = null;
73
74
 
74
- if (UriParameters.fromQuery(window.location.href).get("sap-ui-xx-enableItemsPool") === "true") {
75
+ if (document.location.href.search("sap-ui-xx-enableItemsPool") > 0) {
75
76
  this._aItemsPool = [];
76
77
  }
77
78
  },
@@ -100,7 +101,6 @@ sap.ui.define([
100
101
  this._oControl.$("triggerList").remove();
101
102
  this._oControl.bUseExtendedChangeDetection = false;
102
103
  this._oControl.removeDelegate(this);
103
- this._oContainerDomRef = null;
104
104
  this._oControl = null;
105
105
  },
106
106
 
@@ -132,6 +132,31 @@ sap.ui.define([
132
132
  }
133
133
  },
134
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
+
135
160
  setTriggerText : function(sText) {
136
161
  this._oControl.$("triggerText").text(sText);
137
162
  },
@@ -210,6 +235,10 @@ sap.ui.define([
210
235
 
211
236
  // called after new page loaded
212
237
  _onAfterPageLoaded : function(sChangeReason) {
238
+ if (!this._oControl) {
239
+ return;
240
+ }
241
+
213
242
  this._bLoading = false;
214
243
  this._updateTriggerDelayed(false);
215
244
  this._oControl.onAfterPageLoaded(this.getInfo(), sChangeReason);
@@ -225,7 +254,7 @@ sap.ui.define([
225
254
  var sTriggerID = this._oControl.getId() + "-trigger",
226
255
  sTriggerText = this._oControl.getGrowingTriggerText();
227
256
 
228
- sTriggerText = sTriggerText || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA");
257
+ sTriggerText = sTriggerText || Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA");
229
258
  this._oControl.addNavSection(sTriggerID);
230
259
 
231
260
  if (this._oTrigger) {
@@ -244,6 +273,7 @@ sap.ui.define([
244
273
  '<span class="sapMSLITitle" id="' + sTriggerID + 'Text">' + encodeXML(sTriggerText) + '</span>' +
245
274
  '</div>' +
246
275
  '<div class="sapMGrowingListDescription sapMSLIDescription" id="' + sTriggerID + 'Info"></div>' +
276
+ '<div class="sapUiInvisibleText" id="' + sTriggerID + 'Message"></div>' +
247
277
  '</div>'
248
278
  })
249
279
  }).setParent(this._oControl, null, true).attachPress(this.requestNewPage, this).addDelegate({
@@ -263,7 +293,8 @@ sap.ui.define([
263
293
  $oTrigger.attr({
264
294
  "tabindex": 0,
265
295
  "role": "button",
266
- "aria-labelledby": sTriggerID + "Text" + " " + sTriggerID + "Info"
296
+ "aria-labelledby": sTriggerID + "Text",
297
+ "aria-describedby": sTriggerID + "Message"
267
298
  });
268
299
  }
269
300
  }, this);
@@ -278,7 +309,14 @@ sap.ui.define([
278
309
 
279
310
  // returns the growing information to be shown at the growing button
280
311
  _getListItemInfo : function() {
281
- return ("[ " + this._iRenderedDataItems + " / " + NumberFormat.getFloatInstance().format(this._oControl.getMaxItemsCount()) + " ]");
312
+ var aCounts = this._getItemCounts();
313
+ var oFormat = NumberFormat.getFloatInstance();
314
+ return "[ " + oFormat.format(aCounts[0]) + " / " + oFormat.format(aCounts[1]) + " ]";
315
+ },
316
+
317
+ // returns the item counts for the growing information (current vs. total)
318
+ _getItemCounts : function() {
319
+ return [this._iRenderedDataItems, this._oControl.getMaxItemsCount()];
282
320
  },
283
321
 
284
322
  // returns the first sorters grouping path when available
@@ -417,11 +455,29 @@ sap.ui.define([
417
455
 
418
456
  // render all the collected items in the chunk and flush them into the DOM
419
457
  // vInsert whether to append (true) or replace (falsy) or to insert at a certain position (int)
420
- applyChunk : function(vInsert, oDomRef) {
458
+ applyChunk : function(vInsert, bAsync) {
459
+ if (!this._oControl) {
460
+ return;
461
+ }
462
+
421
463
  this.applyPendingGroupItem();
422
464
 
465
+ var iTimer = this._iChunkTimer;
423
466
  var iLength = this._aChunk.length;
424
- if (!iLength || !this._oControl.shouldRenderItems()) {
467
+ var oDomRef = this._oControl.getItemsContainerDomRef();
468
+
469
+ if (iTimer) {
470
+ this._iChunkTimer = clearTimeout(iTimer);
471
+ }
472
+
473
+ if (!iLength || !oDomRef || !this._oControl.shouldRenderItems()) {
474
+ this._aChunk = [];
475
+ return;
476
+ }
477
+
478
+ if (iTimer && !bAsync) {
479
+ this._oControl.invalidate();
480
+ this._aChunk = [];
425
481
  return;
426
482
  }
427
483
 
@@ -434,17 +490,26 @@ sap.ui.define([
434
490
  }
435
491
  }
436
492
 
437
- oDomRef = oDomRef || this._oContainerDomRef;
438
- this._oRM = this._oRM || sap.ui.getCore().createRenderManager();
439
-
493
+ this._oRM = this._oRM || Core.createRenderManager();
440
494
  for (var i = 0; i < iLength; i++) {
441
495
  this._oRM.renderControl(this._aChunk[i]);
442
496
  }
443
497
 
498
+ var bHasFocus = (vInsert == false) && oDomRef.contains(document.activeElement);
444
499
  this._oRM.flush(oDomRef, false, this._getDomIndex(vInsert));
500
+ bHasFocus && this._oControl.focus();
445
501
  this._aChunk = [];
446
502
  },
447
503
 
504
+ // async version of applyChunk
505
+ applyChunkAsync : function(vInsert) {
506
+ if (this._bApplyChunkAsync) {
507
+ this._iChunkTimer = setTimeout(this.applyChunk.bind(this, vInsert, true));
508
+ } else {
509
+ this.applyChunk(vInsert);
510
+ }
511
+ },
512
+
448
513
  // add multiple items to the list via BindingContext
449
514
  addListItems : function(aContexts, oBindingInfo, bSuppressInvalidate) {
450
515
  for (var i = 0; i < aContexts.length; i++) {
@@ -457,9 +522,7 @@ sap.ui.define([
457
522
  this.destroyListItems(bSuppressInvalidate);
458
523
  this.addListItems(aContexts, oBindingInfo, bSuppressInvalidate);
459
524
  if (bSuppressInvalidate) {
460
- var bHasFocus = this._oContainerDomRef.contains(document.activeElement);
461
- this.applyChunk(false);
462
- bHasFocus && this._oControl.focus();
525
+ this.applyChunkAsync(false);
463
526
  } else {
464
527
  this.applyPendingGroupItem();
465
528
  }
@@ -482,26 +545,35 @@ sap.ui.define([
482
545
  * refresh items only for OData model.
483
546
  */
484
547
  refreshItems : function(sChangeReason) {
548
+ var oControl = this._oControl;
549
+ var oBinding = oControl.getBinding("items");
550
+
551
+ // the value of the ODataV4PropertyBinding created during the template clone gets resolved asynchronously
552
+ this._bApplyChunkAsync = oBinding.isA("sap.ui.model.odata.v4.ODataListBinding") && oControl.checkGrowingFromScratch();
553
+
554
+ // if the data is not already requested then let the updateStarted event to be fired
485
555
  if (!this._bDataRequested) {
486
556
  this._bDataRequested = true;
487
557
  this._onBeforePageLoaded(sChangeReason);
488
558
  }
489
559
 
490
560
  // 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
-
561
+ if (!this._iLimit || this.shouldReset(sChangeReason) || !oControl.getItems(true).length) {
562
+ this._iLimit = oControl.getGrowingThreshold();
494
563
  }
495
564
 
496
- // send the request to get the context
497
- var oBinding = this._oControl.getBinding("items");
498
-
565
+ // pre-initialize items during the request is ongoing
499
566
  if (this._aItemsPool) {
500
- oBinding.attachEventOnce("dataRequested", function() {
567
+ if (oControl._bBusy) {
501
568
  setTimeout(this.fillItemsPool.bind(this));
502
- }, this);
569
+ } else {
570
+ oBinding.attachEventOnce("dataRequested", function() {
571
+ setTimeout(this.fillItemsPool.bind(this));
572
+ }, this);
573
+ }
503
574
  }
504
575
 
576
+ // send the request to get the context
505
577
  oBinding.getContexts(0, this._iLimit);
506
578
  },
507
579
 
@@ -513,7 +585,8 @@ sap.ui.define([
513
585
  var oControl = this._oControl,
514
586
  oBinding = oControl.getBinding("items"),
515
587
  oBindingInfo = oControl.getBindingInfo("items"),
516
- aItems = oControl.getItems(true);
588
+ aItems = oControl.getItems(true),
589
+ sGroupingPath = this._sGroupingPath;
517
590
 
518
591
  // set limit to initial value if not set yet or no items at the control yet
519
592
  if (!this._iLimit || this.shouldReset(sChangeReason) || !aItems.length) {
@@ -545,102 +618,101 @@ sap.ui.define([
545
618
  }
546
619
  }
547
620
 
548
- // cache dom ref for internal functions not to lookup again and again
549
- this._oContainerDomRef = oControl.getItemsContainerDomRef();
621
+ // let the grouping path to be stored
622
+ this._sGroupingPath = this._getGroupingPath(oBinding);
550
623
 
551
624
  // aContexts.diff ==> undefined : New data we should build from scratch
552
625
  // aContexts.diff ==> [] : There is no diff, means data did not changed at all
553
626
  // aContexts.diff ==> [{index: 0, type: "delete"}, {index: 1, type: "insert"},...] : Run the diff logic
554
- var aDiff = aContexts.diff,
555
- bFromScratch = false,
556
- vInsertIndex;
627
+ var aDiff = aContexts.diff;
557
628
 
558
629
  // process the diff
559
630
  if (!aContexts.length) {
560
631
  // no context, destroy list items
561
632
  this.destroyListItems();
562
- } else if (!this._oContainerDomRef) {
633
+ } else if (!oControl.getItemsContainerDomRef()) {
563
634
  // no dom ref for compatibility reason start from scratch
564
635
  this.rebuildListItems(aContexts, oBindingInfo);
565
636
  } else if (!aDiff || !aItems.length && aDiff.length) {
566
637
  // new records need to be applied from scratch
567
638
  this.rebuildListItems(aContexts, oBindingInfo, oControl.shouldGrowingSuppressInvalidation());
568
- } else if (oBinding.isGrouped() || oControl.checkGrowingFromScratch()) {
639
+ } else {
640
+ // diff handling case for grouping and merging
641
+ var bFromScratch = false, vInsertIndex = true;
642
+ if (oBinding.isGrouped() || oControl.checkGrowingFromScratch()) {
569
643
 
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;
644
+ if (sGroupingPath != this._sGroupingPath) {
645
+ // grouping is changed so we need to rebuild the list for the group headers
646
+ bFromScratch = true;
647
+ } else {
648
+ // append items if possible
649
+ for (var i = 0; i < aDiff.length; i++) {
650
+ var oDiff = aDiff[i],
651
+ oContext = aContexts[oDiff.index];
652
+
653
+ if (oDiff.type == "delete" || oDiff.type == "replace") {
654
+ // group header may need to be deleted as well
655
+ bFromScratch = true;
656
+ break;
657
+ } else if (oDiff.index != this._iRenderedDataItems) {
658
+ // this item is not appended
659
+ bFromScratch = true;
660
+ break;
661
+ } else {
662
+ // the item is appended
663
+ this.addListItem(oContext, oBindingInfo, true);
664
+ }
590
665
  }
591
666
  }
592
- }
593
667
 
594
- } else {
595
-
596
- if (this._sGroupingPath) {
597
- // if it was already grouped then we need to remove group headers first
598
- oControl.removeGroupHeaders(true);
599
- }
668
+ } else {
600
669
 
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
- }
670
+ if (sGroupingPath && !this._sGroupingPath) {
671
+ // if it was already grouped then we need to remove group headers first
672
+ oControl.removeGroupHeaders(true);
673
+ }
615
674
 
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;
675
+ vInsertIndex = -1;
676
+ var iLastInsertIndex = -1;
677
+ for (var i = 0; i < aDiff.length; i++) {
678
+ var oDiff = aDiff[i],
679
+ iDiffIndex = oDiff.index,
680
+ oContext = aContexts[iDiffIndex];
681
+
682
+ if (oDiff.type == "delete") {
683
+ if (vInsertIndex != -1) {
684
+ // this record is deleted while the chunk is getting build
685
+ this.applyChunk(vInsertIndex);
686
+ iLastInsertIndex = -1;
687
+ vInsertIndex = -1;
688
+ }
689
+
690
+ this.deleteListItem(iDiffIndex);
691
+ } else if (oDiff.type == "insert") {
692
+ if (vInsertIndex == -1) {
693
+ // the subsequent of items needs to be inserted at this position
694
+ vInsertIndex = iDiffIndex;
695
+ } else if (iLastInsertIndex > -1 && iDiffIndex != iLastInsertIndex + 1) {
696
+ // this item is not simply appended to the last one but has been inserted
697
+ this.applyChunk(vInsertIndex);
698
+ vInsertIndex = iDiffIndex;
699
+ }
700
+
701
+ this.insertListItem(oContext, oBindingInfo, iDiffIndex);
702
+ iLastInsertIndex = iDiffIndex;
625
703
  }
626
-
627
- this.insertListItem(oContext, oBindingInfo, iDiffIndex);
628
- iLastInsertIndex = iDiffIndex;
629
704
  }
630
705
  }
631
- }
632
706
 
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);
707
+ if (bFromScratch) {
708
+ this.rebuildListItems(aContexts, oBindingInfo, true);
709
+ } else {
710
+ // set the binding context of items inserting/deleting entries shifts the index of all following items
711
+ this.updateItemsBindingContext(aContexts, oBindingInfo.model);
712
+ this.applyChunkAsync(vInsertIndex);
713
+ }
639
714
  }
640
715
 
641
- this._oContainerDomRef = null;
642
- this._sGroupingPath = this._getGroupingPath(oBinding);
643
-
644
716
  if (!this._bDataRequested) {
645
717
  this._onAfterPageLoaded(sChangeReason);
646
718
  }
@@ -708,6 +780,10 @@ sap.ui.define([
708
780
  } else {
709
781
  if (bLengthFinal) {
710
782
  oControl.$("triggerInfo").css("display", "block").text(this._getListItemInfo());
783
+ var aCounts = this._getItemCounts();
784
+ oControl.$("triggerMessage").text(Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA_ACC_WITH_COUNT", aCounts));
785
+ } else {
786
+ oControl.$("triggerMessage").text(Core.getLibraryResourceBundle("sap.m").getText("LOAD_MORE_DATA_ACC"));
711
787
  }
712
788
 
713
789
  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.101.0
25
+ * @version 1.103.0
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.101.0
28
+ * @version 1.103.0
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.101.0
128
+ * @version 1.103.0
129
129
  *
130
130
  * @public
131
131
  * @alias sap.m.HeaderContainer
@@ -338,9 +338,6 @@ sap.ui.define([
338
338
  this._oItemNavigation.attachEvent(ItemNavigation.Events.BorderReached, this._handleBorderReached, this);
339
339
  this._oItemNavigation.attachEvent(ItemNavigation.Events.AfterFocus, this._handleAfterFocus, this);
340
340
  this._oItemNavigation.attachEvent(ItemNavigation.Events.BeforeFocus, this._handleBeforeFocus, this);
341
- if (Device.browser.msie || Device.browser.edge) {
342
- this._oItemNavigation.attachEvent(ItemNavigation.Events.FocusAgain, this._handleFocusAgain, this);
343
- }
344
341
  }
345
342
  this._oItemNavigation.setRootDomRef(oFocusRef);
346
343
  this._oItemNavigation.setItemDomRefs(aDomRefs);
@@ -350,59 +347,63 @@ sap.ui.define([
350
347
  this._handleMobileScrolling();
351
348
  }
352
349
  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
- }
350
+ this._oScrollCntr.attachBrowserEvent("scrollstart", function(oEvent){
351
+ var aItems = this._filterVisibleItems();
352
+ this.aItemSize = [];
353
+ this.aItemScrollValue = [0];
354
+ var fnGetItemSize = function (oItem) {
355
+ if (oItem.getDomRef() && oItem.getDomRef().parentElement) {
356
+ return oItem.getDomRef().parentElement.offsetWidth
357
+ + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginLeft)
358
+ + parseFloat(getComputedStyle(oItem.getDomRef().parentElement).marginRight);
359
+ }
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
+ }
365
+ this.triggerScrollStop = false;
366
+ }.bind(this));
365
367
  this._oScrollCntr.attachBrowserEvent("scrollstop", function(oEvent){
366
- if (!this.triggerScrollStop) {
367
- this.triggerScrollStop = true;
368
- var iScrollValue = 0, iScrollOffset = 15;
368
+ if (!this.triggerScrollStop) {
369
+ var aItems = this._filterVisibleItems();
370
+ this.triggerScrollStop = true;
371
+ var iScrollValue = 0, iScrollOffset = 15;
369
372
 
370
- var iScrollContainerScrollLeft = this._oScrollCntr.getDomRef().scrollLeft;
371
- var iScrollContainerWidth = iScrollContainerScrollLeft + this._oScrollCntr.getDomRef().clientWidth;
373
+ var iScrollContainerScrollLeft = this._oScrollCntr.getDomRef().scrollLeft;
374
+ var iScrollContainerWidth = iScrollContainerScrollLeft + this._oScrollCntr.getDomRef().clientWidth;
372
375
 
373
- var oFinalItem = aItems[aItems.length - 1];
376
+ var oFinalItem = aItems[aItems.length - 1];
374
377
 
375
- var iFinalElementScrollLeft = oFinalItem.getParent().getDomRef().offsetLeft;
376
- var iFinalElementContainerWidth = iFinalElementScrollLeft + oFinalItem.getDomRef().clientWidth;
378
+ var iFinalElementScrollLeft = oFinalItem.getParent().getDomRef().offsetLeft;
379
+ var iFinalElementContainerWidth = iFinalElementScrollLeft + oFinalItem.getDomRef().clientWidth;
377
380
 
378
- var bIsFinalItemVisible = ((iFinalElementContainerWidth <= iScrollContainerWidth) && (iFinalElementScrollLeft >= iScrollContainerScrollLeft));
379
- var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
381
+ var bIsFinalItemVisible = ((iFinalElementContainerWidth <= iScrollContainerWidth) && (iFinalElementScrollLeft >= iScrollContainerScrollLeft));
382
+ var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
380
383
 
381
- if (bIsFinalItemVisible) {
382
- iScrollValue = this.aItemScrollValue[aItems.length - 1] - iScrollOffset - iCurrectScrollValue;
383
- this.triggerScrollStop = false;
384
- } else {
385
- var value = this.aItemScrollValue.reduce(function(a, b) {
386
- var aDiff = Math.abs(a - iCurrectScrollValue);
387
- var bDiff = Math.abs(b - iCurrectScrollValue);
388
- if (aDiff == bDiff) {
389
- return a > b ? a : b;
390
- } else {
391
- return bDiff < aDiff ? b : a;
392
- }
393
- });
394
- if (iCurrectScrollValue == 0) {
395
- iScrollValue = 0;
396
- this.triggerScrollStop = false;
384
+ if (bIsFinalItemVisible) {
385
+ iScrollValue = this.aItemScrollValue[aItems.length - 1] - iScrollOffset - iCurrectScrollValue;
386
+ this.triggerScrollStop = false;
387
+ } else {
388
+ var value = this.aItemScrollValue.reduce(function(a, b) {
389
+ var aDiff = Math.abs(a - iCurrectScrollValue);
390
+ var bDiff = Math.abs(b - iCurrectScrollValue);
391
+ if (aDiff == bDiff) {
392
+ return a > b ? a : b;
397
393
  } else {
398
- iScrollValue = value - iScrollOffset - iCurrectScrollValue;
394
+ return bDiff < aDiff ? b : a;
399
395
  }
396
+ });
397
+ if (iCurrectScrollValue == 0) {
398
+ iScrollValue = 0;
399
+ this.triggerScrollStop = false;
400
+ } else {
401
+ iScrollValue = value - iScrollOffset - iCurrectScrollValue;
400
402
  }
401
- this._scroll(iScrollValue, this.getScrollTime());
402
- } else {
403
- this.triggerScrollStop = false;
404
403
  }
405
- }.bind(this));
404
+ this._scroll(iScrollValue, this.getScrollTime());
405
+ }
406
+ }.bind(this));
406
407
  }
407
408
  }.bind(this)
408
409
  });
@@ -642,7 +643,7 @@ sap.ui.define([
642
643
  if (!this._bRtl) {
643
644
  iScrollLeft = oDomRef.scrollLeft;
644
645
  iScrollWidth = oDomRef.scrollWidth;
645
- iClientWidth = oDomRef.clientWidth + (Device.browser.msie ? 1 : 0);
646
+ iClientWidth = oDomRef.clientWidth;
646
647
  iScrollTarget = iScrollLeft + delta;
647
648
  iPaddingWidth = parseFloat(this.$("scroll-area").css("padding-left"));
648
649
 
@@ -923,7 +924,7 @@ sap.ui.define([
923
924
  }
924
925
  if (this._bRtl) {
925
926
  var iScrollLeftRTL = jQuery(oBarHead).scrollLeftRTL();
926
- if (iScrollLeftRTL > ((Device.browser.msie || Device.browser.edge) ? 1 : 0)) {
927
+ if (iScrollLeftRTL > 0) {
927
928
  bScrollForward = true;
928
929
  }
929
930
  } else if (iScrollLeft > iFirst) {
@@ -1023,9 +1024,6 @@ sap.ui.define([
1023
1024
  };
1024
1025
 
1025
1026
  HeaderContainer.prototype._handleBorderReached = function (oEvt) {
1026
- if (Device.browser.msie && this.bScrollInProcess) {
1027
- return;
1028
- }
1029
1027
  var iIndex = oEvt.getParameter("index");
1030
1028
  if (iIndex === 0) {
1031
1029
  this._scroll(this._getScrollValue(false), this.getScrollTime());
@@ -1035,14 +1033,6 @@ sap.ui.define([
1035
1033
  };
1036
1034
 
1037
1035
  HeaderContainer.prototype._handleAfterFocus = function (oEvt) {
1038
- //For Edge and IE on mousedown input element not getting focused.Hence setting focus manually.
1039
- var oSrcEvent = oEvt.getParameter("event");
1040
- if ((Device.browser.msie || Device.browser.edge) && oSrcEvent.type === "mousedown" && oSrcEvent.srcControl instanceof sap.m.Input) {
1041
- oSrcEvent.srcControl.focus();
1042
- }
1043
- if (Device.browser.msie && this.bScrollInProcess) {
1044
- return;
1045
- }
1046
1036
  var iIndex = oEvt.getParameter("index");
1047
1037
  if (iIndex === 0) {
1048
1038
  this._scroll(this._getScrollValue(false), this.getScrollTime());
@@ -1053,11 +1043,6 @@ sap.ui.define([
1053
1043
  };
1054
1044
 
1055
1045
  HeaderContainer.prototype._handleFocusAgain = function (oEvt) {
1056
- //For Edge and IE on mousedown input element not getting focused.Hence setting focus manually.
1057
- var oSrcEvent = oEvt.getParameter("event");
1058
- if ((Device.browser.msie || Device.browser.edge) && oSrcEvent.type === "mousedown" && oSrcEvent.srcControl instanceof sap.m.Input) {
1059
- oSrcEvent.srcControl.focus();
1060
- }
1061
1046
  oEvt.getParameter("event").preventDefault();
1062
1047
  };
1063
1048
 
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @since 1.67.0
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.101.0
22
+ * @version 1.103.0
23
23
  *
24
24
  * @constructor
25
25
  * @alias sap.m.HeaderContainerItemNavigator
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @implements sap.m.ObjectHeaderContainer, sap.f.IDynamicPageStickyContent
95
95
  *
96
96
  * @author SAP SE
97
- * @version 1.101.0
97
+ * @version 1.103.0
98
98
  *
99
99
  * @public
100
100
  * @alias sap.m.IconTabBar
@@ -201,6 +201,7 @@ sap.ui.define([
201
201
  * Specifies whether tab reordering is enabled. Relevant only for desktop devices.
202
202
  * The {@link sap.m.IconTabSeparator sap.m.IconTabSeparator} cannot be dragged and dropped
203
203
  * Items can be moved around {@link sap.m.IconTabSeparator sap.m.IconTabSeparator}
204
+ * Reordering is enabled via keyboard using <code>Ctrl</code> + arrow keys (Windows) and <code>Control</code> + arrow keys (Mac OS)
204
205
  * @since 1.46
205
206
  */
206
207
  enableTabReordering : {type : "boolean", group : "Behavior", defaultValue : false},
@@ -361,7 +362,7 @@ sap.ui.define([
361
362
 
362
363
  // toggle animation if control is already rendered
363
364
  if (this.$().length) {
364
- this._toggleExpandCollapse(bExpanded);
365
+ this._toggleExpandCollapse(this.getProperty("expanded"));
365
366
  }
366
367
  return this;
367
368
  };