@openui5/sap.m 1.103.1 → 1.106.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 (494) hide show
  1. package/.eslintrc.json +2 -3
  2. package/.reuse/dep5 +35 -15
  3. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  4. package/THIRDPARTY.txt +64 -21
  5. package/package.json +4 -4
  6. package/src/sap/m/.library +17 -1
  7. package/src/sap/m/AccButton.js +1 -1
  8. package/src/sap/m/ActionListItem.js +1 -1
  9. package/src/sap/m/ActionSelect.js +1 -1
  10. package/src/sap/m/ActionSheet.js +1 -1
  11. package/src/sap/m/App.js +2 -3
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +2 -2
  14. package/src/sap/m/BadgeEnabler.js +1 -2
  15. package/src/sap/m/Bar.js +11 -10
  16. package/src/sap/m/Breadcrumbs.js +2 -2
  17. package/src/sap/m/BusyDialog.js +1 -1
  18. package/src/sap/m/BusyIndicator.js +1 -1
  19. package/src/sap/m/Button.js +49 -10
  20. package/src/sap/m/ButtonRenderer.js +10 -2
  21. package/src/sap/m/Carousel.js +3 -4
  22. package/src/sap/m/CarouselLayout.js +1 -1
  23. package/src/sap/m/CarouselRenderer.js +3 -3
  24. package/src/sap/m/CheckBox.js +46 -6
  25. package/src/sap/m/CheckBoxRenderer.js +1 -0
  26. package/src/sap/m/ColorPalette.js +1 -1
  27. package/src/sap/m/ColorPalettePopover.js +1 -1
  28. package/src/sap/m/Column.js +5 -5
  29. package/src/sap/m/ColumnHeaderPopover.js +5 -7
  30. package/src/sap/m/ColumnListItem.js +1 -4
  31. package/src/sap/m/ColumnListItemRenderer.js +1 -2
  32. package/src/sap/m/ColumnPopoverActionItem.js +3 -3
  33. package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
  34. package/src/sap/m/ColumnPopoverItem.js +3 -3
  35. package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
  36. package/src/sap/m/ColumnPopoverSortItem.js +3 -3
  37. package/src/sap/m/ComboBox.js +6 -5
  38. package/src/sap/m/ComboBoxBase.js +3 -7
  39. package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
  40. package/src/sap/m/ComboBoxTextField.js +1 -7
  41. package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
  42. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  43. package/src/sap/m/CustomListItem.js +1 -1
  44. package/src/sap/m/CustomTile.js +1 -1
  45. package/src/sap/m/CustomTreeItem.js +3 -3
  46. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  47. package/src/sap/m/DatePicker.js +16 -26
  48. package/src/sap/m/DateRangeSelection.js +45 -38
  49. package/src/sap/m/DateTimeField.js +87 -20
  50. package/src/sap/m/DateTimeInput.js +1 -1
  51. package/src/sap/m/DateTimePicker.js +58 -32
  52. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  53. package/src/sap/m/Dialog.js +44 -2
  54. package/src/sap/m/DisplayListItem.js +1 -1
  55. package/src/sap/m/DraftIndicator.js +1 -1
  56. package/src/sap/m/DynamicDate.js +1 -1
  57. package/src/sap/m/DynamicDateFormat.js +2 -5
  58. package/src/sap/m/DynamicDateOption.js +43 -16
  59. package/src/sap/m/DynamicDateRange.js +49 -7
  60. package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
  61. package/src/sap/m/DynamicDateUtil.js +23 -2
  62. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  63. package/src/sap/m/ExpandableText.js +1 -1
  64. package/src/sap/m/FacetFilter.js +2 -2
  65. package/src/sap/m/FacetFilterItem.js +1 -1
  66. package/src/sap/m/FacetFilterList.js +4 -4
  67. package/src/sap/m/FeedContent.js +1 -1
  68. package/src/sap/m/FeedInput.js +1 -1
  69. package/src/sap/m/FeedListItem.js +1 -1
  70. package/src/sap/m/FeedListItemAction.js +1 -1
  71. package/src/sap/m/Fiori20Adapter.js +2 -2
  72. package/src/sap/m/FlexBox.js +1 -1
  73. package/src/sap/m/FlexItemData.js +1 -1
  74. package/src/sap/m/FormattedText.js +1 -1
  75. package/src/sap/m/GenericTag.js +1 -1
  76. package/src/sap/m/GenericTile.js +116 -23
  77. package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
  78. package/src/sap/m/GenericTileRenderer.js +23 -10
  79. package/src/sap/m/GroupHeaderListItem.js +1 -1
  80. package/src/sap/m/GrowingEnablement.js +60 -36
  81. package/src/sap/m/GrowingList.js +1 -1
  82. package/src/sap/m/HBox.js +1 -1
  83. package/src/sap/m/HeaderContainer.js +34 -32
  84. package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
  85. package/src/sap/m/IconTabBar.js +54 -22
  86. package/src/sap/m/IconTabBarSelectList.js +1 -1
  87. package/src/sap/m/IconTabFilter.js +1 -1
  88. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  89. package/src/sap/m/IconTabHeader.js +6 -19
  90. package/src/sap/m/IconTabSeparator.js +1 -1
  91. package/src/sap/m/IllustratedMessage.js +98 -25
  92. package/src/sap/m/IllustratedMessageRenderer.js +10 -6
  93. package/src/sap/m/Illustration.js +8 -1
  94. package/src/sap/m/IllustrationPool.js +1 -0
  95. package/src/sap/m/IllustrationRenderer.js +2 -1
  96. package/src/sap/m/Image.js +73 -3
  97. package/src/sap/m/ImageContent.js +1 -1
  98. package/src/sap/m/ImageRenderer.js +66 -2
  99. package/src/sap/m/Input.js +62 -7
  100. package/src/sap/m/InputBase.js +1 -1
  101. package/src/sap/m/InputBaseRenderer.js +2 -2
  102. package/src/sap/m/InputListItem.js +1 -1
  103. package/src/sap/m/InputRenderer.js +4 -0
  104. package/src/sap/m/InstanceManager.js +6 -6
  105. package/src/sap/m/Label.js +34 -4
  106. package/src/sap/m/LabelRenderer.js +7 -2
  107. package/src/sap/m/LightBox.js +2 -2
  108. package/src/sap/m/LightBoxItem.js +1 -1
  109. package/src/sap/m/Link.js +74 -10
  110. package/src/sap/m/LinkRenderer.js +26 -12
  111. package/src/sap/m/List.js +38 -1
  112. package/src/sap/m/ListBase.js +109 -44
  113. package/src/sap/m/ListBaseRenderer.js +7 -15
  114. package/src/sap/m/ListItemBase.js +40 -11
  115. package/src/sap/m/ListItemBaseRenderer.js +17 -6
  116. package/src/sap/m/ListRenderer.js +2 -2
  117. package/src/sap/m/MaskEnabler.js +52 -2
  118. package/src/sap/m/MaskInput.js +23 -1
  119. package/src/sap/m/MaskInputRule.js +1 -1
  120. package/src/sap/m/Menu.js +1 -1
  121. package/src/sap/m/MenuButton.js +1 -1
  122. package/src/sap/m/MenuItem.js +1 -1
  123. package/src/sap/m/MenuListItem.js +1 -1
  124. package/src/sap/m/MessageBox.js +1 -1
  125. package/src/sap/m/MessageItem.js +3 -4
  126. package/src/sap/m/MessageListItem.js +10 -6
  127. package/src/sap/m/MessagePage.js +1 -1
  128. package/src/sap/m/MessagePopover.js +4 -1
  129. package/src/sap/m/MessagePopoverItem.js +1 -1
  130. package/src/sap/m/MessageStrip.js +1 -1
  131. package/src/sap/m/MessageToast.js +1 -1
  132. package/src/sap/m/MessageView.js +1 -1
  133. package/src/sap/m/MultiComboBox.js +5 -16
  134. package/src/sap/m/MultiEditField.js +1 -1
  135. package/src/sap/m/MultiInput.js +1 -15
  136. package/src/sap/m/NavContainer.js +21 -19
  137. package/src/sap/m/NewsContent.js +2 -3
  138. package/src/sap/m/NotificationList.js +1 -1
  139. package/src/sap/m/NotificationListBase.js +1 -1
  140. package/src/sap/m/NotificationListGroup.js +3 -7
  141. package/src/sap/m/NotificationListGroupRenderer.js +1 -1
  142. package/src/sap/m/NotificationListItem.js +1 -1
  143. package/src/sap/m/NumericContent.js +1 -1
  144. package/src/sap/m/NumericInput.js +1 -1
  145. package/src/sap/m/ObjectAttribute.js +1 -1
  146. package/src/sap/m/ObjectHeader.js +3 -3
  147. package/src/sap/m/ObjectIdentifier.js +8 -5
  148. package/src/sap/m/ObjectListItem.js +7 -1
  149. package/src/sap/m/ObjectMarker.js +1 -1
  150. package/src/sap/m/ObjectNumber.js +2 -3
  151. package/src/sap/m/ObjectNumberRenderer.js +10 -3
  152. package/src/sap/m/ObjectStatus.js +2 -3
  153. package/src/sap/m/ObjectStatusRenderer.js +2 -2
  154. package/src/sap/m/OverflowToolbar.js +3 -8
  155. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  156. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
  157. package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
  158. package/src/sap/m/OverflowToolbarButton.js +2 -2
  159. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  160. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  161. package/src/sap/m/P13nAnyFilterItem.js +3 -3
  162. package/src/sap/m/P13nColumnsItem.js +3 -3
  163. package/src/sap/m/P13nColumnsPanel.js +3 -3
  164. package/src/sap/m/P13nConditionPanel.js +10 -3
  165. package/src/sap/m/P13nDialog.js +3 -3
  166. package/src/sap/m/P13nDimMeasureItem.js +3 -3
  167. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  168. package/src/sap/m/P13nFilterItem.js +3 -3
  169. package/src/sap/m/P13nFilterPanel.js +3 -3
  170. package/src/sap/m/P13nGroupItem.js +3 -3
  171. package/src/sap/m/P13nGroupPanel.js +3 -3
  172. package/src/sap/m/P13nItem.js +3 -3
  173. package/src/sap/m/P13nOperationsHelper.js +2 -2
  174. package/src/sap/m/P13nPanel.js +3 -3
  175. package/src/sap/m/P13nSelectionItem.js +3 -3
  176. package/src/sap/m/P13nSelectionPanel.js +3 -3
  177. package/src/sap/m/P13nSortItem.js +3 -3
  178. package/src/sap/m/P13nSortPanel.js +3 -3
  179. package/src/sap/m/PDFViewer.js +2 -2
  180. package/src/sap/m/PDFViewerRenderer.js +1 -0
  181. package/src/sap/m/Page.js +1 -3
  182. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  183. package/src/sap/m/PagingButton.js +1 -1
  184. package/src/sap/m/Panel.js +1 -1
  185. package/src/sap/m/PlanningCalendar.js +4 -16
  186. package/src/sap/m/PlanningCalendarHeader.js +1 -5
  187. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  188. package/src/sap/m/PlanningCalendarRow.js +1 -1
  189. package/src/sap/m/PlanningCalendarView.js +1 -1
  190. package/src/sap/m/Popover.js +11 -4
  191. package/src/sap/m/ProgressIndicator.js +1 -1
  192. package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
  193. package/src/sap/m/PullToRefresh.js +1 -1
  194. package/src/sap/m/QuickView.js +3 -3
  195. package/src/sap/m/QuickViewBase.js +3 -3
  196. package/src/sap/m/QuickViewCard.js +3 -3
  197. package/src/sap/m/QuickViewGroup.js +1 -1
  198. package/src/sap/m/QuickViewGroupElement.js +3 -3
  199. package/src/sap/m/QuickViewPage.js +3 -3
  200. package/src/sap/m/RadioButton.js +47 -20
  201. package/src/sap/m/RadioButtonGroup.js +29 -26
  202. package/src/sap/m/RangeSlider.js +1 -3
  203. package/src/sap/m/RatingIndicator.js +8 -1
  204. package/src/sap/m/RatingIndicatorRenderer.js +13 -4
  205. package/src/sap/m/ResponsivePopover.js +3 -3
  206. package/src/sap/m/ResponsiveScale.js +1 -1
  207. package/src/sap/m/ScrollBar.js +1 -1
  208. package/src/sap/m/ScrollContainer.js +1 -1
  209. package/src/sap/m/SearchField.js +1 -1
  210. package/src/sap/m/SearchFieldRenderer.js +1 -0
  211. package/src/sap/m/SegmentedButton.js +1 -1
  212. package/src/sap/m/SegmentedButtonItem.js +1 -1
  213. package/src/sap/m/Select.js +8 -14
  214. package/src/sap/m/SelectDialog.js +2 -1
  215. package/src/sap/m/SelectDialogBase.js +1 -1
  216. package/src/sap/m/SelectList.js +1 -1
  217. package/src/sap/m/SelectListRenderer.js +2 -2
  218. package/src/sap/m/SelectionDetails.js +2 -2
  219. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  220. package/src/sap/m/SelectionDetailsItem.js +1 -1
  221. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  222. package/src/sap/m/Shell.js +1 -1
  223. package/src/sap/m/SimpleFixFlex.js +1 -1
  224. package/src/sap/m/SinglePlanningCalendar.js +7 -9
  225. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  226. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
  227. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  228. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
  229. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  230. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  231. package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
  232. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  233. package/src/sap/m/SlideTile.js +30 -5
  234. package/src/sap/m/Slider.js +1 -1
  235. package/src/sap/m/SliderTooltip.js +1 -3
  236. package/src/sap/m/SliderTooltipBase.js +1 -1
  237. package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
  238. package/src/sap/m/SliderTooltipContainer.js +1 -1
  239. package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
  240. package/src/sap/m/SliderTooltipRenderer.js +2 -2
  241. package/src/sap/m/SplitApp.js +1 -1
  242. package/src/sap/m/SplitButton.js +1 -3
  243. package/src/sap/m/SplitContainer.js +3 -7
  244. package/src/sap/m/StandardDynamicDateOption.js +9 -15
  245. package/src/sap/m/StandardListItem.js +1 -1
  246. package/src/sap/m/StandardListItemRenderer.js +2 -2
  247. package/src/sap/m/StandardTile.js +1 -1
  248. package/src/sap/m/StandardTreeItem.js +1 -1
  249. package/src/sap/m/StepInput.js +1 -1
  250. package/src/sap/m/SuggestionItem.js +1 -1
  251. package/src/sap/m/SuggestionsPopover.js +4 -2
  252. package/src/sap/m/Switch.js +1 -1
  253. package/src/sap/m/TabContainer.js +1 -1
  254. package/src/sap/m/TabContainerItem.js +1 -1
  255. package/src/sap/m/TabStrip.js +1 -1
  256. package/src/sap/m/TabStripItem.js +1 -1
  257. package/src/sap/m/Table.js +11 -9
  258. package/src/sap/m/TablePersoController.js +1 -1
  259. package/src/sap/m/TablePersoDialog.js +6 -15
  260. package/src/sap/m/TablePersoProvider.js +1 -1
  261. package/src/sap/m/TableRenderer.js +2 -9
  262. package/src/sap/m/TableSelectDialog.js +1 -1
  263. package/src/sap/m/Text.js +1 -1
  264. package/src/sap/m/TextArea.js +1 -1
  265. package/src/sap/m/TextAreaRenderer.js +1 -2
  266. package/src/sap/m/Tile.js +1 -1
  267. package/src/sap/m/TileContainer.js +1 -1
  268. package/src/sap/m/TileContent.js +8 -9
  269. package/src/sap/m/TileContentRenderer.js +3 -3
  270. package/src/sap/m/TimePicker.js +45 -8
  271. package/src/sap/m/TimePickerClock.js +2 -3
  272. package/src/sap/m/TimePickerClocks.js +5 -3
  273. package/src/sap/m/TimePickerClocksRenderer.js +4 -2
  274. package/src/sap/m/TimePickerInputs.js +1 -1
  275. package/src/sap/m/TimePickerInputsRenderer.js +1 -1
  276. package/src/sap/m/TimePickerInternals.js +1 -1
  277. package/src/sap/m/TimePickerSlider.js +1 -1
  278. package/src/sap/m/TimePickerSliders.js +3 -5
  279. package/src/sap/m/Title.js +1 -1
  280. package/src/sap/m/TitlePropagationSupport.js +1 -1
  281. package/src/sap/m/ToggleButton.js +2 -2
  282. package/src/sap/m/Token.js +1 -3
  283. package/src/sap/m/Tokenizer.js +1 -1
  284. package/src/sap/m/Toolbar.js +1 -1
  285. package/src/sap/m/ToolbarLayoutData.js +1 -1
  286. package/src/sap/m/ToolbarSeparator.js +1 -1
  287. package/src/sap/m/ToolbarSpacer.js +1 -1
  288. package/src/sap/m/Tree.js +8 -1
  289. package/src/sap/m/TreeItemBase.js +1 -1
  290. package/src/sap/m/TreeRenderer.js +0 -10
  291. package/src/sap/m/UploadCollection.js +2 -2
  292. package/src/sap/m/UploadCollectionItem.js +1 -1
  293. package/src/sap/m/UploadCollectionParameter.js +1 -1
  294. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  295. package/src/sap/m/VBox.js +1 -1
  296. package/src/sap/m/ValueStateHeader.js +1 -1
  297. package/src/sap/m/VariantItem.js +160 -0
  298. package/src/sap/m/VariantManagement.js +717 -571
  299. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  300. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  301. package/src/sap/m/ViewSettingsDialog.js +1 -1
  302. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  303. package/src/sap/m/ViewSettingsItem.js +1 -1
  304. package/src/sap/m/VisibleItem.js +1 -1
  305. package/src/sap/m/WheelSlider.js +1 -1
  306. package/src/sap/m/WheelSliderContainer.js +1 -1
  307. package/src/sap/m/Wizard.js +10 -3
  308. package/src/sap/m/WizardProgressNavigator.js +1 -1
  309. package/src/sap/m/WizardStep.js +3 -1
  310. package/src/sap/m/_thirdparty/purify.js +1622 -0
  311. package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
  312. package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
  313. package/src/sap/m/changeHandler/CombineButtons.js +19 -22
  314. package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
  315. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
  316. package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
  317. package/src/sap/m/delegate/DateNavigation.js +0 -4
  318. package/src/sap/m/designtime/Link.designtime.js +19 -11
  319. package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
  320. package/src/sap/m/flexibility/EngineFlex.js +48 -0
  321. package/src/sap/m/inputUtils/selectionRange.js +1 -2
  322. package/src/sap/m/library.js +60 -7
  323. package/src/sap/m/messagebundle.properties +57 -6
  324. package/src/sap/m/messagebundle_ar.properties +39 -9
  325. package/src/sap/m/messagebundle_bg.properties +33 -3
  326. package/src/sap/m/messagebundle_ca.properties +32 -2
  327. package/src/sap/m/messagebundle_cs.properties +32 -2
  328. package/src/sap/m/messagebundle_cy.properties +34 -4
  329. package/src/sap/m/messagebundle_da.properties +32 -2
  330. package/src/sap/m/messagebundle_de.properties +32 -2
  331. package/src/sap/m/messagebundle_el.properties +35 -5
  332. package/src/sap/m/messagebundle_en.properties +34 -4
  333. package/src/sap/m/messagebundle_en_GB.properties +34 -4
  334. package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
  335. package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
  336. package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
  337. package/src/sap/m/messagebundle_es.properties +33 -3
  338. package/src/sap/m/messagebundle_es_MX.properties +32 -2
  339. package/src/sap/m/messagebundle_et.properties +32 -2
  340. package/src/sap/m/messagebundle_fi.properties +36 -6
  341. package/src/sap/m/messagebundle_fr.properties +33 -3
  342. package/src/sap/m/messagebundle_fr_CA.properties +34 -4
  343. package/src/sap/m/messagebundle_hi.properties +34 -4
  344. package/src/sap/m/messagebundle_hr.properties +36 -6
  345. package/src/sap/m/messagebundle_hu.properties +34 -4
  346. package/src/sap/m/messagebundle_id.properties +34 -4
  347. package/src/sap/m/messagebundle_it.properties +33 -3
  348. package/src/sap/m/messagebundle_iw.properties +34 -4
  349. package/src/sap/m/messagebundle_ja.properties +33 -3
  350. package/src/sap/m/messagebundle_kk.properties +32 -2
  351. package/src/sap/m/messagebundle_ko.properties +40 -10
  352. package/src/sap/m/messagebundle_lt.properties +32 -2
  353. package/src/sap/m/messagebundle_lv.properties +32 -2
  354. package/src/sap/m/messagebundle_ms.properties +33 -3
  355. package/src/sap/m/messagebundle_nl.properties +46 -16
  356. package/src/sap/m/messagebundle_no.properties +34 -4
  357. package/src/sap/m/messagebundle_pl.properties +33 -3
  358. package/src/sap/m/messagebundle_pt.properties +37 -7
  359. package/src/sap/m/messagebundle_pt_PT.properties +32 -2
  360. package/src/sap/m/messagebundle_ro.properties +33 -3
  361. package/src/sap/m/messagebundle_ru.properties +33 -3
  362. package/src/sap/m/messagebundle_sh.properties +33 -3
  363. package/src/sap/m/messagebundle_sk.properties +32 -2
  364. package/src/sap/m/messagebundle_sl.properties +33 -3
  365. package/src/sap/m/messagebundle_sv.properties +32 -2
  366. package/src/sap/m/messagebundle_th.properties +65 -35
  367. package/src/sap/m/messagebundle_tr.properties +36 -6
  368. package/src/sap/m/messagebundle_uk.properties +33 -3
  369. package/src/sap/m/messagebundle_vi.properties +33 -3
  370. package/src/sap/m/messagebundle_zh_CN.properties +33 -3
  371. package/src/sap/m/messagebundle_zh_TW.properties +32 -2
  372. package/src/sap/m/p13n/AbstractContainer.js +7 -7
  373. package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
  374. package/src/sap/m/p13n/BasePanel.js +24 -13
  375. package/src/sap/m/p13n/Container.js +3 -3
  376. package/src/sap/m/p13n/Engine.js +1254 -0
  377. package/src/sap/m/p13n/FlexUtil.js +161 -0
  378. package/src/sap/m/p13n/GroupController.js +145 -0
  379. package/src/sap/m/p13n/GroupPanel.js +12 -5
  380. package/src/sap/m/p13n/MetadataHelper.js +35 -0
  381. package/src/sap/m/p13n/PersistenceProvider.js +160 -0
  382. package/src/sap/m/p13n/Popup.js +49 -12
  383. package/src/sap/m/p13n/QueryPanel.js +3 -3
  384. package/src/sap/m/p13n/SelectionController.js +548 -0
  385. package/src/sap/m/p13n/SelectionPanel.js +23 -5
  386. package/src/sap/m/p13n/SortController.js +153 -0
  387. package/src/sap/m/p13n/SortPanel.js +15 -5
  388. package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
  389. package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
  390. package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
  391. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
  392. package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
  393. package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
  394. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
  395. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
  396. package/src/sap/m/p13n/modules/UIManager.js +230 -0
  397. package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
  398. package/src/sap/m/plugins/CellSelector.js +741 -0
  399. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  400. package/src/sap/m/plugins/DataStateIndicator.js +2 -2
  401. package/src/sap/m/plugins/PasteProvider.js +1 -1
  402. package/src/sap/m/plugins/PluginBase.js +4 -3
  403. package/src/sap/m/rules/CheckBox.support.js +1 -1
  404. package/src/sap/m/rules/Image.support.js +1 -1
  405. package/src/sap/m/rules/Link.support.js +1 -1
  406. package/src/sap/m/rules/MessagePage.support.js +1 -1
  407. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  408. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  409. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  410. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  411. package/src/sap/m/rules/Panel.support.js +1 -1
  412. package/src/sap/m/rules/Select.support.js +1 -1
  413. package/src/sap/m/rules/Table.support.js +3 -3
  414. package/src/sap/m/semantic/AddAction.js +1 -1
  415. package/src/sap/m/semantic/CancelAction.js +1 -1
  416. package/src/sap/m/semantic/DeleteAction.js +1 -1
  417. package/src/sap/m/semantic/DetailPage.js +1 -1
  418. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  419. package/src/sap/m/semantic/EditAction.js +1 -1
  420. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  421. package/src/sap/m/semantic/FilterAction.js +1 -1
  422. package/src/sap/m/semantic/FilterSelect.js +1 -1
  423. package/src/sap/m/semantic/FlagAction.js +1 -1
  424. package/src/sap/m/semantic/ForwardAction.js +1 -1
  425. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  426. package/src/sap/m/semantic/GroupAction.js +1 -1
  427. package/src/sap/m/semantic/GroupSelect.js +1 -1
  428. package/src/sap/m/semantic/MainAction.js +1 -1
  429. package/src/sap/m/semantic/MasterPage.js +1 -1
  430. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  431. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  432. package/src/sap/m/semantic/NegativeAction.js +1 -1
  433. package/src/sap/m/semantic/OpenInAction.js +1 -1
  434. package/src/sap/m/semantic/PositiveAction.js +1 -1
  435. package/src/sap/m/semantic/PrintAction.js +1 -1
  436. package/src/sap/m/semantic/SaveAction.js +1 -1
  437. package/src/sap/m/semantic/Segment.js +1 -1
  438. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  439. package/src/sap/m/semantic/SemanticButton.js +1 -1
  440. package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
  441. package/src/sap/m/semantic/SemanticControl.js +1 -1
  442. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  443. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  444. package/src/sap/m/semantic/SemanticPage.js +1 -1
  445. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  446. package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
  447. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  448. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  449. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  450. package/src/sap/m/semantic/ShareMenu.js +1 -1
  451. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  452. package/src/sap/m/semantic/SortAction.js +1 -1
  453. package/src/sap/m/semantic/SortSelect.js +1 -1
  454. package/src/sap/m/table/Util.js +30 -11
  455. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  456. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  457. package/src/sap/m/table/columnmenu/Item.js +1 -1
  458. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  459. package/src/sap/m/table/columnmenu/Menu.js +50 -13
  460. package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
  461. package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
  462. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
  463. package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
  464. package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
  465. package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
  466. package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
  467. package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
  468. package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
  469. package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
  470. package/src/sap/m/themes/base/Button.less +0 -1
  471. package/src/sap/m/themes/base/Carousel.less +8 -8
  472. package/src/sap/m/themes/base/CellSelector.less +9 -0
  473. package/src/sap/m/themes/base/CheckBox.less +1 -0
  474. package/src/sap/m/themes/base/Dialog.less +1 -0
  475. package/src/sap/m/themes/base/DisplayListItem.less +3 -3
  476. package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
  477. package/src/sap/m/themes/base/FeedContent.less +13 -5
  478. package/src/sap/m/themes/base/GenericTile.less +56 -9
  479. package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
  480. package/src/sap/m/themes/base/NewsContent.less +6 -0
  481. package/src/sap/m/themes/base/NumericContent.less +1 -1
  482. package/src/sap/m/themes/base/ObjectStatus.less +2 -1
  483. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
  484. package/src/sap/m/themes/base/SelectList.less +0 -5
  485. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
  486. package/src/sap/m/themes/base/SlideTile.less +35 -4
  487. package/src/sap/m/themes/base/Table.less +11 -2
  488. package/src/sap/m/themes/base/TileContent.less +17 -0
  489. package/src/sap/m/themes/base/library.source.less +1 -0
  490. package/src/sap/m/upload/UploadSet.js +300 -23
  491. package/src/sap/m/upload/UploadSetItem.js +18 -7
  492. package/src/sap/m/upload/UploadSetRenderer.js +8 -16
  493. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  494. package/src/sap/m/upload/Uploader.js +1 -2
