@openui5/sap.ui.layout 1.115.1 → 1.117.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.
Files changed (66) hide show
  1. package/.reuse/dep5 +0 -5
  2. package/THIRDPARTY.txt +1 -7
  3. package/package.json +2 -2
  4. package/src/sap/ui/layout/.library +1 -1
  5. package/src/sap/ui/layout/AlignedFlowLayout.js +1 -1
  6. package/src/sap/ui/layout/AssociativeSplitter.js +1 -1
  7. package/src/sap/ui/layout/BlockLayout.js +1 -1
  8. package/src/sap/ui/layout/BlockLayoutCell.js +1 -1
  9. package/src/sap/ui/layout/BlockLayoutCellData.js +1 -1
  10. package/src/sap/ui/layout/BlockLayoutCellRenderer.js +0 -4
  11. package/src/sap/ui/layout/BlockLayoutRow.js +2 -1
  12. package/src/sap/ui/layout/BlockLayoutRowRenderer.js +3 -0
  13. package/src/sap/ui/layout/DynamicSideContent.js +45 -19
  14. package/src/sap/ui/layout/FixFlex.js +3 -3
  15. package/src/sap/ui/layout/Grid.js +1 -1
  16. package/src/sap/ui/layout/GridData.js +1 -1
  17. package/src/sap/ui/layout/GridRenderer.js +1 -1
  18. package/src/sap/ui/layout/HorizontalLayout.js +1 -1
  19. package/src/sap/ui/layout/PaneContainer.js +1 -1
  20. package/src/sap/ui/layout/ResponsiveFlowLayout.js +1 -1
  21. package/src/sap/ui/layout/ResponsiveFlowLayoutData.js +1 -1
  22. package/src/sap/ui/layout/ResponsiveSplitter.js +1 -1
  23. package/src/sap/ui/layout/ResponsiveSplitterPage.js +1 -1
  24. package/src/sap/ui/layout/SplitPane.js +1 -1
  25. package/src/sap/ui/layout/Splitter.js +1 -1
  26. package/src/sap/ui/layout/SplitterLayoutData.js +1 -1
  27. package/src/sap/ui/layout/VerticalLayout.js +1 -1
  28. package/src/sap/ui/layout/changeHandler/AddFormContainer.js +1 -1
  29. package/src/sap/ui/layout/changeHandler/AddFormField.js +1 -1
  30. package/src/sap/ui/layout/changeHandler/AddSimpleFormField.js +6 -2
  31. package/src/sap/ui/layout/changeHandler/AddSimpleFormGroup.js +1 -1
  32. package/src/sap/ui/layout/changeHandler/HideSimpleForm.js +8 -3
  33. package/src/sap/ui/layout/changeHandler/MoveSimpleForm.js +19 -10
  34. package/src/sap/ui/layout/changeHandler/RenameFormContainer.js +1 -1
  35. package/src/sap/ui/layout/changeHandler/RenameSimpleForm.js +1 -1
  36. package/src/sap/ui/layout/changeHandler/UnhideSimpleForm.js +1 -1
  37. package/src/sap/ui/layout/cssgrid/CSSGrid.js +1 -1
  38. package/src/sap/ui/layout/cssgrid/GridBasicLayout.js +1 -1
  39. package/src/sap/ui/layout/cssgrid/GridBoxLayout.js +1 -1
  40. package/src/sap/ui/layout/cssgrid/GridItemLayoutData.js +1 -1
  41. package/src/sap/ui/layout/cssgrid/GridLayoutBase.js +1 -1
  42. package/src/sap/ui/layout/cssgrid/GridLayoutDelegate.js +1 -1
  43. package/src/sap/ui/layout/cssgrid/GridResponsiveLayout.js +1 -1
  44. package/src/sap/ui/layout/cssgrid/GridSettings.js +1 -1
  45. package/src/sap/ui/layout/cssgrid/ResponsiveColumnItemLayoutData.js +1 -1
  46. package/src/sap/ui/layout/cssgrid/ResponsiveColumnLayout.js +1 -1
  47. package/src/sap/ui/layout/form/ColumnContainerData.js +1 -1
  48. package/src/sap/ui/layout/form/ColumnElementData.js +1 -1
  49. package/src/sap/ui/layout/form/ColumnLayout.js +7 -1
  50. package/src/sap/ui/layout/form/ColumnLayoutRenderer.js +67 -10
  51. package/src/sap/ui/layout/form/Form.js +1 -1
  52. package/src/sap/ui/layout/form/FormContainer.js +1 -1
  53. package/src/sap/ui/layout/form/FormElement.js +20 -4
  54. package/src/sap/ui/layout/form/FormLayout.js +32 -11
  55. package/src/sap/ui/layout/form/FormLayoutRenderer.js +12 -1
  56. package/src/sap/ui/layout/form/GridContainerData.js +1 -1
  57. package/src/sap/ui/layout/form/GridElementData.js +1 -1
  58. package/src/sap/ui/layout/form/GridLayout.js +1 -1
  59. package/src/sap/ui/layout/form/ResponsiveGridLayout.js +1 -1
  60. package/src/sap/ui/layout/form/ResponsiveLayout.js +1 -1
  61. package/src/sap/ui/layout/form/SemanticFormElement.js +117 -20
  62. package/src/sap/ui/layout/form/SimpleForm.js +28 -15
  63. package/src/sap/ui/layout/library.js +2 -2
  64. package/src/sap/ui/layout/themes/base/AlignedFlowLayout.less +1 -1
  65. package/src/sap/ui/layout/themes/base/FormLayout.less +5 -0
  66. package/ui5.yaml +1 -1
