@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.
- package/package.json +3 -3
- package/src/sap/ui/fl/.library +1 -1
- package/src/sap/ui/fl/ChangePersistence.js +39 -48
- package/src/sap/ui/fl/ChangePersistenceFactory.js +1 -1
- package/src/sap/ui/fl/FakeLrepConnectorLocalStorage.js +1 -1
- package/src/sap/ui/fl/FakeLrepConnectorSessionStorage.js +1 -1
- package/src/sap/ui/fl/FakeLrepLocalStorage.js +1 -1
- package/src/sap/ui/fl/FlexController.js +3 -34
- package/src/sap/ui/fl/FlexControllerFactory.js +1 -1
- package/src/sap/ui/fl/LayerUtils.js +1 -1
- package/src/sap/ui/fl/Utils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +113 -270
- package/src/sap/ui/fl/apply/_internal/appVariant/DescriptorChangeTypes.js +2 -1
- package/src/sap/ui/fl/apply/_internal/changes/Applier.js +36 -3
- package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/Utils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +49 -5
- package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +28 -27
- package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/extensionPoint/Registry.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/getVariantAuthor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +75 -41
- package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/ManifestUtils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +30 -11
- package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +67 -70
- package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +14 -6
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +2 -2
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/Utils.js +4 -0
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +8 -7
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +108 -41
- package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +8 -15
- package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +7 -12
- package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +15 -19
- package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +1 -1
- package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +13 -86
- package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +14 -11
- package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
- package/src/sap/ui/fl/changeHandler/AddXML.js +1 -1
- package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +1 -1
- package/src/sap/ui/fl/changeHandler/Base.js +1 -1
- package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +14 -29
- package/src/sap/ui/fl/changeHandler/BaseAddXml.js +1 -1
- package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
- package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/MoveControls.js +1 -1
- package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
- package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
- package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
- package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +2 -2
- package/src/sap/ui/fl/changeHandler/common/createIFrame.js +5 -2
- package/src/sap/ui/fl/descriptorRelated/Utils.js +16 -7
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +4 -4
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
- package/src/sap/ui/fl/designtime/util/IFrame.designtime.js +26 -0
- package/src/sap/ui/fl/designtime/util/editIFrame.js +8 -5
- package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +1 -1
- package/src/sap/ui/fl/initial/_internal/Storage.js +5 -2
- package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +1 -1
- package/src/sap/ui/fl/initial/_internal/StorageUtils.js +1 -1
- package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +1 -1
- package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +1 -1
- package/src/sap/ui/fl/initial/_internal/connectors/KeyUserConnector.js +1 -1
- package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
- package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
- package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
- package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
- package/src/sap/ui/fl/library.js +43 -43
- package/src/sap/ui/fl/messagebundle_sh.properties +9 -9
- package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +1 -1
- package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
- package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
- package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetails.view.xml +0 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetailsEdit.view.xml +0 -1
- package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
- package/src/sap/ui/fl/util/IFrame.js +51 -64
- package/src/sap/ui/fl/util/IFrameRenderer.js +15 -9
- package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
- package/src/sap/ui/fl/util/resolveBinding.js +1 -1
- package/src/sap/ui/fl/variants/VariantModel.js +5 -5
- package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
- package/src/sap/ui/fl/write/_internal/Versions.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +2 -2
- package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +1 -1
- package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
- package/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js +5 -5
- package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +12 -23
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/flexState/FlexObjectState.js +63 -95
- package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
- package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +2 -1
- package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +1 -1
- package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
- package/src/sap/ui/fl/write/api/FieldExtensibility.js +1 -1
- package/src/sap/ui/fl/write/api/LocalResetAPI.js +9 -8
- package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +3 -7
- package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +78 -0
- package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +9 -1
- package/src/sap/ui/fl/apply/_internal/DelegateMediatorNew.js +0 -193
- package/src/sap/ui/fl/apply/_internal/flexState/appDescriptorChanges/prepareAppDescriptorMap.js +0 -39
|
@@ -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.
|
|
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 (
|
|
76
|
+
return (
|
|
77
|
+
oExistingDependentSelector.id === oDependentSelector.id
|
|
78
|
+
&& oExistingDependentSelector.idIsLocal === oDependentSelector.idIsLocal
|
|
79
|
+
);
|
|
77
80
|
});
|
|
78
81
|
}
|
|
79
82
|
|
|
80
|
-
function addChangesDependencies(
|
|
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 =
|
|
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
|
-
|
|
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.
|
|
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 {
|
|
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 {
|
|
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(
|
|
140
|
+
ExtensionPointState.getChangesForExtensionPoint = function(sReference, mPropertyBag) {
|
|
146
141
|
if (!mPropertyBag.extensionPointName) {
|
|
147
142
|
Log.error("Missing name from extension point info!");
|
|
148
|
-
return
|
|
143
|
+
return [];
|
|
149
144
|
}
|
|
150
|
-
|
|
151
|
-
.
|
|
152
|
-
|
|
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
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
183
|
-
|
|
180
|
+
// Set correct selector from extension point targetControl's ID
|
|
181
|
+
replaceChangeSelector(oChange, mExtensionPointInfo, false);
|
|
184
182
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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.
|
|
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()
|
|
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.
|
|
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.
|
|
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.
|
|
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/
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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(
|
|
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:
|
|
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(
|
|
110
|
-
const
|
|
106
|
+
function getAllReferencedVariantIds(aVariants, oVariant) {
|
|
107
|
+
const aFoundVariants = [];
|
|
111
108
|
let oCurrentVariant = oVariant;
|
|
112
109
|
let oFoundVariant;
|
|
113
110
|
do {
|
|
114
|
-
oFoundVariant = findVariantInFlexObjects(
|
|
111
|
+
oFoundVariant = findVariantInFlexObjects(aVariants, oCurrentVariant.getVariantReference());
|
|
115
112
|
if (oFoundVariant) {
|
|
116
|
-
|
|
113
|
+
aFoundVariants.push(oCurrentVariant);
|
|
117
114
|
oCurrentVariant = oFoundVariant;
|
|
118
115
|
}
|
|
119
116
|
} while (oFoundVariant);
|
|
120
|
-
return
|
|
117
|
+
return aFoundVariants.map((oVariant) => oVariant.getId());
|
|
121
118
|
}
|
|
122
119
|
|
|
123
|
-
function createVariantEntry(
|
|
124
|
-
|
|
120
|
+
function createVariantEntry(oGroupedFlexObjects, oVariantInstance) {
|
|
121
|
+
const aReferencedVariantIds = getAllReferencedVariantIds(oGroupedFlexObjects.variants, oVariantInstance);
|
|
125
122
|
return {
|
|
126
123
|
instance: oVariantInstance,
|
|
127
|
-
variantChanges:
|
|
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:
|
|
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
|
-
|
|
218
|
+
oGroupedFlexObjects.variants.forEach((oVariantInstance) => {
|
|
199
219
|
var sVMReference = oVariantInstance.getVariantManagementReference();
|
|
200
|
-
oVariantManagementsMap[sVMReference] ||= createVariantManagement(
|
|
220
|
+
oVariantManagementsMap[sVMReference] ||= createVariantManagement(
|
|
221
|
+
oGroupedFlexObjects.variantManagementChanges, sReference, sVMReference
|
|
222
|
+
);
|
|
201
223
|
oVariantManagementsMap[sVMReference].variants.push(
|
|
202
|
-
createVariantEntry(
|
|
224
|
+
createVariantEntry(oGroupedFlexObjects, oVariantInstance)
|
|
203
225
|
);
|
|
204
226
|
});
|
|
205
227
|
|
|
206
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
715
|
+
var aCurrentVariantChanges = VariantManagementState.getInitialUIChanges({
|
|
649
716
|
vmReference: mPropertyBag.vmReference,
|
|
650
717
|
reference: mPropertyBag.reference
|
|
651
718
|
});
|