@openui5/sap.ui.layout 1.92.0 → 1.93.3

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 (63) hide show
  1. package/.reuse/dep5 +5 -0
  2. package/THIRDPARTY.txt +10 -1
  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/BlockLayoutRow.js +1 -1
  11. package/src/sap/ui/layout/DynamicSideContent.js +1 -1
  12. package/src/sap/ui/layout/FixFlex.js +1 -1
  13. package/src/sap/ui/layout/Grid.js +1 -1
  14. package/src/sap/ui/layout/GridData.js +1 -1
  15. package/src/sap/ui/layout/GridRenderer.js +1 -1
  16. package/src/sap/ui/layout/HorizontalLayout.js +1 -1
  17. package/src/sap/ui/layout/PaneContainer.js +1 -1
  18. package/src/sap/ui/layout/ResponsiveFlowLayout.js +1 -1
  19. package/src/sap/ui/layout/ResponsiveFlowLayoutData.js +1 -1
  20. package/src/sap/ui/layout/ResponsiveSplitter.js +1 -1
  21. package/src/sap/ui/layout/ResponsiveSplitterPage.js +1 -1
  22. package/src/sap/ui/layout/SplitPane.js +1 -1
  23. package/src/sap/ui/layout/Splitter.js +2 -2
  24. package/src/sap/ui/layout/SplitterLayoutData.js +1 -1
  25. package/src/sap/ui/layout/VerticalLayout.js +1 -1
  26. package/src/sap/ui/layout/changeHandler/AddFormContainer.js +49 -22
  27. package/src/sap/ui/layout/changeHandler/AddFormField.js +40 -30
  28. package/src/sap/ui/layout/changeHandler/AddSimpleFormField.js +42 -27
  29. package/src/sap/ui/layout/changeHandler/AddSimpleFormGroup.js +76 -60
  30. package/src/sap/ui/layout/changeHandler/HideSimpleForm.js +166 -92
  31. package/src/sap/ui/layout/changeHandler/MoveSimpleForm.js +185 -141
  32. package/src/sap/ui/layout/changeHandler/RenameFormContainer.js +45 -35
  33. package/src/sap/ui/layout/changeHandler/RenameSimpleForm.js +13 -9
  34. package/src/sap/ui/layout/changeHandler/UnhideSimpleForm.js +64 -49
  35. package/src/sap/ui/layout/cssgrid/CSSGrid.js +1 -1
  36. package/src/sap/ui/layout/cssgrid/GridBasicLayout.js +1 -1
  37. package/src/sap/ui/layout/cssgrid/GridBoxLayout.js +1 -1
  38. package/src/sap/ui/layout/cssgrid/GridBoxLayoutStyleHelper.js +1 -1
  39. package/src/sap/ui/layout/cssgrid/GridItemLayoutData.js +1 -1
  40. package/src/sap/ui/layout/cssgrid/GridLayoutBase.js +1 -1
  41. package/src/sap/ui/layout/cssgrid/GridLayoutDelegate.js +1 -1
  42. package/src/sap/ui/layout/cssgrid/GridResponsiveLayout.js +1 -1
  43. package/src/sap/ui/layout/cssgrid/GridSettings.js +1 -1
  44. package/src/sap/ui/layout/cssgrid/ResponsiveColumnItemLayoutData.js +1 -1
  45. package/src/sap/ui/layout/cssgrid/ResponsiveColumnLayout.js +1 -1
  46. package/src/sap/ui/layout/designtime/form/SimpleForm.designtime.js +7 -2
  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 +1 -1
  50. package/src/sap/ui/layout/form/Form.js +1 -1
  51. package/src/sap/ui/layout/form/FormContainer.js +1 -1
  52. package/src/sap/ui/layout/form/FormElement.js +1 -1
  53. package/src/sap/ui/layout/form/FormLayout.js +1 -1
  54. package/src/sap/ui/layout/form/GridContainerData.js +1 -1
  55. package/src/sap/ui/layout/form/GridElementData.js +1 -1
  56. package/src/sap/ui/layout/form/GridLayout.js +1 -1
  57. package/src/sap/ui/layout/form/ResponsiveGridLayout.js +2 -7
  58. package/src/sap/ui/layout/form/ResponsiveLayout.js +2 -1
  59. package/src/sap/ui/layout/form/SemanticFormElement.js +49 -32
  60. package/src/sap/ui/layout/form/SimpleForm.js +11 -9
  61. package/src/sap/ui/layout/library.js +3 -2
  62. package/src/sap/ui/layout/themes/base/ResponsiveSplitter.less +4 -2
  63. package/src/sap/ui/layout/themes/base/Splitter.less +1 -1