package/.reuse/dep5 CHANGED
@@ -457,11 +457,6 @@ Comment: these files belong to: UI5 Web Components
457
457
 
458
458
  # Outside of Libraries:
459
459
 
460
- Files: src/testsuite-utils/src/main/resources/META-INF/less/less.js
461
- Copyright: 2009-2014, Alexis Sellier <self@cloudhead.net>
462
- License: Apache-2.0
463
- Comment: these files belong to: LESS
464
-
465
460
  Files: lib/jsdoc/ui5/plugin.js
466
461
  Copyright:
467
462
  2009-2023 SAP SE or an SAP affiliate company and OpenUI5 contributors
package/THIRDPARTY.txt CHANGED
@@ -460,19 +460,13 @@ Contained in: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/*.*
460
460
 
461
461
  Outside of Libraries:
462
462
 
463
- Component: LESS, version: 1.6.3
464
- Copyright: 2009-2014, Alexis Sellier <self@cloudhead.net>
465
- License: Apache-2.0
466
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
467
- Contained in: src/testsuite-utils/src/main/resources/META-INF/less/less.js
468
-
469
463
  Component: JSDoc 3, version: 3.6.7
470
464
  Copyright: 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
471
465
  License: Apache-2.0
472
466
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
473
467
  Contained in: lib/jsdoc/ui5/plugin.js
474
468
 
475
- Component: SAP Theming Base Content, version: 11.3.0
469
+ Component: SAP Theming Base Content, version: 11.4.2
476
470
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
477
471
  License: Apache-2.0
478
472
  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.ui.layout",
3
- "version": "1.115.1",
3
+ "version": "1.117.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.layout",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,6 +14,6 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.115.1"
17
+ "@openui5/sap.ui.core": "1.117.0"
18
18
  }
19
19
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.115.1</version>
9
+ <version>1.117.0</version>
10
10
 
11
11
  <documentation>SAPUI5 library with layout controls.</documentation>
12
12
 
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @extends sap.ui.core.Control
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.115.1
43
+ * @version 1.117.0
44
44
  *
45
45
  * @constructor
46
46
  * @private
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.layout.Splitter
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.115.1
27
+ * @version 1.117.0
28
28
  *
29
29
  * @constructor
30
30
  * @private
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.core.Control
64
64
  *
65
65
  * @author SAP SE
66
- * @version 1.115.1
66
+ * @version 1.117.0
67
67
  *
68
68
  * @constructor
69
69
  * @public
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.core.Control
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.115.1
29
+ * @version 1.117.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(['sap/ui/core/LayoutData', './library'],
18
18
  * @class
19
19
  * Holds layout data for the BlockLayoutCells contents.
20
20
  * @extends sap.ui.core.LayoutData
21
- * @version 1.115.1
21
+ * @version 1.117.0
22
22
  * @constructor
23
23
  * @public
24
24
  * @since 1.50.0
@@ -125,10 +125,6 @@ sap.ui.define(['./library', 'sap/ui/core/library', "sap/base/Log"],
125
125
  rm.class("sapUiBlockCellCenteredContent");
126
126
  }
127
127
 
128
- if (bHasTitle) {
129
- rm.attr("aria-labelledby", this.getTitleId(blockLayoutCell));
130
- }
131
-
132
128
  rm.openEnd();
133
129
 
134
130
  if (bHasTitle) {
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.115.1
35
+ * @version 1.117.0
36
36
  *
37
37
  * @constructor
38
38
  * @public
@@ -300,6 +300,7 @@ sap.ui.define([
300
300
  * @param {string} sId The ID of the row that will be processed
301
301
  * @param {Array} aCells Cells in the current row
302
302
  * @returns {this}
303
+ * @deprecated since 1.50, together with BlockBackgroundType.Mixed
303
304
  */
