@openui5/sap.uxap 1.126.1 → 1.128.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.
package/THIRDPARTY.txt CHANGED
@@ -468,7 +468,7 @@ License: Apache-2.0
468
468
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
469
  Contained in: lib/jsdoc/ui5/plugin.js
470
470
 
471
- Component: SAP Theming Base Content, version: 11.12.0
471
+ Component: SAP Theming Base Content, version: 11.16.1
472
472
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
473
473
  License: Apache-2.0
474
474
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.uxap",
3
- "version": "1.126.1",
3
+ "version": "1.128.0",
4
4
  "description": "OpenUI5 UI Library sap.uxap",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,9 +14,9 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.f": "1.126.1",
18
- "@openui5/sap.m": "1.126.1",
19
- "@openui5/sap.ui.core": "1.126.1",
20
- "@openui5/sap.ui.layout": "1.126.1"
17
+ "@openui5/sap.f": "1.128.0",
18
+ "@openui5/sap.m": "1.128.0",
19
+ "@openui5/sap.ui.core": "1.128.0",
20
+ "@openui5/sap.ui.layout": "1.128.0"
21
21
  }
22
22
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  <name>sap.uxap</name>
5
5
  <vendor>SAP SE</vendor>
6
- <version>1.126.1</version>
6
+ <version>1.128.0</version>
7
7
  <copyright>OpenUI5
8
8
  * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