package/.reuse/dep5 CHANGED
@@ -464,3 +464,8 @@ Copyright:
464
464
  License: Apache-2.0
465
465
  Comment: these files contain content from SAP and JSDoc 3: plugin.js is overall written by SAP, but contains code taken from JSDoc 3.6.7 (see the respective comments)
466
466
 
467
+ Files: src/sap.ui.core/src/sap/ui/core/themes/base/base.less src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
468
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
469
+ License: Apache-2.0
470
+ Comment: these files belong to: SAP Theming Base Content
471
+
package/THIRDPARTY.txt CHANGED
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.6
200
+ Component: URI.js, version: 1.19.7
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -462,6 +462,15 @@ License: Apache-2.0
462
462
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
463
  Contained in: lib/jsdoc/ui5/plugin.js
464
464
 
465
+ Component: SAP Theming Base Content, version: 11.1.34
466
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
467
+ License: Apache-2.0
468
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
+ Contained in: src/sap.ui.core/src/sap/ui/core/themes/base/base.less
470
+ src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less
471
+ src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less
472
+ src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
473
+
465
474
 
466
475
  ALL LICENSE TEXTS:
467
476
  ==================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.layout",
3
- "version": "1.92.0",
3
+ "version": "1.93.3",
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.92.0"
17
+ "@openui5/sap.ui.core": "1.93.3"
18
18
  }
19
19
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.92.0</version>
9
+ <version>1.93.3</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.92.0
43
+ * @version 1.93.3
44
44
  *
45
45
  * @constructor
46
46
  * @private
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.layout.Splitter
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.92.0
28
+ * @version 1.93.3
29
29
  *
30
30
  * @constructor
31
31
  * @private
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @extends sap.ui.core.Control
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.92.0
65
+ * @version 1.93.3
66
66
  *
67
67
  * @constructor
68
68
  * @public
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.core.Control
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.92.0
30
+ * @version 1.93.3
31
31
  *
32
32
  * @constructor
33
33
  * @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.92.0
21
+ * @version 1.93.3
22
22
  * @constructor
23
23
  * @public
24
24
  * @since 1.50.0
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.ui.core.Control
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.92.0
39
+ * @version 1.93.3
40
40
  *
41
41
  * @constructor
42
42
  * @public
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @extends sap.ui.core.Control
95
95
  *
96
96
  * @author SAP SE
97
- * @version 1.92.0
97
+ * @version 1.93.3
98
98
  *
99
99
  * @constructor
100
100
  * @public
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @extends sap.ui.core.Control
53
53
  *
54
54
  * @author SAP SE
55
- * @version 1.92.0
55
+ * @version 1.93.3
56
56
  *
57
57
  * @constructor
58
58
  * @public
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.core.Control
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.92.0
62
+ * @version 1.93.3
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.92.0
31
+ * @version 1.93.3
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.92.0
18
+ * 1.93.3
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.92.0
25
+ * @version 1.93.3
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.92.0
27
+ * @version 1.93.3
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.Control
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.92.0
40
+ * @version 1.93.3
41
41
  *
42
42
  * @constructor
43
43
  * @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.92.0
25
+ * @version 1.93.3
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.92.0
73
+ * @version 1.93.3
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.92.0
27
+ * @version 1.93.3
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.92.0
29
+ * @version 1.93.3
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  * @extends sap.ui.core.Control
67
67
  *
