@openui5/sap.ui.fl 1.129.0 → 1.130.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/THIRDPARTY.txt +1 -1
- package/package.json +3 -3
- package/src/sap/ui/fl/.library +1 -1
- package/src/sap/ui/fl/ChangePersistence.js +26 -38
- 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 +1 -1
- 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 +8 -8
- package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +1 -1
- package/src/sap/ui/fl/apply/_internal/appVariant/DescriptorChangeTypes.js +2 -1
- package/src/sap/ui/fl/apply/_internal/changes/Applier.js +152 -197
- package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +23 -17
- package/src/sap/ui/fl/apply/_internal/changes/Reverter.js +27 -37
- package/src/sap/ui/fl/apply/_internal/changes/Utils.js +26 -31
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +3 -2
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +2 -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/AddNewDataSource.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/AddNewOutbound.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddTechnicalAttributes.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/ChangeOutbound.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/SetAch.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetDescription.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/SetCloudDevAdaptationStatus.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/ChangeModel.js +78 -0
- 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 +1 -1
- package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
- 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/AnnotationChange.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 +7 -3
- 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/FlexObjectState.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +34 -13
- 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 +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantManagementState.js +108 -0
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +2 -2
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +57 -9
- package/src/sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks.js +2 -2
- package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +1 -1
- package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +6 -6
- package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +1 -1
- package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +25 -10
- package/src/sap/ui/fl/apply/api/SmartVariantManagementApplyAPI.js +18 -45
- 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 +1 -1
- 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 +1 -1
- 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/initial/_internal/FlexConfiguration.js +1 -1
- package/src/sap/ui/fl/initial/_internal/Storage.js +37 -1
- 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 +3 -2
- package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.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 +15 -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/support/_internal/getAllUIChanges.js +1 -1
- package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
- package/src/sap/ui/fl/support/_internal/getFlexObjectInfos.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/transport/TransportSelection.js +1 -1
- package/src/sap/ui/fl/util/DescriptorChangeCheck.js +35 -16
- package/src/sap/ui/fl/util/IFrame.js +1 -1
- 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 +33 -11
- package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
- package/src/sap/ui/fl/write/_internal/Versions.js +7 -3
- 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 +34 -1
- package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +163 -176
- package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +62 -61
- package/src/sap/ui/fl/write/_internal/condenser/Utils.js +17 -19
- package/src/sap/ui/fl/write/_internal/condenser/classifications/Create.js +13 -13
- package/src/sap/ui/fl/write/_internal/condenser/classifications/Destroy.js +17 -19
- package/src/sap/ui/fl/write/_internal/condenser/classifications/Move.js +32 -35
- package/src/sap/ui/fl/write/_internal/condenser/classifications/Update.js +2 -10
- 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 +56 -4
- 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/controlVariants/ControlVariantWriteUtils.js +59 -0
- package/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js +1 -2
- 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 +1 -1
- 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/FlexObjectManager.js +33 -2
- package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
- package/src/sap/ui/fl/write/_internal/flexState/changes/UIChangeManager.js +26 -3
- package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +20 -12
- 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/ChangesWriteAPI.js +73 -3
- package/src/sap/ui/fl/write/api/FieldExtensibility.js +1 -1
- package/src/sap/ui/fl/write/api/LocalResetAPI.js +17 -27
- package/src/sap/ui/fl/write/api/VersionsAPI.js +26 -4
|
@@ -31,19 +31,19 @@ sap.ui.define([
|
|
|
31
31
|
* @namespace
|
|
32
32
|
* @alias sap.ui.fl.write._internal.condenser.UIReconstruction
|
|
33
33
|
* @author SAP SE
|
|
34
|
-
* @version 1.
|
|
34
|
+
* @version 1.130.1
|
|
35
35
|
*/
|
|
36
|
-
|
|
36
|
+
const UIReconstruction = {};
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
const INDEX_RELATED = {
|
|
39
39
|
create: Create,
|
|
40
40
|
destroy: Destroy,
|
|
41
41
|
move: Move
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
function forEveryMapInMap(mMap, fnCallback) {
|
|
45
|
-
each(mMap,
|
|
46
|
-
each(mOuterMap,
|
|
45
|
+
each(mMap, (sOuterKey, mOuterMap) => {
|
|
46
|
+
each(mOuterMap, (sInnerKey, mInnerMap) => {
|
|
47
47
|
fnCallback(mOuterMap, sOuterKey, mInnerMap, sInnerKey);
|
|
48
48
|
});
|
|
49
49
|
});
|
|
@@ -68,20 +68,20 @@ sap.ui.define([
|
|
|
68
68
|
* @returns {Map} Simulation of the UI reconstruction
|
|
69
69
|
*/
|
|
70
70
|
function defineContainersMap(mUIReconstructions, aCondenserInfos) {
|
|
71
|
-
|
|
72
|
-
forEveryMapInMap(mUIReconstructions,
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
const mContainers = {};
|
|
72
|
+
forEveryMapInMap(mUIReconstructions, (mUIState, sContainerKey, mUIAggregationState, sAggregationName) => {
|
|
73
|
+
const aTargetElementIds = mUIAggregationState[Utils.TARGET_UI];
|
|
74
|
+
const aSourceElementIds = mUIAggregationState[Utils.INITIAL_UI];
|
|
75
75
|
|
|
76
|
-
aCondenserInfos.forEach(
|
|
77
|
-
|
|
76
|
+
aCondenserInfos.forEach((oCondenserInfo) => {
|
|
77
|
+
const bElementPartOfInitialOrTargetUi = aTargetElementIds.indexOf(oCondenserInfo.affectedControl) > -1
|
|
78
78
|
|| aSourceElementIds.indexOf(oCondenserInfo.affectedControl) > -1;
|
|
79
79
|
|
|
80
80
|
if (sAggregationName === oCondenserInfo.targetAggregation && bElementPartOfInitialOrTargetUi) {
|
|
81
81
|
mContainers[sContainerKey] ||= {};
|
|
82
|
-
|
|
82
|
+
const mAggregations = mContainers[sContainerKey];
|
|
83
83
|
mAggregations[sAggregationName] ||= [];
|
|
84
|
-
|
|
84
|
+
const aContainerElements = mAggregations[sAggregationName];
|
|
85
85
|
aContainerElements.push(oCondenserInfo);
|
|
86
86
|
}
|
|
87
87
|
});
|
|
@@ -96,7 +96,7 @@ sap.ui.define([
|
|
|
96
96
|
* @returns {boolean} <code>true</code> if the array of condenser info objects contains only changes of type 'create'
|
|
97
97
|
*/
|
|
98
98
|
function containsOnlyCreateChanges(aCondenserInfos) {
|
|
99
|
-
return !aCondenserInfos.some(
|
|
99
|
+
return !aCondenserInfos.some((vElement) => {
|
|
100
100
|
return vElement.classification !== CondenserClassification.Create;
|
|
101
101
|
});
|
|
102
102
|
}
|
|
@@ -108,7 +108,7 @@ sap.ui.define([
|
|
|
108
108
|
* @returns {boolean} <code>true</code> if the array of elements contains no unknown elements
|
|
109
109
|
*/
|
|
110
110
|
function containsNoPlaceholder(aElements) {
|
|
111
|
-
return !aElements.some(
|
|
111
|
+
return !aElements.some((vElement) => {
|
|
112
112
|
return Utils.isUnknown(vElement);
|
|
113
113
|
});
|
|
114
114
|
}
|
|
@@ -129,9 +129,9 @@ sap.ui.define([
|
|
|
129
129
|
* @param {object[]} aCondenserInfos - Array of condenser info objects
|
|
130
130
|
*/
|
|
131
131
|
function sortAscendingByTargetIndex(aCondenserInfos) {
|
|
132
|
-
aCondenserInfos.sort(
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
aCondenserInfos.sort((a, b) => {
|
|
133
|
+
const iCurrentTargetIndex = getTargetIndex(a);
|
|
134
|
+
const iNextTargetIndex = getTargetIndex(b);
|
|
135
135
|
return iCurrentTargetIndex - iNextTargetIndex;
|
|
136
136
|
});
|
|
137
137
|
}
|
|
@@ -143,7 +143,7 @@ sap.ui.define([
|
|
|
143
143
|
* @returns {boolean} <code>true</code> if the array of elements contains an unknown element
|
|
144
144
|
*/
|
|
145
145
|
function containsOnlyPlaceholder(aElements) {
|
|
146
|
-
return !aElements.some(
|
|
146
|
+
return !aElements.some((vElement) => {
|
|
147
147
|
return !Utils.isUnknown(vElement);
|
|
148
148
|
});
|
|
149
149
|
}
|
|
@@ -156,7 +156,7 @@ sap.ui.define([
|
|
|
156
156
|
* @returns {boolean} <code>true</code> if the passed arrays are equal
|
|
157
157
|
*/
|
|
158
158
|
function isEqual(a, b) {
|
|
159
|
-
|
|
159
|
+
let c;
|
|
160
160
|
if (a.length < b.length) {
|
|
161
161
|
c = b.slice(a.length);
|
|
162
162
|
if (!containsOnlyPlaceholder(c)) {
|
|
@@ -184,20 +184,20 @@ sap.ui.define([
|
|
|
184
184
|
* @returns {boolean} <code>true</code> if the simulated and the target UI reconstructions are equal
|
|
185
185
|
*/
|
|
186
186
|
function isEqualReconstructedUI(sContainerKey, sAggregationName, aInitialUIElementIds, aTargetUIElementIds, aCondenserInfos) {
|
|
187
|
-
|
|
187
|
+
const mUISimulatedStates = {};
|
|
188
188
|
|
|
189
|
-
aCondenserInfos.forEach(
|
|
190
|
-
|
|
189
|
+
aCondenserInfos.forEach((oCondenserInfo) => {
|
|
190
|
+
const sContainerKey = oCondenserInfo.targetContainer;
|
|
191
191
|
mUISimulatedStates[sContainerKey] ||= {};
|
|
192
|
-
|
|
192
|
+
const mUIAggregationState = mUISimulatedStates[sContainerKey];
|
|
193
193
|
mUIAggregationState[sAggregationName] ||= Utils.initializeArrayWithPlaceholders(0, aInitialUIElementIds.length - 1);
|
|
194
194
|
|
|
195
195
|
INDEX_RELATED[oCondenserInfo.classification].simulate(mUIAggregationState[sAggregationName], oCondenserInfo, aInitialUIElementIds);
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
const aSortedUIElementIds = mUISimulatedStates[sContainerKey][sAggregationName];
|
|
199
199
|
if (isEqual(aTargetUIElementIds, aSortedUIElementIds)) {
|
|
200
|
-
aCondenserInfos.forEach(
|
|
200
|
+
aCondenserInfos.forEach((oCondenserInfo) => {
|
|
201
201
|
if (oCondenserInfo.sameIndex) {
|
|
202
202
|
oCondenserInfo.change.condenserState = "delete";
|
|
203
203
|
}
|
|
@@ -219,7 +219,7 @@ sap.ui.define([
|
|
|
219
219
|
// setting the target index will most likely make the change dirty,
|
|
220
220
|
// but the condenser needs the current state of the change.
|
|
221
221
|
// so in this function the state should not change
|
|
222
|
-
|
|
222
|
+
const sOldState = oCondenserInfo.change.getState();
|
|
223
223
|
oCondenserInfo.setTargetIndex(oCondenserInfo.change, iIndex);
|
|
224
224
|
oCondenserInfo.change.setState(sOldState);
|
|
225
225
|
if (oCondenserInfo.change.isPersisted()) {
|
|
@@ -229,11 +229,11 @@ sap.ui.define([
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
function adjustReconstructionMap(mUIStates, sContainerId, mUIAggregationState) {
|
|
232
|
-
mUIAggregationState[Utils.TARGET_UI].forEach(
|
|
232
|
+
mUIAggregationState[Utils.TARGET_UI].forEach((sTargetElementId, iIndex) => {
|
|
233
233
|
if (!Utils.isUnknown(sTargetElementId)) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
forEveryMapInMap(mAggregations,
|
|
234
|
+
const mTypes = mReducedChanges[sTargetElementId];
|
|
235
|
+
const mAggregations = mTypes[Utils.INDEX_RELEVANT];
|
|
236
|
+
forEveryMapInMap(mAggregations, (mSubtypes, sAggregationName, aCondenserInfos, sSubtypeKey) => {
|
|
237
237
|
if (sSubtypeKey !== CondenserClassification.Destroy) {
|
|
238
238
|
aCondenserInfos.forEach(updateCondenserChange.bind(this, iIndex));
|
|
239
239
|
}
|
|
@@ -247,21 +247,22 @@ sap.ui.define([
|
|
|
247
247
|
|
|
248
248
|
/**
|
|
249
249
|
* Compares the initial and target UI reconstructions of the corresponding container.
|
|
250
|
-
* If the UI reconstructions are equal, the corresponding index-related changes will be removed
|
|
250
|
+
* If the UI reconstructions are equal, the corresponding index-related changes will be removed
|
|
251
|
+
* from the data structure with the reduced changes.
|
|
251
252
|
*
|
|
252
253
|
* @param {Map} mReducedChanges - Map of reduced changes
|
|
253
254
|
* @param {Map} mUIReconstructions - Map of UI reconstructions
|
|
254
255
|
*/
|
|
255
256
|
function compareUIReconstructions(mReducedChanges, mUIReconstructions) {
|
|
256
|
-
forEveryMapInMap(mUIReconstructions,
|
|
257
|
-
|
|
258
|
-
|
|
257
|
+
forEveryMapInMap(mUIReconstructions, (mUIStates, sContainerId, mUIAggregationState, sKey) => {
|
|
258
|
+
const aInitialElementIds = mUIAggregationState[Utils.INITIAL_UI];
|
|
259
|
+
const aTargetElementIds = mUIAggregationState[Utils.TARGET_UI];
|
|
259
260
|
if (isEqual(aInitialElementIds, aTargetElementIds)) {
|
|
260
|
-
aTargetElementIds.forEach(
|
|
261
|
-
|
|
261
|
+
aTargetElementIds.forEach((sTargetElementId) => {
|
|
262
|
+
const mTypes = mReducedChanges[sTargetElementId];
|
|
262
263
|
if (mTypes !== undefined) {
|
|
263
|
-
forEveryMapInMap(mTypes[Utils.INDEX_RELEVANT],
|
|
264
|
-
aCondenserInfos.forEach(
|
|
264
|
+
forEveryMapInMap(mTypes[Utils.INDEX_RELEVANT], (mSubtypes, sAggregationName, aCondenserInfos) => {
|
|
265
|
+
aCondenserInfos.forEach((oCondenserInfo) => {
|
|
265
266
|
oCondenserInfo.change.condenserState = "delete";
|
|
266
267
|
});
|
|
267
268
|
});
|
|
@@ -281,14 +282,14 @@ sap.ui.define([
|
|
|
281
282
|
* @param {Map} mUIReconstructions - Map of UI reconstructions
|
|
282
283
|
*/
|
|
283
284
|
function updateTargetUIReconstructions(mReducedChanges, mUIReconstructions) {
|
|
284
|
-
forEveryMapInMap(mUIReconstructions,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
aInitialElementIds.forEach(
|
|
288
|
-
|
|
285
|
+
forEveryMapInMap(mUIReconstructions, (mUIStates, sContainerId, mUIAggregationState, sAggregationName) => {
|
|
286
|
+
const aInitialElementIds = mUIAggregationState[Utils.INITIAL_UI];
|
|
287
|
+
const aTargetElementIds = mUIAggregationState[Utils.TARGET_UI];
|
|
288
|
+
aInitialElementIds.forEach((initialElementId, index) => {
|
|
289
|
+
const mTypes = mReducedChanges[initialElementId];
|
|
289
290
|
if (!mTypes || !ObjectPath.get([Utils.INDEX_RELEVANT, sAggregationName], mTypes)) {
|
|
290
|
-
|
|
291
|
-
|
|
291
|
+
const sPlaceholder = Utils.PLACEHOLDER + index;
|
|
292
|
+
const iTargetIndex = aTargetElementIds.indexOf(initialElementId);
|
|
292
293
|
if (iTargetIndex >= 0) {
|
|
293
294
|
aTargetElementIds[iTargetIndex] = sPlaceholder;
|
|
294
295
|
}
|
|
@@ -305,10 +306,10 @@ sap.ui.define([
|
|
|
305
306
|
* @param {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} aAllReducedChanges - Array of all reduced changes
|
|
306
307
|
*/
|
|
307
308
|
UIReconstruction.swapChanges = function(aSortedIndexRelatedChanges, aAllReducedChanges) {
|
|
308
|
-
|
|
309
|
+
const aIndexes = aSortedIndexRelatedChanges.map((oChange) => {
|
|
309
310
|
return aAllReducedChanges.indexOf(oChange);
|
|
310
311
|
}).sort();
|
|
311
|
-
aSortedIndexRelatedChanges.forEach(
|
|
312
|
+
aSortedIndexRelatedChanges.forEach((oChange) => {
|
|
312
313
|
aAllReducedChanges[aIndexes.shift()] = oChange;
|
|
313
314
|
});
|
|
314
315
|
};
|
|
@@ -321,13 +322,13 @@ sap.ui.define([
|
|
|
321
322
|
* @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Sorted array of index-related changes
|
|
322
323
|
*/
|
|
323
324
|
UIReconstruction.sortIndexRelatedChanges = function(mUIReconstructions, aCondenserInfos) {
|
|
324
|
-
|
|
325
|
-
|
|
325
|
+
const aSortedIndexRelatedChangesPerContainer = [];
|
|
326
|
+
const mContainers = defineContainersMap(mUIReconstructions, aCondenserInfos);
|
|
326
327
|
|
|
327
|
-
forEveryMapInMap(mContainers,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
328
|
+
forEveryMapInMap(mContainers, (mAggregations, sContainerKey, aCondenserInfos, sAggregationName) => {
|
|
329
|
+
const aTargetElementIds = mUIReconstructions[sContainerKey][sAggregationName][Utils.TARGET_UI];
|
|
330
|
+
const aInitialElementIds = mUIReconstructions[sContainerKey][sAggregationName][Utils.INITIAL_UI];
|
|
331
|
+
let bCorrectSortingFound = true;
|
|
331
332
|
|
|
332
333
|
if (
|
|
333
334
|
containsNoPlaceholder(aTargetElementIds)
|
|
@@ -339,10 +340,10 @@ sap.ui.define([
|
|
|
339
340
|
bCorrectSortingFound = isEqualReconstructedUI(sContainerKey, sAggregationName, aInitialElementIds, aTargetElementIds, aCondenserInfos);
|
|
340
341
|
} else if (!isEqualReconstructedUI(sContainerKey, sAggregationName, aInitialElementIds, aTargetElementIds, aCondenserInfos)) {
|
|
341
342
|
bCorrectSortingFound = false;
|
|
342
|
-
|
|
343
|
+
let iTimes = aCondenserInfos.length;
|
|
343
344
|
while (iTimes !== 0 && !bCorrectSortingFound) {
|
|
344
|
-
|
|
345
|
-
|
|
345
|
+
let iOldIndex = 0;
|
|
346
|
+
let iNewIndex = 1;
|
|
346
347
|
// TODO implement intelligent / efficient sorting -> smart sort
|
|
347
348
|
while (iNewIndex < aCondenserInfos.length && !bCorrectSortingFound) {
|
|
348
349
|
shiftElement(aCondenserInfos, iOldIndex, iNewIndex);
|
|
@@ -358,11 +359,11 @@ sap.ui.define([
|
|
|
358
359
|
throw Error(`no correct sorting found for the container: ${sContainerKey}`);
|
|
359
360
|
}
|
|
360
361
|
|
|
361
|
-
aCondenserInfos = aCondenserInfos.filter(
|
|
362
|
+
aCondenserInfos = aCondenserInfos.filter((oCondenserInfo) => {
|
|
362
363
|
return oCondenserInfo.change.condenserState !== "delete";
|
|
363
364
|
});
|
|
364
365
|
|
|
365
|
-
aSortedIndexRelatedChangesPerContainer.push(aCondenserInfos.map(
|
|
366
|
+
aSortedIndexRelatedChangesPerContainer.push(aCondenserInfos.map((oCondenserInfo) => {
|
|
366
367
|
if (oCondenserInfo.revertIndex > -1) {
|
|
367
368
|
oCondenserInfo.setIndexInRevertData(oCondenserInfo.change, oCondenserInfo.revertIndex);
|
|
368
369
|
oCondenserInfo.sourceIndex = oCondenserInfo.revertIndex;
|
|
@@ -374,8 +375,8 @@ sap.ui.define([
|
|
|
374
375
|
return aSortedIndexRelatedChangesPerContainer;
|
|
375
376
|
};
|
|
376
377
|
|
|
377
|
-
UIReconstruction.addChange = function(mUIReconstructions, oCondenserInfo) {
|
|
378
|
-
|
|
378
|
+
UIReconstruction.addChange = async function(mUIReconstructions, oCondenserInfo) {
|
|
379
|
+
await INDEX_RELATED[oCondenserInfo.classification].addToReconstructionMap(mUIReconstructions, oCondenserInfo);
|
|
379
380
|
};
|
|
380
381
|
|
|
381
382
|
UIReconstruction.compareAndUpdate = function(mReducedChanges, mUIReconstructions) {
|
|
@@ -13,7 +13,7 @@ sap.ui.define([
|
|
|
13
13
|
) {
|
|
14
14
|
"use strict";
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const Utils = {};
|
|
17
17
|
|
|
18
18
|
Utils.TARGET_UI = "targetUI";
|
|
19
19
|
Utils.INITIAL_UI = "initialUI";
|
|
@@ -43,9 +43,9 @@ sap.ui.define([
|
|
|
43
43
|
*/
|
|
44
44
|
Utils.getInitialUIContainerElementIds = function(mUIReconstructions, sContainerKey, sAggregationName, aContainerElements) {
|
|
45
45
|
mUIReconstructions[sContainerKey] ||= {};
|
|
46
|
-
|
|
46
|
+
const mUIStates = mUIReconstructions[sContainerKey];
|
|
47
47
|
mUIStates[sAggregationName] ||= {};
|
|
48
|
-
|
|
48
|
+
const mUIAggregationState = mUIStates[sAggregationName];
|
|
49
49
|
mUIAggregationState[Utils.TARGET_UI] ||= aContainerElements;
|
|
50
50
|
mUIAggregationState[Utils.INITIAL_UI] ||= aContainerElements.slice(0);
|
|
51
51
|
return mUIAggregationState[Utils.INITIAL_UI];
|
|
@@ -60,14 +60,12 @@ sap.ui.define([
|
|
|
60
60
|
* @param {string} [sAffectedControlIdProperty] - Property name of the ID used for the container element
|
|
61
61
|
* @returns {Promise<string[]>} Array of Ids wrapped in Promise
|
|
62
62
|
*/
|
|
63
|
-
Utils.getContainerElementIds = function(sContainerId, sAggregationName, aCustomAggregation, sAffectedControlIdProperty) {
|
|
64
|
-
|
|
63
|
+
Utils.getContainerElementIds = async function(sContainerId, sAggregationName, aCustomAggregation, sAffectedControlIdProperty) {
|
|
64
|
+
const oContainer = Element.getElementById(sContainerId);
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
.
|
|
68
|
-
return
|
|
69
|
-
return sAffectedControlIdProperty ? oElement[sAffectedControlIdProperty] : oElement.getId();
|
|
70
|
-
});
|
|
66
|
+
const aContainerElements = aCustomAggregation || await JsControlTreeModifier.getAggregation(oContainer, sAggregationName);
|
|
67
|
+
return aContainerElements.map((oElement) => {
|
|
68
|
+
return sAffectedControlIdProperty ? oElement[sAffectedControlIdProperty] : oElement.getId();
|
|
71
69
|
});
|
|
72
70
|
};
|
|
73
71
|
|
|
@@ -79,17 +77,17 @@ sap.ui.define([
|
|
|
79
77
|
* @returns {string} Array of Placeholders
|
|
80
78
|
*/
|
|
81
79
|
Utils.initializeArrayWithPlaceholders = function(iTargetIndex, iSourceIndex) {
|
|
82
|
-
|
|
83
|
-
return Array(iLength).fill(Utils.PLACEHOLDER).map(
|
|
80
|
+
const iLength = getNeededLengthOfNewArray(iSourceIndex, iTargetIndex);
|
|
81
|
+
return Array(iLength).fill(Utils.PLACEHOLDER).map((sPlaceholder, iIterator) => {
|
|
84
82
|
return sPlaceholder + iIterator;
|
|
85
83
|
});
|
|
86
84
|
};
|
|
87
85
|
|
|
88
86
|
Utils.extendArrayWithPlaceholders = function(aElements, iSourceIndex, iTargetIndex) {
|
|
89
|
-
|
|
87
|
+
const iLength = getNeededLengthOfNewArray(iSourceIndex, iTargetIndex);
|
|
90
88
|
if (aElements.length < iLength) {
|
|
91
|
-
|
|
92
|
-
for (
|
|
89
|
+
let sUnknown;
|
|
90
|
+
for (let i = aElements.length; i <= iLength; i++) {
|
|
93
91
|
sUnknown = Utils.PLACEHOLDER + (aElements.length);
|
|
94
92
|
aElements.splice(aElements.length, 0, sUnknown);
|
|
95
93
|
}
|
|
@@ -107,8 +105,8 @@ sap.ui.define([
|
|
|
107
105
|
Utils.extendElementsArray = function(aElements, iSourceIndex, iTargetIndex, sAffectedControlId) {
|
|
108
106
|
Utils.extendArrayWithPlaceholders(aElements, iSourceIndex, iTargetIndex);
|
|
109
107
|
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
const iCurrentIndex = aElements.indexOf(sAffectedControlId);
|
|
109
|
+
const iUnknownIndex = aElements.indexOf(Utils.PLACEHOLDER + iSourceIndex);
|
|
112
110
|
if (
|
|
113
111
|
iCurrentIndex !== iSourceIndex
|
|
114
112
|
&& iSourceIndex !== undefined
|
|
@@ -145,8 +143,8 @@ sap.ui.define([
|
|
|
145
143
|
sValue !== undefined
|
|
146
144
|
&& sValue.indexOf(Utils.PLACEHOLDER) === 0
|
|
147
145
|
) {
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
const sResult = sValue.slice(1, sValue.length);
|
|
147
|
+
const iParsedIndex = parseInt(sResult);
|
|
150
148
|
if (isNaN(iParsedIndex)) {
|
|
151
149
|
return false;
|
|
152
150
|
}
|
|
@@ -21,21 +21,21 @@ sap.ui.define([
|
|
|
21
21
|
* @param {object} oCondenserInfo - Condenser specific information
|
|
22
22
|
* @returns {Promise} resolves when a create change is added to UI Reconstruction Map
|
|
23
23
|
*/
|
|
24
|
-
addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
async addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
25
|
+
const oAffectedControl = Element.getElementById(oCondenserInfo.affectedControl);
|
|
26
|
+
const sAggregationName = oCondenserInfo.targetAggregation || oAffectedControl && oAffectedControl.sParentAggregationName;
|
|
27
|
+
const aTargetContainerElementIds = await CondenserUtils.getContainerElementIds(
|
|
28
28
|
oCondenserInfo.targetContainer, sAggregationName,
|
|
29
29
|
oCondenserInfo.customAggregation, oCondenserInfo.affectedControlIdProperty
|
|
30
|
-
)
|
|
31
|
-
.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
30
|
+
);
|
|
31
|
+
const aContainerElementIds = CondenserUtils.getInitialUIContainerElementIds(
|
|
32
|
+
mUIReconstructions, oCondenserInfo.targetContainer, oCondenserInfo.targetAggregation, aTargetContainerElementIds
|
|
33
|
+
);
|
|
34
|
+
const iIndex = aContainerElementIds.indexOf(oCondenserInfo.affectedControl);
|
|
35
|
+
// if the index is -1 the element was already removed by a different add change
|
|
36
|
+
if (iIndex > -1) {
|
|
37
|
+
aContainerElementIds.splice(iIndex, 1);
|
|
38
|
+
}
|
|
39
39
|
},
|
|
40
40
|
|
|
41
41
|
/**
|
|
@@ -19,26 +19,24 @@ sap.ui.define([
|
|
|
19
19
|
* @param {object} oCondenserInfo - Condenser specific information
|
|
20
20
|
* @returns {Promise} resolves when a destroy change is added to UI Reconstruction Map
|
|
21
21
|
*/
|
|
22
|
-
addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
23
|
-
|
|
22
|
+
async addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
23
|
+
const aTargetContainerElementIds = await CondenserUtils.getContainerElementIds(
|
|
24
24
|
oCondenserInfo.targetContainer, oCondenserInfo.targetAggregation,
|
|
25
25
|
oCondenserInfo.customAggregation, oCondenserInfo.affectedControlIdProperty
|
|
26
|
-
)
|
|
27
|
-
.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
aContainerElementIds.splice(aContainerElementIds.length, 0, CondenserUtils.PLACEHOLDER + iIndex);
|
|
36
|
-
}
|
|
37
|
-
aContainerElementIds[oCondenserInfo.sourceIndex] = oCondenserInfo.affectedControl;
|
|
38
|
-
} else {
|
|
39
|
-
aContainerElementIds.splice(oCondenserInfo.sourceIndex, 0, oCondenserInfo.affectedControl);
|
|
26
|
+
);
|
|
27
|
+
const aContainerElementIds = CondenserUtils.getInitialUIContainerElementIds(
|
|
28
|
+
mUIReconstructions, oCondenserInfo.targetContainer,
|
|
29
|
+
oCondenserInfo.targetAggregation, aTargetContainerElementIds
|
|
30
|
+
);
|
|
31
|
+
if (aContainerElementIds.length - 1 < oCondenserInfo.sourceIndex) {
|
|
32
|
+
while (aContainerElementIds.length - 1 < oCondenserInfo.sourceIndex) {
|
|
33
|
+
const iIndex = aContainerElementIds.length;
|
|
34
|
+
aContainerElementIds.splice(aContainerElementIds.length, 0, CondenserUtils.PLACEHOLDER + iIndex);
|
|
40
35
|
}
|
|
41
|
-
|
|
36
|
+
aContainerElementIds[oCondenserInfo.sourceIndex] = oCondenserInfo.affectedControl;
|
|
37
|
+
} else {
|
|
38
|
+
aContainerElementIds.splice(oCondenserInfo.sourceIndex, 0, oCondenserInfo.affectedControl);
|
|
39
|
+
}
|
|
42
40
|
},
|
|
43
41
|
|
|
44
42
|
/**
|
|
@@ -49,9 +47,9 @@ sap.ui.define([
|
|
|
49
47
|
* @param {string[]} aInitialUIElementIds - Array with the Ids of the initial elements in the container
|
|
50
48
|
*/
|
|
51
49
|
simulate(aContainerElements, oCondenserInfo, aInitialUIElementIds) {
|
|
52
|
-
|
|
50
|
+
let iCurrentSourceIndex = aContainerElements.indexOf(oCondenserInfo.affectedControl);
|
|
53
51
|
if (iCurrentSourceIndex === -1) {
|
|
54
|
-
|
|
52
|
+
const sUnknown = CondenserUtils.PLACEHOLDER + aInitialUIElementIds.indexOf(oCondenserInfo.affectedControl);
|
|
55
53
|
iCurrentSourceIndex = aContainerElements.indexOf(sUnknown);
|
|
56
54
|
}
|
|
57
55
|
|
|
@@ -19,8 +19,8 @@ sap.ui.define([
|
|
|
19
19
|
* @param {object} oCondenserInfo - Condenser specific information
|
|
20
20
|
* @returns {Promise} resolves when a create change is added to UI Reconstruction Map
|
|
21
21
|
*/
|
|
22
|
-
addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
23
|
-
|
|
22
|
+
async addToReconstructionMap(mUIReconstructions, oCondenserInfo) {
|
|
23
|
+
const [aSourceContainerElementIds, aTargetContainerElementIds] = await Promise.all([
|
|
24
24
|
CondenserUtils.getContainerElementIds(
|
|
25
25
|
oCondenserInfo.sourceContainer, oCondenserInfo.sourceAggregation,
|
|
26
26
|
oCondenserInfo.customAggregation, oCondenserInfo.affectedControlIdProperty
|
|
@@ -29,36 +29,33 @@ sap.ui.define([
|
|
|
29
29
|
oCondenserInfo.targetContainer, oCondenserInfo.targetAggregation,
|
|
30
30
|
oCondenserInfo.customAggregation, oCondenserInfo.affectedControlIdProperty
|
|
31
31
|
)
|
|
32
|
-
])
|
|
33
|
-
var aSourceContainerElementIds = aSourceTargetElementIds[0];
|
|
34
|
-
var aTargetContainerElementIds = aSourceTargetElementIds[1];
|
|
32
|
+
]);
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
34
|
+
let aContainerElementIds;
|
|
35
|
+
let iTargetIndex;
|
|
36
|
+
if (
|
|
37
|
+
oCondenserInfo.targetContainer === oCondenserInfo.sourceContainer
|
|
38
|
+
&& oCondenserInfo.targetAggregation === oCondenserInfo.sourceAggregation
|
|
39
|
+
) {
|
|
40
|
+
aContainerElementIds = CondenserUtils.getInitialUIContainerElementIds(
|
|
41
|
+
mUIReconstructions, oCondenserInfo.targetContainer,
|
|
42
|
+
oCondenserInfo.targetAggregation, aTargetContainerElementIds
|
|
43
|
+
);
|
|
44
|
+
iTargetIndex = aContainerElementIds.indexOf(oCondenserInfo.affectedControl);
|
|
45
|
+
CondenserUtils.shiftElement(aContainerElementIds, iTargetIndex, oCondenserInfo.sourceIndex);
|
|
46
|
+
} else {
|
|
47
|
+
aContainerElementIds = CondenserUtils.getInitialUIContainerElementIds(
|
|
48
|
+
mUIReconstructions, oCondenserInfo.targetContainer,
|
|
49
|
+
oCondenserInfo.targetAggregation, aTargetContainerElementIds
|
|
50
|
+
);
|
|
51
|
+
iTargetIndex = aContainerElementIds.indexOf(oCondenserInfo.affectedControl);
|
|
52
|
+
aContainerElementIds.splice(iTargetIndex, 1);
|
|
53
|
+
aContainerElementIds = CondenserUtils.getInitialUIContainerElementIds(
|
|
54
|
+
mUIReconstructions, oCondenserInfo.sourceContainer,
|
|
55
|
+
oCondenserInfo.sourceAggregation, aSourceContainerElementIds
|
|
56
|
+
);
|
|
57
|
+
aContainerElementIds.splice(oCondenserInfo.sourceIndex, 0, oCondenserInfo.affectedControl);
|
|
58
|
+
}
|
|
62
59
|
},
|
|
63
60
|
|
|
64
61
|
/**
|
|
@@ -69,13 +66,13 @@ sap.ui.define([
|
|
|
69
66
|
* @param {string[]} aInitialUIElementIds - Array with the Ids of the initial elements in the container
|
|
70
67
|
*/
|
|
71
68
|
simulate(aContainerElements, oCondenserInfo, aInitialUIElementIds) {
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
const sAffectedControlId = oCondenserInfo.affectedControl;
|
|
70
|
+
const iInitialSourceIndex = aInitialUIElementIds.indexOf(sAffectedControlId);
|
|
74
71
|
// the move itself should not extend the array, just replace the placeholder
|
|
75
72
|
CondenserUtils.extendElementsArray(aContainerElements, iInitialSourceIndex, undefined, sAffectedControlId);
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
const iCurrentSourceIndex = aContainerElements.indexOf(sAffectedControlId);
|
|
75
|
+
const iTargetIndex = oCondenserInfo.getTargetIndex(oCondenserInfo.change);
|
|
79
76
|
|
|
80
77
|
// if the move was done from a different container the element can't be found
|
|
81
78
|
if (iInitialSourceIndex === -1) {
|
|
@@ -4,11 +4,7 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
sap.ui.define([
|
|
8
|
-
"sap/base/util/each"
|
|
9
|
-
], function(
|
|
10
|
-
each
|
|
11
|
-
) {
|
|
7
|
+
sap.ui.define([], function() {
|
|
12
8
|
"use strict";
|
|
13
9
|
|
|
14
10
|
return {
|
|
@@ -31,11 +27,7 @@ sap.ui.define([
|
|
|
31
27
|
},
|
|
32
28
|
|
|
33
29
|
getChangesFromMap(mObjects, sUniqueKey) {
|
|
34
|
-
|
|
35
|
-
each(mObjects[sUniqueKey], function(sKey, oCondenserInfo) {
|
|
36
|
-
aChanges.push(oCondenserInfo.change);
|
|
37
|
-
});
|
|
38
|
-
return aChanges;
|
|
30
|
+
return Object.values(mObjects[sUniqueKey]).map((oCondenserInfo) => oCondenserInfo.change);
|
|
39
31
|
}
|
|
40
32
|
};
|
|
41
33
|
});
|
|
@@ -25,7 +25,7 @@ sap.ui.define([
|
|
|
25
25
|
* Connector for saving and deleting data from SAPUI5 Flexibility KeyUser service - including personalization.
|
|
26
26
|
*
|
|
27
27
|
* @namespace sap.ui.fl.write._internal.connectors.BtpServiceConnector
|
|
28
|
-
* @version 1.
|
|
28
|
+
* @version 1.130.1
|
|
29
29
|
* @private
|
|
30
30
|
* @ui5-restricted sap.ui.fl.write._internal.Storage
|
|
31
31
|
*/
|