@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 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.1.48
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.112.2",
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.112.2",
18
- "@openui5/sap.m": "1.112.2",
19
- "@openui5/sap.ui.core": "1.112.2",
20
- "@openui5/sap.ui.layout": "1.112.2"
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
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  <name>sap.uxap</name>
5
5
  <vendor>SAP SE</vendor>
6
- <version>1.112.2</version>
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
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class
23
23
  * @author SAP SE
24
- * @version 1.112.2
24
+ * @version 1.114.0
25
25
  * @since 1.26
26
26
  * @alias sap.uxap.BlockBaseMetadata
27
27
  * @extends sap.ui.core.ElementMetadata
@@ -9,10 +9,8 @@ sap.ui.define([
9
9
  "sap/m/Select",
10
10
  "sap/ui/Device",
11
11
  "sap/ui/thirdparty/jquery",
12
- "./library",
13
- "./HierarchicalSelectRenderer",
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.onsapspace;
100
+ HierarchicalSelect.prototype.onsapenter = Select.prototype.ontap;
103
101
 
104
102
  /**
105
103
  * Keyboard handling of [UP], [PAGE-UP], [PAGE-DOWN], [HOME], [END] keys
@@ -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.112.2
25
+ * @version 1.114.0
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @implements sap.uxap.IHeaderContent
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.112.2
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, bPinnable, sStableId) {
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.112.2
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 Since version 1.40.1
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 Since version 1.40.1
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 as of version 1.50, use the <code>breadcrumbs</code> aggregation instead.
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 as of version 1.50, breadCrumbsLinks has been 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 Since version 1.40.1
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 Since version 1.40.1
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, bPinnable, sStableId) {
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 Since version 1.40.1
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 Since version 1.40.1
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 instanceof sap.uxap.ObjectPageSubSection) {
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
- oWrapperElement.style.clipPath = 'polygon(0px ' + iTitleHeight + 'px, '
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
- this._getHeaderDesign(),
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 Since version 1.40.1
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 Since version 1.40.1
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 Since version 1.40.1
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
- .class("sapUxAPObjectPageHeaderDetailsDesign-" + oControl._getHeaderDesign());
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
- ], function (library, Element, StashedControlSupport, assert) {
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.112.2
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 instanceof sap.uxap.ObjectPageSubSection)) {
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, oObject) {
957
- var bRemoved = false, aInternalAggregation;
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
- aInternalAggregation.forEach(function (oObjectCandidate, iIndex) {
962
- if (oObjectCandidate.getId() === oObject.getId()) {
963
- aInternalAggregation.splice(iIndex, 1);
964
- this._onRemoveBlock(oObject);
965
- this._setAggregation(sAggregationName, aInternalAggregation);
966
- bRemoved = true;
967
- }
968
- return !bRemoved;
969
- }, this);
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 ? oObject : null);
972
+ return (bRemoved ? vObject : null);
972
973
  }
973
974
 
974
975
  return ObjectPageSectionBase.prototype.removeAggregation.apply(this, arguments);
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @constructor
22
22
  * @alias sap.uxap.changeHandler.AddIFrameObjectPageLayout
23
23
  * @author SAP SE
24
- * @version 1.112.2
24
+ * @version 1.114.0
25
25
  * @since 1.75
26
26
  * @experimental Since 1.75
27
27
  */
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/
13
13
  * @constructor
14
14
  * @alias sap.uxap.changeHandler.MoveObjectPageSection
15
15
  * @author SAP SE
16
- * @version 1.112.2
16
+ * @version 1.114.0
17
17
  * @experimental Since 1.54
18
18
  */
19
19
 
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @constructor
20
20
  * @alias sap.uxap.changeHandler.RenameObjectPageSection
21
21
  * @author SAP SE
22
- * @version 1.112.2
22
+ * @version 1.114.0
23
23
  * @experimental Since 1.50
24
24
  */
25
25
 
@@ -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: function(oControl) {
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 {
@@ -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/core/library", // library dependency
16
- "sap/f/library", // library dependency
17
- "sap/m/library", // library dependency
18
- "sap/ui/layout/library" // library dependency
19
- ], function(Core, DataType, Device, jQuery) {
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.112.2
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.112.2",
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 instanceof sap.uxap.ObjectPageLayout)) {
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=Seitenbereich \u00F6ffnen
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 instanceof sap.ui.core.Component) {
47
+ if (BaseObject.isA(parent, "sap.ui.core.Component")) {
48
48
  return parent;
49
49
  } else {
50
50
  parent = parent.getParent();