@@ -71,10 +71,7 @@ sap.ui.define([
71
71
  this._iTriggerTimer = 0;
72
72
  this._aChunk = [];
73
73
  this._oRM = null;
74
-
75
- if (document.location.href.search("sap-ui-xx-enableItemsPool") > 0) {
76
- this._aItemsPool = [];
77
- }
74
+ this._aItemsPool = [];
78
75
  },
79
76
 
80
77
  /**
@@ -94,10 +91,8 @@ sap.ui.define([
94
91
  this._oRM.destroy();
95
92
  this._oRM = null;
96
93
  }
97
- this._aItemsPool && this._aItemsPool.forEach(function(oItem) {
98
- oItem.destroy();
99
- });
100
94
 
95
+ this.clearItemsPool();
101
96
  this._oControl.$("triggerList").remove();
102
97
  this._oControl.bUseExtendedChangeDetection = false;
103
98
  this._oControl.removeDelegate(this);
@@ -162,14 +157,28 @@ sap.ui.define([
162
157
  },
163
158
 
164
159
  // reset paging on rebind
165
- reset : function() {
160
+ reset : function(bPageSizeOnly) {
166
161
  this._iLimit = 0;
167
162
 
163
+ if (bPageSizeOnly) {
164
+ return;
165
+ }
166
+
167
+ // if the template invalidates, then also clear the itemsPool
168
+ this.clearItemsPool();
169
+
168
170
  // if factory function is used we do not activate the replace option of the extended change detection
169
171
  var oBindingInfo = this._oControl.getBindingInfo("items");
170
172
  this._oControl.oExtendedChangeDetectionConfig = (!oBindingInfo || !oBindingInfo.template) ? null : {replace: true};
171
173
  },
172
174
 
175
+ clearItemsPool: function() {
176
+ this._aItemsPool.forEach(function(oItem) {
177
+ oItem.destroy();
178
+ });
179
+ this._aItemsPool = [];
180
+ },
181
+
173
182
  // determines growing reset with binding change reason
174
183
  // according to UX sort/filter/context should reset the growing
175
184
  shouldReset : function(sChangeReason) {
@@ -215,12 +224,8 @@ sap.ui.define([
215
224
  // if max item count not reached or if we do not know the count
216
225
  var oBinding = this._oControl.getBinding("items");
217
226
  if (oBinding && !oBinding.isLengthFinal() || this._iLimit < this._oControl.getMaxItemsCount()) {
218
- // The GrowingEnablement has its own busy indicator. Do not show the busy indicator, if existing, of the parent control.
219
- if (this._oControl.getMetadata().hasProperty("enableBusyIndicator")) {
220
- this._bParentEnableBusyIndicator = this._oControl.getEnableBusyIndicator();
221
- this._oControl.setEnableBusyIndicator(false);
222
- }
223
-
227
+ // block busy indicator animation from the ListBase
228
+ this._oControl._bBusy = true;
224
229
  this._iLimit += this._oControl.getGrowingThreshold();
225
230
  this._updateTriggerDelayed(true);
226
231
  this.updateItems("Growing");
@@ -242,11 +247,6 @@ sap.ui.define([
242
247
  this._bLoading = false;
243
248
  this._updateTriggerDelayed(false);
244
249
  this._oControl.onAfterPageLoaded(this.getInfo(), sChangeReason);
245
-
246
- // After the data has been loaded, restore the busy indicator handling of the parent control.
247
- if (this._oControl.setEnableBusyIndicator) {
248
- this._oControl.setEnableBusyIndicator(this._bParentEnableBusyIndicator);
249
- }
250
250
  },
251
251
 
252
252
  // created and returns load more trigger
@@ -276,7 +276,16 @@ sap.ui.define([
276
276
  '<div class="sapUiInvisibleText" id="' + sTriggerID + 'Message"></div>' +
277
277
  '</div>'
278
278
  })
279
- }).setParent(this._oControl, null, true).attachPress(this.requestNewPage, this).addDelegate({
279
+ });
280
+
281
+ // stop the eventing between item and the list
282
+ this._oTrigger.getList = function() {};
283
+ // defines the tag name
284
+ this._oTrigger.TagName = "div";
285
+ // trigger should not be mapped to groupHeader when setParent is called, hence overwrite this method
286
+ this._oTrigger.setGroupedItem = function() {};
287
+
288
+ this._oTrigger.setParent(this._oControl, null, true).attachPress(this.requestNewPage, this).addDelegate({
280
289
  onsapenter : function(oEvent) {
281
290
  this.requestNewPage();
282
291
  oEvent.preventDefault();
@@ -290,6 +299,10 @@ sap.ui.define([
290
299
  // aria-selected is added as the CustomListItem type="Active"
291
300
  // aria-selected should be removed as it is not allowed with role="button"
292
301
  $oTrigger.removeAttr("aria-selected");
302
+ // aria-roledescription not required for growing trigger
303
+ $oTrigger.removeAttr("aria-roledescription");
304
+ // aria-posinset & aria-setsize removed as it is not allowed with role="button"
305
+ $oTrigger.removeAttr("aria-posinset").removeAttr("aria-setsize");
293
306
  $oTrigger.attr({
294
307
  "tabindex": 0,
295
308
  "role": "button",
@@ -299,11 +312,6 @@ sap.ui.define([
299
312
  }
300
313
  }, this);
301
314
 
302
- // stop the eventing between item and the list
303
- this._oTrigger.getList = function() {};
304
- // defines the tag name
305
- this._oTrigger.TagName = "div";
306
-
307
315
  return this._oTrigger;
308
316
  },
309
317
 
@@ -377,19 +385,30 @@ sap.ui.define([
377
385
 
378
386
  if (oLastItem && oLastItem.isGroupHeader()) {
379
387
  oControl.removeAggregation("items", oLastItem, true);
388
+ oControl.setLastGroupHeader(oLastItem);
380
389
  this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oLastItem, bSuppressInvalidate);
381
390
  oLastItem = aItems[aItems.length - 1];
382
391
  }
383
392
 
384
393
  if (!oLastItem || oGroupInfo.key !== oBinding.getGroup(oLastItem.getBindingContext(sModelName)).key) {
385
- var oGroupHeader = (oBindingInfo.groupHeaderFactory) ? oBindingInfo.groupHeaderFactory(oGroupInfo) : null;
394
+ // get the groupHeader control groupHeaderFactory or create an sap.m.GroupHeaderListItem instance with the oGroupInfo
395
+ // required for setLastGroupHeader to correctly set the _oLastGroupHeader. The created groupHeader is later reused
396
+ var oGroupHeader = oBindingInfo.groupHeaderFactory ? oBindingInfo.groupHeaderFactory(oGroupInfo) : oControl.getGroupHeaderTemplate(oGroupInfo);
397
+
386
398
  if (oControl.getGrowingDirection() == ListGrowingDirection.Upwards) {
387
399
  this.applyPendingGroupItem();
400
+ oControl.setLastGroupHeader(oGroupHeader);
388
401
  this._fnAppendGroupItem = this.appendGroupItem.bind(this, oGroupInfo, oGroupHeader, bSuppressInvalidate);
389
402
  } else {
390
403
  this.appendGroupItem(oGroupInfo, oGroupHeader, bSuppressInvalidate);
391
404
  }
392
405
  }
406
+
407
+ var oLastGroupHeader = oControl.getLastGroupHeader();
408
+ if (oLastGroupHeader) {
409
+ // required to update the group header aria-owns attribute
410
+ oLastGroupHeader.invalidate();
411
+ }
393
412
  }
394
413
 
395
414
  oControl.addAggregation("items", oItem, bSuppressInvalidate);
@@ -413,13 +432,15 @@ sap.ui.define([
413
432
  },
414
433
 
415
434
  fillItemsPool: function() {
416
- if (!this._iLimit || this._iRenderedDataItems || this._aItemsPool.length) {
435
+ if (!this._oControl || !this._iLimit || this._iRenderedDataItems || this._aItemsPool.length) {
417
436
  return;
418
437
  }
419
438
 
420
- var oBindingInfo = this._oControl.getBindingInfo("items");
439
+ var oBindingInfo = this._oControl.getBindingInfo("items"),
440
+ // limit the number of items in the pool to 100, since have too many items in the pool is also not performant
441
+ iLimit = this._iLimit <= 100 ? this._iLimit : 100;
421
442
  if (oBindingInfo && oBindingInfo.template) {
422
- for (var i = 0; i < this._iLimit; i++) {
443
+ for (var i = 0; i < iLimit; i++) {
423
444
  this._aItemsPool.push(oBindingInfo.factory());
424
445
  }
425
446
  }
@@ -429,8 +450,8 @@ sap.ui.define([
429
450
  createListItem : function(oContext, oBindingInfo) {
430
451
  this._iRenderedDataItems++;
431
452
 
432
- if (this._aItemsPool && this._aItemsPool.length) {
433
- return this._aItemsPool.pop().setBindingContext(oContext, oBindingInfo.model);
453
+ if (this._aItemsPool.length) {
454
+ return this._aItemsPool.shift().setBindingContext(oContext, oBindingInfo.model);
434
455
  }
435
456
 
436
457
  return GrowingEnablement.createItem(oContext, oBindingInfo);
@@ -537,8 +558,11 @@ sap.ui.define([
537
558
 
538
559
  // destroy a single list item
539
560
  deleteListItem : function(iIndex) {
540
- this._oControl.getItems(true)[iIndex].destroy(true);
541
- this._iRenderedDataItems--;
561
+ var oItem = this._oControl.getItems(true)[iIndex];
562
+ if (oItem) {
563
+ this._oControl.getItems(true)[iIndex].destroy(true);
564
+ this._iRenderedDataItems--;
565
+ }
542
566
  },
543
567
 
544
568
  /**
@@ -562,8 +586,8 @@ sap.ui.define([
562
586
  this._iLimit = oControl.getGrowingThreshold();
563
587
  }
564
588
 
565
- // pre-initialize items during the request is ongoing
566
- if (this._aItemsPool) {
589
+ // pre-initialize items during the request is ongoing (but not for v1 ODataModel, since it is synchronous)
590
+ if (!oBinding.isA("sap.ui.model.odata.ODataListBinding")) {
567
591
  if (oControl._bBusy) {
568
592
  setTimeout(this.fillItemsPool.bind(this));
569
593
  } else {
@@ -630,7 +654,7 @@ sap.ui.define([
630
654
  if (!aContexts.length) {
631
655
  // no context, destroy list items
632
656
  this.destroyListItems();
633
- } else if (!oControl.getItemsContainerDomRef()) {
657
+ } else if (!aItems.length && !oControl.getItemsContainerDomRef()) {
634
658
  // no dom ref for compatibility reason start from scratch
635
659
  this.rebuildListItems(aContexts, oBindingInfo);
636
660
  } else if (!aDiff || !aItems.length && aDiff.length) {
@@ -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.103.1
25
+ * @version 1.106.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.103.1
28
+ * @version 1.106.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.103.1
128
+ * @version 1.106.0
129
129
  *
130
130
  * @public
131
131
  * @alias sap.m.HeaderContainer
@@ -315,11 +315,11 @@ sap.ui.define([
315
315
  if (!this._isMobileView()) {
316
316
  this._oArrowPrev = new Icon({
317
317
  id: this.getId() + "-scrl-prev-button"
318
- }).addStyleClass("sapMHdrCntrBtn").addStyleClass("sapMHdrCntrLeft");
318
+ }).addStyleClass("sapMHdrCntrBtn").addStyleClass("sapMHdrCntrLeft").addStyleClass("sapMHdrCntrBtnIcon");
319
319
  this.setAggregation("_prevButton", this._oArrowPrev, true);
320
320
  this._oArrowNext = new Icon({
321
321
  id: this.getId() + "-scrl-next-button"
322
- }).addStyleClass("sapMHdrCntrBtn").addStyleClass("sapMHdrCntrRight");
322
+ }).addStyleClass("sapMHdrCntrBtn").addStyleClass("sapMHdrCntrRight").addStyleClass("sapMHdrCntrBtnIcon");
323
323
  this.setAggregation("_nextButton", this._oArrowNext, true);
324
324
  }
325
325
  }
@@ -369,40 +369,42 @@ sap.ui.define([
369
369
  var aItems = this._filterVisibleItems();
370
370
  this.triggerScrollStop = true;
371
371
  var iScrollValue = 0, iScrollOffset = 15;
372
-
373
- var iScrollContainerScrollLeft = this._oScrollCntr.getDomRef().scrollLeft;
374
- var iScrollContainerWidth = iScrollContainerScrollLeft + this._oScrollCntr.getDomRef().clientWidth;
375
-
376
372
  var oFinalItem = aItems[aItems.length - 1];
377
-
378
- var iFinalElementScrollLeft = oFinalItem.getParent().getDomRef().offsetLeft;
379
- var iFinalElementContainerWidth = iFinalElementScrollLeft + oFinalItem.getDomRef().clientWidth;
380
-
381
- var bIsFinalItemVisible = ((iFinalElementContainerWidth <= iScrollContainerWidth) && (iFinalElementScrollLeft >= iScrollContainerScrollLeft));
382
- var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
383
-
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;
393
- } else {
394
- return bDiff < aDiff ? b : a;
395
- }
396
- });
397
- if (iCurrectScrollValue == 0) {
398
- iScrollValue = 0;
373
+ var oScrollCntrDomRef = this._oScrollCntr.getDomRef();
374
+ if ( oScrollCntrDomRef && oFinalItem){
375
+ var oFinalItemParentDomRef = oFinalItem.getParent().getDomRef();
376
+ var oFinalItemDomRef = oFinalItem.getDomRef();
377
+ var iScrollContainerScrollLeft = oScrollCntrDomRef.scrollLeft;
378
+ var iScrollContainerWidth = iScrollContainerScrollLeft + oScrollCntrDomRef.clientWidth;
379
+ var iFinalElementScrollLeft = oFinalItemParentDomRef.offsetLeft;
380
+ var iFinalElementContainerWidth = iFinalElementScrollLeft + oFinalItemDomRef.clientWidth;
381
+
382
+ var bIsFinalItemVisible = ((iFinalElementContainerWidth <= iScrollContainerWidth) && (iFinalElementScrollLeft >= iScrollContainerScrollLeft));
383
+ var iCurrectScrollValue = this._bRtl ? Math.abs(oEvent.currentTarget.scrollLeft) : oEvent.currentTarget.scrollLeft;
384
+
385
+ if (bIsFinalItemVisible) {
386
+ iScrollValue = this.aItemScrollValue[aItems.length - 1] - iScrollOffset - iCurrectScrollValue;
399
387
  this.triggerScrollStop = false;
400
388
  } else {
401
- iScrollValue = value - iScrollOffset - iCurrectScrollValue;
389
+ var value = this.aItemScrollValue.reduce(function(a, b) {
390
+ var aDiff = Math.abs(a - iCurrectScrollValue);
391
+ var bDiff = Math.abs(b - iCurrectScrollValue);
392
+ if (aDiff == bDiff) {
393
+ return a > b ? a : b;
394
+ } else {
395
+ return bDiff < aDiff ? b : a;
396
+ }
397
+ });
398
+ if (iCurrectScrollValue == 0) {
399
+ iScrollValue = 0;
400
+ this.triggerScrollStop = false;
401
+ } else {
402
+ iScrollValue = value - iScrollOffset - iCurrectScrollValue;
403
+ }
402
404
  }
403
- }
404
- this._scroll(iScrollValue, this.getScrollTime());
405
+ this._scroll(iScrollValue, this.getScrollTime());
405
406
  }
407
+ }
406
408
  }.bind(this));
407
409
  }
408
410
  }.bind(this)
@@ -5,11 +5,8 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- "sap/ui/core/delegate/ItemNavigation",
9
- "sap/base/assert",
10
- "sap/ui/dom/containsOrEquals",
11
- "sap/ui/events/KeyCodes"
12
- ], function (ItemNavigation, assert, containsOrEquals, KeyCodes) {
8
+ "sap/ui/core/delegate/ItemNavigation"
9
+ ], function (ItemNavigation) {
13
10
  "use strict";
14
11
 
15
12
  /**
@@ -19,7 +16,7 @@ sap.ui.define([
19
16
  * @since 1.67.0
20
17
  *
21
18
  * @author SAP SE
22
- * @version 1.103.1
19
+ * @version 1.106.0
23
20
  *
24
21
  * @constructor
25
22
  * @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.103.1
97
+ * @version 1.106.0
98
98
  *
99
99
  * @public
100
100
  * @alias sap.m.IconTabBar
@@ -375,10 +375,14 @@ sap.ui.define([
375
375
  * @return {this} this IconTabBar reference for chaining.
376
376
  */
377
377
  IconTabBar.prototype.setHeaderMode = function (mode) {
378
+ var oIconTabHeader = this._getIconTabHeader();
379
+
378
380
  // set internal property
379
381
  this.setProperty("headerMode", mode, true);
380
382
 
381
- this._getIconTabHeader().setMode(mode);
383
+ if (oIconTabHeader) {
384
+ oIconTabHeader.setMode(mode);
385
+ }
382
386
 
383
387
  return this;
384
388
  };
@@ -391,10 +395,14 @@ sap.ui.define([
391
395
  * @return {this} this IconTabBar reference for chaining.
392
396
  */
393
397
  IconTabBar.prototype.setTabDensityMode = function (mode) {
398
+ var oIconTabHeader = this._getIconTabHeader();
399
+
394
400
  // set internal property
395
401
  this.setProperty("tabDensityMode", mode);
396
402
 
397
- this._getIconTabHeader().setTabDensityMode(mode);
403
+ if (oIconTabHeader) {
404
+ oIconTabHeader.setTabDensityMode(mode);
405
+ }
398
406
 
399
407
  return this;
400
408
  };
@@ -408,10 +416,14 @@ sap.ui.define([
408
416
  * @return {this} this IconTabBar reference for chaining.
409
417
  */
410
418
  IconTabBar.prototype.setHeaderBackgroundDesign = function (headerBackgroundDesign) {
419
+ var oIconTabHeader = this._getIconTabHeader();
420
+
411
421
  // set internal property
412
422
  this.setProperty("headerBackgroundDesign", headerBackgroundDesign, true);
413
423
 
414
- this._getIconTabHeader().setBackgroundDesign(headerBackgroundDesign);
424
+ if (oIconTabHeader) {
425
+ oIconTabHeader.setBackgroundDesign(headerBackgroundDesign);
426
+ }
415
427
 
416
428
  return this;
417
429
  };
@@ -424,10 +436,14 @@ sap.ui.define([
424
436
  * @return {this} this IconTabBar reference for chaining.
425
437
  */
426
438
  IconTabBar.prototype.setEnableTabReordering = function (value) {
439
+ var oIconTabHeader = this._getIconTabHeader();
440
+
427
441
  // set internal property
428
442
  this.setProperty("enableTabReordering", value, true);
429
443
 
430
- this._getIconTabHeader().setEnableTabReordering(value);
444
+ if (oIconTabHeader) {
445
+ oIconTabHeader.setEnableTabReordering(value);
446
+ }
431
447
 
432
448
  return this;
433
449
  };
@@ -440,10 +456,14 @@ sap.ui.define([
440
456
  * @returns {this} this Reference to this in order to allow method chaining
441
457
  */
442
458
  IconTabBar.prototype.setAriaTexts = function (oAriaTexts) {
459
+ var oIconTabHeader = this._getIconTabHeader();
460
+
443
461
  // set internal property
444
462
  this.setProperty("ariaTexts", oAriaTexts, true);
445
463
 
446
- this._getIconTabHeader().setAriaTexts(oAriaTexts);
464
+ if (oIconTabHeader) {
465
+ oIconTabHeader.setAriaTexts(oAriaTexts);
466
+ }
447
467
 
448
468
  return this;
449
469
  };
@@ -451,7 +471,7 @@ sap.ui.define([
451
471
  IconTabBar.prototype.addStyleClass = function (sClass, bSuppressRerendering) {
452
472
  var oIconTabHeader = this._getIconTabHeader();
453
473
 
454
- if (IconTabBar._CLASSES_TO_COPY.indexOf(sClass) !== -1) {
474
+ if (oIconTabHeader && IconTabBar._CLASSES_TO_COPY.indexOf(sClass) !== -1) {
455
475
  oIconTabHeader.addStyleClass(sClass, true);
456
476
  }
457
477
 
@@ -461,7 +481,7 @@ sap.ui.define([
461
481
  IconTabBar.prototype.removeStyleClass = function (sClass, bSuppressRerendering) {
462
482
  var oIconTabHeader = this._getIconTabHeader();
463
483
 
464
- if (IconTabBar._CLASSES_TO_COPY.indexOf(sClass) !== -1) {
484
+ if (oIconTabHeader && IconTabBar._CLASSES_TO_COPY.indexOf(sClass) !== -1) {
465
485
  oIconTabHeader.removeStyleClass(sClass, true);
466
486
  }
467
487
 
@@ -589,9 +609,13 @@ sap.ui.define([
589
609
  * Lazy initializes the iconTabHeader aggregation.
590
610
  *
591
611
  * @private
592
- * @returns {sap.m.IconTabBar} Aggregation for the IconTabBar.
612
+ * @returns {sap.m.IconTabBar|null} Aggregation for the IconTabBar.
593
613
  */
594
614
  IconTabBar.prototype._getIconTabHeader = function () {
615
+ if (this.isDestroyed()) {
616
+ return null;
617
+ }
618
+
595
619
  var oControl = this.getAggregation("_header");
596
620
 
597
621
  if (!oControl) {
@@ -647,18 +671,15 @@ sap.ui.define([
647
671
  * @returns {this} this IconTabBar reference for chaining.
648
672
  */
649
673
  IconTabBar.prototype.setShowSelection = function (bValue) {
650
- this._getIconTabHeader().setShowSelection(bValue);
651
- return this;
652
- };
674
+ var oIconTabHeader = this._getIconTabHeader();
653
675
 
654
- /**
655
- * Reflector for the internal header's showSelection property.
656
- *
657
- * @public
658
- * @returns {boolean} The current property value.
659
- */
660
- IconTabBar.prototype.getShowSelection = function () {
661
- return this._getIconTabHeader().getShowSelection();
676
+ if (oIconTabHeader) {
677
+ oIconTabHeader.setShowSelection(bValue);
678
+ }
679
+
680
+ this.setProperty("showSelection", bValue, true);
681
+
682
+ return this;
662
683
  };
663
684
 
664
685
  /**
@@ -669,7 +690,12 @@ sap.ui.define([
669
690
  * @returns {this} this Pointer for chaining.
670
691
  */
671
692
  IconTabBar.prototype.setSelectedKey = function (sValue) {
672
- this._getIconTabHeader().setSelectedKey(sValue);
693
+ var oIconTabHeader = this._getIconTabHeader();
694
+
695
+ if (oIconTabHeader) {
696
+ oIconTabHeader.setSelectedKey(sValue);
697
+ }
698
+
673
699
  return this;
674
700
  };
675
701
 
@@ -680,7 +706,13 @@ sap.ui.define([
680
706
  * @returns {string} The current property value.
681
707
  */
682
708
  IconTabBar.prototype.getSelectedKey = function () {
683
- return this._getIconTabHeader().getSelectedKey();
709
+ var oIconTabHeader = this._getIconTabHeader();
710
+
711
+ if (oIconTabHeader) {
712
+ return oIconTabHeader.getSelectedKey();
713
+ }
714
+
715
+ return this.getMetadata().getProperty("selectedKey").getDefaultValue();
684
716
  };
685
717
 
686
718
  /**
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Control
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.103.1
41
+ * @version 1.106.0
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.103.1
97
+ * @version 1.106.0
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.103.1
34
+ * @version 1.106.0
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.103.1
80
+ * @version 1.106.0
81
81
  *
82
82
  * @constructor
83
83
  * @public
@@ -420,24 +420,7 @@ sap.ui.define([
420
420
  return;
421
421
  }
422
422
 
423
- var aItems = this.getItems();
424
- var iIndex = -1;
425
- var oItem;
426
-
427
- for (var i = 0; i < aItems.length; i++) {
428
- oItem = aItems[i];
429
-
430
- if (!oItem.isA("sap.m.IconTabFilter") || !oItem.getVisible()) {
431
- continue;
432
- }
433
-
434
- iIndex++;
435
-
436
- if ((this.oSelectedItem._getRootTab() || this.oSelectedItem) === oItem) {
437
- break;
438
- }
439
- }
440
-
423
+ var iIndex = this._oItemNavigation.getItemDomRefs().indexOf(this.oSelectedItem._getRootTab().getDomRef());
441
424
  this._oItemNavigation.setFocusedIndex(iIndex);
442
425
  };
443
426
 
@@ -484,6 +467,10 @@ sap.ui.define([
484
467
  */
485
468
  IconTabHeader.prototype.setSelectedKey = function (sKey) {
486
469
  if (sKey === this.getSelectedKey()) {
470
+ if (this._isInsideIconTabBar()) {
471
+ this.getParent().setProperty("selectedKey", sKey, true);
472
+ }
473
+
487
474
  return this;
488
475
  }
489
476
 
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @implements sap.m.IconTab
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.103.1
39
+ * @version 1.106.0
40
40
  *
41
41
  * @constructor
42
42
  * @public