@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 +1 -1
- package/package.json +5 -5
- package/src/sap/uxap/.library +1 -1
- package/src/sap/uxap/AnchorBar.js +4 -2
- package/src/sap/uxap/BlockBaseMetadata.js +1 -1
- package/src/sap/uxap/ObjectPageAccessibleLandmarkInfo.js +12 -2
- package/src/sap/uxap/ObjectPageDynamicHeaderContent.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderTitle.js +1 -1
- package/src/sap/uxap/ObjectPageHeader.js +6 -1
- package/src/sap/uxap/ObjectPageLayout.js +36 -57
- package/src/sap/uxap/ObjectPageLayoutABHelper.js +178 -280
- package/src/sap/uxap/ObjectPageLazyLoader.js +1 -1
- package/src/sap/uxap/ObjectPageSection.js +1 -7
- package/src/sap/uxap/ObjectPageSubSection.js +1 -1
- package/src/sap/uxap/changeHandler/AddIFrameObjectPageLayout.js +5 -10
- package/src/sap/uxap/changeHandler/MoveObjectPageSection.js +8 -13
- package/src/sap/uxap/changeHandler/RenameObjectPageSection.js +5 -10
- package/src/sap/uxap/changeHandler/UnstashObjectPageSection.js +5 -10
- package/src/sap/uxap/designtime/ObjectPageLayout.designtime.js +11 -13
- package/src/sap/uxap/library.js +2 -2
- package/src/sap/uxap/messagebundle_en_US_sappsd.properties +9 -9
- package/src/sap/uxap/messagebundle_en_US_saptrc.properties +41 -41
- package/src/sap/uxap/themes/base/AnchorBar.less +1 -2
- package/src/sap/uxap/themes/base/ObjectPageHeaderContent.less +4 -0
- package/src/sap/uxap/themes/base/ObjectPageLayout.less +13 -0
- package/src/sap/uxap/themes/sap_hcb/base_AnchorBar.less +1 -2
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.
|
|
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.
|
|
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.
|
|
18
|
-
"@openui5/sap.m": "1.
|
|
19
|
-
"@openui5/sap.ui.core": "1.
|
|
20
|
-
"@openui5/sap.ui.layout": "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
|
}
|
package/src/sap/uxap/.library
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<name>sap.uxap</name>
|
|
5
5
|
<vendor>SAP SE</vendor>
|
|
6
|
-
<version>1.
|
|
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",
|
|
@@ -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.
|
|
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
|
|
|
@@ -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.
|
|
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().
|
|
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 (
|
|
1248
|
-
|
|
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").
|
|
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.
|
|
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
|
|
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().
|
|
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
|
|
2129
|
-
|
|
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.
|
|
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 (
|
|
2337
|
-
var oSectionBase = Element.getElementById(
|
|
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 &&
|
|
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
|
|
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
|
/**
|