@openui5/sap.ui.fl 1.140.0 → 1.141.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 (194) hide show
  1. package/.eslint-rules/import-check.js +71 -0
  2. package/THIRDPARTY.txt +2 -2
  3. package/package.json +3 -3
  4. package/src/sap/ui/fl/.library +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/LayerUtils.js +1 -1
  9. package/src/sap/ui/fl/Utils.js +1 -1
  10. package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +13 -3
  11. package/src/sap/ui/fl/apply/_internal/changes/Applier.js +3 -2
  12. package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +1 -1
  13. package/src/sap/ui/fl/apply/_internal/changes/Reverter.js +4 -1
  14. package/src/sap/ui/fl/apply/_internal/changes/Utils.js +1 -1
  15. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
  16. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +1 -1
  17. package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +1 -1
  18. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +1 -1
  19. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewDataSource.js +1 -1
  20. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +1 -1
  21. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewOutbound.js +1 -1
  22. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddTechnicalAttributes.js +1 -1
  23. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +1 -1
  24. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +1 -1
  25. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeOutbound.js +1 -1
  26. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +1 -1
  27. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetAch.js +1 -1
  28. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetDescription.js +1 -1
  29. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +1 -1
  30. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +1 -1
  31. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetCloudDevAdaptationStatus.js +1 -1
  32. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +1 -1
  33. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +1 -1
  34. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +1 -1
  35. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +1 -1
  36. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +1 -1
  37. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +1 -1
  38. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +1 -1
  39. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +1 -1
  40. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/ChangeModel.js +1 -1
  41. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +1 -1
  42. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +1 -1
  43. package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
  44. package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +1 -1
  45. package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +1 -1
  46. package/src/sap/ui/fl/apply/_internal/extensionPoint/Registry.js +1 -1
  47. package/src/sap/ui/fl/apply/_internal/flexObjects/AnnotationChange.js +1 -1
  48. package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +1 -1
  49. package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +1 -1
  50. package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +1 -1
  51. package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +1 -1
  52. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +1 -1
  53. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +2 -8
  54. package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +1 -1
  55. package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +2 -2
  56. package/src/sap/ui/fl/apply/_internal/flexObjects/VariantChange.js +1 -1
  57. package/src/sap/ui/fl/apply/_internal/flexObjects/VariantManagementChange.js +1 -1
  58. package/src/sap/ui/fl/apply/_internal/flexObjects/getVariantAuthor.js +6 -3
  59. package/src/sap/ui/fl/apply/_internal/flexState/DataSelector.js +2 -2
  60. package/src/sap/ui/fl/apply/_internal/flexState/FlexObjectState.js +1 -1
  61. package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +53 -161
  62. package/src/sap/ui/fl/apply/_internal/flexState/InitialPrepareFunctions.js +0 -8
  63. package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
  64. package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +1 -1
  65. package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +1 -1
  66. package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +1 -1
  67. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantManagementState.js +2 -5
  68. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +22 -5
  69. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +54 -12
  70. package/src/sap/ui/fl/apply/_internal/init.js +47 -0
  71. package/src/sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks.js +14 -5
  72. package/src/sap/ui/fl/apply/api/AnnotationChangeHandlerAPI.js +2 -1
  73. package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +190 -53
  74. package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +17 -1
  75. package/src/sap/ui/fl/apply/api/ExtensionPointRegistryAPI.js +2 -1
  76. package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +2 -1
  77. package/src/sap/ui/fl/apply/api/SmartVariantManagementApplyAPI.js +2 -1
  78. package/src/sap/ui/fl/apply/api/UI2PersonalizationApplyAPI.js +2 -1
  79. package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
  80. package/src/sap/ui/fl/changeHandler/AddXML.js +2 -2
  81. package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +4 -4
  82. package/src/sap/ui/fl/changeHandler/Base.js +3 -2
  83. package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +1 -1
  84. package/src/sap/ui/fl/changeHandler/BaseAddXml.js +21 -9
  85. package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
  86. package/src/sap/ui/fl/changeHandler/ChangeAnnotation.js +7 -2
  87. package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
  88. package/src/sap/ui/fl/changeHandler/MoveControls.js +1 -1
  89. package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
  90. package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
  91. package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
  92. package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
  93. package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
  94. package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
  95. package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +1 -1
  96. package/src/sap/ui/fl/changeHandler/common/createIFrame.js +1 -4
  97. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChange.js +3 -3
  98. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +3 -3
  99. package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
  100. package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
  101. package/src/sap/ui/fl/designtime/variants/VariantManagement.designtime.js +14 -12
  102. package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +1 -1
  103. package/src/sap/ui/fl/initial/_internal/Loader.js +243 -79
  104. package/src/sap/ui/fl/initial/_internal/ManifestUtils.js +1 -1
  105. package/src/sap/ui/fl/initial/_internal/Settings.js +1 -1
  106. package/src/sap/ui/fl/initial/_internal/Storage.js +1 -1
  107. package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +1 -1
  108. package/src/sap/ui/fl/initial/_internal/StorageUtils.js +67 -9
  109. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +1 -1
  110. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +12 -5
  111. package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
  112. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/ControllerExtension.js +15 -4
  113. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/RegistrationDelegator.js +7 -38
  114. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/XmlPreprocessor.js +28 -20
  115. package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
  116. package/src/sap/ui/fl/initial/api/InitialFlexAPI.js +1 -1
  117. package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
  118. package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
  119. package/src/sap/ui/fl/library.js +44 -44
  120. package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +1 -1
  121. package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
  122. package/src/sap/ui/fl/support/_internal/getFlexObjectInfos.js +1 -1
  123. package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
  124. package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
  125. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
  126. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
  127. package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
  128. package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
  129. package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
  130. package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
  131. package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
  132. package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
  133. package/src/sap/ui/fl/util/IFrame.js +3 -2
  134. package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
  135. package/src/sap/ui/fl/variants/VariantManagement.js +49 -36
  136. package/src/sap/ui/fl/variants/VariantManager.js +75 -15
  137. package/src/sap/ui/fl/variants/VariantModel.js +7 -165
  138. package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
  139. package/src/sap/ui/fl/write/_internal/Versions.js +9 -5
  140. package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +1 -1
  141. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +1 -1
  142. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
  143. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +1 -1
  144. package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +1 -1
  145. package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +1 -1
  146. package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
  147. package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +1 -1
  148. package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +1 -1
  149. package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +1 -1
  150. package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
  151. package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
  152. package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
  153. package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
  154. package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
  155. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
  156. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
  157. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
  158. package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
  159. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
  160. package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
  161. package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
  162. package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +1 -1
  163. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
  164. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
  165. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  166. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
  167. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
  168. package/src/sap/ui/fl/write/_internal/flexState/FlexObjectManager.js +30 -21
  169. package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +3 -3
  170. package/src/sap/ui/fl/write/_internal/flexState/changes/UIChangeManager.js +1 -1
  171. package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantManager.js +2 -19
  172. package/src/sap/ui/fl/write/_internal/init.js +27 -0
  173. package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +1 -1
  174. package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
  175. package/src/sap/ui/fl/write/api/Adaptations.js +1 -1
  176. package/src/sap/ui/fl/write/api/AppVariantWriteAPI.js +2 -1
  177. package/src/sap/ui/fl/write/api/BusinessNetworkAPI.js +9 -8
  178. package/src/sap/ui/fl/write/api/ChangesWriteAPI.js +2 -1
  179. package/src/sap/ui/fl/write/api/ContextBasedAdaptationsAPI.js +2 -3
  180. package/src/sap/ui/fl/write/api/ContextSharingAPI.js +2 -1
  181. package/src/sap/ui/fl/write/api/ControlPersonalizationWriteAPI.js +2 -1
  182. package/src/sap/ui/fl/write/api/FeaturesAPI.js +2 -1
  183. package/src/sap/ui/fl/write/api/FieldExtensibility.js +3 -2
  184. package/src/sap/ui/fl/write/api/LocalResetAPI.js +2 -1
  185. package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +10 -3
  186. package/src/sap/ui/fl/write/api/ReloadInfoAPI.js +5 -2
  187. package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +2 -1
  188. package/src/sap/ui/fl/write/api/SmartBusinessWriteAPI.js +2 -1
  189. package/src/sap/ui/fl/write/api/SmartVariantManagementWriteAPI.js +2 -1
  190. package/src/sap/ui/fl/write/api/TranslationAPI.js +2 -1
  191. package/src/sap/ui/fl/write/api/UI2PersonalizationWriteAPI.js +2 -1
  192. package/src/sap/ui/fl/write/api/VersionsAPI.js +2 -1
  193. package/src/sap/ui/fl/write/api/connectors/FileListBaseConnector.js +2 -1
  194. package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +2 -1
