@openui5/sap.uxap 1.114.0 → 1.115.1

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/.reuse/dep5 CHANGED
@@ -192,11 +192,6 @@ Copyright: 2012 Matteo Spinelli
192
192
  License: MIT
193
193
  Comment: these files belong to: cubiq.org - swipeview
194
194
 
195
- Files: src/sap.ui.core/src/sap/ui/thirdparty/mobify-carousel.js
196
- Copyright: Mobify R&D Inc.
197
- License: MIT
198
- Comment: these files belong to: Mobify.js
199
-
200
195
  Files: src/sap.ui.core/src/sap/ui/thirdparty/zyngascroll.js
201
196
  Copyright: 2011 Zynga Inc.
202
197
  License: MIT
package/THIRDPARTY.txt CHANGED
@@ -143,12 +143,6 @@ License: MIT
143
143
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
144
144
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/swipe-view.js
145
145
 
146
- Component: Mobify.js, version: 1.1
147
- Copyright: Mobify R&D Inc.
148
- License: MIT
149
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
150
- Contained in: src/sap.ui.core/src/sap/ui/thirdparty/mobify-carousel.js
151
-
152
146
  Component: Zynga Scroller, version: 1.2.1-0-g5d43806
153
147
  Copyright: 2011 Zynga Inc.
154
148
  License: MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.uxap",
3
- "version": "1.114.0",
3
+ "version": "1.115.1",
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.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"
17
+ "@openui5/sap.f": "1.115.1",
18
+ "@openui5/sap.m": "1.115.1",
19
+ "@openui5/sap.ui.core": "1.115.1",
20
+ "@openui5/sap.ui.layout": "1.115.1"
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.114.0</version>
6
+ <version>1.115.1</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>
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class
23
23
  * @author SAP SE