9
9
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
@@ -27,8 +27,10 @@ sap.ui.define([
27
27
  "./library",
28
28
  "sap/uxap/AnchorBarRenderer",
29
29
  "sap/base/Log",
30
+ "sap/ui/base/ManagedObject",
31
+ // jQuery Plugin "scrollLeftRTL"
30
32
  "sap/ui/dom/jquery/scrollLeftRTL"
31
- ], function(Localization, Element, Library, Theming, jQuery, Button, MenuButton, mobileLibrary, Toolbar, IconPool, Item, ResizeHandler, ScrollEnablement, HorizontalLayout, Device, CustomData, Control, HierarchicalSelect, library, AnchorBarRenderer, Log) {
33
+ ], function(Localization, Element, Library, Theming, jQuery, Button, MenuButton, mobileLibrary, Toolbar, IconPool, Item, ResizeHandler, ScrollEnablement, HorizontalLayout, Device, CustomData, Control, HierarchicalSelect, library, AnchorBarRenderer, Log, ManagedObject) {
32
34
  "use strict";
33
35
 
34
36
  // shortcut for sap.m.SelectType
@@ -305,7 +307,7 @@ sap.ui.define([
305
307
  if (bButtonHasText && (!bIsSecondLevel || oButton.data("bTitleVisible") === true)) {
306
308
  var oPhoneItem = new Item({
307
309
  key: oButton.data("sectionId"),
308
- text: oButton.getText(),
310
+ text: ManagedObject.escapeSettingsValue(oButton.getText()),
309
311
  customData: [
310
312
  new CustomData({
311
313
  key: "secondLevel",
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class
23
23
  * @author SAP SE
24
- * @version 1.126.1
24
+ * @version 1.128.0
25
25
  * @since 1.26
26
26
  * @alias sap.uxap.BlockBaseMetadata
27
27
  * @extends sap.ui.core.ElementMetadata
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
22
22
  * @extends sap.ui.core.Element
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.126.1
25
+ * @version 1.128.0
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -101,7 +101,17 @@ sap.ui.define(['sap/ui/core/Element', './library'],
101
101
  *
102
102
  * If not set (and a landmark different than <code>sap.ui.core.AccessibleLandmarkRole.None</code> is defined), no label is set.
103
103
  */
104
- footerLabel : {type : "string", defaultValue : null}
104
+ footerLabel : {type : "string", defaultValue : null},
105
+
106
+ /**
107
+ * Texts which describe the landmark of the section inside the header container of the corresponding <code>sap.uxap.ObjectPageLayout</code> control.
108
+ *
109
+ * If not set, default "Expanded header" aria-label is set.
110
+ * @public
111
+ * @since 1.127.0
112
+ */
113
+
114
+ headerContentLabel: {type : "string", defaultValue : null}
105
115
  }
106
116
  }});
107
117
 
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @implements sap.uxap.IHeaderContent
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.126.1
43
+ * @version 1.128.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @implements sap.uxap.IHeaderTitle
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.126.1
45
+ * @version 1.128.0
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -1003,7 +1003,12 @@ sap.ui.define([
1003
1003
  * Show or hide the overflow button and action sheet according to visible buttons inside
1004
1004
  * @private
1005
1005
  */
1006
- ObjectPageHeader.prototype._adaptOverflow = function () {
1006
+ ObjectPageHeader.prototype._adaptOverflow = function (oEvent) {
1007
+ // Do not update the overflow button if _change event is fired for other properties' modifications
1008
+ if (oEvent.getParameter("name") !== "visible") {
1009
+ return;
1010
+ }
1011
+
1007
1012
  var aActionSheetButtons = this._oOverflowActionSheet.getButtons();
1008
1013
 
1009
1014
  var bHasVisible = aActionSheetButtons.some(function (oActionSheetButton) {
@@ -414,7 +414,7 @@ sap.ui.define([
414
414
  /**
415
415
  * Internal aggregation to hold the reference to the AnchorBar.
416
416
  */
417
- _anchorBar: {type: "sap.uxap.AnchorBar", multiple: false, visibility: "hidden"},
417
+ _anchorBar: {type: "sap.m.IconTabHeader", multiple: false, visibility: "hidden"},
418
418
 
419
419
  /**
420
420
  * Internal aggregation to hold the reference to the IconTabBar.
@@ -672,6 +672,7 @@ sap.ui.define([
672
672
  this._bInternalAnchorBarVisible = true;
673
673
  this._oVisibleSubSections = 0;
674
674
  this._initialABButtonsColorUpdateDone = false;
675
+ this._bDomElementsCached = false;
675
676
 
676
677
  this._$footerWrapper = []; //dom reference to the floating footer wrapper
677
678
  this._$opWrapper = []; //dom reference to the header for Dark mode background image scrolling scenario
@@ -757,7 +758,7 @@ sap.ui.define([
757
758
  */
758
759
  this._getHeaderContent().setContentDesign(this._getHeaderDesign());
759
760
 
760
- this._oABHelper._getAnchorBar().setProperty("upperCase", this.getUpperCaseAnchorBar(), true);
761
+ this._oABHelper._getAnchorBar().toggleStyleClass("sapUxAPAnchorBarUpperCase", this.getUpperCaseAnchorBar());
761
762
 
762
763
  this._storeScrollLocation(); // store location *before* applying the UXRules (=> while the old sectionInfo with positionTop of sections is still available)
763
764
  this._applyUxRules();
@@ -1244,13 +1245,10 @@ sap.ui.define([
1244
1245
  // Attach expand button event
1245
1246
  this._handleExpandButtonPressEventLifeCycle(true);
1246
1247
 
1247
- if (!this._initialABButtonsColorUpdateDone) {
1248
- this.getSections().forEach((section) => {
1249
- var sSectionId = section.getId();
1250
- this._updateAnchorBarButtonColor(sSectionId);
1251
- });
1252
- this._initialABButtonsColorUpdateDone = true;
1248
+ if (exists(oHeaderContent) && oHeaderContent._setLandmarkInfo) {
1249
+ oHeaderContent._setLandmarkInfo(this.getLandmarkInfo());
1253
1250
  }
1251
+
1254
1252
  };
1255
1253
 
1256
1254
  ObjectPageLayout.prototype._onAfterRenderingDomReady = function () {
@@ -1582,34 +1580,6 @@ sap.ui.define([
1582
1580
  }
1583
1581
  };
1584
1582
 
1585
- ObjectPageLayout.prototype._updateAnchorBarButtonColor = function(sSectionId) {
1586
- if (!this.getDomRef()) {
1587
- return;
1588
- }
1589
-
1590
- this.oAnchorbar = this._oABHelper._getAnchorBar();
1591
- this.oAnchorbarButtons = this.oAnchorbar.getAggregation("content");
1592
- this.oOPSections = this.getSections().filter((section) =>
1593
- section.getAggregation("subSections").length !== 0
1594
- );
1595
-
1596
- if (this.oAnchorbarButtons) {
1597
- this.oAnchorbarButtons.forEach((btn, index) => {
1598
- const sUniqueKey = btn.getCustomData().find((data) => data.getKey() === "sectionId").getValue();
1599
- if (sUniqueKey === sSectionId) {
1600
- const sNewStyleClass = "sapUxAPAnchorBarButtonColor" + this.oOPSections[index].getProperty("anchorBarButtonColor");
1601
- // Remove the old style class and add the new one
1602
- btn.aCustomStyleClasses.forEach((sStyleClass) => {
1603
- if (sStyleClass.startsWith("sapUxAPAnchorBarButtonColor")) {
1604
- btn.removeStyleClass(sStyleClass);
1605
- }
1606
- });
1607
- btn.addStyleClass(sNewStyleClass);
1608
- }
1609
- });
1610
- }
1611
- };
1612
-
1613
1583
  /**
1614
1584
  * if our container has not set a height, we need to enforce it or nothing will get displayed
1615
1585
  * the reason is the objectPageLayout has 2 containers with position:absolute, height:100%
@@ -1664,8 +1634,7 @@ sap.ui.define([
1664
1634
  * @private
1665
1635
  */
1666
1636
  ObjectPageLayout.prototype._toggleHeaderTitle = function (bExpand, bUserInteraction) {
1667
- var oHeaderTitle = this.getHeaderTitle(),
1668
- oAnchorBar = this._oABHelper._getAnchorBar();
1637
+ var oHeaderTitle = this.getHeaderTitle();
1669
1638
 
1670
1639
  // note that <code>this._$titleArea</code> is the placeholder [of the sticky area] where both the header title and header content are placed
1671
1640
  if (this._$titleArea.length) {
@@ -1679,8 +1648,6 @@ sap.ui.define([
1679
1648
  } else {
1680
1649
  oHeaderTitle && oHeaderTitle.snap(bUserInteraction);
1681
1650
  }
1682
-
1683
- oAnchorBar.scrollToCurrentlySelectedSection();
1684
1651
  };
1685
1652
 
1686
1653
  /**
@@ -1862,7 +1829,7 @@ sap.ui.define([
1862
1829
 
1863
1830
  if (bFirstSectionTitleHidden && (iFirstVisibleSectionVisibleSubSections === 1)) {
1864
1831
  // Title propagation support - set the borrowed title Dom ID to the first AnchorBar button
1865
- aContent = this.getAggregation("_anchorBar").getContent();
1832
+ aContent = this.getAggregation("_anchorBar").getItems();
1866
1833
  if (aContent.length) {
1867
1834
  this._oFirstVisibleSubSection._setBorrowedTitleDomId(aContent[0].getId() + "-content");
1868
1835
  }
@@ -1973,11 +1940,12 @@ sap.ui.define([
1973
1940
  return this;
1974
1941
  }
1975
1942
 
1976
- this._oABHelper._getAnchorBar().setShowPopover(bValue);
1943
+ this.setProperty("showAnchorBarPopover", bValue, true /* don't re-render the whole objectPageLayout */);
1944
+
1977
1945
  this._oABHelper._buildAnchorBar();
1978
1946
  this._setSelectedSectionId(sSelectedSectionId);
1979
1947
 
1980
- return this.setProperty("showAnchorBarPopover", bValue, true /* don't re-render the whole objectPageLayout */);
1948
+ return this;
1981
1949
  };
1982
1950
 
1983
1951
  ObjectPageLayout.prototype._getInternalAnchorBarVisible = function () {
@@ -1995,7 +1963,7 @@ sap.ui.define([
1995
1963
 
1996
1964
 
1997
1965
  ObjectPageLayout.prototype.setUpperCaseAnchorBar = function (bValue) {
1998
- this._oABHelper._getAnchorBar().setProperty("upperCase", bValue);
1966
+ this._oABHelper._getAnchorBar().toggleStyleClass("sapUxAPAnchorBarUpperCase", bValue);
1999
1967
  return this.setProperty("upperCaseAnchorBar", bValue, true /* don't re-render the whole objectPageLayout */);
2000
1968
  };
2001
1969
 
@@ -2125,8 +2093,8 @@ sap.ui.define([
2125
2093
  return;
2126
2094
  }
2127
2095
 
2128
- if (oAnchorBar && oSelectedSectionInfo.buttonId) {
2129
- oAnchorBar.setSelectedButton(oSelectedSectionInfo.buttonId);
2096
+ if (oAnchorBar) {
2097
+ this._oABHelper.selectAnchorForSection(sSelectedSectionId);
2130
2098
  this.setAssociation("selectedSection", sSelectedSectionId, true);
2131
2099
  }
2132
2100
  };
@@ -2142,12 +2110,6 @@ sap.ui.define([
2142
2110
  * @private
2143
2111
  */
2144
2112
  ObjectPageLayout.prototype._cleanMemory = function () {
2145
- var oAnchorBar = this.getAggregation("_anchorBar");
2146
-
2147
- if (oAnchorBar) {
2148
- oAnchorBar._resetControl();
2149
- }
2150
-
2151
2113
  this._oSectionInfo = {};
2152
2114
  this._aSectionBases = [];
2153
2115
  };
@@ -2180,7 +2142,20 @@ sap.ui.define([
2180
2142
  * @ui5-restricted
2181
2143
  */
2182
2144
  ObjectPageLayout.prototype._triggerVisibleSubSectionsEvents = function () {
2145
+ var sSelectedSectionId = this.getSelectedSection(),
2146
+ oSelectedSection = Element.getElementById(sSelectedSectionId),
2147
+ sSelectedSubSectionId = oSelectedSection?.getSelectedSubSection(),
2148
+ bScrollDomReady = this._bDomElementsCached;
2149
+
2183
2150
  this._bDelayDOMBasedCalculations = false;
2151
+
2152
+ // Making sure lazyloading is executed with the correct selected Section/SubSection (if any) and the scroll is at the relevant position
2153
+ if (sSelectedSubSectionId && bScrollDomReady && this._oSectionInfo[sSelectedSubSectionId]?.positionTop !== this._$opWrapper.scrollTop()) {
2154
+ this.scrollToSection(sSelectedSubSectionId, 0);
2155
+ } else if (sSelectedSectionId && bScrollDomReady && this._oSectionInfo[sSelectedSectionId]?.positionTop !== this._$opWrapper.scrollTop()) {
2156
+ this.scrollToSection(sSelectedSectionId, 0);
2157
+ }
2158
+
2184
2159
  if (this.getEnableLazyLoading() && this._oLazyLoading) {
2185
2160
  this._oLazyLoading._triggerVisibleSubSectionsEvents();
2186
2161
  }
@@ -2248,7 +2223,7 @@ sap.ui.define([
2248
2223
  oToSelect._allowPropagationToLoadedViews(true); /* include the newly selected tab back to the propagation chain */
2249
2224
 
2250
2225
  this._setCurrentTabSection(oSection);
2251
- this.getAggregation("_anchorBar").setSelectedButton(this._oSectionInfo[oToSelect.getId()].buttonId);
2226
+ this._oABHelper.selectAnchorForSection(oToSelect.getId());
2252
2227
  this.setAssociation("selectedSection", oToSelect.getId(), true);
2253
2228
  this._checkSubSectionVisibilityChange();
2254
2229
  }
@@ -2333,8 +2308,8 @@ sap.ui.define([
2333
2308
  }
2334
2309
  };
2335
2310
 
2336
- ObjectPageLayout.prototype.onAnchorBarTabPress = function (oEvent) {
2337
- var oSectionBase = Element.getElementById(oEvent.getParameter("sectionBaseId")),
2311
+ ObjectPageLayout.prototype.onAnchorBarTabPress = function (sectionBaseId) {
2312
+ var oSectionBase = Element.getElementById(sectionBaseId),
2338
2313
  bIsSubSection = oSectionBase.isA("sap.uxap.ObjectPageSubSection"),
2339
2314
  oSection,
2340
2315
  oSubSection;
@@ -3096,7 +3071,7 @@ sap.ui.define([
3096
3071
  }
3097
3072
 
3098
3073
  if (oSectionBase && this._oSectionInfo[sSectionId]) {
3099
- bUpdateAnchorBar && oAnchorBar.setSelectedButton(this._oSectionInfo[sSectionId].buttonId);
3074
+ bUpdateAnchorBar && this._oABHelper.selectAnchorForSection(sSectionId);
3100
3075
  this.setAssociation("selectedSection", ObjectPageSection._getClosestSection(sSectionId).getId(), true);
3101
3076
  this._setSectionsFocusValues(sSectionId);
3102
3077
  }
@@ -3131,6 +3106,9 @@ sap.ui.define([
3131
3106
 
3132
3107
  this._adjustHeaderHeights();
3133
3108
  this._requestAdjustLayout(true); // call adjust layout to calculate the new section sizes
3109
+ if (this.getEnableLazyLoading() && this._oLazyLoading) {
3110
+ this._oLazyLoading.doLazyLoading();
3111
+ }
3134
3112
  };
3135
3113
 
3136
3114
  ObjectPageLayout.prototype.triggerPendingLayoutUpdates = function () {
@@ -3146,7 +3124,7 @@ sap.ui.define([
3146
3124
  };
3147
3125
 
3148
3126
  ObjectPageLayout.prototype._adjustTitlePositioning = function (oEvent) {
3149
- if (!this._$titleArea.length || !this._$opWrapper.length) {
3127
+ if (!this._$titleArea?.length || !this._$opWrapper?.length) {
3150
3128
  return;
3151
3129
  }
3152
3130
 
@@ -5173,6 +5151,7 @@ sap.ui.define([
5173
5151
  this.$("stickyAnchorBar").attr("aria-label", sNavigationText);
5174
5152
  }
5175
5153
  this.$("anchBar").attr("aria-label", sToolbarText);
5154
+
5176
5155
  };
5177
5156
 
5178
5157
  /**