@@ -5,17 +5,19 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
+ "sap/base/util/isEmptyObject",
9
+ "sap/base/util/ObjectPath",
8
10
  "sap/base/Log",
9
11
  "sap/ui/fl/initial/_internal/FlexConfiguration",
10
12
  "sap/ui/fl/Layer",
11
- "sap/ui/fl/LayerUtils",
12
- "sap/base/util/isEmptyObject"
13
+ "sap/ui/fl/LayerUtils"
13
14
  ], function(
15
+ isEmptyObject,
16
+ ObjectPath,
14
17
  Log,
15
18
  FlexConfiguration,
16
19
  Layer,
17
- LayerUtils,
18
- isEmptyObject
20
+ LayerUtils
19
21
  ) {
20
22
  "use strict";
21
23
 
@@ -25,7 +27,7 @@ sap.ui.define([
25
27
  *
26
28
  * @namespace sap.ui.fl.initial._internal.StorageUtils
27
29
  * @since 1.74
28
- * @version 1.140.0
30
+ * @version 1.141.1
29
31
  * @private
30
32
  * @ui5-restricted sap.ui.fl.initial._internal.Storage, sap.ui.fl.write._internal.Storage,
31
33
  * sap.ui.fl.initial._internal.connectors.ObjectStorageConnector, sap.ui.fl.initial._internal.connectors.ObjectPathConnector
@@ -104,6 +106,34 @@ sap.ui.define([
104
106
  });
105
107
  }
106
108
 
109
+ function getChangeCategoryPath(oChangeDefinition) {
110
+ switch (oChangeDefinition.fileType) {
111
+ case "change":
112
+ if (oChangeDefinition.selector && oChangeDefinition.selector.persistencyKey) {
113
+ return ["comp", "changes"];
114
+ }
115
+ if (oChangeDefinition.variantReference) {
116
+ return "variantDependentControlChanges";
117
+ }
118
+ if (oChangeDefinition.appDescriptorChange) {
119
+ return "appDescriptorChanges";
120
+ }
121
+ return "changes";
122
+ case "ctrl_variant":
123
+ return "variants";
124
+ case "ctrl_variant_change":
125
+ return "variantChanges";
126
+ case "ctrl_variant_management_change":
127
+ return "variantManagementChanges";
128
+ case "variant":
129
+ return ["comp", "variants"];
130
+ case "annotation_change":
131
+ return "annotationChanges";
132
+ default:
133
+ return "";
134
+ }
135
+ }
136
+
107
137
  /**
108
138
  * Loads the connectors from the given namespaces.
109
139
  * This function is replaced in the Vanilla Flex bundle with a custom implementation.
@@ -343,11 +373,39 @@ sap.ui.define([
343
373
  * @ui5-restricted sap.ui.fl
344
374
  */
345
375
  StorageUtils.isStorageResponseFilled = function(oResponse) {
346
- return Object.keys(oResponse || {}).some(function(sKey) {
347
- if (Array.isArray(oResponse[sKey])) {
348
- return oResponse[sKey].length !== 0;
376
+ const oUI2Available = !isEmptyObject(oResponse.ui2personalization);
377
+ return oUI2Available || StorageUtils.getAllFlexObjectNamespaces().some(function(sKey) {
378
+ return ObjectPath.get(sKey, oResponse)?.length > 0;
379
+ });
380
+ };
381
+
382
+ /**
383
+ * Updates the storage response with the provided updates by directly mutating the given response.
384
+ *
385
+ * @param {object} oResponse - Storage response to apply the updates to.
386
+ * @param {sap.ui.fl.apply._internal.flexState.dataSelector.UpdateInfo[]} aUpdates - The updates to apply to the storage response.
387
+ */
388
+ StorageUtils.updateStorageResponse = function(oResponse, aUpdates) {
389
+ aUpdates.forEach((oUpdate) => {
390
+ if (oUpdate.type === "ui2") {
391
+ oResponse.changes.ui2personalization = oUpdate.newData;
392
+ } else {
393
+ const vPath = getChangeCategoryPath(oUpdate.flexObject);
394
+ const sFileName = oUpdate.flexObject.fileName;
395
+ const aCache = ObjectPath.get(vPath, oResponse.changes);
396
+ switch (oUpdate.type) {
397
+ case "add":
398
+ aCache.push(oUpdate.flexObject);
399
+ break;
400
+ case "delete":
401
+ aCache.splice(aCache.findIndex((oFlexObject) => oFlexObject.fileName === sFileName), 1);
402
+ break;
403
+ case "update":
404
+ aCache.splice(aCache.findIndex((oFlexObject) => oFlexObject.fileName === sFileName), 1, oUpdate.flexObject);
405
+ break;
406
+ default:
407
+ }
349
408
  }
350
- return !isEmptyObject(oResponse[sKey]);
351
409
  });
352
410
  };
353
411
 
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @alias sap.ui.fl.registry.ChangeHandlerRegistration
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.140.0
87
+ * @version 1.141.1
88
88
  * @private
89
89
  * @ui5-restricted sap.ui.fl
90
90
  *
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @alias sap.ui.fl.registry.ChangeHandlerStorage
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.140.0
26
+ * @version 1.141.1
27
27
  * @private
28
28
  * @ui5-restricted sap.ui.fl
29
29
  *
@@ -135,10 +135,17 @@ sap.ui.define([
135
135
  const sSkipNext = "ChangeHandlerStorage.registerChangeHandlersForControl.skip_next_then";
136
136
 
137
137
  if (typeof mChangeHandlers === "string") {
138
- oPromise = requireAsync(`${mChangeHandlers}.flexibility`)
139
- .catch(function(oError) {
140
- Log.error(`Flexibility change handler registration failed.\nControlType: ${sControlType}\n${oError.message}`);
141
- return Promise.resolve(sSkipNext); // continue without a registration
138
+ oPromise = new Promise((resolve) => {
139
+ // TODO: The setTimeout is added to circumvent dependency issues caused by synchronous module loading.
140
+ // This shall be removed once sync loading is not used anymore in UI5. #todos10
141
+ setTimeout(() => {
142
+ requireAsync(`${mChangeHandlers}.flexibility`)
143
+ .then(resolve)
144
+ .catch(function(oError) {
145
+ Log.error(`Flexibility change handler registration failed.\nControlType: ${sControlType}\n${oError.message}`);
146
+ resolve(sSkipNext); // continue without a registration
147
+ });
148
+ }, 0);
142
149
  });
143
150
  }
144
151
 
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  *
63
63
  * @namespace sap.ui.fl.initial._internal.connectors.Utils
64
64
  * @since 1.70
65
- * @version 1.140.0
65
+ * @version 1.141.1
66
66
  * @private
67
67
  * @ui5-restricted sap.ui.fl.initial._internal.connectors, sap.ui.fl.write._internal.connectors, sap.ui.fl.write._internal.transport
68
68
  */
@@ -7,14 +7,18 @@
7
7
  sap.ui.define([
8
8
  "sap/base/Log",
9
9
  "sap/ui/core/Component",
10
- "sap/ui/fl/apply/_internal/flexState/FlexState",
10
+ "sap/ui/fl/initial/_internal/Loader",
11
11
  "sap/ui/fl/initial/_internal/ManifestUtils",
12
+ "sap/ui/fl/initial/_internal/StorageUtils",
13
+ "sap/ui/fl/requireAsync",
12
14
  "sap/ui/fl/Utils"
13
15
  ], function(
14
16
  Log,
15
17
  Component,
16
- FlexState,
18
+ Loader,
17
19
  ManifestUtils,
20
+ StorageUtils,
21
+ requireAsync,
18
22
  Utils
19
23
  ) {
20
24
  "use strict";
@@ -26,7 +30,7 @@ sap.ui.define([
26
30
  * @class
27
31
  * @constructor
28
32
  * @author SAP SE
29
- * @version 1.140.0
33
+ * @version 1.141.1
30
34
  * @since 1.27.0
31
35
  * @private
32
36
  * @ui5-restricted sap.ui.fl, sap.ui.core
@@ -102,7 +106,14 @@ sap.ui.define([
102
106
  }
103
107
  var sFlexReference = ManifestUtils.getFlexReferenceForControl(oAppComponent);
104
108
 
105
- return FlexState.waitForInitialization(sFlexReference).then(() => {
109
+ return Loader.waitForInitialization(sFlexReference).then(async function() {
110
+ const oFlexData = Loader.getCachedFlexData(sFlexReference);
111
+ if (!StorageUtils.isStorageResponseFilled(oFlexData?.changes)) {
112
+ return [];
113
+ }
114
+
115
+ const FlexState = await requireAsync("sap/ui/fl/apply/_internal/flexState/FlexState");
116
+ await FlexState.waitForInitialization(sFlexReference);
106
117
  const aFlexObjects = FlexState.getFlexObjectsDataSelector().get({reference: sFlexReference});
107
118
  var aExtensionModules = aFlexObjects.filter(function(oChange) {
108
119
  return isCodeExt(oChange) && isForController(sControllerName, oChange);
@@ -13,14 +13,11 @@ sap.ui.define([
13
13
  "sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor",
14
14
  "sap/ui/fl/apply/_internal/flexState/communication/FLPAboutInfo",
15
15
  "sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks",
16
- "sap/ui/fl/apply/api/DelegateMediatorAPI",
17
- "sap/ui/fl/changeHandler/ChangeAnnotation",
18
- "sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration",
19
16
  "sap/ui/fl/initial/_internal/ManifestUtils",
20
17
  "sap/ui/base/DesignTime",
21
18
  // the lower 2 are set as a callback in the "register...Processors" which are not detected as dependencies from the preload-building
22
- "sap/ui/fl/apply/_internal/preprocessors/ControllerExtension",
23
- "sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor"
19
+ "sap/ui/fl/initial/_internal/preprocessors/ControllerExtension",
20
+ "sap/ui/fl/initial/_internal/preprocessors/XmlPreprocessor"
24
21
  ], function(
25
22
  MvcControllerExtensionProvider,
26
23
  XMLView,
@@ -29,22 +26,20 @@ sap.ui.define([
29
26
  Preprocessor,
30
27
  FLPAboutInfo,
31
28
  ComponentLifecycleHooks,
32
- DelegateMediatorAPI,
33
- ChangeAnnotation,
34
- ChangeHandlerRegistration,
35
29
  ManifestUtils,
36
30
  DesignTime
37
31
  ) {
38
32
  "use strict";
39
33
 
40
34
  /**
41
- * This class takes care of all the registration (hooks) needed to run flex!
35
+ * This module registers everything needed for the app to start,
36
+ * without flex changes being involved yet.
42
37
  *
43
38
  * @name sap.ui.fl.apply._internal.preprocessors.RegistrationDelegator
44
39
  * @class
45
40
  * @constructor
46
41
  * @author SAP SE
47
- * @version 1.140.0
42
+ * @version 1.141.1
48
43
  * @since 1.43.0
49
44
  * @private
50
45
  */
@@ -53,15 +48,6 @@ sap.ui.define([
53
48
  ComponentHooks.onInstanceCreated.register(ComponentLifecycleHooks.instanceCreatedHook);
54
49
  }
55
50
 
56
- function registerChangeHandlers() {
57
- ChangeHandlerRegistration.registerPredefinedChangeHandlers();
58
- ChangeHandlerRegistration.getChangeHandlersOfLoadedLibsAndRegisterOnNewLoadedLibs();
59
- ChangeHandlerRegistration.registerAnnotationChangeHandler({
60
- changeHandler: ChangeAnnotation,
61
- isDefaultChangeHandler: true
62
- });
63
- }
64
-
65
51
  function registerOnModelCreated() {
66
52
  ComponentHooks.onModelCreated.register(ComponentLifecycleHooks.modelCreatedHook);
67
53
  }
@@ -71,12 +57,12 @@ sap.ui.define([
71
57
  }
72
58
 
73
59
  function registerExtensionProvider() {
74
- MvcControllerExtensionProvider.registerExtensionProvider("sap/ui/fl/apply/_internal/preprocessors/ControllerExtension");
60
+ MvcControllerExtensionProvider.registerExtensionProvider("sap/ui/fl/initial/_internal/preprocessors/ControllerExtension");
75
61
  }
76
62
 
77
63
  function registerXMLPreprocessor() {
78
64
  if (XMLView.registerPreprocessor) {
79
- XMLView.registerPreprocessor("viewxml", "sap.ui.fl.apply._internal.preprocessors.XmlPreprocessor");
65
+ XMLView.registerPreprocessor("viewxml", "sap.ui.fl.initial._internal.preprocessors.XmlPreprocessor");
80
66
  }
81
67
  }
82
68
 
@@ -98,21 +84,6 @@ sap.ui.define([
98
84
  ExtensionPoint.registerExtensionProvider(getExtensionPointProvider);
99
85
  }
100
86
 
101
- function registerModelSpecificReadDelegates() {
102
- DelegateMediatorAPI.registerReadDelegate({
103
- modelType: "sap.ui.model.odata.v4.ODataModel",
104
- delegate: "sap/ui/fl/write/_internal/delegates/ODataV4ReadDelegate"
105
- });
106
- DelegateMediatorAPI.registerReadDelegate({
107
- modelType: "sap.ui.model.odata.v2.ODataModel",
108
- delegate: "sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate"
109
- });
110
- DelegateMediatorAPI.registerReadDelegate({
111
- modelType: "sap.ui.model.odata.ODataModel",
112
- delegate: "sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate"
113
- });
114
- }
115
-
116
87
  function registerFLPAboutInfo() {
117
88
  FLPAboutInfo.initialize();
118
89
  }
@@ -123,14 +94,12 @@ sap.ui.define([
123
94
  * @public
124
95
  */
125
96
  RegistrationDelegator.registerAll = function() {
126
- registerChangeHandlers();
127
97
  registerLoadComponentEventHandler();
128
98
  registerExtensionProvider();
129
99
  registerChangesInComponent();
130
100
  registerXMLPreprocessor();
131
101
  registerDescriptorChangeHandler();
132
102
  registerExtensionPointProvider();
133
- registerModelSpecificReadDelegates();
134
103
  registerOnModelCreated();
135
104
  registerFLPAboutInfo();
136
105
  };
@@ -6,28 +6,24 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "sap/base/util/merge",
9
+ "sap/base/Log",
9
10
  "sap/ui/core/util/reflection/XmlTreeModifier",
10
11
  "sap/ui/core/Component",
11
- "sap/ui/fl/apply/_internal/changes/Applier",
12
- "sap/ui/fl/apply/_internal/changes/Utils",
13
- "sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState",
14
- "sap/ui/fl/apply/_internal/flexState/FlexObjectState",
15
- "sap/ui/fl/apply/_internal/flexState/FlexState",
12
+ "sap/ui/fl/initial/_internal/Loader",
16
13
  "sap/ui/fl/initial/_internal/ManifestUtils",
17
- "sap/ui/fl/Utils",
18
- "sap/base/Log"
14
+ "sap/ui/fl/initial/_internal/StorageUtils",
15
+ "sap/ui/fl/requireAsync",
16
+ "sap/ui/fl/Utils"
19
17
  ], function(
20
18
  merge,
19
+ Log,
21
20
  XmlTreeModifier,
22
21
  Component,
23
- Applier,
24
- ChangesUtils,
25
- VariantManagementState,
26
- FlexObjectState,
27
- FlexState,
22
+ Loader,
28
23
  ManifestUtils,
29
- Utils,
30
- Log
24
+ StorageUtils,
25
+ requireAsync,
26
+ Utils
31
27
  ) {
32
28
  "use strict";
33
29
 
@@ -38,7 +34,7 @@ sap.ui.define([
38
34
  * @class
39
35
  * @constructor
40
36
  * @author SAP SE
41
- * @version 1.140.0
37
+ * @version 1.141.1
42
38
  * @since 1.27.0
43
39
  * @private
44
40
  */
@@ -69,8 +65,10 @@ sap.ui.define([
69
65
  * @returns {Promise} resolving with an array of changes
70
66
  * @public
71
67
  */
72
- function getChangesForView(mPropertyBag) {
68
+ async function getChangesForView(mPropertyBag) {
69
+ const FlexObjectState = await requireAsync("sap/ui/fl/apply/_internal/flexState/FlexObjectState");
73
70
  const aAllApplicableUIChanges = FlexObjectState.getAllApplicableUIChanges(mPropertyBag.reference);
71
+ const ChangesUtils = await requireAsync("sap/ui/fl/apply/_internal/changes/Utils");
74
72
  return aAllApplicableUIChanges.filter(ChangesUtils.isChangeInView.bind(undefined, mPropertyBag));
75
73
  }
76
74
 
@@ -105,6 +103,13 @@ sap.ui.define([
105
103
 
106
104
  const sReference = ManifestUtils.getFlexReferenceForControl(oAppComponent);
107
105
 
106
+ await Loader.waitForInitialization(sReference);
107
+ const oFlexData = Loader.getCachedFlexData(sReference);
108
+ if (!StorageUtils.isStorageResponseFilled(oFlexData.changes)) {
109
+ return oView;
110
+ }
111
+
112
+ const FlexState = await requireAsync("sap/ui/fl/apply/_internal/flexState/FlexState");
108
113
  await FlexState.waitForInitialization(sReference);
109
114
 
110
115
  const mPropertyBag = merge({
@@ -113,8 +118,9 @@ sap.ui.define([
113
118
  view: oView,
114
119
  reference: sReference
115
120
  }, mProperties);
116
- const aChanges = getChangesForView(mPropertyBag);
121
+ const aChanges = await getChangesForView(mPropertyBag);
117
122
 
123
+ const Applier = await requireAsync("sap/ui/fl/apply/_internal/changes/Applier");
118
124
  await Applier.applyAllChangesForXMLView(mPropertyBag, aChanges);
119
125
 
120
126
  Log.debug(`flex processing view ${mProperties.id} finished`);
@@ -159,13 +165,15 @@ sap.ui.define([
159
165
  const sFlexReference = ManifestUtils.getFlexReferenceForControl(oAppComponent);
160
166
  let sCacheKey = XmlPreprocessor.NOTAG;
161
167
  if (sFlexReference) {
162
- const oWrappedChangeFileContent = await FlexState.getStorageResponse(sFlexReference);
163
- if (oWrappedChangeFileContent?.cacheKey) {
164
- sCacheKey = trimEtag(oWrappedChangeFileContent.cacheKey);
168
+ await Loader.waitForInitialization(sFlexReference);
169
+ const oFlexData = Loader.getCachedFlexData(sFlexReference);
170
+ if (oFlexData && oFlexData.cacheKey && StorageUtils.isStorageResponseFilled(oFlexData.changes)) {
171
+ sCacheKey = trimEtag(oFlexData.cacheKey);
165
172
 
166
173
  // If there are no changes, the standard variant is created after the variant management control is instantiated
167
174
  // When the cache key is calculated before this happens, the standard variant id is unknown
168
175
  // To avoid inconsistencies between page load and navigation scenarios, all standard variants are filtered
176
+ const VariantManagementState = await requireAsync("sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState");
169
177
  const aFilteredCurrentControlVariantIds = VariantManagementState.getAllCurrentVariants(sFlexReference)
170
178
  .filter((oVariant) => !oVariant.getStandardVariant())
171
179
  .map((oVariant) => oVariant.getId());
@@ -51,7 +51,7 @@ function(
51
51
  * @name sap.ui.fl.initial._internal.storageResultDisassemble
52
52
  * @function
53
53
  * @since 1.70
54
- * @version 1.140.0
54
+ * @version 1.141.1
55
55
  * @private
56
56
  * @ui5-restricted sap.ui.fl.initial._internal.Storage
57
57
  * Disassembles a response with a variant section into one or more plain responses.
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @namespace
20
20
  * @alias module:sap/ui/fl/initial/api/InitialFlexAPI
21
21
  * @since 1.132
22
- * @version 1.140.0
22
+ * @version 1.141.1
23
23
  * @private
24
24
  * @ui5-restricted
25
25
  */
@@ -12,7 +12,7 @@ sap.ui.define([], function() {
12
12
  *
13
13
  * @name sap.ui.fl.interfaces.BaseLoadConnector
14
14
  * @since 1.79
15
- * @version 1.140.0
15
+ * @version 1.141.1
16
16
  *
17
17
  * @private
18
18
  * @ui5-restricted SAP Web IDE (Visual Editor), UX Tools
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @private
107
107
  * @ui5-restricted
108
108
  * @since 1.78
109
- * @version 1.140.0
109
+ * @version 1.141.1
110
110
  *
111
111
  * @private
112
112
  * @ui5-restricted