68
68
  * @author SAP SE
69
- * @version 1.92.0
69
+ * @version 1.93.3
70
70
  *
71
71
  * @constructor
72
72
  * @public
@@ -231,7 +231,7 @@ sap.ui.define([
231
231
  * Returns the current actual content sizes as pixel value - these values can change with every
232
232
  * resize.
233
233
  *
234
- * @returns {Number[]} Array of px values that correspond to the content area sizes
234
+ * @returns {number[]} Array of px values that correspond to the content area sizes
235
235
  * @protected
236
236
  * @deprecated As of version 1.21. This method is declared as protected in order to assess the need for this feature. It is declared as deprecated because the API might change in case the need for this is high enough to make it part of the official Splitter interface
237
237
  */
@@ -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.92.0
27
+ * @version 1.93.3
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.92.0
28
+ * @version 1.93.3
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * Change handler for adding a form group.
22
22
  * @alias sap.ui.layout.changeHandler.AddFormContainer
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.93.3
25
25
  * @experimental Since 1.48.0
26
26
  */
27
27
  var AddGroup = { };
@@ -35,20 +35,25 @@ sap.ui.define([
35
35
  * @param {object} mPropertyBag.modifier Modifier for the controls
36
36
  * @param {object} mPropertyBag.appComponent Component in which the change should be applied
37
37
  * @param {object} mPropertyBag.view Application view
38
+ * @returns {Promise} Promise resolving when change is successfully applied
38
39
  * @public
39
40
  */
40
41
  AddGroup.applyChange = function(oChange, oForm, mPropertyBag) {
41
- var oModifier = mPropertyBag.modifier,
42
- oAppComponent = mPropertyBag.appComponent,
43
- oView = mPropertyBag.view,
44
- oChangeDefinition = oChange.getDefinition(),
45
- oTitle, oGroup;
42
+ var oModifier = mPropertyBag.modifier;
43
+ var oAppComponent = mPropertyBag.appComponent;
44
+ var oView = mPropertyBag.view;
45
+ var oChangeDefinition = oChange.getDefinition();
46
46
 
47
- if (oChangeDefinition.texts && oChangeDefinition.texts.groupLabel && oChangeDefinition.texts.groupLabel.value && oChangeDefinition.content && oChangeDefinition.content.group && (oChangeDefinition.content.group.selector || oChangeDefinition.content.group.id)) {
48
- var sTitleText = oChangeDefinition.texts.groupLabel.value,
49
- iInsertIndex = oChangeDefinition.content.group.index,
50
- mNewGroupSelector = oChangeDefinition.content.group.selector || { id : oChangeDefinition.content.group.id },
51
- mNewTitleSelector = jQuery.extend({}, mNewGroupSelector);
47
+ if (oChangeDefinition.texts
48
+ && oChangeDefinition.texts.groupLabel
49
+ && oChangeDefinition.texts.groupLabel.value
50
+ && oChangeDefinition.content
51
+ && oChangeDefinition.content.group
52
+ && (oChangeDefinition.content.group.selector || oChangeDefinition.content.group.id)) {
53
+ var sTitleText = oChangeDefinition.texts.groupLabel.value;
54
+ var iInsertIndex = oChangeDefinition.content.group.index;
55
+ var mNewGroupSelector = oChangeDefinition.content.group.selector || { id : oChangeDefinition.content.group.id };
56
+ var mNewTitleSelector = jQuery.extend({}, mNewGroupSelector);
52
57
 
53
58
  mNewTitleSelector.id = mNewTitleSelector.id + "--title"; //same as FormRenderer does it
54
59
  oChange.setRevertData({newGroupSelector: mNewGroupSelector});
@@ -59,15 +64,30 @@ sap.ui.define([
59
64
  } else if (oModifier.bySelector(mNewGroupSelector, oAppComponent)) {
60
65
  return Base.markAsNotApplicable("Control to be created already exists:" + mNewGroupSelector);
61
66
  }
62
- oTitle = oModifier.createControl("sap.ui.core.Title", oAppComponent, oView, mNewTitleSelector);
63
- oGroup = oModifier.createControl("sap.ui.layout.form.FormContainer", oAppComponent, oView, mNewGroupSelector);
64
67
 
65
- oModifier.setProperty(oTitle, "text", sTitleText);
66
- oModifier.insertAggregation(oGroup, "title", oTitle, 0, oView);
67
- oModifier.insertAggregation(oForm, "formContainers", oGroup, iInsertIndex, oView);
68
+ return Promise.resolve()
69
+ .then(function() {
70
+ return Promise.all([
71
+ oModifier.createControl("sap.ui.core.Title", oAppComponent, oView, mNewTitleSelector),
72
+ oModifier.createControl("sap.ui.layout.form.FormContainer", oAppComponent, oView, mNewGroupSelector)
73
+ ]);
74
+ })
75
+ .then(function(aControls) {
76
+ var oTitle = aControls[0];
77
+ var oGroup = aControls[1];
78
+ oModifier.setProperty(oTitle, "text", sTitleText);
79
+ return Promise.resolve()
80
+ .then(oModifier.insertAggregation.bind(oModifier, oGroup, "title", oTitle, 0, oView))
81
+ .then(oModifier.insertAggregation.bind(oModifier, oForm, "formContainers", oGroup, iInsertIndex, oView));
82
+ });
68
83
  } else {
69
- Log.error("Change does not contain sufficient information to be applied: [" + oChangeDefinition.layer + "]" + oChangeDefinition.namespace + "/" + oChangeDefinition.fileName + "." + oChangeDefinition.fileType);
84
+ Log.error("Change does not contain sufficient information to be applied: ["
85
+ + oChangeDefinition.layer + "]"
86
+ + oChangeDefinition.namespace + "/"
87
+ + oChangeDefinition.fileName + "."
88
+ + oChangeDefinition.fileType);
70
89
  //however subsequent changes should be applied
90
+ return Promise.resolve();
71
91
  }
72
92
  };
73
93
 
@@ -83,8 +103,8 @@ sap.ui.define([
83
103
  * @public
84
104
  */
85
105
  AddGroup.completeChangeContent = function(oChange, oSpecificChangeInfo, mPropertyBag) {
86
- var oChangeDefinition = oChange.getDefinition(),
87
- oAppComponent = mPropertyBag.appComponent;
106
+ var oChangeDefinition = oChange.getDefinition();
107
+ var oAppComponent = mPropertyBag.appComponent;
88
108
 
89
109
  if (oSpecificChangeInfo.newLabel) {
90
110
  Base.setTextInChange(oChangeDefinition, "groupLabel", oSpecificChangeInfo.newLabel, "XFLD");
@@ -120,6 +140,7 @@ sap.ui.define([
120
140
  * @param {object} mPropertyBag.modifier Modifier for the controls
121
141
  * @param {object} mPropertyBag.appComponent Component in which the change should be applied
122
142
  * @param {object} mPropertyBag.view Application view
143
+ * @returns {Promise} Promise resolving when change is successfully reverted
123
144
  * @public
124
145
  */
125
146
  AddGroup.revertChange = function (oChange, oForm, mPropertyBag) {
@@ -129,9 +150,15 @@ sap.ui.define([
129
150
  var mNewGroupSelector = oChange.getRevertData().newGroupSelector;
130
151
 
131
152
  var oGroup = oModifier.bySelector(mNewGroupSelector, oAppComponent, oView);
132
- oModifier.removeAggregation(oForm, "formContainers", oGroup);
133
- oModifier.destroy(oGroup);
134
- oChange.resetRevertData();
153
+
154
+ return Promise.resolve()
155
+ .then(function() {
156
+ return oModifier.removeAggregation(oForm, "formContainers", oGroup);
157
+ })
158
+ .then(function() {
159
+ oModifier.destroy(oGroup);
160
+ oChange.resetRevertData();
161
+ });
135
162
  };
136
163
 
137
164
  return AddGroup;
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  *
20
20
  * @author SAP SE
21
21
  *
22
- * @version 1.92.0
22
+ * @version 1.93.3
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.
@@ -37,37 +37,47 @@ sap.ui.define([
37
37
  var mFieldSelector = mChangeContent.newFieldSelector;
38
38
 
39
39
  var oCreatedFormElement;
40
+ var oParentFormContainer;
40
41
 
41
- // "layoutControl" property is present only when the control is returned from Delegate.createLayout()
42
- if (!mInnerControls.layoutControl) {
43
- oCreatedFormElement = oModifier.createControl(
44
- "sap.ui.layout.form.FormElement",
45
- oAppComponent,
46
- oView,
47
- mFieldSelector
48
- );
49
- oModifier.insertAggregation(oCreatedFormElement, "label", mInnerControls.label, 0, oView);
50
- oModifier.insertAggregation(oCreatedFormElement, "fields", mInnerControls.control, 0, oView);
51
- } else {
52
- oCreatedFormElement = mInnerControls.control;
53
- }
42
+ return Promise.resolve()
43
+ .then(function(){
44
+ // "layoutControl" property is present only when the control is returned from Delegate.createLayout()
45
+ if (!mInnerControls.layoutControl) {
46
+ return Promise.resolve()
47
+ .then(oModifier.createControl.bind(oModifier, "sap.ui.layout.form.FormElement", oAppComponent, oView, mFieldSelector))
48
+ .then(function(oCreatedControl) {
49
+ oCreatedFormElement = oCreatedControl;
50
+ return Promise.all([
51
+ oModifier.insertAggregation(oCreatedFormElement, "label", mInnerControls.label, 0, oView),
52
+ oModifier.insertAggregation(oCreatedFormElement, "fields", mInnerControls.control, 0, oView)
53
+ ]);
54
+ });
55
+ }
56
+ oCreatedFormElement = mInnerControls.control;
57
+ return undefined;
58
+ })
59
+ .then(function(){
60
+ oParentFormContainer = oChange.getDependentControl("parentFormContainer", mPropertyBag);
61
+ return oModifier.insertAggregation(oParentFormContainer,
62
+ "formElements",
63
+ oCreatedFormElement,
64
+ iIndex,
65
+ oView
66
+ );
67
+ })
68
+ .then(function(){
69
+ if (mInnerControls.valueHelp) {
70
+ return oModifier.insertAggregation(
71
+ oParentFormContainer,
72
+ "dependents",
73
+ mInnerControls.valueHelp,
74
+ 0,
75
+ oView
76
+ );
77
+ }
78
+ return undefined;
79
+ });
54
80
 
55
- var oParentFormContainer = oChange.getDependentControl("parentFormContainer", mPropertyBag);
56
- oModifier.insertAggregation(oParentFormContainer,
57
- "formElements",
58
- oCreatedFormElement,
59
- iIndex,
60
- oView
61
- );
62
- if (mInnerControls.valueHelp) {
63
- oModifier.insertAggregation(
64
- oParentFormContainer,
65
- "dependents",
66
- mInnerControls.valueHelp,
67
- 0,
68
- oView
69
- );
70
- }
71
81
  },
72
82
  aggregationName: "formElements",
73
83
  parentAlias: "parentFormContainer",
@@ -67,15 +67,17 @@ sap.ui.define([
67
67
  }
68
68
 
69
69
  function recreateContentAggregation(oSimpleForm, aContentClone, oModifier, mPropertyBag) {
70
- oModifier.removeAllAggregation(oSimpleForm, "content");
71
- for (var i = 0; i < aContentClone.length; ++i) {
72
- oModifier.insertAggregation(oSimpleForm,
73
- "content",
74
- aContentClone[i],
75
- i,
76
- mPropertyBag.view
77
- );
78
- }
70
+ return aContentClone.reduce(function(oPreviousPromise, oContentClone, iIndex) {
71
+ return oPreviousPromise
72
+ .then(function() {
73
+ return oModifier.insertAggregation(oSimpleForm,
74
+ "content",
75
+ oContentClone,
76
+ iIndex,
77
+ mPropertyBag.view
78
+ );
79
+ });
80
+ }, Promise.resolve());
79
81
  }
80
82
 
81
83
  /**
@@ -87,7 +89,7 @@ sap.ui.define([
87
89
  *
88
90
  * @author SAP SE
89
91
  *
90
- * @version 1.92.0
92
+ * @version 1.93.3
91
93
  *
92
94
  * @experimental Since 1.49.0 This class is experimental and provides only limited functionality. Also the API might be
93
95
  * changed in future.
@@ -99,27 +101,38 @@ sap.ui.define([
99
101
  var mInnerControls = mPropertyBag.innerControls;
100
102
  var oModifier = mPropertyBag.modifier;
101
103
  var oAppComponent = mPropertyBag.appComponent;
104
+ var aContent;
105
+ var iNewIndex;
106
+ var aContentClone;
102
107
 
103
108
  var oChange = mPropertyBag.change;
104
109
  // as the label is stored independent of the field and will not be destroyed by destroying the field, is needs to be remembered
105
110
  var oRevertData = oChange.getRevertData();
106
111
  oRevertData.labelSelector = oModifier.getSelector(mInnerControls.label, oAppComponent);
107
112
 
108
- var aContent = oModifier.getAggregation(oSimpleForm, "content");
109
- var iNewIndex = getIndex(aContent, mPropertyBag);
110
- var aContentClone = insertLabelAndField(aContent, iNewIndex, mInnerControls);
111
-
112
- recreateContentAggregation(oSimpleForm, aContentClone, oModifier, mPropertyBag);
113
-
114
- if (mInnerControls.valueHelp) {
115
- oModifier.insertAggregation(
116
- oSimpleForm,
117
- "dependents",
118
- mInnerControls.valueHelp,
119
- 0,
120
- mPropertyBag.view
121
- );
122
- }
113
+ return Promise.resolve()
114
+ .then(oModifier.getAggregation.bind(oModifier, oSimpleForm, "content"))
115
+ .then(function(aAggregationContent) {
116
+ aContent = aAggregationContent;
117
+ iNewIndex = getIndex(aContent, mPropertyBag);
118
+ aContentClone = insertLabelAndField(aContent, iNewIndex, mInnerControls);
119
+ return oModifier.removeAllAggregation(oSimpleForm, "content");
120
+ })
121
+ .then(function() {
122
+ return recreateContentAggregation(oSimpleForm, aContentClone, oModifier, mPropertyBag);
123
+ })
124
+ .then(function() {
125
+ if (mInnerControls.valueHelp) {
126
+ return oModifier.insertAggregation(
127
+ oSimpleForm,
128
+ "dependents",
129
+ mInnerControls.valueHelp,
130
+ 0,
131
+ mPropertyBag.view
132
+ );
133
+ }
134
+ return undefined;
135
+ });
123
136
  },
124
137
  revertAdditionalControls : function(mPropertyBag) {
125
138
  var oSimpleForm = mPropertyBag.control;
@@ -130,9 +143,11 @@ sap.ui.define([
130
143
  var mLabelSelector = oChange.getRevertData().labelSelector;
131
144
  if (mLabelSelector) {
132
145
  var oLabel = oModifier.bySelector(mLabelSelector, oAppComponent);
133
- oModifier.removeAggregation(oSimpleForm, "content", oLabel);
134
- oModifier.destroy(oLabel);
146
+ return Promise.resolve()
147
+ .then(oModifier.removeAggregation.bind(oModifier, oSimpleForm, "content", oLabel))
148
+ .then(oModifier.destroy.bind(oModifier, oLabel));
135
149
  }
150
+ return Promise.resolve();
136
151
  },
137
152
  aggregationName: "content",
138
153
  mapParentIdIntoChange: function (oChange, mSpecificChangeInfo, mPropertyBag) {