@openui5/sap.ui.fl 1.123.1 → 1.124.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.
Files changed (164) hide show
  1. package/package.json +3 -3
  2. package/src/sap/ui/fl/.library +1 -1
  3. package/src/sap/ui/fl/ChangePersistence.js +39 -48
  4. package/src/sap/ui/fl/ChangePersistenceFactory.js +1 -1
  5. package/src/sap/ui/fl/FakeLrepConnectorLocalStorage.js +1 -1
  6. package/src/sap/ui/fl/FakeLrepConnectorSessionStorage.js +1 -1
  7. package/src/sap/ui/fl/FakeLrepLocalStorage.js +1 -1
  8. package/src/sap/ui/fl/FlexController.js +3 -34
  9. package/src/sap/ui/fl/FlexControllerFactory.js +1 -1
  10. package/src/sap/ui/fl/LayerUtils.js +1 -1
  11. package/src/sap/ui/fl/Utils.js +1 -1
  12. package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +113 -270
  13. package/src/sap/ui/fl/apply/_internal/appVariant/DescriptorChangeTypes.js +2 -1
  14. package/src/sap/ui/fl/apply/_internal/changes/Applier.js +36 -3
  15. package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +1 -1
  16. package/src/sap/ui/fl/apply/_internal/changes/Utils.js +1 -1
  17. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
  18. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +1 -1
  19. package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +1 -1
  20. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +1 -1
  21. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +1 -1
  22. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +1 -1
  23. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +1 -1
  24. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +1 -1
  25. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +1 -1
  26. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +1 -1
  27. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +1 -1
  28. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +1 -1
  29. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +1 -1
  30. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +1 -1
  31. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +1 -1
  32. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +1 -1
  33. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +1 -1
  34. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +1 -1
  35. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +1 -1
  36. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +49 -5
  37. package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
  38. package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +28 -27
  39. package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +1 -1
  40. package/src/sap/ui/fl/apply/_internal/extensionPoint/Registry.js +1 -1
  41. package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +1 -1
  42. package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +1 -1
  43. package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +1 -1
  44. package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +1 -1
  45. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +1 -1
  46. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +1 -1
  47. package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +1 -1
  48. package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +1 -1
  49. package/src/sap/ui/fl/apply/_internal/flexObjects/getVariantAuthor.js +1 -1
  50. package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +75 -41
  51. package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +1 -1
  52. package/src/sap/ui/fl/apply/_internal/flexState/ManifestUtils.js +1 -1
  53. package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
  54. package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +30 -11
  55. package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +67 -70
  56. package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +14 -6
  57. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +2 -2
  58. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/Utils.js +4 -0
  59. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +8 -7
  60. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +108 -41
  61. package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +8 -15
  62. package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +7 -12
  63. package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +15 -19
  64. package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +1 -1
  65. package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +13 -86
  66. package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +14 -11
  67. package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
  68. package/src/sap/ui/fl/changeHandler/AddXML.js +1 -1
  69. package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +1 -1
  70. package/src/sap/ui/fl/changeHandler/Base.js +1 -1
  71. package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +14 -29
  72. package/src/sap/ui/fl/changeHandler/BaseAddXml.js +1 -1
  73. package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
  74. package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
  75. package/src/sap/ui/fl/changeHandler/MoveControls.js +1 -1
  76. package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
  77. package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
  78. package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
  79. package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
  80. package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
  81. package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
  82. package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +2 -2
  83. package/src/sap/ui/fl/changeHandler/common/createIFrame.js +5 -2
  84. package/src/sap/ui/fl/descriptorRelated/Utils.js +16 -7
  85. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +4 -4
  86. package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
  87. package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
  88. package/src/sap/ui/fl/designtime/util/IFrame.designtime.js +26 -0
  89. package/src/sap/ui/fl/designtime/util/editIFrame.js +8 -5
  90. package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +1 -1
  91. package/src/sap/ui/fl/initial/_internal/Storage.js +5 -2
  92. package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +1 -1
  93. package/src/sap/ui/fl/initial/_internal/StorageUtils.js +1 -1
  94. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +1 -1
  95. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +1 -1
  96. package/src/sap/ui/fl/initial/_internal/connectors/KeyUserConnector.js +1 -1
  97. package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
  98. package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
  99. package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
  100. package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
  101. package/src/sap/ui/fl/library.js +43 -43
  102. package/src/sap/ui/fl/messagebundle_sh.properties +9 -9
  103. package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +1 -1
  104. package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
  105. package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
  106. package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
  107. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
  108. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
  109. package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
  110. package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
  111. package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
  112. package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
  113. package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
  114. package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetails.view.xml +0 -1
  115. package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetailsEdit.view.xml +0 -1
  116. package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
  117. package/src/sap/ui/fl/util/IFrame.js +51 -64
  118. package/src/sap/ui/fl/util/IFrameRenderer.js +15 -9
  119. package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
  120. package/src/sap/ui/fl/util/resolveBinding.js +1 -1
  121. package/src/sap/ui/fl/variants/VariantModel.js +5 -5
  122. package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
  123. package/src/sap/ui/fl/write/_internal/Versions.js +1 -1
  124. package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +1 -1
  125. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +1 -1
  126. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
  127. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +2 -2
  128. package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +1 -1
  129. package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +1 -1
  130. package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
  131. package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +1 -1
  132. package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +1 -1
  133. package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +1 -1
  134. package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
  135. package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
  136. package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
  137. package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
  138. package/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js +5 -5
  139. package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
  140. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
  141. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
  142. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
  143. package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
  144. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
  145. package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
  146. package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
  147. package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +12 -23
  148. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
  149. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
  150. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  151. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
  152. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
  153. package/src/sap/ui/fl/write/_internal/flexState/FlexObjectState.js +63 -95
  154. package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
  155. package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +2 -1
  156. package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +1 -1
  157. package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
  158. package/src/sap/ui/fl/write/api/FieldExtensibility.js +1 -1
  159. package/src/sap/ui/fl/write/api/LocalResetAPI.js +9 -8
  160. package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +3 -7
  161. package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +78 -0
  162. package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +9 -1
  163. package/src/sap/ui/fl/apply/_internal/DelegateMediatorNew.js +0 -193
  164. package/src/sap/ui/fl/apply/_internal/flexState/appDescriptorChanges/prepareAppDescriptorMap.js +0 -39
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  *
17
17
  * @namespace sap.ui.fl.apply._internal.flexState.UI2Personalization.UI2PersonalizationState