304
305
  BlockLayoutRow.prototype._processMixedCellStyles = function (sId, aCells) {
305
306
  var oBlockLayout, bProcessAccentCells;
@@ -57,6 +57,9 @@ sap.ui.define(['./library'],
57
57
  });
58
58
 
59
59
  switch (sLayoutBackground) {
60
+ /**
61
+ * @deprecated since 1.50
62
+ */
60
63
  case BlockBackgroundType.Mixed:
61
64
  if (aAccentedCells.length > 0) {
62
65
  oBlockLayoutRow._processMixedCellStyles(aAccentedCells[aAccentedCells.length - 1], aContent);
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @extends sap.ui.core.Control
95
95
  *
96
96
  * @author SAP SE
97
- * @version 1.115.1
97
+ * @version 1.117.0
98
98
  *
99
99
  * @constructor
100
100
  * @public
@@ -468,42 +468,68 @@ sap.ui.define([
468
468
  * @since 1.78
469
469
  */
470
470
  DynamicSideContent.prototype.getScrollDelegate = function (oControl) {
471
- var oControlInQuestion = oControl,
472
- oContainerOfDSC = this.getParent(),
473
- sBreakpoint = this._getBreakPointFromWidth(),
471
+ var oContainerOfDSC = this.getParent(),
472
+ oControlParent = oControl.getParent(),
473
+ sParentAggregation = oControl.sParentAggregationName,
474
474
  bMCVisible = this.getShowMainContent() && this._MCVisible,
475
475
  bSCVisible = this.getShowSideContent() && this._SCVisible;
476
476
 
477
- //for cases with main and side content - one above the other - use the scroll delegate of the parent container
478
- if (sBreakpoint && sBreakpoint !== L && sBreakpoint !== XL ) {
479
- // check whether the control is in visible aggregation; if not - don't get its scrollDelegate
480
- if (oControlInQuestion &&
481
- ((oControlInQuestion.sParentAggregationName === "sideContent" && !bSCVisible) ||
482
- (oControlInQuestion.sParentAggregationName === "mainContent" && !bMCVisible)) ){
483
- return;
484
- } else {
485
- while (oContainerOfDSC && (!oContainerOfDSC.getScrollDelegate || !oContainerOfDSC.getScrollDelegate())) {
486
- oContainerOfDSC = oContainerOfDSC.getParent();
487
- }
477
+ // Find aggregation in which effectively is placed the oControl even if it is not directly placed in main or side content
478
+ while (oControlParent && oControlParent.getId() !== this.getId()) {
479
+ sParentAggregation = oControlParent.sParentAggregationName;
480
+ oControlParent = oControlParent.getParent();
481
+ }
482
+
483
+ // for cases with main and side content - one above the other - use the scroll delegate of the parent container
484
+ // otherwise use the scroll delegate of the container where the control is placed
485
+
486
+ if (!oControl) {
487
+ return;
488
+ } else if ((sParentAggregation === "sideContent" && !bSCVisible) || (sParentAggregation === "mainContent" && !bMCVisible)) {
489
+ return;
490
+ } else if (!this._isContentOnFullHeight(sParentAggregation)) {
491
+ while (oContainerOfDSC && (!oContainerOfDSC.getScrollDelegate || !oContainerOfDSC.getScrollDelegate())) {
492
+ oContainerOfDSC = oContainerOfDSC.getParent();
493
+ }
494
+ if (oContainerOfDSC) {
488
495
  return oContainerOfDSC.getScrollDelegate();
489
496
  }
490
497
  }
491
498
 
499
+ this._initScrolling();
500
+
492
501
  if (this._oMCScroller && this._oSCScroller) {
493
- while (oControlInQuestion && oControlInQuestion.getId() !== this.getId()) {
494
- if (oControlInQuestion.sParentAggregationName === "mainContent" && bMCVisible) {
502
+ while (oControl && oControl.getId() !== this.getId()) {
503
+ if (oControl.sParentAggregationName === "mainContent" && bMCVisible) {
495
504
  return this._oMCScroller;
496
505
  }
497
- if (oControlInQuestion.sParentAggregationName === "sideContent" && bSCVisible) {
506
+ if (oControl.sParentAggregationName === "sideContent" && bSCVisible) {
498
507
  return this._oSCScroller;
499
508
  }
500
- oControlInQuestion = oControlInQuestion.getParent();
509
+ oControl = oControl.getParent();
501
510
  }
502
511
  }
503
512
 
504
513
  return;
505
514
  };
506
515
 
516
+ /**
517
+ * Determines whether the provided content aggregation (main or side) takes full height of the DynamicSideContent.
518
+ * @private
519
+ * @param {string} sContentName The name of the content aggregation
520
+ * @returns {boolean} whether the content aggregation takes the full height
521
+ */
522
+ DynamicSideContent.prototype._isContentOnFullHeight = function(sContentName) {
523
+ var bMCVisible = this.getShowMainContent() && this._MCVisible,
524
+ bSCVisible = this.getShowSideContent() && this._SCVisible,
525
+ mcSpan = this.getProperty("mcSpan"),
526
+ scSpan = this.getProperty("scSpan"),
527
+ bMainContentOnFullHeight = (sContentName === "mainContent" && bMCVisible && ((mcSpan === SPAN_SIZE_12 && !bSCVisible) || mcSpan !== SPAN_SIZE_12)),
528
+ bSideContentOnFullHeight = (sContentName === "sideContent" && bSCVisible && ((scSpan === SPAN_SIZE_12 && !bMCVisible) || scSpan !== SPAN_SIZE_12));
529
+
530
+ return bMainContentOnFullHeight || bSideContentOnFullHeight;
531
+ };
532
+
507
533
  /**
508
534
  * Re-renders only part of the control that is changed.
509
535
  * @param {object} aControls Array containing the passed aggregation controls
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @extends sap.ui.core.Control
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.115.1
56
+ * @version 1.117.0
57
57
  *
58
58
  * @constructor
59
59
  * @public
@@ -176,8 +176,8 @@ sap.ui.define([
176
176
  };
177
177
 
178
178
  /**
179
- * Returns the sap.ui.core.ScrollEnablement delegate which is used with this control.
180
- * @returns {sap.ui.core.ScrollEnablement}
179
+ * Returns the sap.ui.core.delegate.ScrollEnablement delegate which is used with this control.
180
+ * @returns {sap.ui.core.delegate.ScrollEnablement}
181
181
  * @private
182
182
  */
183
183
  FixFlex.prototype.getScrollDelegate = function () {
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.core.Control
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.115.1
62
+ * @version 1.117.0
63
63
  *
64
64
  * @constructor
65
65
  * @public
@@ -28,7 +28,7 @@ sap.ui.define(['sap/ui/core/LayoutData', './library', "sap/base/Log"],
28
28
  * @extends sap.ui.core.LayoutData
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.115.1
31
+ * @version 1.117.0
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -15,7 +15,7 @@ sap.ui.define(["sap/ui/Device", "sap/ui/layout/library"],
15
15
  /**
16
16
  * @author SAP SE
17
17
  * @version
18
- * 1.115.1
18
+ * 1.117.0
19
19
  * @namespace
20
20
  */
21
21
  var GridRenderer = {
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/Control', './library', "./HorizontalLayoutRenderer"]
22
22
  * @extends sap.ui.core.Control
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.115.1
25
+ * @version 1.117.0
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -24,7 +24,7 @@ sap.ui.define(['./library', 'sap/ui/core/Element', './AssociativeSplitter', 'sap
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.115.1
27
+ * @version 1.117.0
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @extends sap.ui.core.Control
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.115.1
42
+ * @version 1.117.0
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/LayoutData', './library', "sap/base/Log"],
22
22
  * @extends sap.ui.core.LayoutData
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.115.1
25
+ * @version 1.117.0
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * @extends sap.ui.core.Control
71
71
  *
72
72
  * @author SAP SE
73
- * @version 1.115.1
73
+ * @version 1.117.0
74
74
  *
75
75
  * @constructor
76
76
  * @public
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Control
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.115.1
27
+ * @version 1.117.0
28
28
  *
29
29
  * @constructor
30
30
  * @private
@@ -26,7 +26,7 @@ sap.ui.define(['./library', 'sap/ui/core/Element'],
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.115.1
29
+ * @version 1.117.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * @extends sap.ui.core.Control
71
71
  *
72
72
  * @author SAP SE
73
- * @version 1.115.1
73
+ * @version 1.117.0
74
74
  *
75
75
  * @constructor
76
76
  * @public
@@ -24,7 +24,7 @@ sap.ui.define(['sap/ui/core/LayoutData', './library'],
24
24
  * (The CSS value "auto" is used internally to recalculate the size of the content
25
25
  * dynamically and is not directly set as style property.)
26
26
  * @extends sap.ui.core.LayoutData
27
- * @version 1.115.1
27
+ * @version 1.117.0
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.core.Control
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.115.1
28
+ * @version 1.117.0
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * Change handler for adding a form group.
18
18
  * @alias sap.ui.layout.changeHandler.AddFormContainer
19
19
  * @author SAP SE
20
- * @version 1.115.1
20
+ * @version 1.117.0
21
21
  * @experimental Since 1.48.0
22
22
  */
23
23
  var AddGroup = { };
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  *
20
20
  * @author SAP SE
21
21
  *
22
- * @version 1.115.1
22
+ * @version 1.117.0
23
23
  *
24
24
  * @experimental Since 1.50.0 This class is experimental and provides only limited functionality. Also the API might be
25
25
  * changed in future.
@@ -91,7 +91,7 @@ sap.ui.define([
91
91
  *
92
92
  * @author SAP SE
93
93
  *
94
- * @version 1.115.1
94
+ * @version 1.117.0
95
95
  *
96
96
  * @experimental Since 1.49.0 This class is experimental and provides only limited functionality. Also the API might be
97
97
  * changed in future.
@@ -119,7 +119,11 @@ sap.ui.define([
119
119
  aContent = aAggregationContent;
120
120
  iNewIndex = getIndex(aContent, mPropertyBag);
121
121
  aContentClone = insertLabelAndField(aContent, iNewIndex, mInnerControls);
122
- return oModifier.removeAllAggregation(oSimpleForm, "content");
122
+ // Remove each control from the "content" aggregation without leaving them orphan (would reset bindings)
123
+ return aContent.reduce(function(oPreviousPromise, oContent) {
124
+ return oPreviousPromise
125
+ .then(oModifier.insertAggregation.bind(oModifier, oSimpleForm, "dependents", oContent, 0, mPropertyBag.view));
126
+ }, Promise.resolve());
123
127
  })
124
128
  .then(function() {
125
129
  return recreateContentAggregation(oSimpleForm, aContentClone, oModifier, mPropertyBag);
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * Change handler for adding a simple form group.
18
18
  * @alias sap.ui.layout.changeHandler.AddSimpleFormGroup
19
19
  * @author SAP SE
20
- * @version 1.115.1
20
+ * @version 1.117.0
21
21
  * @experimental Since 1.27.0
22
22
  */
23
23
  var AddSimpleFormGroup = {};
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * Change handler for hiding of a control.
18
18
  * @alias sap.ui.fl.changeHandler.HideControl
19
19
  * @author SAP SE
20
- * @version 1.115.1
20
+ * @version 1.117.0
21
21
  * @experimental Since 1.27.0
22
22
  */
23
23
  var HideForm = { };
@@ -77,8 +77,13 @@ sap.ui.define([
77
77
  })
78
78
  .then(function(aAggregationContent) {
79
79
  aContent = aAggregationContent;
80
- // this is needed to trigger a refresh of a simpleform! Otherwise simpleForm content and visualization are not in sync
81
- return oModifier.removeAllAggregation(oControl, "content");
80
+ }).then(function() {
81
+ // Remove each control from the "content" aggregation without leaving them orphan (would reset bindings).
82
+ // This is needed to trigger a refresh of a simpleform! Otherwise simpleForm content and visualization are not in sync
83
+ return aContent.reduce(function(oPreviousPromise, oContent) {
84
+ return oPreviousPromise
85
+ .then(oModifier.insertAggregation.bind(oModifier, oControl, "dependents", oContent, 0, oView));
86
+ }, Promise.resolve());
82
87
  })
83
88
  .then(function() {
84
89
  return aContent.reduce(function(oPreviousPromise, oContent, i) {
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @alias sap.ui.layout.changeHandler.MoveSimpleForm
22
22
  * @author SAP SE
23
- * @version 1.115.1
23
+ * @version 1.117.0
24
24
  * @experimental Since 1.34.0
25
25
  */
26
26
  var MoveSimpleForm = {};
@@ -224,10 +224,17 @@ sap.ui.define([
224
224
  };
225
225
  }
226
226
 
227
- function removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, oView) {
227
+ function removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, aContent, oView) {
228
228
  return Promise.resolve()
229
- .then(oModifier.removeAllAggregation.bind(oModifier, oSimpleForm, MoveSimpleForm.CONTENT_AGGREGATION))
229
+ .then(function() {
230
+ // Remove each control from the "content" aggregation without leaving them orphan (would reset bindings)
231
+ return aContent.reduce(function(oPreviousPromise, oContent) {
232
+ return oPreviousPromise
233
+ .then(oModifier.insertAggregation.bind(oModifier, oSimpleForm, "dependents", oContent, 0, oView));
234
+ }, Promise.resolve());
235
+ })
230
236
  .then(function(){
237
+ // Add the removed controls one by one in the new order
231
238
  return aContentClone.reduce(function(oPreviousPromise, oContentClone, iIndex) {
232
239
  return oPreviousPromise
233
240
  .then(oModifier.insertAggregation.bind(oModifier,
@@ -312,7 +319,7 @@ sap.ui.define([
312
319
  }
313
320
 
314
321
  if (iSourceFieldIndex != iTargetFieldIndex) {
315
- return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, oView);
322
+ return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, aContent, oView);
316
323
  }
317
324
 
318
325
  } else if (oChange.getChangeType() === MoveSimpleForm.CHANGE_TYPE_MOVE_GROUP) {
@@ -355,7 +362,7 @@ sap.ui.define([
355
362
  // and insert it at the target index
356
363
  aContentClone = arrayRangeCopy(aContent, iMovedGroupIndex, aContentClone, iTargetIndex + iOffset, iMovedLength);
357
364
 
358
- return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, oView);
365
+ return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContentClone, aContent, oView);
359
366
  });
360
367
  } else {
361
368
  Log.warning("Unknown change type detected. Cannot apply to SimpleForm");
@@ -445,11 +452,12 @@ sap.ui.define([
445
452
  var oView = mPropertyBag.view;
446
453
  var oRevertData = oChange.getRevertData();
447
454
  var aContentSelectors = oRevertData.content;
448
-
449
- var aContent = aContentSelectors.map(function(oSelector) {
450
- return oModifier.bySelector(oSelector, oAppComponent, oView);
451
- });
452
- return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContent, oView)
455
+ return oModifier.getAggregation(oSimpleForm, MoveSimpleForm.CONTENT_AGGREGATION)
456
+ .then(function(aCurrentContent) {
457
+ var aContent = aContentSelectors.map(function(oSelector) {
458
+ return oModifier.bySelector(oSelector, oAppComponent, oView);
459
+ });
460
+ return removeAndInsertAggregation(oModifier, oSimpleForm, MoveSimpleForm, aContent, aCurrentContent, oView)
453
461
  .then(function(){
454
462
  // destroy implicitly created title
455
463
  var oCreatedTitleSelector = oRevertData.createdTitleSelector;
@@ -462,6 +470,7 @@ sap.ui.define([
462
470
 
463
471
  return true;
464
472
  });
473
+ });
465
474
  };
466
475
 
467
476
  MoveSimpleForm.getChangeVisualizationInfo = function(oChange, oAppComponent) {
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  *
15
15
  * @alias sap.ui.layout.changeHandler.RenameFormContainer
16
16
  * @author SAP SE
17
- * @version 1.115.1
17
+ * @version 1.117.0
18
18
  * @since 1.48
19
19
  * @private
20
20
  * @experimental Since 1.48. This class is experimental and provides only limited functionality. Also the API might be changed in future.
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  *
19
19
  * @alias sap.ui.layout.changeHandler.RenameForm
20
20
  * @author SAP SE
21
- * @version 1.115.1
21
+ * @version 1.117.0
22
22
  * @since 1.40
23
23
  * @private
24
24
  * @experimental Since 1.40. This class is experimental and provides only limited functionality. Also the API might be changed in future.
@@ -13,7 +13,7 @@ sap.ui.define([
13
13
  * Change handler for hiding of a control.
14
14
  * @alias sap.ui.fl.changeHandler.HideControl
15
15
  * @author SAP SE
16
- * @version 1.115.1
16
+ * @version 1.117.0
17
17
  * @experimental Since 1.27.0
18
18
  */
19
19
  var UnhideForm = { };
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout MDN web docs: CSS Grid Layout}
97
97
  *
98
98
  * @author SAP SE
99
- * @version 1.115.1
99
+ * @version 1.117.0
100
100
  *
101
101
  * @extends sap.ui.core.Control
102
102
  * @implements sap.ui.layout.cssgrid.IGridConfigurable
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * Applies a sap.ui.layout.cssgrid.GridSettings to a provided DOM element or Control.
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.115.1
24
+ * @version 1.117.0
25
25
  *
26
26
  * @extends sap.ui.layout.cssgrid.GridLayoutBase
27
27
  *
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  * Applies a sap.ui.layout.cssgrid.GridSettings to a provided DOM element or Control.
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.115.1
51
+ * @version 1.117.0
52
52
  *
53
53
  * @extends sap.ui.layout.cssgrid.GridLayoutBase
54
54
  *
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * Holds layout data for a grid item.
30
30
  *
31
31
  * @extends sap.ui.core.LayoutData
32
- * @version 1.115.1
32
+ * @version 1.117.0
33
33
  *
34
34
  * @constructor
35
35
  * @public
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * Applies a sap.ui.layout.cssgrid.GridSettings to a provided DOM element or Control.
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.115.1
39
+ * @version 1.117.0
40
40
  *
41
41
  * @extends sap.ui.base.ManagedObject
42
42
  *
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @extends sap.ui.base.Object
22
22
  *
23
- * @version 1.115.1
23
+ * @version 1.117.0
24
24
  * @alias sap.ui.layout.cssgrid.GridLayoutDelegate
25
25
  * @public
26
26
  */