@openui5/sap.uxap 1.112.2 → 1.114.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/BlockBase.js +2 -2
- package/src/sap/uxap/BlockBaseMetadata.js +1 -1
- package/src/sap/uxap/HierarchicalSelect.js +3 -5
- package/src/sap/uxap/ObjectPageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderContent.js +4 -2
- package/src/sap/uxap/ObjectPageDynamicHeaderTitle.js +2 -2
- package/src/sap/uxap/ObjectPageHeader.js +8 -5
- package/src/sap/uxap/ObjectPageHeaderContent.js +2 -3
- package/src/sap/uxap/ObjectPageHeaderContentRenderer.js +6 -0
- package/src/sap/uxap/ObjectPageHeaderRenderer.js +1 -1
- package/src/sap/uxap/ObjectPageLayout.js +66 -14
- package/src/sap/uxap/ObjectPageLayoutRenderer.js +5 -2
- package/src/sap/uxap/ObjectPageLazyLoader.js +5 -4
- package/src/sap/uxap/ObjectPageSubSection.js +15 -14
- package/src/sap/uxap/changeHandler/AddIFrameObjectPageLayout.js +1 -1
- package/src/sap/uxap/changeHandler/MoveObjectPageSection.js +1 -1
- package/src/sap/uxap/changeHandler/RenameObjectPageSection.js +1 -1
- package/src/sap/uxap/designtime/ObjectPageSection.designtime.js +13 -10
- package/src/sap/uxap/library.js +14 -8
- package/src/sap/uxap/messagebundle_de.properties +1 -1
- package/src/sap/uxap/rules/ObjectPageLayout.support.js +3 -3
package/THIRDPARTY.txt
CHANGED
|
@@ -478,7 +478,7 @@ License: Apache-2.0
|
|
|
478
478
|
License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
479
479
|
Contained in: lib/jsdoc/ui5/plugin.js
|
|
480
480
|
|
|
481
|
-
Component: SAP Theming Base Content, version: 11.
|
|
481
|
+
Component: SAP Theming Base Content, version: 11.3.0
|
|
482
482
|
Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
|
|
483
483
|
License: Apache-2.0
|
|
484
484
|
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.114.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.114.0",
|
|
18
|
+
"@openui5/sap.m": "1.114.0",
|
|
19
|
+
"@openui5/sap.ui.core": "1.114.0",
|
|
20
|
+
"@openui5/sap.ui.layout": "1.114.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.114.0</version>
|
|
7
7
|
<copyright>OpenUI5
|
|
8
8
|
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
|
|
9
9
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
|
|
@@ -245,11 +245,11 @@ sap.ui.define([
|
|
|
245
245
|
* @param {*} bSuppressInvalidate invalidate
|
|
246
246
|
*/
|
|
247
247
|
BlockBase.prototype.setParent = function (oParent, sAggregationName, bSuppressInvalidate) {
|
|
248
|
+
Control.prototype.setParent.call(this, oParent, sAggregationName, bSuppressInvalidate);
|
|
249
|
+
|
|
248
250
|
if (oParent instanceof library.ObjectPageSubSection) {
|
|
249
251
|
this._bLazyLoading = true; //we activate the block lazy loading since we are within an objectPageLayout
|
|
250
252
|
this._oParentObjectPageSubSection = oParent;
|
|
251
|
-
} else {
|
|
252
|
-
Control.prototype.setParent.call(this, oParent, sAggregationName, bSuppressInvalidate);
|
|
253
253
|
}
|
|
254
254
|
};
|
|
255
255
|
|
|
@@ -9,10 +9,8 @@ sap.ui.define([
|
|
|
9
9
|
"sap/m/Select",
|
|
10
10
|
"sap/ui/Device",
|
|
11
11
|
"sap/ui/thirdparty/jquery",
|
|
12
|
-
"./
|
|
13
|
-
|
|
14
|
-
"sap/ui/thirdparty/jqueryui/jquery-ui-position"
|
|
15
|
-
], function(Select, Device, jQuery, library, HierarchicalSelectRenderer /*jqueryUiPosition,*/) {
|
|
12
|
+
"./HierarchicalSelectRenderer"
|
|
13
|
+
], function(Select, Device, jQuery, HierarchicalSelectRenderer) {
|
|
16
14
|
"use strict";
|
|
17
15
|
|
|
18
16
|
/**
|
|
@@ -99,7 +97,7 @@ sap.ui.define([
|
|
|
99
97
|
* Keyboard handling requirement to have the same behavior on [ENTER] key
|
|
100
98
|
* as on [SPACE] key (namely, to toggle the open state the select dropdown)
|
|
101
99
|
*/
|
|
102
|
-
HierarchicalSelect.prototype.onsapenter = Select.prototype.
|
|
100
|
+
HierarchicalSelect.prototype.onsapenter = Select.prototype.ontap;
|
|
103
101
|
|
|
104
102
|
/**
|
|
105
103
|
* Keyboard handling of [UP], [PAGE-UP], [PAGE-DOWN], [HOME], [END] keys
|
|
@@ -40,7 +40,7 @@ sap.ui.define([
|
|
|
40
40
|
* @implements sap.uxap.IHeaderContent
|
|
41
41
|
*
|
|
42
42
|
* @author SAP SE
|
|
43
|
-
* @version 1.
|
|
43
|
+
* @version 1.114.0
|
|
44
44
|
*
|
|
45
45
|
* @constructor
|
|
46
46
|
* @public
|
|
@@ -65,7 +65,8 @@ sap.ui.define([
|
|
|
65
65
|
* @param bPinnable
|
|
66
66
|
* @param sStableId
|
|
67
67
|
*/
|
|
68
|
-
ObjectPageDynamicHeaderContent.createInstance = function (aContent, bVisible, sContentDesign
|
|
68
|
+
ObjectPageDynamicHeaderContent.createInstance = function (aContent, bVisible, sContentDesign /* not used */, bPinnable, sStableId) {
|
|
69
|
+
|
|
69
70
|
return new ObjectPageDynamicHeaderContent({
|
|
70
71
|
content: aContent,
|
|
71
72
|
visible: bVisible,
|
|
@@ -101,6 +102,7 @@ sap.ui.define([
|
|
|
101
102
|
/**
|
|
102
103
|
* Required by the {@link sap.uxap.IHeaderContent} interface.
|
|
103
104
|
* @param sDesign
|
|
105
|
+
* @deprecated As of version 1.40.1
|
|
104
106
|
*/
|
|
105
107
|
ObjectPageDynamicHeaderContent.prototype.setContentDesign = function (sDesign) {
|
|
106
108
|
// implementation not supported
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @implements sap.uxap.IHeaderTitle
|
|
43
43
|
*
|
|
44
44
|
* @author SAP SE
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.114.0
|
|
46
46
|
*
|
|
47
47
|
* @constructor
|
|
48
48
|
* @public
|
|
@@ -129,7 +129,7 @@ sap.ui.define([
|
|
|
129
129
|
/**
|
|
130
130
|
* Required by the {@link sap.uxap.IHeaderTitle} interface.
|
|
131
131
|
*
|
|
132
|
-
* @deprecated
|
|
132
|
+
* @deprecated As of version 1.40.1
|
|
133
133
|
*/
|
|
134
134
|
ObjectPageDynamicHeaderTitle.prototype.getHeaderDesign = function () {
|
|
135
135
|
return library.ObjectPageHeaderDesign.Light;
|
|
@@ -168,7 +168,7 @@ sap.ui.define([
|
|
|
168
168
|
* Determines the design of the header - Light or Dark.
|
|
169
169
|
* <b>Note: </b>This property is deprecated. It will continue to work in the Blue Crystal theme,
|
|
170
170
|
* but it will not be taken into account for the Belize themes.
|
|
171
|
-
* @deprecated
|
|
171
|
+
* @deprecated As of version 1.40.1
|
|
172
172
|
*/
|
|
173
173
|
headerDesign: {
|
|
174
174
|
type: "sap.uxap.ObjectPageHeaderDesign",
|
|
@@ -234,7 +234,7 @@ sap.ui.define([
|
|
|
234
234
|
/**
|
|
235
235
|
*
|
|
236
236
|
* A list of all the active link elements in the BreadCrumbs control.
|
|
237
|
-
* @deprecated
|
|
237
|
+
* @deprecated As of version 1.50, use the <code>breadcrumbs</code> aggregation instead.
|
|
238
238
|
*/
|
|
239
239
|
breadCrumbsLinks: {type: "sap.m.Link", multiple: true, singularName: "breadCrumbLink", deprecated: true},
|
|
240
240
|
|
|
@@ -382,7 +382,7 @@ sap.ui.define([
|
|
|
382
382
|
};
|
|
383
383
|
|
|
384
384
|
/**
|
|
385
|
-
* @deprecated
|
|
385
|
+
* @deprecated As of version 1.50, <code>breadCrumbsLinks</code> has been deprecated
|
|
386
386
|
*/
|
|
387
387
|
ObjectPageHeader.getMetadata().forwardAggregation(
|
|
388
388
|
"breadCrumbsLinks",
|
|
@@ -538,7 +538,7 @@ sap.ui.define([
|
|
|
538
538
|
};
|
|
539
539
|
|
|
540
540
|
/**
|
|
541
|
-
* @deprecated
|
|
541
|
+
* @deprecated As of version 1.40.1
|
|
542
542
|
*/
|
|
543
543
|
ObjectPageHeader.prototype.setHeaderDesign = function (sHeaderDesign) {
|
|
544
544
|
this.setProperty("headerDesign", sHeaderDesign);
|
|
@@ -655,6 +655,7 @@ sap.ui.define([
|
|
|
655
655
|
oAction.setVisible = function (bVisible) {
|
|
656
656
|
oAction._setInternalVisible(bVisible, true);
|
|
657
657
|
Button.prototype.setVisible.call(this, bVisible);
|
|
658
|
+
that._adaptLayout();
|
|
658
659
|
};
|
|
659
660
|
|
|
660
661
|
oAction.onAfterRendering = function () {
|
|
@@ -1073,11 +1074,13 @@ sap.ui.define([
|
|
|
1073
1074
|
|
|
1074
1075
|
/**
|
|
1075
1076
|
* Determines whether to render the <code>breadcrumbs</code> or the <code>breadCrumbsLinks</code> aggregation.
|
|
1076
|
-
* If <code>breadcrumbs</code> is set, the <code>breadCrumbsLinks</code> is omitted.
|
|
1077
1077
|
* @private
|
|
1078
1078
|
*/
|
|
1079
1079
|
ObjectPageHeader.prototype._getBreadcrumbsAggregation = function () {
|
|
1080
1080
|
var oBreadCrumbs = this.getBreadcrumbs(),
|
|
1081
|
+
/**
|
|
1082
|
+
* @deprecated As of version 1.50, <code>breadCrumbsLinks</code> has been deprecated
|
|
1083
|
+
*/
|
|
1081
1084
|
oBreadCrumbsLegacy = this._lazyLoadInternalAggregation('_breadCrumbs', true);
|
|
1082
1085
|
|
|
1083
1086
|
return oBreadCrumbs
|
|
@@ -70,7 +70,7 @@ sap.ui.define([
|
|
|
70
70
|
* Determines the design of the header - Light or Dark.
|
|
71
71
|
* <b>Note: </b>This property is deprecated. It will continue to work in the Blue Crystal theme,
|
|
72
72
|
* but it will not be taken into account for the Belize themes.
|
|
73
|
-
* @deprecated
|
|
73
|
+
* @deprecated As of version 1.40.1
|
|
74
74
|
*/
|
|
75
75
|
contentDesign: {
|
|
76
76
|
type: "sap.uxap.ObjectPageHeaderDesign",
|
|
@@ -216,11 +216,10 @@ sap.ui.define([
|
|
|
216
216
|
* @param bPinnable
|
|
217
217
|
* @param sStableId
|
|
218
218
|
*/
|
|
219
|
-
ObjectPageHeaderContent.createInstance = function (aContent, bVisible, sContentDesign
|
|
219
|
+
ObjectPageHeaderContent.createInstance = function (aContent, bVisible, sContentDesign /* not used */, bPinnable, sStableId) {
|
|
220
220
|
return new ObjectPageHeaderContent({
|
|
221
221
|
content: aContent,
|
|
222
222
|
visible: bVisible,
|
|
223
|
-
contentDesign: sContentDesign,
|
|
224
223
|
id: sStableId
|
|
225
224
|
});
|
|
226
225
|
};
|
|
@@ -32,6 +32,9 @@ sap.ui.define([
|
|
|
32
32
|
if (bRenderEditBtn) {
|
|
33
33
|
oRm.openStart("div", oControl)
|
|
34
34
|
.class("sapUxAPObjectPageHeaderContentFlexBox")
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated As of version 1.40.1
|
|
37
|
+
*/
|
|
35
38
|
.class("sapUxAPObjectPageHeaderContentDesign-" + oControl.getContentDesign());
|
|
36
39
|
|
|
37
40
|
if (oHeader) {
|
|
@@ -45,6 +48,9 @@ sap.ui.define([
|
|
|
45
48
|
if (bRenderEditBtn) {
|
|
46
49
|
oRm.class("sapUxAPObjectPageHeaderContentCellLeft");
|
|
47
50
|
} else {
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated As of version 1.40.1
|
|
53
|
+
*/
|
|
48
54
|
oRm.class("sapUxAPObjectPageHeaderContentDesign-" + oControl.getContentDesign());
|
|
49
55
|
if (oHeader) {
|
|
50
56
|
oRm.class('sapUxAPObjectPageContentObjectImage-' + oHeader.getObjectImageShape());
|
|
@@ -30,7 +30,7 @@ sap.ui.define(["./ObjectImageHelper", "sap/ui/Device"], function (ObjectImageHel
|
|
|
30
30
|
|
|
31
31
|
oRm.openStart("div", oControl).class('sapUxAPObjectPageHeader');
|
|
32
32
|
/**
|
|
33
|
-
* @deprecated
|
|
33
|
+
* @deprecated As of version 1.40.1
|
|
34
34
|
*/
|
|
35
35
|
oRm.class('sapUxAPObjectPageHeaderDesign-' + oControl.getHeaderDesign());
|
|
36
36
|
oRm.openEnd();
|
|
@@ -33,7 +33,8 @@ sap.ui.define([
|
|
|
33
33
|
"sap/base/util/merge",
|
|
34
34
|
"sap/ui/events/KeyCodes",
|
|
35
35
|
"sap/ui/dom/getFirstEditableInput",
|
|
36
|
-
'sap/ui/dom/units/Rem'
|
|
36
|
+
'sap/ui/dom/units/Rem',
|
|
37
|
+
"sap/ui/base/Object"
|
|
37
38
|
], function(
|
|
38
39
|
jQuery,
|
|
39
40
|
ManagedObjectObserver,
|
|
@@ -62,7 +63,8 @@ sap.ui.define([
|
|
|
62
63
|
merge,
|
|
63
64
|
KeyCodes,
|
|
64
65
|
getFirstEditableInput,
|
|
65
|
-
DomUnitsRem
|
|
66
|
+
DomUnitsRem,
|
|
67
|
+
BaseObject
|
|
66
68
|
) {
|
|
67
69
|
"use strict";
|
|
68
70
|
|
|
@@ -712,7 +714,7 @@ sap.ui.define([
|
|
|
712
714
|
this._createHeaderContent();
|
|
713
715
|
|
|
714
716
|
/**
|
|
715
|
-
* @deprecated
|
|
717
|
+
* @deprecated As of version 1.40.1
|
|
716
718
|
*/
|
|
717
719
|
this._getHeaderContent().setContentDesign(this._getHeaderDesign());
|
|
718
720
|
|
|
@@ -1193,6 +1195,7 @@ sap.ui.define([
|
|
|
1193
1195
|
clearTimeout(this._iAfterRenderingDomReadyTimeout);
|
|
1194
1196
|
}
|
|
1195
1197
|
this._iAfterRenderingDomReadyTimeout = setTimeout(this._onAfterRenderingDomReady.bind(this), this._getDOMCalculationDelay());
|
|
1198
|
+
this._adjustTitlePositioning(); // adjust early to prevent visual offset/flickering of content
|
|
1196
1199
|
}
|
|
1197
1200
|
|
|
1198
1201
|
if (oHeaderContent && oHeaderContent.supportsPinUnpin()) {
|
|
@@ -1236,7 +1239,7 @@ sap.ui.define([
|
|
|
1236
1239
|
}
|
|
1237
1240
|
// enable scrolling in non-fullscreen-mode only
|
|
1238
1241
|
// (to avoid any scrollbar appearing even for an instance while we snap/unsnap header)
|
|
1239
|
-
this._toggleScrolling(!this._bAllContentFitsContainer);
|
|
1242
|
+
this._toggleScrolling(!this._bAllContentFitsContainer || this._headerBiggerThanAllowedToBeFixed());
|
|
1240
1243
|
|
|
1241
1244
|
this._registerOnContentResize();
|
|
1242
1245
|
|
|
@@ -1405,8 +1408,49 @@ sap.ui.define([
|
|
|
1405
1408
|
horizontal: false,
|
|
1406
1409
|
vertical: true
|
|
1407
1410
|
});
|
|
1411
|
+
|
|
1412
|
+
this._oScroller.setOnAfterScrollToElement(this._onAfterScrollToElement.bind(this));
|
|
1408
1413
|
};
|
|
1409
1414
|
|
|
1415
|
+
/**
|
|
1416
|
+
* Callback for the end of the scroll triggered from <code>scrollToElement</code>
|
|
1417
|
+
* of <code>sap.ui.core.delegate.ScrollEnablement</code>.
|
|
1418
|
+
*
|
|
1419
|
+
* Required for Safari and IE11 (where there is no browser automatic scroll adjustment,
|
|
1420
|
+
* see <code>overflow-anchor</code> CSS property).
|
|
1421
|
+
*
|
|
1422
|
+
* The execution of <code>scrollToElement</code> changes the current scroll position,
|
|
1423
|
+
* so we check if the new scroll position entails subsequent change of the scroll
|
|
1424
|
+
* container of our page(namely: snapping of the header, which involves removal
|
|
1425
|
+
* of the anchorBar from the top of the scroll container and placing it
|
|
1426
|
+
* in the title area above the scroll container instead).
|
|
1427
|
+
*
|
|
1428
|
+
* If such a change (namely, removal of the anchorBar from the top of the scroll container)
|
|
1429
|
+
* should occur, then the content bellow the removed anchorBar will became offset with X pixels,
|
|
1430
|
+
* where X is the anchorBar height => the element [provided to <code>scrollToElement </code>]
|
|
1431
|
+
* will be misplaced as a result.
|
|
1432
|
+
*
|
|
1433
|
+
* Therefore here we synchronously call the listener to the "scroll" event to check if
|
|
1434
|
+
* it entails the above snapping and subsequent misplacement => if it entails it,
|
|
1435
|
+
* then we adjust back the scroll position to correct the misplacement of the scrolled element.
|
|
1436
|
+
*
|
|
1437
|
+
* @private
|
|
1438
|
+
*/
|
|
1439
|
+
ObjectPageLayout.prototype._onAfterScrollToElement = function () {
|
|
1440
|
+
var iScrollTop = this._$opWrapper.scrollTop(),
|
|
1441
|
+
bStickyAnchorBarBefore = this._bStickyAnchorBar;
|
|
1442
|
+
|
|
1443
|
+
// synchronously call the listener for the "scroll" event, to trigger any pending toggling of the header
|
|
1444
|
+
this._onScroll({ target: { scrollTop: iScrollTop}});
|
|
1445
|
+
|
|
1446
|
+
// if the anchorBar was sticked (removed from the topmost part of the scrollable area) =>
|
|
1447
|
+
// all elements bellow it became offset with X pixels, where X is the anchorBar height =>
|
|
1448
|
+
// the element (target of <code>scrollToElement</code>) was offset respectively =>
|
|
1449
|
+
// adjust the scroll position to ensure the element is back visible (outside scroll overflow)
|
|
1450
|
+
if (this._bStickyAnchorBar && !bStickyAnchorBarBefore && this._$opWrapper.scrollTop() === iScrollTop) {
|
|
1451
|
+
this._$opWrapper.scrollTop(iScrollTop - this.iAnchorBarHeight);
|
|
1452
|
+
}
|
|
1453
|
+
};
|
|
1410
1454
|
/**
|
|
1411
1455
|
* Sets the section that should be selected.
|
|
1412
1456
|
*
|
|
@@ -1793,7 +1837,7 @@ sap.ui.define([
|
|
|
1793
1837
|
|
|
1794
1838
|
var oSubsection;
|
|
1795
1839
|
|
|
1796
|
-
if (oSection
|
|
1840
|
+
if (BaseObject.isA(oSection, "sap.uxap.ObjectPageSubSection")) {
|
|
1797
1841
|
oSubsection = oSection;
|
|
1798
1842
|
oSection = oSection.getParent();
|
|
1799
1843
|
} else {
|
|
@@ -2101,7 +2145,7 @@ sap.ui.define([
|
|
|
2101
2145
|
|
|
2102
2146
|
// the current tab changed => update the <code>this._bAllContentFitsContainer</code> accordingly
|
|
2103
2147
|
this._bAllContentFitsContainer = this._hasSingleVisibleFullscreenSubSection(oToSelect);
|
|
2104
|
-
this._toggleScrolling(!this._bAllContentFitsContainer);
|
|
2148
|
+
this._toggleScrolling(!this._bAllContentFitsContainer || this._headerBiggerThanAllowedToBeFixed());
|
|
2105
2149
|
|
|
2106
2150
|
bFullscreenModeChanged = this._bAllContentFitsContainer !== bWasFullscreenMode;
|
|
2107
2151
|
if (bFullscreenModeChanged && !this._bHeaderExpanded) {
|
|
@@ -3004,7 +3048,9 @@ sap.ui.define([
|
|
|
3004
3048
|
var oWrapperElement = this._$opWrapper.get(0),
|
|
3005
3049
|
oTitleElement = this._$titleArea.get(0),
|
|
3006
3050
|
iTitleHeight = oTitleElement.getBoundingClientRect().height,
|
|
3007
|
-
iTitleWidth = oTitleElement.getBoundingClientRect().width
|
|
3051
|
+
iTitleWidth = oTitleElement.getBoundingClientRect().width,
|
|
3052
|
+
iScrollbarWidth = getScrollbarSize().width,
|
|
3053
|
+
sClipPath;
|
|
3008
3054
|
|
|
3009
3055
|
// the top area of the scroll container is reserved for showing the title element,
|
|
3010
3056
|
// (where the title element is positioned absolutely on top of the scroll container),
|
|
@@ -3013,6 +3059,7 @@ sap.ui.define([
|
|
|
3013
3059
|
// (1) add top padding for the area underneath the title element
|
|
3014
3060
|
// so that the title does not overlap the content of the scroll container
|
|
3015
3061
|
oWrapperElement.style.paddingTop = iTitleHeight + "px";
|
|
3062
|
+
oWrapperElement.style.scrollPaddingTop = iTitleHeight + "px";
|
|
3016
3063
|
if (this._oScroller) {
|
|
3017
3064
|
this._oScroller.setScrollPaddingTop(iTitleHeight);
|
|
3018
3065
|
}
|
|
@@ -3020,10 +3067,17 @@ sap.ui.define([
|
|
|
3020
3067
|
// (2) also make the area underneath the title invisible (using clip-path)
|
|
3021
3068
|
// to allow usage of *transparent background* of the title element
|
|
3022
3069
|
// (otherwise content from the scroll *overflow* will show underneath the transparent title element)
|
|
3023
|
-
|
|
3070
|
+
sClipPath = 'polygon(0px ' + iTitleHeight + 'px, '
|
|
3024
3071
|
+ Math.floor(iTitleWidth) + 'px ' + iTitleHeight + 'px, '
|
|
3025
3072
|
+ Math.floor(iTitleWidth) + 'px 0, 100% 0, 100% 100%, 0 100%)';
|
|
3026
3073
|
|
|
3074
|
+
if (this.oCore.getConfiguration().getRTL()) {
|
|
3075
|
+
sClipPath = 'polygon(0px 0px, ' + iScrollbarWidth + 'px 0px, '
|
|
3076
|
+
+ iScrollbarWidth + 'px ' + iTitleHeight + 'px, 100% '
|
|
3077
|
+
+ iTitleHeight + 'px, 100% 100%, 0 100%)';
|
|
3078
|
+
}
|
|
3079
|
+
oWrapperElement.style.clipPath = sClipPath;
|
|
3080
|
+
|
|
3027
3081
|
this.getHeaderTitle() && this._shiftHeaderTitle();
|
|
3028
3082
|
};
|
|
3029
3083
|
|
|
@@ -3713,7 +3767,6 @@ sap.ui.define([
|
|
|
3713
3767
|
|
|
3714
3768
|
ObjectPageLayout.prototype._createHeaderContent = function () {
|
|
3715
3769
|
var oHeaderTitle = this.getHeaderTitle(),
|
|
3716
|
-
sHeaderTitleBackgroundDesign = oHeaderTitle && oHeaderTitle.supportsBackgroundDesign() && oHeaderTitle.getBackgroundDesign(),
|
|
3717
3770
|
oHeaderContent = this.getAggregation("_headerContent"),
|
|
3718
3771
|
oOldHeaderContent,
|
|
3719
3772
|
oNewHeaderContent;
|
|
@@ -3732,14 +3785,13 @@ sap.ui.define([
|
|
|
3732
3785
|
oNewHeaderContent = fnHeaderContentClass.createInstance(
|
|
3733
3786
|
this.getAggregation("headerContent"),
|
|
3734
3787
|
this.getShowHeaderContent(),
|
|
3735
|
-
|
|
3788
|
+
"",
|
|
3736
3789
|
this.getHeaderContentPinnable(),
|
|
3737
3790
|
this.getId() + "-OPHeaderContent"
|
|
3738
3791
|
);
|
|
3739
3792
|
|
|
3740
3793
|
oNewHeaderContent.getContent().forEach(this._replaceHeaderContentParent, this);
|
|
3741
3794
|
|
|
3742
|
-
sHeaderTitleBackgroundDesign && oNewHeaderContent.setBackgroundDesign(sHeaderTitleBackgroundDesign);
|
|
3743
3795
|
this.setAggregation("_headerContent", oNewHeaderContent, true);
|
|
3744
3796
|
}
|
|
3745
3797
|
};
|
|
@@ -3749,7 +3801,7 @@ sap.ui.define([
|
|
|
3749
3801
|
var oHeaderTitle = this.getHeaderTitle();
|
|
3750
3802
|
|
|
3751
3803
|
/**
|
|
3752
|
-
* @deprecated
|
|
3804
|
+
* @deprecated As of version 1.40.1
|
|
3753
3805
|
*/
|
|
3754
3806
|
if (oHeaderTitle && oHeaderTitle.getHeaderDesign() == "Dark") {
|
|
3755
3807
|
|
|
@@ -3774,7 +3826,7 @@ sap.ui.define([
|
|
|
3774
3826
|
var oHeaderTitle = this.getHeaderTitle();
|
|
3775
3827
|
|
|
3776
3828
|
/**
|
|
3777
|
-
* @deprecated
|
|
3829
|
+
* @deprecated As of version 1.40.1
|
|
3778
3830
|
*/
|
|
3779
3831
|
if (oHeaderTitle && oHeaderTitle.getHeaderDesign() == "Dark") {
|
|
3780
3832
|
if (this._bStickyAnchorBar) {
|
|
@@ -3946,7 +3998,7 @@ sap.ui.define([
|
|
|
3946
3998
|
sDesign = library.ObjectPageHeaderDesign.Light;
|
|
3947
3999
|
|
|
3948
4000
|
/**
|
|
3949
|
-
* @deprecated
|
|
4001
|
+
* @deprecated As of version 1.40.1
|
|
3950
4002
|
*/
|
|
3951
4003
|
if (oHeader != null) {
|
|
3952
4004
|
sDesign = oHeader.getHeaderDesign();
|
|
@@ -245,8 +245,11 @@ sap.ui.define([],
|
|
|
245
245
|
ObjectPageLayoutRenderer._renderHeaderContentDOM = function (oRm, oControl, bRender, sId, bApplyBelizePlusClass) {
|
|
246
246
|
oRm.openStart("header", oControl.getId() + sId)
|
|
247
247
|
.class("ui-helper-clearfix")
|
|
248
|
-
.class("sapUxAPObjectPageHeaderDetails")
|
|
249
|
-
|
|
248
|
+
.class("sapUxAPObjectPageHeaderDetails");
|
|
249
|
+
/**
|
|
250
|
+
* @deprecated As of version 1.40.1
|
|
251
|
+
*/
|
|
252
|
+
oRm.class("sapUxAPObjectPageHeaderDetailsDesign-" + oControl._getHeaderDesign());
|
|
250
253
|
|
|
251
254
|
if (bApplyBelizePlusClass) {
|
|
252
255
|
oRm.class("sapContrastPlus");
|
|
@@ -9,8 +9,9 @@ sap.ui.define([
|
|
|
9
9
|
'./library',
|
|
10
10
|
'sap/ui/core/Element',
|
|
11
11
|
'sap/ui/core/StashedControlSupport',
|
|
12
|
-
"sap/base/assert"
|
|
13
|
-
|
|
12
|
+
"sap/base/assert",
|
|
13
|
+
"sap/ui/base/Object"
|
|
14
|
+
], function (library, Element, StashedControlSupport, assert, BaseObject) {
|
|
14
15
|
"use strict";
|
|
15
16
|
|
|
16
17
|
/**
|
|
@@ -37,7 +38,7 @@ sap.ui.define([
|
|
|
37
38
|
* @extends sap.ui.core.Element
|
|
38
39
|
*
|
|
39
40
|
* @author SAP SE
|
|
40
|
-
* @version 1.
|
|
41
|
+
* @version 1.114.0
|
|
41
42
|
*
|
|
42
43
|
* @constructor
|
|
43
44
|
* @public
|
|
@@ -61,7 +62,7 @@ sap.ui.define([
|
|
|
61
62
|
StashedControlSupport.mixInto(LazyLoader);
|
|
62
63
|
|
|
63
64
|
LazyLoader.prototype.setParent = function (oParent) {
|
|
64
|
-
if (!(oParent === null || oParent
|
|
65
|
+
if (!(oParent === null || BaseObject.isA(oParent, "sap.uxap.ObjectPageSubSection"))) {
|
|
65
66
|
assert(false, "setParent(): oParent must be an instance of sap.uxap.ObjectPageSubSection or null");
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -886,7 +886,7 @@ sap.ui.define([
|
|
|
886
886
|
this._setAggregation(sAggregationName, aAggregation, bSuppressInvalidate);
|
|
887
887
|
|
|
888
888
|
if (oObject instanceof BlockBase || oObject instanceof ObjectPageLazyLoader) {
|
|
889
|
-
oObject.setParent(this); //let the block know of its parent subsection
|
|
889
|
+
oObject.setParent(this, "blocks"); //let the block know of its parent subsection
|
|
890
890
|
}
|
|
891
891
|
|
|
892
892
|
} else {
|
|
@@ -953,22 +953,23 @@ sap.ui.define([
|
|
|
953
953
|
return ObjectPageSectionBase.prototype.removeAllAggregation.apply(this, arguments);
|
|
954
954
|
};
|
|
955
955
|
|
|
956
|
-
ObjectPageSubSection.prototype.removeAggregation = function (sAggregationName,
|
|
957
|
-
var bRemoved = false,
|
|
956
|
+
ObjectPageSubSection.prototype.removeAggregation = function (sAggregationName, vObject) {
|
|
957
|
+
var bRemoved = false,
|
|
958
|
+
aInternalAggregation;
|
|
958
959
|
|
|
959
|
-
if (this.hasProxy(sAggregationName)) {
|
|
960
|
+
if (this.hasProxy(sAggregationName) && typeof vObject === "object") {
|
|
960
961
|
aInternalAggregation = this._getAggregation(sAggregationName);
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
962
|
+
aInternalAggregation.forEach(function (oObjectCandidate, iIndex) {
|
|
963
|
+
if (oObjectCandidate.getId() === vObject.getId()) {
|
|
964
|
+
aInternalAggregation.splice(iIndex, 1);
|
|
965
|
+
this._onRemoveBlock(vObject);
|
|
966
|
+
this._setAggregation(sAggregationName, aInternalAggregation);
|
|
967
|
+
bRemoved = true;
|
|
968
|
+
}
|
|
969
|
+
return !bRemoved;
|
|
970
|
+
}, this);
|
|
970
971
|
|
|
971
|
-
return (bRemoved ?
|
|
972
|
+
return (bRemoved ? vObject : null);
|
|
972
973
|
}
|
|
973
974
|
|
|
974
975
|
return ObjectPageSectionBase.prototype.removeAggregation.apply(this, arguments);
|
|
@@ -9,6 +9,17 @@ sap.ui.define(["sap/uxap/library"],
|
|
|
9
9
|
function(library) {
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
12
|
+
function fnGetLabel(oObjectPageSection) {
|
|
13
|
+
var sTitle = oObjectPageSection.getTitle();
|
|
14
|
+
var aSubSection = oObjectPageSection.getSubSections();
|
|
15
|
+
// If there is only one SubSection, its title is shown,
|
|
16
|
+
// instead of the title of the Section (if it is available).
|
|
17
|
+
if (aSubSection.length === 1 && aSubSection[0].getTitle().trim() !== "") {
|
|
18
|
+
sTitle = aSubSection[0].getTitle();
|
|
19
|
+
}
|
|
20
|
+
return sTitle || oObjectPageSection.getId();
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
return {
|
|
13
24
|
name : {
|
|
14
25
|
singular : function(){
|
|
@@ -28,22 +39,14 @@ sap.ui.define(["sap/uxap/library"],
|
|
|
28
39
|
svg: "sap/uxap/designtime/ObjectPageSection.icon.svg"
|
|
29
40
|
}
|
|
30
41
|
},
|
|
42
|
+
getLabel: fnGetLabel,
|
|
31
43
|
actions : {
|
|
32
44
|
remove : {
|
|
33
45
|
changeType : "stashControl"
|
|
34
46
|
},
|
|
35
47
|
reveal : {
|
|
36
48
|
changeType : "unstashControl",
|
|
37
|
-
getLabel:
|
|
38
|
-
var sTitle = oControl.getTitle();
|
|
39
|
-
var aSubSection = oControl.getSubSections();
|
|
40
|
-
// If there is only one SubSection, its title is shown in the AnchorBar,
|
|
41
|
-
// instead of the title of the Section (if it is available).
|
|
42
|
-
if (aSubSection.length === 1 && aSubSection[0].getTitle().trim() !== "") {
|
|
43
|
-
sTitle = aSubSection[0].getTitle();
|
|
44
|
-
}
|
|
45
|
-
return sTitle || oControl.getId();
|
|
46
|
-
}
|
|
49
|
+
getLabel: fnGetLabel
|
|
47
50
|
},
|
|
48
51
|
rename: function () {
|
|
49
52
|
return {
|
package/src/sap/uxap/library.js
CHANGED
|
@@ -12,11 +12,16 @@ sap.ui.define([
|
|
|
12
12
|
"sap/ui/base/DataType",
|
|
13
13
|
"sap/ui/Device",
|
|
14
14
|
"sap/ui/thirdparty/jquery",
|
|
15
|
-
"sap/ui/
|
|
16
|
-
|
|
17
|
-
"sap/
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
"sap/ui/base/Object",
|
|
16
|
+
// library dependency
|
|
17
|
+
"sap/ui/core/library",
|
|
18
|
+
// library dependency
|
|
19
|
+
"sap/f/library",
|
|
20
|
+
// library dependency
|
|
21
|
+
"sap/m/library",
|
|
22
|
+
// library dependency
|
|
23
|
+
"sap/ui/layout/library"
|
|
24
|
+
], function(Core, DataType, Device, jQuery, BaseObject) {
|
|
20
25
|
"use strict";
|
|
21
26
|
|
|
22
27
|
/**
|
|
@@ -25,7 +30,7 @@ sap.ui.define([
|
|
|
25
30
|
* @namespace
|
|
26
31
|
* @alias sap.uxap
|
|
27
32
|
* @author SAP SE
|
|
28
|
-
* @version 1.
|
|
33
|
+
* @version 1.114.0
|
|
29
34
|
* @since 1.36
|
|
30
35
|
* @public
|
|
31
36
|
*/
|
|
@@ -68,7 +73,7 @@ sap.ui.define([
|
|
|
68
73
|
"sap.uxap.ObjectPageHeaderLayoutData",
|
|
69
74
|
"sap.uxap.ObjectPageLazyLoader"
|
|
70
75
|
],
|
|
71
|
-
version: "1.
|
|
76
|
+
version: "1.114.0",
|
|
72
77
|
extensions: {
|
|
73
78
|
flChangeHandlers: {
|
|
74
79
|
"sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
|
|
@@ -172,6 +177,7 @@ sap.ui.define([
|
|
|
172
177
|
* @enum {string}
|
|
173
178
|
* @public
|
|
174
179
|
*/
|
|
180
|
+
|
|
175
181
|
thisLib.ObjectPageHeaderDesign = {
|
|
176
182
|
|
|
177
183
|
/**
|
|
@@ -298,7 +304,7 @@ sap.ui.define([
|
|
|
298
304
|
*/
|
|
299
305
|
getClosestOPL: function (oControl) {
|
|
300
306
|
|
|
301
|
-
while (oControl && !(oControl
|
|
307
|
+
while (oControl && !(BaseObject.isA(oControl, "sap.uxap.ObjectPageLayout"))) {
|
|
302
308
|
oControl = oControl.getParent();
|
|
303
309
|
}
|
|
304
310
|
|
|
@@ -39,7 +39,7 @@ TOOLTIP_OP_CHANGES_MARK_VALUE=Ungesicherte \u00C4nderungen
|
|
|
39
39
|
|
|
40
40
|
TOOLTIP_OP_EXPAND_HEADER_BTN=Kopfdaten expandieren
|
|
41
41
|
|
|
42
|
-
TOOLTIP_OP_SHOW_SIDE_CONTENT=
|
|
42
|
+
TOOLTIP_OP_SHOW_SIDE_CONTENT=Seiten-Panel \u00F6ffnen
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Objektdetails
|
|
45
45
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Defines support rules of the ObjectPageHeader control of sap.uxap library.
|
|
8
8
|
*/
|
|
9
|
-
sap.ui.define(["sap/ui/support/library"],
|
|
10
|
-
function (SupportLib) {
|
|
9
|
+
sap.ui.define(["sap/ui/support/library", "sap/ui/base/Object"],
|
|
10
|
+
function (SupportLib, BaseObject) {
|
|
11
11
|
"use strict";
|
|
12
12
|
|
|
13
13
|
// shortcuts
|
|
@@ -44,7 +44,7 @@ sap.ui.define(["sap/ui/support/library"],
|
|
|
44
44
|
|
|
45
45
|
var parent = oControl.getParent();
|
|
46
46
|
while (parent) {
|
|
47
|
-
if (parent
|
|
47
|
+
if (BaseObject.isA(parent, "sap.ui.core.Component")) {
|
|
48
48
|
return parent;
|
|
49
49
|
} else {
|
|
50
50
|
parent = parent.getParent();
|