18
18
  * @since 1.75
19
- * @version 1.123.1
19
+ * @version 1.124.1
20
20
  * @private
21
21
  * @ui5-restricted
22
22
  */
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @namespace sap.ui.fl.apply._internal.flexState.changes.DependencyHandler
22
22
  * @since 1.74
23
- * @version 1.123.1
23
+ * @version 1.124.1
24
24
  * @private
25
25
  * @ui5-restricted sap.ui.fl
26
26
  */
@@ -73,11 +73,22 @@ sap.ui.define([
73
73
 
74
74
  function isSelectorInArray(aExistingDependentSelectorList, oDependentSelector) {
75
75
  return aExistingDependentSelectorList.some(function(oExistingDependentSelector) {
76
- return (oExistingDependentSelector.id === oDependentSelector.id && oExistingDependentSelector.idIsLocal === oDependentSelector.idIsLocal);
76
+ return (
77
+ oExistingDependentSelector.id === oDependentSelector.id
78
+ && oExistingDependentSelector.idIsLocal === oDependentSelector.idIsLocal
79
+ );
77
80
  });
78
81
  }
79
82
 
80
- function addChangesDependencies(oTargetChange, aDependentSelectorsOfTargetChange, oExistingChange, bCheckingOrder, oAppComponent, aChanges, oDependencyMap) {
83
+ function addChangesDependencies(
84
+ oTargetChange,
85
+ aDependentSelectorsOfTargetChange,
86
+ oExistingChange,
87
+ bCheckingOrder,
88
+ oAppComponent,
89
+ aChanges,
90
+ oDependencyMap
91
+ ) {
81
92
  var aDependentSelectorsOfExistingChange = oExistingChange.getDependentSelectorList();
82
93
  aDependentSelectorsOfTargetChange.some(function(oDependentSelector) {
83
94
  // If 2 changes have the same dependent selector, they are depend on each other
@@ -92,6 +103,7 @@ sap.ui.define([
92
103
  }
93
104
  return true;
94
105
  }
106
+ return false;
95
107
  });
96
108
  }
97
109
 
@@ -157,7 +169,8 @@ sap.ui.define([
157
169
  }
158
170
 
159
171
  function isDependencyNeeded(oDependentChange, oChange, sDependentControlId, oDependencyMap, bIsChangesInRevertOrder) {
160
- var bSelectorAlreadyThere = !bIsChangesInRevertOrder && oDependencyMap.mDependencies[oDependentChange.getId()].dependentIds.includes(sDependentControlId);
172
+ var bSelectorAlreadyThere =
173
+ !bIsChangesInRevertOrder && oDependencyMap.mDependencies[oDependentChange.getId()].dependentIds.includes(sDependentControlId);
161
174
  var bIndirectDependency = false;
162
175
  if (oDependencyMap.mDependentChangesOnMe[oChange.getId()]) {
163
176
  oDependencyMap.mDependentChangesOnMe[oChange.getId()].some(function(sChangeId) {
@@ -169,6 +182,14 @@ sap.ui.define([
169
182
  return !bSelectorAlreadyThere && !bIndirectDependency;
170
183
  }
171
184
 
185
+ function removeChangeFromList(oDependencyMap, sChangeKey) {
186
+ const iIndex = oDependencyMap.aChanges.findIndex((oChange) => oChange.getId() === sChangeKey);
187
+
188
+ if (iIndex !== -1) {
189
+ oDependencyMap.aChanges.splice(iIndex, 1);
190
+ }
191
+ }
192
+
172
193
  /**
173
194
  * Iterating over <code>mDependencies</code> once, executing relevant dependencies, and clearing dependencies queue.
174
195
  *
@@ -295,6 +316,7 @@ sap.ui.define([
295
316
  if (bContinue) {
296
317
  return DependencyHandler.processDependentQueue(oDependencyMap, oAppComponent, sControlId);
297
318
  }
319
+ return undefined;
298
320
  }.bind(undefined, sControlId));
299
321
  };
300
322
 
@@ -344,6 +366,7 @@ sap.ui.define([
344
366
  /**
345
367
  * Resolves the dependency from the dependent changes;
346
368
  * Loops over all the dependent changes and removes the dependency to this change
369
+ * After the dependency is resolved the change is removed from the list of changes (aChanges)
347
370
  *
348
371
  * @param {object} oDependencyMap - Changes Map
349
372
  * @param {string} sChangeKey - Key of the change which dependencies have to be resolved
@@ -368,6 +391,7 @@ sap.ui.define([
368
391
  });
369
392
  delete oDependencyMap.mDependentChangesOnMe[sChangeKey];
370
393
  }
394
+ removeChangeFromList(oDependencyMap, sChangeKey);
371
395
  };
372
396
 
373
397
  /**
@@ -388,15 +412,10 @@ sap.ui.define([
388
412
  aChanges.splice(iIndexInMapElement, 1);
389
413
  return true;
390
414
  }
415
+ return false;
391
416
  });
392
417
 
393
- var iIndex = oDependencyMap.aChanges.map(function(oExistingChange) {
394
- return oExistingChange.getId();
395
- }).indexOf(sChangeKey);
396
-
397
- if (iIndex !== -1) {
398
- oDependencyMap.aChanges.splice(iIndex, 1);
399
- }
418
+ removeChangeFromList(oDependencyMap, sChangeKey);
400
419
  };
401
420
 
402
421
  /**
@@ -12,6 +12,7 @@ sap.ui.define([
12
12
  "sap/ui/fl/apply/_internal/changes/Utils",
13
13
  "sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory",
14
14
  "sap/ui/fl/apply/_internal/flexObjects/States",
15
+ "sap/ui/fl/apply/_internal/flexState/changes/UIChangesState",
15
16
  "sap/ui/fl/apply/_internal/flexState/FlexState",
16
17
  "sap/ui/fl/apply/_internal/flexState/ManifestUtils",
17
18
  "sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage",
@@ -25,6 +26,7 @@ sap.ui.define([
25
26
  ChangesUtils,
26
27
  FlexObjectFactory,
27
28
  FlexObjectStates,
29
+ UIChangesState,
28
30
  FlexState,
29
31
  ManifestUtils,
30
32
  ChangeHandlerStorage,
@@ -39,19 +41,12 @@ sap.ui.define([
39
41
  *
40
42
  * @namespace sap.ui.fl.apply._internal.flexState.changes.ExtensionPointState
41
43
  * @since 1.79
42
- * @version 1.123.1
44
+ * @version 1.124.1
43
45
  * @private
44
46
  * @ui5-restricted
45
47
  */
46
48
  const ExtensionPointState = {};
47
49
 
48
- function isChangeValidForExtensionPoint(mPropertyBag, oChange) {
49
- if (oChange.getSelector().name !== mPropertyBag.extensionPointName) {
50
- return false;
51
- }
52
- return ChangesUtils.isChangeInView(mPropertyBag, oChange);
53
- }
54
-
55
50
  function isValidForRuntimeOnlyChanges(oChange, mExtensionPointInfo) {
56
51
  if (mExtensionPointInfo.fragmentId) {
57
52
  const oExtensionPointFromChange = oChange.getExtensionPointInfo && oChange.getExtensionPointInfo();
@@ -132,24 +127,27 @@ sap.ui.define([
132
127
  /**
133
128
  * Gets the changes for the given extension point.
134
129
  *
135
- * @param {object} oChangePersistence - Change persistence to get changes from
130
+ * @param {string} sReference - Flex reference of the application
136
131
  * @param {object} mPropertyBag - Additional data that are needed to read the changes
137
132
  * @param {string} mPropertyBag.viewId - ID of the view
138
133
  * @param {sap.ui.core.Component} mPropertyBag.appComponent - Application component for the extension point
139
134
  * @param {sap.ui.core.util.reflection.BaseTreeModifier} mPropertyBag.modifier - Responsible modifier
140
135
  * @param {string} mPropertyBag.extensionPointName - Name of the extension point
141
- * @returns {Promise} Promise that resolves with an array of changes
136
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Returns an array of FlexObjects
142
137
  * @private
143
138
  * @ui5-restricted sap.ui.fl.apply._internal.extensionPoint.Processor
144
139
  */
145
- ExtensionPointState.getChangesForExtensionPoint = function(oChangePersistence, mPropertyBag) {
140
+ ExtensionPointState.getChangesForExtensionPoint = function(sReference, mPropertyBag) {
146
141
  if (!mPropertyBag.extensionPointName) {
147
142
  Log.error("Missing name from extension point info!");
148
- return Promise.resolve([]);
143
+ return [];
149
144
  }
150
- return oChangePersistence.getChangesForComponent()
151
- .then(function(aChanges) {
152
- return aChanges.filter(isChangeValidForExtensionPoint.bind(undefined, mPropertyBag));
145
+ const aFlexObjects = UIChangesState.getAllApplicableUIChanges(sReference);
146
+ return aFlexObjects.filter((oFlexObject) => {
147
+ if (oFlexObject.getSelector().name !== mPropertyBag.extensionPointName) {
148
+ return false;
149
+ }
150
+ return ChangesUtils.isChangeInView(mPropertyBag, oFlexObject);
153
151
  });
154
152
  };
155
153
 
@@ -170,65 +168,64 @@ sap.ui.define([
170
168
  ExtensionPointState.enhanceExtensionPointChanges = function(mPropertyBag, mExtensionPointInfo) {
171
169
  mPropertyBag.extensionPointName = mExtensionPointInfo.name;
172
170
  const oChangePersistence = ChangePersistenceFactory.getChangePersistenceForControl(mExtensionPointInfo.targetControl);
171
+ const sReference = ManifestUtils.getFlexReferenceForControl(mExtensionPointInfo.targetControl);
173
172
 
174
- return ExtensionPointState.getChangesForExtensionPoint(oChangePersistence, mPropertyBag)
175
- .then(function(aChanges) {
176
- const aPromises = [];
177
- aChanges.forEach(function(oChange) {
178
- // Only continue process if the change has not been applied, such as in case of XMLPreprocessing of an async view
179
- if (oChange.isInInitialState() && !(oChange.getExtensionPointInfo && oChange.getExtensionPointInfo())) {
180
- oChange.setExtensionPointInfo(mExtensionPointInfo);
173
+ const aChanges = ExtensionPointState.getChangesForExtensionPoint(sReference, mPropertyBag);
174
+ const aPromises = [];
175
+ aChanges.forEach(function(oChange) {
176
+ // Only continue process if the change has not been applied, such as in case of XMLPreprocessing of an async view
177
+ if (oChange.isInInitialState() && !(oChange.getExtensionPointInfo && oChange.getExtensionPointInfo())) {
178
+ oChange.setExtensionPointInfo(mExtensionPointInfo);
181
179
 
182
- // Set correct selector from extension point targetControl's ID
183
- replaceChangeSelector(oChange, mExtensionPointInfo, false);
180
+ // Set correct selector from extension point targetControl's ID
181
+ replaceChangeSelector(oChange, mExtensionPointInfo, false);
184
182
 
185
- // If the component creation is async, the changesMap already created without changes on EP --> it need to be updated
186
- // Otherwise, update the selector of changes is enough, change map will be created later correctly
187
- if (FlexState.isInitialized(mPropertyBag)) {
188
- oChangePersistence.addChangeAndUpdateDependencies(mPropertyBag.appComponent, oChange);
189
- }
190
- } else if (isValidForRuntimeOnlyChanges(oChange, mExtensionPointInfo)) {
191
- // Change is applied but we need to create additional runtime only changes
192
- // in case of duplicate extension points with different fragment id (fragment as template)
193
- const oChangeFileContent = oChange.convertToFileContent();
194
- const oChangeContent = oChange.getContent();
195
- const mChangeSpecificData = _omit(oChangeFileContent, [
196
- "dependentSelector",
197
- "fileName",
198
- "selector",
199
- "content",
200
- "adaptationId"
201
- ]);
202
- Object.keys(oChangeContent).forEach(function(sKey) {
203
- mChangeSpecificData[sKey] = oChangeContent[sKey];
204
- });
205
- mChangeSpecificData.support.sourceChangeFileName = oChange.getId() || "";
206
- aPromises.push(
207
- createAdditionalChange({
208
- changeSpecificData: mChangeSpecificData,
209
- selector: {
210
- view: mExtensionPointInfo.view,
211
- name: mExtensionPointInfo.name
212
- }
213
- })
214
- .then(function(oRuntimeOnlyChange) {
215
- // Set correct selector from extension point targetControl's ID
216
- replaceChangeSelector(oRuntimeOnlyChange, mExtensionPointInfo, true);
217
- oRuntimeOnlyChange.setExtensionPointInfo(mExtensionPointInfo);
218
- const oFlexObjectMetadata = oRuntimeOnlyChange.getFlexObjectMetadata();
219
- oFlexObjectMetadata.moduleName = oChange.getFlexObjectMetadata().moduleName;
220
- oRuntimeOnlyChange.setFlexObjectMetadata(oFlexObjectMetadata);
221
- oRuntimeOnlyChange.setCreation(oChange.getCreation());
222
- oChangePersistence.addChangeAndUpdateDependencies(mPropertyBag.appComponent, oRuntimeOnlyChange, oChange);
223
- aPromises.push(oRuntimeOnlyChange);
224
- })
225
- );
183
+ // If the component creation is async, the changesMap already created without changes on EP --> it need to be updated
184
+ // Otherwise, update the selector of changes is enough, change map will be created later correctly
185
+ if (FlexState.isInitialized(mPropertyBag)) {
186
+ oChangePersistence.addChangeAndUpdateDependencies(mPropertyBag.appComponent, oChange);
226
187
  }
227
- });
228
- return Promise.all(aPromises)
229
- .then(function() {
230
- return aChanges;
231
- });
188
+ } else if (isValidForRuntimeOnlyChanges(oChange, mExtensionPointInfo)) {
189
+ // Change is applied but we need to create additional runtime only changes
190
+ // in case of duplicate extension points with different fragment id (fragment as template)
191
+ const oChangeFileContent = oChange.convertToFileContent();
192
+ const oChangeContent = oChange.getContent();
193
+ const mChangeSpecificData = _omit(oChangeFileContent, [
194
+ "dependentSelector",
195
+ "fileName",
196
+ "selector",
197
+ "content",
198
+ "adaptationId"
199
+ ]);
200
+ Object.keys(oChangeContent).forEach(function(sKey) {
201
+ mChangeSpecificData[sKey] = oChangeContent[sKey];
202
+ });
203
+ mChangeSpecificData.support.sourceChangeFileName = oChange.getId() || "";
204
+ aPromises.push(
205
+ createAdditionalChange({
206
+ changeSpecificData: mChangeSpecificData,
207
+ selector: {
208
+ view: mExtensionPointInfo.view,
209
+ name: mExtensionPointInfo.name
210
+ }
211
+ })
212
+ .then(function(oRuntimeOnlyChange) {
213
+ // Set correct selector from extension point targetControl's ID
214
+ replaceChangeSelector(oRuntimeOnlyChange, mExtensionPointInfo, true);
215
+ oRuntimeOnlyChange.setExtensionPointInfo(mExtensionPointInfo);
216
+ const oFlexObjectMetadata = oRuntimeOnlyChange.getFlexObjectMetadata();
217
+ oFlexObjectMetadata.moduleName = oChange.getFlexObjectMetadata().moduleName;
218
+ oRuntimeOnlyChange.setFlexObjectMetadata(oFlexObjectMetadata);
219
+ oRuntimeOnlyChange.setCreation(oChange.getCreation());
220
+ oChangePersistence.addChangeAndUpdateDependencies(mPropertyBag.appComponent, oRuntimeOnlyChange, oChange);
221
+ aPromises.push(oRuntimeOnlyChange);
222
+ })
223
+ );
224
+ }
225
+ });
226
+ return Promise.all(aPromises)
227
+ .then(function() {
228
+ return aChanges;
232
229
  });
233
230
  };
234
231
 
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @namespace
35
35
  * @alias sap.ui.fl.apply._internal.flexState.changes.UIChangesState
36
36
  * @since 1.121
37
- * @version 1.123.1
37
+ * @version 1.124.1
38
38
  * @private
39
39
  * @ui5-restricted
40
40
  */
@@ -88,7 +88,10 @@ sap.ui.define([
88
88
  parentDataSelector: oAllUIChangesDataSelector,
89
89
  executeFunction(aFlexObjects) {
90
90
  return aFlexObjects.filter((oFlexObject) => {
91
- return !oFlexObject.getVariantReference() && !oFlexObject.getSelector().persistencyKey;
91
+ return !oFlexObject.getVariantReference()
92
+ && !oFlexObject.getSelector().persistencyKey
93
+ && oFlexObject.getFileType() !== "ctrl_variant_management_change"
94
+ && oFlexObject.getFileType() !== "ctrl_variant_change";
92
95
  });
93
96
  },
94
97
  checkInvalidation(mParameters, oUpdateInfo) {
@@ -96,7 +99,9 @@ sap.ui.define([
96
99
  return bRelevantType
97
100
  && oUpdateInfo.updatedObject?.isA(sUIChangeNameSpace)
98
101
  && !oUpdateInfo.updatedObject.getVariantReference()
99
- && !oUpdateInfo.updatedObject.getSelector().persistencyKey;
102
+ && !oUpdateInfo.updatedObject.getSelector().persistencyKey
103
+ && oUpdateInfo.updatedObject.getFileType() !== "ctrl_variant_management_change"
104
+ && oUpdateInfo.updatedObject.getFileType() !== "ctrl_variant_change";
100
105
  }
101
106
  });
102
107
 
@@ -150,12 +155,15 @@ sap.ui.define([
150
155
  */
151
156
  UIChangesState.getAllApplicableUIChanges = function(sReference) {
152
157
  const aVMIndependentUIChanges = oVMIndependentUIChangesDataSelector.get({reference: sReference});
153
- return aVMIndependentUIChanges.concat(VariantManagementState.getInitialChanges({
154
- reference: sReference,
155
- includeDirtyChanges: true
158
+ return aVMIndependentUIChanges.concat(VariantManagementState.getInitialUIChanges({
159
+ reference: sReference
156
160
  }));
157
161
  };
158
162
 
163
+ UIChangesState.getVariantIndependentUIChanges = function(sReference) {
164
+ return oVMIndependentUIChangesDataSelector.get({reference: sReference});
165
+ };
166
+
159
167
  /**
160
168
  * Fetches the current dependency map from the Flex State.
161
169
  * This map is continuously being modified as changes are getting applied.
@@ -123,7 +123,7 @@ sap.ui.define([
123
123
  *
124
124
  * @namespace sap.ui.fl.apply._internal.flexState.compVariants.CompVariantMerger
125
125
  * @since 1.86
126
- * @version 1.123.1
126
+ * @version 1.124.1
127
127
  * @private
128
128
  * @ui5-restricted sap.ui.fl
129
129
  */
@@ -208,7 +208,7 @@ sap.ui.define([
208
208
  *
209
209
  * @function
210
210
  * @since 1.89
211
- * @version 1.123.1
211
+ * @version 1.124.1
212
212
  * @private
213
213
  * @ui5-restricted sap.ui.fl
214
214
  *
@@ -30,6 +30,10 @@ sap.ui.define([], function() {
30
30
  Utils.getDefaultVariantId = (mCompVariantsMap) => {
31
31
  const aDefaultVariantChanges = mCompVariantsMap.defaultVariants;
32
32
  const oChange = [...aDefaultVariantChanges].reverse().find((oChange) => {
33
+ // Default variant is set to standard variant
34
+ if (oChange?.getContent().defaultVariantName === "*standard*") {
35
+ return true;
36
+ }
33
37
  return mCompVariantsMap.variants.some((oVariant) => {
34
38
  return oChange?.getContent().defaultVariantName === oVariant.getId();
35
39
  });
@@ -6,12 +6,14 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "sap/base/util/restricted/_pick",
9
- "sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState",
10
- "sap/ui/fl/apply/_internal/changes/Reverter"
9
+ "sap/ui/fl/apply/_internal/changes/Applier",
10
+ "sap/ui/fl/apply/_internal/changes/Reverter",
11
+ "sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState"
11
12
  ], function(
12
13
  _pick,
13
- VariantManagementState,
14
- Reverter
14
+ Applier,
15
+ Reverter,
16
+ VariantManagementState
15
17
  ) {
16
18
  "use strict";
17
19
 
@@ -75,7 +77,7 @@ sap.ui.define([
75
77
  *
76
78
  * @namespace sap.ui.fl.apply._internal.flexState.controlVariants.Switcher
77
79
  * @since 1.74
78
- * @version 1.123.1
80
+ * @version 1.124.1
79
81
  * @private
80
82
  * @ui5-restricted
81
83
  */
@@ -99,8 +101,7 @@ sap.ui.define([
99
101
  var mChangesToBeSwitched = getControlChangesForVariantSwitch(mPropertyBag);
100
102
 
101
103
  await Reverter.revertMultipleChanges(mChangesToBeSwitched.changesToBeReverted, mPropertyBag);
102
- // TODO: apply variantChanges() should be moved out of flex controller
103
- await mPropertyBag.flexController.applyVariantChanges(mChangesToBeSwitched.changesToBeApplied, mPropertyBag.appComponent);
104
+ await Applier.applyMultipleChanges(mChangesToBeSwitched.changesToBeApplied, mPropertyBag);
104
105
  VariantManagementState.setCurrentVariant(mPropertyBag);
105
106
  }
106
107
 
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  *
37
37
  * @namespace sap.ui.fl.apply._internal.flexState.controlVariants.VariantManagementState
38
38
  * @since 1.74
39
- * @version 1.123.1
39
+ * @version 1.124.1
40
40
  * @private
41
41
  * @ui5-restricted
42
42
  */
@@ -85,17 +85,14 @@ sap.ui.define([
85
85
  });
86
86
  }
87
87
 
88
- function createVariantManagement(aFlexObjects, sReference, sVMReference) {
88
+ function createVariantManagement(aCtrlVariantManagementChanges, sReference, sVMReference) {
89
89
  var sCurrentVariantReference = (mCurrentVariantReferences[sReference] || {})[sVMReference];
90
90
  return {
91
91
  defaultVariant: sVMReference,
92
92
  currentVariant: sCurrentVariantReference,
93
93
  variants: [],
94
- variantManagementChanges: aFlexObjects.filter(function(oFlexObject) {
95
- return (
96
- oFlexObject.getFileType() === "ctrl_variant_management_change"
97
- && oFlexObject.getSelector().id === sVMReference
98
- );
94
+ variantManagementChanges: aCtrlVariantManagementChanges.filter(function(oFlexObject) {
95
+ return (oFlexObject.getSelector().id === sVMReference);
99
96
  })
100
97
  };
101
98
  }
@@ -106,31 +103,28 @@ sap.ui.define([
106
103
  });
107
104
  }
108
105
 
109
- function getAllReferencedVariantIds(aFlexObjects, oVariant) {
110
- const aVariants = [];
106
+ function getAllReferencedVariantIds(aVariants, oVariant) {
107
+ const aFoundVariants = [];
111
108
  let oCurrentVariant = oVariant;
112
109
  let oFoundVariant;
113
110
  do {
114
- oFoundVariant = findVariantInFlexObjects(aFlexObjects, oCurrentVariant.getVariantReference());
111
+ oFoundVariant = findVariantInFlexObjects(aVariants, oCurrentVariant.getVariantReference());
115
112
  if (oFoundVariant) {
116
- aVariants.push(oCurrentVariant);
113
+ aFoundVariants.push(oCurrentVariant);
117
114
  oCurrentVariant = oFoundVariant;
118
115
  }
119
116
  } while (oFoundVariant);
120
- return aVariants.map((oVariant) => oVariant.getId());
117
+ return aFoundVariants.map((oVariant) => oVariant.getId());
121
118
  }
122
119
 
123
- function createVariantEntry(aFlexObjects, oVariantInstance) {
124
- var aReferencedVariantIds = getAllReferencedVariantIds(aFlexObjects, oVariantInstance);
120
+ function createVariantEntry(oGroupedFlexObjects, oVariantInstance) {
121
+ const aReferencedVariantIds = getAllReferencedVariantIds(oGroupedFlexObjects.variants, oVariantInstance);
125
122
  return {
126
123
  instance: oVariantInstance,
127
- variantChanges: aFlexObjects.filter(function(oFlexObject) {
128
- return (
129
- oFlexObject.getFileType() === "ctrl_variant_change"
130
- && oFlexObject.getSelector().id === oVariantInstance.getId()
131
- );
124
+ variantChanges: oGroupedFlexObjects.variantChanges.filter(function(oFlexObject) {
125
+ return oFlexObject.getSelector().id === oVariantInstance.getId();
132
126
  }),
133
- controlChanges: aFlexObjects.filter(function(oFlexObject) {
127
+ controlChanges: oGroupedFlexObjects.changes.filter(function(oFlexObject) {
134
128
  var bCorrectFlexObjectType = oFlexObject.isA("sap.ui.fl.apply._internal.flexObjects.UIChange");
135
129
  if (!bCorrectFlexObjectType) {
136
130
  return false;
@@ -188,38 +182,57 @@ sap.ui.define([
188
182
  });
189
183
  }
190
184
 
185
+ function groupFlexObjects(aFlexObjects) {
186
+ const oGroupedFlexObjects = {
187
+ variants: [],
188
+ variantManagementChanges: [],
189
+ changes: [],
190
+ variantChanges: []
191
+ };
192
+ aFlexObjects.forEach((oFlexObject) => {
193
+ switch (oFlexObject.getFileType()) {
194
+ case "ctrl_variant":
195
+ oGroupedFlexObjects.variants.push(oFlexObject);
196
+ break;
197
+ case "ctrl_variant_management_change":
198
+ oGroupedFlexObjects.variantManagementChanges.push(oFlexObject);
199
+ break;
200
+ case "change":
201
+ oGroupedFlexObjects.changes.push(oFlexObject);
202
+ break;
203
+ case "ctrl_variant_change":
204
+ oGroupedFlexObjects.variantChanges.push(oFlexObject);
205
+ break;
206
+ default:
207
+ break;
208
+ }
209
+ });
210
+ return oGroupedFlexObjects;
211
+ }
212
+
191
213
  function createVariantsMap(aFlexObjects) {
214
+ const oGroupedFlexObjects = groupFlexObjects(aFlexObjects);
192
215
  const sReference = aFlexObjects[0]?.getFlexObjectMetadata().reference;
193
- const aVariants = aFlexObjects.filter((oFlexObject) => {
194
- return oFlexObject.getFileType() === "ctrl_variant";
195
- });
196
216
 
197
217
  const oVariantManagementsMap = {};
198
- aVariants.forEach((oVariantInstance) => {
218
+ oGroupedFlexObjects.variants.forEach((oVariantInstance) => {
199
219
  var sVMReference = oVariantInstance.getVariantManagementReference();
200
- oVariantManagementsMap[sVMReference] ||= createVariantManagement(aFlexObjects, sReference, sVMReference);
220
+ oVariantManagementsMap[sVMReference] ||= createVariantManagement(
221
+ oGroupedFlexObjects.variantManagementChanges, sReference, sVMReference
222
+ );
201
223
  oVariantManagementsMap[sVMReference].variants.push(
202
- createVariantEntry(aFlexObjects, oVariantInstance)
224
+ createVariantEntry(oGroupedFlexObjects, oVariantInstance)
203
225
  );
204
226
  });
205
227
 
206
- aFlexObjects
207
- .filter((oFlexObject) => {
208
- return oFlexObject.getFileType() === "ctrl_variant_change";
209
- })
210
- .forEach((oVariantChange) => {
228
+ oGroupedFlexObjects.variantChanges.forEach((oVariantChange) => {
211
229
  const oVariantEntry = findVariant(oVariantManagementsMap, oVariantChange);
212
230
  if (oVariantEntry) {
213
231
  applyVariantChange(oVariantEntry, oVariantChange, sReference, oVariantManagementsMap);
214
232
  }
215
233
  });
216
234
 
217
- const aCtrlVariantManagementChanges = aFlexObjects
218
- .filter((oFlexObject) => {
219
- return oFlexObject.getFileType() === "ctrl_variant_management_change";
220
- });
221
-
222
- aCtrlVariantManagementChanges.forEach((oVariantManagementChange) => {
235
+ oGroupedFlexObjects.variantManagementChanges.forEach((oVariantManagementChange) => {
223
236
  const oVariantManagementEntry = oVariantManagementsMap[oVariantManagementChange.getSelector().id];
224
237
  if (oVariantManagementEntry) {
225
238
  applyVariantManagementChange(oVariantManagementEntry, oVariantManagementChange);
@@ -231,7 +244,7 @@ sap.ui.define([
231
244
 
232
245
  // If current variant is not already set, set initial current variant
233
246
  // Current variant might be unavailable due to layer filtering
234
- // or because a component with a different id but the same flex reference was initalized
247
+ // or because a component with a different id but the same flex reference was initialized
235
248
  if (
236
249
  !oVariantManagement.currentVariant || !oVariantManagement.variants.some((oVariant) => {
237
250
  return oVariant.key === oVariantManagement.currentVariant;
@@ -239,7 +252,7 @@ sap.ui.define([
239
252
  ) {
240
253
  const sCurrentVariant = getInitialCurrentVariant(
241
254
  sReference,
242
- aCtrlVariantManagementChanges,
255
+ oGroupedFlexObjects.variantManagementChanges,
243
256
  oVariantManagement.variants
244
257
  ) || sVMReference;
245
258
  oVariantManagement.currentVariant = sCurrentVariant;
@@ -517,6 +530,26 @@ sap.ui.define([
517
530
  return oVariantManagementSection.currentVariant;
518
531
  };
519
532
 
533
+ /**
534
+ * Returns the instances of all current variants
535
+ *
536
+ * @param {string} sReference - Component reference
537
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlVariant[]} Array of current variant instances
538
+ */
539
+ VariantManagementState.getAllCurrentVariants = function(sReference) {
540
+ const oVariantsMap = oVariantManagementMapDataSelector.get({
541
+ reference: sReference
542
+ });
543
+ return Object.entries(oVariantsMap).map((aEntry) => {
544
+ const oCurrentVariant = VariantManagementState.getVariant({
545
+ vmReference: aEntry[0],
546
+ vReference: aEntry[1].currentVariant,
547
+ reference: sReference
548
+ }).instance;
549
+ return oCurrentVariant;
550
+ });
551
+ };
552
+
520
553
  /**
521
554
  * Returns the variant management references saved in the FlexState.
522
555
  *
@@ -560,7 +593,7 @@ sap.ui.define([
560
593
  * @private
561
594
  * @ui5-restricted
562
595
  */
563
- VariantManagementState.getInitialChanges = function(mPropertyBag) {
596
+ VariantManagementState.getInitialUIChanges = function(mPropertyBag) {
564
597
  var oVariantsMap = oVariantManagementMapDataSelector.get({
565
598
  reference: mPropertyBag.reference
566
599
  });
@@ -582,6 +615,40 @@ sap.ui.define([
582
615
  }, []);
583
616
  };
584
617
 
618
+ /**
619
+ * Returns the following FlexObjects: All Variants and VariantManagementChanges, and all ControlChanges for the current variants.
620
+ *
621
+ * @param {object} mPropertyBag - Object with the necessary properties
622
+ * @param {string} mPropertyBag.reference - Component reference
623
+ *
624
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} All changes of current or default variants
625
+ * @private
626
+ * @ui5-restricted
627
+ */
628
+ VariantManagementState.getAllCurrentFlexObjects = function(mPropertyBag) {
629
+ const oVariantsMap = oVariantManagementMapDataSelector.get({
630
+ reference: mPropertyBag.reference
631
+ });
632
+ return Object.keys(oVariantsMap).reduce(function(aInitialChanges, sVMReference) {
633
+ if (
634
+ (mPropertyBag.vmReference && mPropertyBag.vmReference === sVMReference)
635
+ || !mPropertyBag.vmReference
636
+ ) {
637
+ const mArguments = Object.assign({}, mPropertyBag, {
638
+ vmReference: sVMReference,
639
+ vReference: oVariantsMap[sVMReference].currentVariant
640
+ });
641
+ const oVariant = VariantManagementState.getVariant(mArguments);
642
+ return aInitialChanges
643
+ .concat(oVariant.variantChanges)
644
+ .concat(oVariant.controlChanges)
645
+ .concat(oVariantsMap[sVMReference].variantManagementChanges)
646
+ .concat(oVariantsMap[sVMReference].variants.map((oVariant) => oVariant.instance));
647
+ }
648
+ return aInitialChanges;
649
+ }, []);
650
+ };
651
+
585
652
  /**
586
653
  * Takes an array of FlexObjects and filters out any hidden variant and changes on those hidden variants
587
654
  *
@@ -645,7 +712,7 @@ sap.ui.define([
645
712
  * @returns {Promise} Promise that resolves when all changes for the initial variant are applied
646
713
  */
647
714
  VariantManagementState.waitForInitialVariantChanges = function(mPropertyBag) {
648
- var aCurrentVariantChanges = VariantManagementState.getInitialChanges({
715
+ var aCurrentVariantChanges = VariantManagementState.getInitialUIChanges({
649
716
  vmReference: mPropertyBag.vmReference,
650
717
  reference: mPropertyBag.reference
651
718
  });