24
- * @version 1.114.0
24
+ * @version 1.115.1
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.114.0
25
+ * @version 1.115.1
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.114.0
43
+ * @version 1.115.1
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.114.0
45
+ * @version 1.115.1
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -1239,7 +1239,7 @@ sap.ui.define([
1239
1239
  }
1240
1240
  // enable scrolling in non-fullscreen-mode only
1241
1241
  // (to avoid any scrollbar appearing even for an instance while we snap/unsnap header)
1242
- this._toggleScrolling(!this._bAllContentFitsContainer || this._headerBiggerThanAllowedToBeFixed());
1242
+ this._toggleScrolling(!this._bAllContentFitsContainer || !this._getFirstVisibleSubSection()._hasRestrictedHeight());
1243
1243
 
1244
1244
  this._registerOnContentResize();
1245
1245
 
@@ -2145,8 +2145,6 @@ sap.ui.define([
2145
2145
 
2146
2146
  // the current tab changed => update the <code>this._bAllContentFitsContainer</code> accordingly
2147
2147
  this._bAllContentFitsContainer = this._hasSingleVisibleFullscreenSubSection(oToSelect);
2148
- this._toggleScrolling(!this._bAllContentFitsContainer || this._headerBiggerThanAllowedToBeFixed());
2149
-
2150
2148
  bFullscreenModeChanged = this._bAllContentFitsContainer !== bWasFullscreenMode;
2151
2149
  if (bFullscreenModeChanged && !this._bHeaderExpanded) {
2152
2150
  // call the snapping function again with the *latest* parameter value
@@ -2543,15 +2541,13 @@ sap.ui.define([
2543
2541
 
2544
2542
  this.iFooterHeight = this._getFooterHeight();
2545
2543
 
2546
- var iSubSectionIndex = -1,
2547
- iSectionsContainerOffsetTop = this._$sectionsContainer.position().top;
2544
+ var iSubSectionIndex = -1;
2548
2545
 
2549
2546
  this._aSectionBases.forEach(function (oSectionBase) {
2550
2547
  var oInfo = this._oSectionInfo[oSectionBase.getId()],
2551
2548
  $this = oSectionBase.$(),
2552
2549
  bPromoted = false,
2553
- oSection,
2554
- iSectionsTopMargin;
2550
+ oSection;
2555
2551
 
2556
2552
  if (!oInfo /* sectionBase is visible */ || !$this.length) {
2557
2553
  return;
@@ -2628,9 +2624,8 @@ sap.ui.define([
2628
2624
  bParentIsFirstVisibleSection = bUseIconTabBar /* there is only single section per tab */ || (oSectionBase.getParent() === this._oFirstVisibleSection);
2629
2625
  bIsFirstVisibleSubSection = bParentIsFirstVisibleSection && (iSubSectionIndex === 0); /* index of *visible* subSections is first */
2630
2626
  bIsFullscreenSection = oSectionBase.hasStyleClass(ObjectPageSubSection.FIT_CONTAINER_CLASS);
2631
- iSectionsTopMargin = oSection && oSection.$().length ? parseInt(oSection.$().css("marginTop")) : 0;
2632
2627
 
2633
- oSectionBase._setHeight(this._computeSubSectionHeight(bIsFirstVisibleSubSection, bIsFullscreenSection, Math.ceil(realTop), iSectionsContainerOffsetTop, iSectionsTopMargin));
2628
+ oSectionBase._setHeight(this._computeSubSectionHeight(bIsFirstVisibleSubSection, bIsFullscreenSection, oSectionBase));
2634
2629
  }
2635
2630
 
2636
2631
  }, this);
@@ -2691,14 +2686,18 @@ sap.ui.define([
2691
2686
  // => wrong section may have been selected in <code>_updateSelectionOnScroll</code>
2692
2687
  // => update the selection using the newly updated DOM positions and the current scrollTop
2693
2688
  this._updateSelectionOnScroll(this._$opWrapper.scrollTop());
2689
+ this._toggleScrolling(!this._bAllContentFitsContainer || !this._getFirstVisibleSubSection()._hasRestrictedHeight());
2694
2690
 
2695
2691
  return true; // return success flag
2696
2692
  };
2697
2693
 
2698
- ObjectPageLayout.prototype._computeSubSectionHeight = function(bFirstVisibleSubSection, bFullscreenSection,
2699
- iSubSectionOffsetTop, iSectionsContainerOffsetTop, iSectionsTopMargin) {
2694
+ ObjectPageLayout.prototype._computeSubSectionHeight = function(bFirstVisibleSubSection, bFullscreenSection, oSectionBase) {
2700
2695
 
2701
2696
  var iSectionsContainerHeight,
2697
+ oContainerDimentions,
2698
+ oSubSectionDimentons,
2699
+ iOffsetTop,
2700
+ iOffsetBottom,
2702
2701
  iRemainingSectionContentHeight;
2703
2702
 
2704
2703
  if (!bFullscreenSection) {
@@ -2722,7 +2721,11 @@ sap.ui.define([
2722
2721
  if (this._bAllContentFitsContainer) {
2723
2722
  // if we have a single fullscreen subsection [that takes the entire available height within the sections container]
2724
2723
  // => subtract the heights above and bellow the subSection to *avoid having a scrollbar*, having in mind the top margin of the Section
2725
- iRemainingSectionContentHeight = (iSubSectionOffsetTop - iSectionsContainerOffsetTop) + iSectionsTopMargin + this.iFooterHeight;
2724
+ oContainerDimentions = this._$sectionsContainer[0].getBoundingClientRect();
2725
+ oSubSectionDimentons = oSectionBase.getDomRef().getBoundingClientRect();
2726
+ iOffsetTop = oSubSectionDimentons.top - oContainerDimentions.top;
2727
+ iOffsetBottom = this.iFooterHeight + this._iREMSize /* footer-height + space between footer and content */;
2728
+ iRemainingSectionContentHeight = iOffsetTop + iOffsetBottom;
2726
2729
  iSectionsContainerHeight -= iRemainingSectionContentHeight;
2727
2730
  }
2728
2731
 
@@ -2926,7 +2929,10 @@ sap.ui.define([
2926
2929
 
2927
2930
  ObjectPageLayout.prototype._getFirstVisibleSubSection = function (oSection) {
2928
2931
  if (!oSection) {
2929
- return;
2932
+ oSection = this.getUseIconTabBar() ? this._oCurrentTabSection : this._oFirstVisibleSection;
2933
+ if (!oSection) {
2934
+ return;
2935
+ }
2930
2936
  }
2931
2937
  var oFirstSubSection;
2932
2938
  this._aSectionBases.every(function (oSectionBase) {
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Element
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.114.0
41
+ * @version 1.115.1
42
42
  *
43
43
  * @constructor
44
44
  * @public
@@ -190,7 +190,7 @@ sap.ui.define([
190
190
  this._updateShowHideAllButton(false);
191
191
 
192
192
  oHeaderDOM && oHeaderDOM.classList.toggle("sapUxAPObjectPageSectionHeaderHidden", !this._isTitleVisible());
193
- oHeaderDOM && oHeaderDOM.setAttribute("aria-hidden", !this._isTitleVisible());
193
+ oHeaderDOM && oHeaderDOM.setAttribute("aria-hidden", !this._isTitleAriaVisible());
194
194
 
195
195
  if (oObjectPage && this.getDomRef()) {
196
196
  oObjectPage._requestAdjustLayout();
@@ -324,9 +324,26 @@ sap.ui.define([
324
324
  * @returns {boolean}
325
325
  */
326
326
  ObjectPageSection.prototype._isTitleVisible = function () {
327
- return (this.getShowTitle() && this._getInternalTitleVisible())
328
- || this._getShouldDisplayExpandCollapseButton()
329
- || this._getShouldDisplayShowHideAllButton();
327
+ return (this.getShowTitle() && this._getInternalTitleVisible()) || this._getInternalTitleForceVisible();
328
+ };
329
+
330
+ /**
331
+ * Determines if the <code>ObjectPageSection</code> title is visible for the aria.
332
+ * @private
333
+ * @returns {boolean}
334
+ */
335
+ ObjectPageSection.prototype._isTitleAriaVisible = function () {
336
+ return this.getShowTitle() || this._getInternalTitleForceVisible();
337
+ };
338
+
339
+ /**
340
+ * Determines if the <code>ObjectPageSection</code> title is forced to be visible.
341
+ * This is the case when the <code>ObjectPageSection</code> displays the expand/collapse button or the show/hide all button.
342
+ * @private
343
+ * @returns {boolean}
344
+ */
345
+ ObjectPageSection.prototype._getInternalTitleForceVisible = function () {
346
+ return this._getShouldDisplayExpandCollapseButton() || this._getShouldDisplayShowHideAllButton();
330
347
  };
331
348
 
332
349
  /**
@@ -16,7 +16,7 @@ sap.ui.define(["sap/ui/core/Configuration"], function (Configuration) {
16
16
  };
17
17
 
18
18
  ObjectPageSectionRenderer.render = function (oRm, oControl) {
19
- var sTitle, bTitleVisible,
19
+ var sTitle, bTitleVisible, bTitleAriaHidden,
20
20
  bAccessibilityOn = Configuration.getAccessibility(),
21
21
  oLabelledBy = oControl.getAggregation("ariaLabelledBy"),
22
22
  oHeading = oControl.getHeading(),
@@ -28,6 +28,7 @@ sap.ui.define(["sap/ui/core/Configuration"], function (Configuration) {
28
28
 
29
29
  sTitle = oControl._getTitle();
30
30
  bTitleVisible = oControl._isTitleVisible();
31
+ bTitleAriaHidden = !oControl._isTitleAriaVisible();
31
32
 
32
33
  oRm.openStart("section", oControl)
33
34
  .class("sapUxAPObjectPageSection");
@@ -61,10 +62,14 @@ sap.ui.define(["sap/ui/core/Configuration"], function (Configuration) {
61
62
  oRm.openStart("div", oControl.getId() + "-header")
62
63
  .attr("role", "heading")
63
64
  .attr("aria-level", oControl._getARIALevel())
64
- .attr("aria-hidden", !bTitleVisible)
65
65
  .class("sapUxAPObjectPageSectionHeader")
66
- .class(bTitleVisible ? "" : "sapUxAPObjectPageSectionHeaderHidden")
67
- .openEnd();
66
+ .class(bTitleVisible ? "" : "sapUxAPObjectPageSectionHeaderHidden");
67
+
68
+ if (bTitleAriaHidden) {
69
+ oRm.attr("aria-hidden", "true");
70
+ }
71
+
72
+ oRm.openEnd();
68
73
 
69
74
  oRm.openStart("div", oControl.getId() + "-title")
70
75
  .class("sapUxAPObjectPageSectionTitle");
@@ -8,6 +8,7 @@
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/jquery",
10
10
  "sap/ui/core/Core",
11
+ "sap/ui/core/ResizeHandler",
11
12
  "./ObjectPageSectionBase",
12
13
  "./ObjectPageLazyLoader",
13
14
  "./BlockBase",
@@ -26,6 +27,7 @@ sap.ui.define([
26
27
  ], function(
27
28
  jQuery,
28
29
  Core,
30
+ ResizeHandler,
29
31
  ObjectPageSectionBase,
30
32
  ObjectPageLazyLoader,
31
33
  BlockBase,
@@ -314,10 +316,26 @@ sap.ui.define([
314
316
 
315
317
  oDom = this.getDomRef();
316
318
  if (oDom) {
317
- oDom.style.height = oValue;
319
+ oDom.style.height = this._height;
320
+ this._adaptDomHeight();
318
321
  }
319
322
  };
320
323
 
324
+ ObjectPageSubSection.prototype._toggleContentResizeListener = function(bEnable) {
325
+ if (bEnable && !this._iResizeId) {
326
+ this._iResizeId = ResizeHandler.register(this._getContentWrapper(), this._adaptDomHeight.bind(this));
327
+ }
328
+ if (!bEnable && this._iResizeId) {
329
+ ResizeHandler.deregister(this._iResizeId);
330
+ this._iResizeId = null;
331
+ }
332
+ };
333
+
334
+ ObjectPageSubSection.prototype._getContentWrapper = function() {
335
+ return this.getAggregation("_grid");
336
+ };
337
+
338
+
321
339
  /**
322
340
  * Returns the control name text.
323
341
  *
@@ -589,6 +607,10 @@ sap.ui.define([
589
607
  return;
590
608
  }
591
609
 
610
+ if (this.hasStyleClass(ObjectPageSubSection.FIT_CONTAINER_CLASS)) {
611
+ this._toggleContentResizeListener(true);
612
+ }
613
+
592
614
  this._$spacer = oObjectPageLayout.$("spacer");
593
615
 
594
616
  if (this._bShouldFocusSeeMoreLessButton && document.activeElement === document.body) {
@@ -609,10 +631,32 @@ sap.ui.define([
609
631
  ObjectPageSectionBase.prototype.onBeforeRendering.call(this);
610
632
  }
611
633
 
634
+ this._toggleContentResizeListener(false);
635
+
612
636
  this._setAggregationProxy();
613
637
  this._getGrid().removeAllContent();
614
638
  this._applyLayout(oObjectPageLayout);
615
639
  this.refreshSeeMoreVisibility();
640
+
641
+ this.toggleStyleClass("sapUxAPObjectPageSubSectionStashed", this._aStashedControls.length ? true : false);
642
+ };
643
+
644
+ ObjectPageSubSection.prototype._adaptDomHeight = function() {
645
+ var oDom = this.getDomRef();
646
+ if (!oDom) {
647
+ return;
648
+ }
649
+ if (this.hasStyleClass(ObjectPageSubSection.FIT_CONTAINER_CLASS) && this._height) {
650
+ oDom.style.height = (oDom.scrollHeight > Math.ceil(parseFloat(this._height))) ? "" : this._height;
651
+ }
652
+ };
653
+
654
+ ObjectPageSubSection.prototype._hasRestrictedHeight = function() {
655
+ var oDom = this.getDomRef();
656
+ if (!oDom) {
657
+ return;
658
+ }
659
+ return parseInt(oDom.style.height) > 0;
616
660
  };
617
661
 
618
662
  ObjectPageSubSection.prototype._applyLayout = function (oLayoutProvider) {
@@ -5,10 +5,12 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
+ "sap/ui/core/util/reflection/JsControlTreeModifier",
8
9
  "sap/ui/fl/changeHandler/AddIFrame",
9
10
  "sap/ui/fl/changeHandler/common/getTargetAggregationIndex",
10
11
  "sap/ui/fl/changeHandler/common/createIFrame"
11
12
  ], function (
13
+ JsControlTreeModifier,
12
14
  BaseAddIFrame,
13
15
  getTargetAggregationIndex,
14
16
  createIFrame
@@ -21,7 +23,7 @@ sap.ui.define([
21
23
  * @constructor
22
24
  * @alias sap.uxap.changeHandler.AddIFrameObjectPageLayout
23
25
  * @author SAP SE
24
- * @version 1.114.0
26
+ * @version 1.115.1
25
27
  * @since 1.75
26
28
  * @experimental Since 1.75
27
29
  */
@@ -106,5 +108,29 @@ sap.ui.define([
106
108
  return oCondenserInfo;
107
109
  };
108
110
 
111
+ AddIFrameObjectPageLayout.getChangeVisualizationInfo = function(oChange, oAppComponent) {
112
+ var oSelector = oChange.getContent().selector;
113
+ var oElement = JsControlTreeModifier.bySelector(oSelector, oAppComponent);
114
+ var oAnchorBar = oElement.getParent().getAggregation("_anchorBar");
115
+ var aAffectedControls = [oSelector];
116
+ var aDisplayControls = [oSelector];
117
+
118
+ oAnchorBar.getAggregation("content").forEach(function(oAnchorBarItem) {
119
+ oAnchorBarItem.getAggregation("customData").some(function(oCustomData) {
120
+ if (
121
+ oCustomData.getKey() === "sectionId" &&
122
+ oElement.getId() === oCustomData.getProperty("value")
123
+ ) {
124
+ aDisplayControls.push(oAnchorBarItem.getId());
125
+ }
126
+ });
127
+ });
128
+
129
+ return {
130
+ affectedControls: aAffectedControls,
131
+ displayControls: aDisplayControls
132
+ };
133
+ };
134
+
109
135
  return AddIFrameObjectPageLayout;
110
136
  }, /* bExport= */true);
@@ -4,7 +4,17 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/base/util/merge", "sap/ui/thirdparty/jquery"], function(MoveControls, Core, merge, jQuery) {
7
+ sap.ui.define([
8
+ "sap/base/util/merge",
9
+ "sap/ui/core/Core",
10
+ "sap/ui/core/util/reflection/JsControlTreeModifier",
11
+ "sap/ui/fl/changeHandler/MoveControls"
12
+ ], function(
13
+ merge,
14
+ Core,
15
+ JsControlTreeModifier,
16
+ MoveControls
17
+ ) {
8
18
  "use strict";
9
19
 
10
20
  /**
@@ -13,11 +23,11 @@ sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/
13
23
  * @constructor
14
24
  * @alias sap.uxap.changeHandler.MoveObjectPageSection
15
25
  * @author SAP SE
16
- * @version 1.114.0
26
+ * @version 1.115.1
17
27
  * @experimental Since 1.54
18
28
  */
19
29
 
20
- var MoveObjectPageSection = jQuery.extend({}, MoveControls);
30
+ var MoveObjectPageSection = Object.assign({}, MoveControls);
21
31
 
22
32
  MoveObjectPageSection.applyChange = function (oChange, oControl, mPropertyBag) {
23
33
  var bJsControllTree = mPropertyBag.modifier.targets === "jsControlTree";
@@ -77,6 +87,7 @@ sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/
77
87
  *
78
88
  * @param {object} mSpecificChangeInfo - Information needed to create the change
79
89
  * @param {object} mPropertyBag - Object additional properties like modifier or appComponent
90
+ * @returns {Promise} resolves if change could be applied
80
91
  * @private
81
92
  */
82
93
  MoveObjectPageSection._mapAnchorsToSections = function (mSpecificChangeInfo, mPropertyBag) {
@@ -123,6 +134,45 @@ sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/
123
134
  });
124
135
  };
125
136
 
137
+ /**
138
+ * Retrieves the information required for the change visualization.
139
+ *
140
+ * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject} oChange - Object with change data
141
+ * @param {sap.ui.core.UIComponent} oAppComponent Component in which the change is applied
142
+ * @returns {object} Object with a description payload containing the information required for the change visualization
143
+ * @public
144
+ */
145
+ MoveObjectPageSection.getChangeVisualizationInfo = function(oChange, oAppComponent) {
146
+ var oChangeContent = oChange.getContent();
147
+ var oRevertData = oChange.getRevertData()[0];
148
+ var oMovedElementSelector = oChangeContent.movedElements[0].selector;
149
+ var oMovedElement = JsControlTreeModifier.bySelector(oMovedElementSelector, oAppComponent);
150
+ var oAnchorBar = oMovedElement.getParent().getAggregation("_anchorBar");
151
+ var aAffectedControls = [oMovedElementSelector];
152
+ var aDisplayControls = [oMovedElementSelector];
153
+
154
+ oAnchorBar.getAggregation("content").forEach(function(oAnchorBarItem) {
155
+ oAnchorBarItem.getAggregation("customData").some(function(oCustomData) {
156
+ if (
157
+ oCustomData.getKey() === "sectionId" &&
158
+ oMovedElement.getId() === oCustomData.getProperty("value")
159
+ ) {
160
+ aDisplayControls.push(oAnchorBarItem.getId());
161
+ }
162
+ });
163
+ });
164
+
165
+ return {
166
+ affectedControls: aAffectedControls,
167
+ displayControls: aDisplayControls,
168
+ dependentControls: [oChangeContent.source.selector],
169
+ descriptionPayload: {
170
+ sourceContainer: oRevertData.sourceParent,
171
+ targetContainer: oChangeContent.target.selector
172
+ }
173
+ };
174
+ };
175
+
126
176
  return MoveObjectPageSection;
127
177
  },
128
178
  /* bExport= */true);
@@ -6,9 +6,11 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
9
+ "sap/ui/core/util/reflection/JsControlTreeModifier",
9
10
  "sap/ui/fl/changeHandler/BaseRename"
10
11
  ], function (
11
12
  Log,
13
+ JsControlTreeModifier,
12
14
  BaseRename
13
15
  ) {
14
16
  "use strict";
@@ -19,7 +21,7 @@ sap.ui.define([
19
21
  * @constructor
20
22
  * @alias sap.uxap.changeHandler.RenameObjectPageSection
21
23
  * @author SAP SE
22
- * @version 1.114.0
24
+ * @version 1.115.1
23
25
  * @experimental Since 1.50
24
26
  */
25
27
 
@@ -106,6 +108,43 @@ sap.ui.define([
106
108
  });
107
109
  };
108
110
 
111
+ /**
112
+ * Retrieves the information required for the change visualization.
113
+ *
114
+ * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject} oChange - Object with change data
115
+ * @param {sap.ui.core.UIComponent} oAppComponent Component in which the change is applied
116
+ * @returns {object} Object with a description payload containing the information required for the change visualization
117
+ * @public
118
+ */
119
+ RenameObjectPageSection.getChangeVisualizationInfo = function(oChange, oAppComponent) {
120
+ var oNewLabel = (
121
+ oChange.getTexts()
122
+ && oChange.getTexts()[mRenameSettings.changePropertyName]
123
+ );
124
+ var oSelector = oChange.getSelector();
125
+ var oElement = JsControlTreeModifier.bySelector(oSelector, oAppComponent);
126
+ var oAnchorBar = oElement.getParent().getAggregation("_anchorBar");
127
+ var aAffectedControls = [oElement.getId()];
128
+ var aDisplayControls = [oElement.getId()];
129
+ oAnchorBar.getAggregation("content").forEach(function(oAnchorBarItem) {
130
+ oAnchorBarItem.getAggregation("customData").some(function(oCustomData) {
131
+ if (
132
+ oCustomData.getKey() === "sectionId" &&
133
+ oElement.getId() === oCustomData.getProperty("value")
134
+ ) {
135
+ aDisplayControls.push(oAnchorBarItem.getId());
136
+ }
137
+ });
138
+ });
139
+ return {
140
+ descriptionPayload: {
141
+ originalLabel: oChange.getRevertData(),
142
+ newLabel: oNewLabel && oNewLabel.value
143
+ },
144
+ affectedControls: aAffectedControls,
145
+ displayControls: aDisplayControls
146
+ };
147
+ };
109
148
 
110
149
  return RenameObjectPageSection;
111
150
  },
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "sap/ui/core/util/reflection/JsControlTreeModifier",
9
+ "sap/ui/fl/changeHandler/UnstashControl"
10
+ ], function(
11
+ JsControlTreeModifier,
12
+ UnstashControl
13
+ ) {
14
+ "use strict";
15
+
16
+ /**
17
+ * ObjectPageSection Change Handler for Unstash
18
+ *
19
+ * @constructor
20
+ * @alias sap.uxap.changeHandler.UnstashObjectPageSection
21
+ * @author SAP SE
22
+ * @version 1.115.1
23
+ * @experimental Since 1.115
24
+ */
25
+
26
+ var UnstashObjectPageSection = Object.assign({}, UnstashControl);
27
+
28
+ /**
29
+ * Retrieves the information required for the change visualization.
30
+ *
31
+ * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject} oChange - Object with change data
32
+ * @param {sap.ui.core.UIComponent} oAppComponent Component in which the change is applied
33
+ * @returns {object} Object with a description payload containing the information required for the change visualization
34
+ * @public
35
+ */
36
+ UnstashObjectPageSection.getChangeVisualizationInfo = function(oChange, oAppComponent) {
37
+ var oStashedElementSelector = oChange.getSelector();
38
+ var oStashedElement = JsControlTreeModifier.bySelector(oStashedElementSelector, oAppComponent);
39
+ var oAnchorBar = oStashedElement.getParent().getAggregation("_anchorBar");
40
+ var aAffectedControls = [oStashedElementSelector];
41
+ var aDisplayControls = [oStashedElementSelector];
42
+
43
+ oAnchorBar.getAggregation("content").forEach(function(oAnchorBarItem) {
44
+ oAnchorBarItem.getAggregation("customData").some(function(oCustomData) {
45
+ if (
46
+ oCustomData.getKey() === "sectionId" &&
47
+ oStashedElement.getId() === oCustomData.getProperty("value")
48
+ ) {
49
+ aDisplayControls.push(oAnchorBarItem.getId());
50
+ }
51
+ });
52
+ });
53
+
54
+ return {
55
+ affectedControls: aAffectedControls,
56
+ displayControls: aDisplayControls
57
+ };
58
+ };
59
+
60
+ return UnstashObjectPageSection;
61
+ },
62
+ /* bExport= */true);
@@ -53,7 +53,7 @@ sap.ui.define(["sap/uxap/library"],
53
53
  changeType: "rename",
54
54
  domRef: ".sapUxAPObjectPageSectionTitle",
55
55
  isEnabled: function (oElement) {
56
- return oElement.getShowTitle();
56
+ return oElement._getInternalTitleVisible();
57
57
  },
58
58
  validators: [
59
59
  "noEmptyText"
@@ -5,8 +5,12 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- 'sap/uxap/changeHandler/RenameObjectPageSection'
9
- ], function (RenameObjectPageSection) {
8
+ 'sap/uxap/changeHandler/RenameObjectPageSection',
9
+ 'sap/uxap/changeHandler/UnstashObjectPageSection'
10
+ ], function (
11
+ RenameObjectPageSection,
12
+ UnstashObjectPageSection
13
+ ) {
10
14
  "use strict";
11
15
 
12
16
  return {
@@ -31,7 +35,7 @@ sap.ui.define([
31
35
  }
32
36
  },
33
37
  "unstashControl": {
34
- "changeHandler": "default",
38
+ "changeHandler": UnstashObjectPageSection,
35
39
  "layers": {
36
40
  "USER": true
37
41
  }
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @namespace
31
31
  * @alias sap.uxap
32
32
  * @author SAP SE
33
- * @version 1.114.0
33
+ * @version 1.115.1
34
34
  * @since 1.36
35
35
  * @public
36
36
  */
@@ -73,7 +73,7 @@ sap.ui.define([
73
73
  "sap.uxap.ObjectPageHeaderLayoutData",
74
74
  "sap.uxap.ObjectPageLazyLoader"
75
75
  ],
76
- version: "1.114.0",
76
+ version: "1.115.1",
77
77
  extensions: {
78
78
  flChangeHandlers: {
79
79
  "sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
@@ -8,9 +8,9 @@
8
8
  box-sizing: border-box;
9
9
  }
10
10
 
11
- .sapUxAPObjectPageSubSection .sapUxAPBlockContainer > .sapUiRespGrid:empty,
11
+ .sapUxAPObjectPageSubSection.sapUxAPObjectPageSubSectionStashed .sapUxAPBlockContainer > .sapUiRespGrid:empty,
12
12
  /* Blockbase is used */
13
- .sapUxAPObjectPageSubSection .sapUxAPBlockContainer > .sapUiRespGrid > div > div:empty {
13
+ .sapUxAPObjectPageSubSection.sapUxAPObjectPageSubSectionStashed .sapUxAPBlockContainer > .sapUiRespGrid > div > div:empty {
14
14
  height: 20vh;
15
15
  }
16
16
 
@@ -177,9 +177,11 @@ Doing so will result in less generated CSS, as well as less future maintanance i
177
177
  }
178
178
  }
179
179
 
180
- .sapUxAPObjectPageSubSectionFitContainer {
181
- overflow-y: hidden; // hide content that does not fit the available height to avoid overlap with the next section content
180
+ .sapUxAPObjectPageSubSectionFitContainer .sapUxAPBlockContainer .sapUxAPBlockBase {
181
+ overflow-y: hidden;
182
+ }
182
183
 
184
+ .sapUxAPObjectPageSubSectionFitContainer {
183
185
  .sapUxAPBlockContainer,
184
186
  .sapUxAPBlockContainer > .sapUiRespGrid,
185
187
  .sapUxAPBlockContainer > .sapUiRespGrid > *,