@openui5/sap.ui.fl 1.139.0 → 1.141.0

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 (205) 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 +2 -2
  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 +14 -12
  45. package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +2 -2
  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 +13 -10
  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 +2 -2
  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 +5 -5
  60. package/src/sap/ui/fl/apply/_internal/flexState/FlexObjectState.js +12 -26
  61. package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +68 -229
  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 +3 -3
  66. package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +1 -1
  67. package/src/sap/ui/fl/apply/_internal/flexState/communication/FLPAboutInfo.js +2 -2
  68. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantManagementState.js +287 -10
  69. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/applyChangesOnVariant.js +61 -0
  70. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +22 -5
  71. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +72 -19
  72. package/src/sap/ui/fl/apply/_internal/init.js +47 -0
  73. package/src/sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks.js +17 -7
  74. package/src/sap/ui/fl/apply/api/AnnotationChangeHandlerAPI.js +2 -1
  75. package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +190 -53
  76. package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +17 -1
  77. package/src/sap/ui/fl/apply/api/ExtensionPointRegistryAPI.js +2 -1
  78. package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +6 -5
  79. package/src/sap/ui/fl/apply/api/SmartVariantManagementApplyAPI.js +45 -45
  80. package/src/sap/ui/fl/apply/api/UI2PersonalizationApplyAPI.js +2 -1
  81. package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
  82. package/src/sap/ui/fl/changeHandler/AddXML.js +2 -2
  83. package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +4 -4
  84. package/src/sap/ui/fl/changeHandler/Base.js +3 -2
  85. package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +1 -1
  86. package/src/sap/ui/fl/changeHandler/BaseAddXml.js +21 -9
  87. package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
  88. package/src/sap/ui/fl/changeHandler/ChangeAnnotation.js +7 -2
  89. package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
  90. package/src/sap/ui/fl/changeHandler/MoveControls.js +1 -1
  91. package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
  92. package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
  93. package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
  94. package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
  95. package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
  96. package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
  97. package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +1 -1
  98. package/src/sap/ui/fl/changeHandler/common/createIFrame.js +1 -4
  99. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChange.js +3 -3
  100. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +3 -3
  101. package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
  102. package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
  103. package/src/sap/ui/fl/designtime/variants/VariantManagement.designtime.js +14 -12
  104. package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +1 -1
  105. package/src/sap/ui/fl/initial/_internal/Loader.js +372 -0
  106. package/src/sap/ui/fl/{apply/_internal/flexState → initial/_internal}/ManifestUtils.js +1 -1
  107. package/src/sap/ui/fl/initial/_internal/Settings.js +1 -1
  108. package/src/sap/ui/fl/initial/_internal/Storage.js +1 -1
  109. package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +1 -1
  110. package/src/sap/ui/fl/initial/_internal/StorageUtils.js +67 -9
  111. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +1 -1
  112. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +12 -5
  113. package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
  114. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/ControllerExtension.js +16 -5
  115. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/RegistrationDelegator.js +9 -40
  116. package/src/sap/ui/fl/{apply → initial}/_internal/preprocessors/XmlPreprocessor.js +29 -21
  117. package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
  118. package/src/sap/ui/fl/initial/api/InitialFlexAPI.js +1 -1
  119. package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
  120. package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
  121. package/src/sap/ui/fl/library.js +44 -44
  122. package/src/sap/ui/fl/messagebundle_vi.properties +1 -1
  123. package/src/sap/ui/fl/support/_internal/extractChangeDependencies.js +1 -1
  124. package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +2 -2
  125. package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
  126. package/src/sap/ui/fl/support/_internal/getFlexObjectInfos.js +2 -2
  127. package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
  128. package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
  129. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
  130. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
  131. package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
  132. package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
  133. package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
  134. package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
  135. package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
  136. package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
  137. package/src/sap/ui/fl/util/IFrame.js +5 -4
  138. package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
  139. package/src/sap/ui/fl/variants/VariantManagement.js +88 -36
  140. package/src/sap/ui/fl/variants/VariantManager.js +81 -21
  141. package/src/sap/ui/fl/variants/VariantModel.js +38 -189
  142. package/src/sap/ui/fl/write/_internal/SaveAs.js +1 -1
  143. package/src/sap/ui/fl/write/_internal/Storage.js +14 -1
  144. package/src/sap/ui/fl/write/_internal/Versions.js +9 -5
  145. package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +10 -1
  146. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +6 -1
  147. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
  148. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +1 -1
  149. package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +1 -1
  150. package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +1 -1
  151. package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
  152. package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +27 -2
  153. package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +1 -1
  154. package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +4 -1
  155. package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
  156. package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
  157. package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
  158. package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
  159. package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
  160. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
  161. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
  162. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
  163. package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
  164. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
  165. package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
  166. package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
  167. package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +1 -1
  168. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
  169. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
  170. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  171. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
  172. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
  173. package/src/sap/ui/fl/write/_internal/flexState/FlexObjectManager.js +40 -71
  174. package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +3 -3
  175. package/src/sap/ui/fl/write/_internal/flexState/changes/UIChangeManager.js +1 -1
  176. package/src/sap/ui/fl/write/_internal/flexState/compVariants/{CompVariantState.js → CompVariantManager.js} +176 -309
  177. package/src/sap/ui/fl/write/_internal/init.js +27 -0
  178. package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +2 -2
  179. package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
  180. package/src/sap/ui/fl/write/api/Adaptations.js +1 -1
  181. package/src/sap/ui/fl/write/api/AppVariantWriteAPI.js +4 -2
  182. package/src/sap/ui/fl/write/api/BusinessNetworkAPI.js +60 -26
  183. package/src/sap/ui/fl/write/api/ChangesWriteAPI.js +4 -3
  184. package/src/sap/ui/fl/write/api/ContextBasedAdaptationsAPI.js +19 -23
  185. package/src/sap/ui/fl/write/api/ContextSharingAPI.js +3 -2
  186. package/src/sap/ui/fl/write/api/ControlPersonalizationWriteAPI.js +2 -1
  187. package/src/sap/ui/fl/write/api/FeaturesAPI.js +2 -1
  188. package/src/sap/ui/fl/write/api/FieldExtensibility.js +3 -2
  189. package/src/sap/ui/fl/write/api/LocalResetAPI.js +3 -2
  190. package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +23 -20
  191. package/src/sap/ui/fl/write/api/ReloadInfoAPI.js +10 -7
  192. package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +8 -7
  193. package/src/sap/ui/fl/write/api/SmartBusinessWriteAPI.js +3 -2
  194. package/src/sap/ui/fl/write/api/SmartVariantManagementWriteAPI.js +26 -22
  195. package/src/sap/ui/fl/write/api/TranslationAPI.js +3 -2
  196. package/src/sap/ui/fl/write/api/UI2PersonalizationWriteAPI.js +4 -3
  197. package/src/sap/ui/fl/write/api/VersionsAPI.js +4 -3
  198. package/src/sap/ui/fl/write/api/connectors/FileListBaseConnector.js +3 -2
  199. package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +4 -2
  200. package/src/sap/ui/fl/write/connectors/BaseConnector.js +13 -0
  201. package/ui5.yaml +0 -1
  202. package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +0 -208
  203. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +0 -233
  204. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/prepareCompVariantsMap.js +0 -118
  205. package/src/sap/ui/fl/util/resolveBinding.js +0 -79
@@ -9,7 +9,7 @@ sap.ui.define([
9
9
  "sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState",
10
10
  "sap/ui/fl/apply/_internal/flexState/FlexObjectState",
11
11
  "sap/ui/fl/apply/_internal/flexState/FlexState",
12
- "sap/ui/fl/apply/_internal/flexState/ManifestUtils",
12
+ "sap/ui/fl/initial/_internal/ManifestUtils",
13
13
  "sap/ui/fl/Utils"
14
14
  ], function(
15
15
  UIChangesState,
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  *
27
27
  * @namespace sap.ui.fl.support._internal.getFlexObjectInfos
28
28
  * @since 1.128
29
- * @version 1.139.0
29
+ * @version 1.141.0
30
30
  * @private
31
31
  * @ui5-restricted sap.ui.fl.support.api.SupportAPI
32
32
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  *
35
35
  * @namespace sap.ui.fl.support._internal.getFlexSettings
36
36
  * @since 1.99
37
- * @version 1.139.0
37
+ * @version 1.141.0
38
38
  * @param {sap.ui.core.UIComponent} oAppComponent - Application Component
39
39
  * @private
40
40
  * @ui5-restricted sap.ui.fl.support.api.SupportAPI
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  *
67
67
  * @namespace sap.ui.fl.support.api.SupportAPI
68
68
  * @since 1.98
69
- * @version 1.139.0
69
+ * @version 1.141.0
70
70
  * @private
71
71
  * @ui5-restricted ui5 support tools
72
72
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @constructor
43
43
  * @alias sap.ui.fl.support.apps.contentbrowser.controller.ContentDetails
44
44
  * @author SAP SE
45
- * @version 1.139.0
45
+ * @version 1.141.0
46
46
  * @since 1.45
47
47
  * @private
48
48
  */
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @constructor
41
41
  * @alias sap.ui.fl.support.apps.contentbrowser.controller.ContentDetailsEdit
42
42
  * @author SAP SE
43
- * @version 1.139.0
43
+ * @version 1.141.0
44
44
  * @since 1.45
45
45
  * @private
46
46
  */
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @constructor
28
28
  * @alias sap.ui.fl.support.apps.contentbrowser.controller.LayerContentMaster
29
29
  * @author SAP SE
30
- * @version 1.139.0
30
+ * @version 1.141.0
31
31
  * @since 1.45
32
32
  * @private
33
33
  */
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @constructor
18
18
  * @alias sap.ui.fl.support.apps.contentbrowser.controller.Layers
19
19
  * @author SAP SE
20
- * @version 1.139.0
20
+ * @version 1.141.0
21
21
  * @since 1.45
22
22
  * @private
23
23
  */
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/fl/Utils", "sap/ui/thirdparty/jquery"], function(Utils, j
13
13
  * @constructor
14
14
  * @alias sap.ui.fl.support.apps.contentbrowser.lrepConnector.LRepConnector
15
15
  * @author SAP SE
16
- * @version 1.139.0
16
+ * @version 1.141.0
17
17
  * @since 1.45
18
18
  * @private
19
19
  */
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @constructor
26
26
  * @alias sap.ui.fl.support.apps.contentbrowser.utils.DataUtils
27
27
  * @author SAP SE
28
- * @version 1.139.0
28
+ * @version 1.141.0
29
29
  * @since 1.45
30
30
  * @private
31
31
  */
@@ -17,7 +17,7 @@ function(MessageItem, MessagePopover, JSONModel) {
17
17
  * @constructor
18
18
  * @alias sap.ui.fl.support.apps.contentbrowser.utils.ErrorUtils
19
19
  * @author SAP SE
20
- * @version 1.139.0
20
+ * @version 1.141.0
21
21
  * @since 1.45
22
22
  * @private
23
23
  */
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @alias sap.ui.fl.transport.TransportSelection
18
18
  * @constructor
19
19
  * @author SAP SE
20
- * @version 1.139.0
20
+ * @version 1.141.0
21
21
  * @since 1.38.0
22
22
  * Helper object to select an ABAP transport for an LREP object. This is not a generic utility to select a transport request, but part
23
23
  * of the SmartVariant control.
@@ -9,12 +9,13 @@ sap.ui.define([
9
9
  "sap/base/util/uid",
10
10
  "sap/ui/core/Control",
11
11
  "sap/ui/model/json/JSONModel",
12
- "./getContainerUserInfo",
12
+ "sap/ui/fl/util/getContainerUserInfo",
13
13
  "sap/base/security/URLListValidator",
14
14
  "sap/base/Log",
15
- "./IFrameRenderer",
16
- "../library",
15
+ "sap/ui/fl/util/IFrameRenderer",
17
16
  "sap/ui/core/library"
17
+ // The iFrame control does not need to require its library module because no DataTypes are defined in fl library and the control
18
+ // doesn't require any CSS from the library.css
18
19
  ], function(
19
20
  uid,
20
21
  Control,
@@ -50,7 +51,7 @@ sap.ui.define([
50
51
  * @extends sap.ui.core.Control
51
52
  *
52
53
  * @author SAP SE
53
- * @version 1.139.0
54
+ * @version 1.141.0
54
55
  *
55
56
  * @constructor
56
57
  * @private
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.core.Element
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.139.0
28
+ * @version 1.141.0
29
29
  *
30
30
  * @constructor
31
31
  * @private
@@ -6,29 +6,31 @@
6
6
 
7
7
  // Provides control sap.ui.fl.variants.VariantManagement.
8
8
  sap.ui.define([
9
- "sap/ui/model/Context",
10
- "sap/ui/model/Filter",
11
- "sap/ui/model/FilterOperator",
9
+ "sap/base/Log",
12
10
  "sap/m/VariantItem",
13
11
  "sap/m/VariantManagement",
14
- "sap/ui/fl/apply/api/ControlVariantApplyAPI",
15
- "sap/ui/fl/initial/_internal/Settings",
16
12
  "sap/ui/core/Control",
17
13
  "sap/ui/core/Lib",
18
14
  "sap/ui/core/library",
19
- "sap/base/Log"
15
+ "sap/ui/fl/apply/api/ControlVariantApplyAPI",
16
+ "sap/ui/fl/initial/_internal/Settings",
17
+ "sap/ui/fl/Utils",
18
+ "sap/ui/model/Context",
19
+ "sap/ui/model/Filter",
20
+ "sap/ui/model/FilterOperator"
20
21
  ], function(
21
- Context,
22
- Filter,
23
- FilterOperator,
22
+ Log,
24
23
  VariantItem,
25
24
  MVariantManagement,
26
- ControlVariantApplyAPI,
27
- flSettings,
28
25
  Control,
29
26
  Lib,
30
27
  coreLibrary,
31
- Log
28
+ ControlVariantApplyAPI,
29
+ flSettings,
30
+ Utils,
31
+ Context,
32
+ Filter,
33
+ FilterOperator
32
34
  ) {
33
35
  "use strict";
34
36
 
@@ -139,11 +141,11 @@ sap.ui.define([
139
141
  },
140
142
 
141
143
  /**
142
- * Semantic level of the header.
143
- * For more information, see {@link sap.m.Title#setLevel}.
144
- *
145
- * @since 1.104
146
- */
144
+ * Semantic level of the header.
145
+ * For more information, see {@link sap.m.Title#setLevel}.
146
+ *
147
+ * @since 1.104
148
+ */
147
149
  headerLevel: {
148
150
  type: "sap.ui.core.TitleLevel",
149
151
  group: "Appearance",
@@ -348,6 +350,15 @@ sap.ui.define([
348
350
  oRm.renderControl(oControl._oVM);
349
351
  oRm.close("div");
350
352
  }
353
+ },
354
+ // eslint-disable-next-line object-shorthand
355
+ constructor: function(...aArgs) {
356
+ Control.prototype.constructor.apply(this, aArgs); // Call base class constructor
357
+ this._oInitPromise = new Promise((resolve) => {
358
+ this.attachEventOnce("initialized", () => {
359
+ resolve();
360
+ });
361
+ });
351
362
  }
352
363
  });
353
364
 
@@ -371,6 +382,7 @@ sap.ui.define([
371
382
  this._aSaveEventHandlers = [];
372
383
  this._aManageEventHandlers = [];
373
384
  this._aSelectEventHandlers = [];
385
+ this._oVariantAppliedListeners = {};
374
386
 
375
387
  this._oVM.attachManage(this._fireManage, this);
376
388
  this._oVM.attachCancel(this._fireCancel, this);
@@ -380,6 +392,15 @@ sap.ui.define([
380
392
  this._updateWithSettingsInfo();
381
393
  };
382
394
 
395
+ /**
396
+ * Waits for VM control initialization.
397
+ *
398
+ * @returns {Promise} A promise that resolves when the control is initialized
399
+ */
400
+ VariantManagement.prototype.waitForInit = function() {
401
+ return this._oInitPromise;
402
+ };
403
+
383
404
  /**
384
405
  * Registers an invalidation event that is fired when the width of the control is changed.
385
406
  * <b>Note:</b> This is required by the {@link sap.m.IOverflowToolbarContent} interface.
@@ -716,7 +737,7 @@ sap.ui.define([
716
737
  };
717
738
 
718
739
  VariantManagement.prototype.setShowExecuteOnSelection = function(bValue) {
719
- // this.setProperty("showExecuteOnSelection", bValue);
740
+ // This property is not bound since it is not part of the model
720
741
  this._oVM.setSupportApplyAutomatically(bValue);
721
742
  return this;
722
743
  };
@@ -864,7 +885,7 @@ sap.ui.define([
864
885
  if (!this.oContext) {
865
886
  oModel = this.getModel(sModelName);
866
887
  if (oModel) {
867
- sLocalId = this._getLocalId(oModel);
888
+ sLocalId = this.getVariantManagementReference();
868
889
 
869
890
  if (sLocalId) {
870
891
  this.oContext = new Context(oModel, `/${sLocalId}`);
@@ -900,11 +921,6 @@ sap.ui.define([
900
921
  model: sModelName
901
922
  });
902
923
 
903
- this._oVM.bindProperty("supportApplyAutomatically", {
904
- path: `${this.oContext}/showExecuteOnSelection`,
905
- model: sModelName
906
- });
907
-
908
924
  this._oVM.bindProperty("showFooter", {
909
925
  path: `${this.oContext}/variantsEditable`,
910
926
  model: sModelName
@@ -944,18 +960,6 @@ sap.ui.define([
944
960
  });
945
961
  };
946
962
 
947
- VariantManagement.prototype._getLocalId = function(oModel) {
948
- var sModelName = this.getModelName();
949
- if (!sModelName) {
950
- return null;
951
- }
952
- if (sModelName !== ControlVariantApplyAPI.getVariantModelName()) {
953
- return this.getId();
954
- }
955
-
956
- return oModel.getVariantManagementReferenceForControl(this);
957
- };
958
-
959
963
  VariantManagement.prototype._getInnerItems = function() {
960
964
  var aItems = [];
961
965
  if (this.oContext && this.oContext.getObject()) {
@@ -1080,5 +1084,53 @@ sap.ui.define([
1080
1084
  return true;
1081
1085
  };
1082
1086
 
1087
+ /**
1088
+ * Adds a listener for a control that is called when a variant is applied.
1089
+ *
1090
+ * @param {sap.ui.core.Control} oControl The control for which the listener is registered
1091
+ * @param {function} fnCallBack The callback function that is called when the variant is applied
1092
+ *
1093
+ * @ui5-restricted sap.ui.fl
1094
+ * @private
1095
+ */
1096
+ VariantManagement.prototype._addVariantAppliedListener = function(oControl, fnCallBack) {
1097
+ this._oVariantAppliedListeners[oControl.getId()] = fnCallBack;
1098
+ };
1099
+
1100
+ /**
1101
+ * Removes a listener for a control that is called when a variant is applied.
1102
+ *
1103
+ * @param {sap.ui.core.Control} oControl The control for which the listener is registered
1104
+ *
1105
+ * @ui5-restricted sap.ui.fl
1106
+ * @private
1107
+ */
1108
+ VariantManagement.prototype._removeVariantAppliedListener = function(oControl) {
1109
+ delete this._oVariantAppliedListeners[oControl.getId()];
1110
+ };
1111
+
1112
+ /**
1113
+ * Executes all variant applied listeners (for all controls).
1114
+ * @param {object} oVariant The variant that was applied
1115
+ *
1116
+ * @ui5-restricted sap.ui.fl
1117
+ * @private
1118
+ */
1119
+ VariantManagement.prototype._executeAllVariantAppliedListeners = function(oVariant) {
1120
+ Object.values(this._oVariantAppliedListeners).forEach(function(fnCallback) {
1121
+ fnCallback(oVariant);
1122
+ });
1123
+ };
1124
+
1125
+ /**
1126
+ * Returns the reference of the variant management control.
1127
+ * @returns {string} The reference of the variant management control
1128
+ */
1129
+ VariantManagement.prototype.getVariantManagementReference = function() {
1130
+ const sControlId = this.getId();
1131
+ const oAppComponent = Utils.getAppComponentForControl(this);
1132
+ return (oAppComponent && oAppComponent.getLocalId(sControlId)) || sControlId;
1133
+ };
1134
+
1083
1135
  return VariantManagement;
1084
1136
  });
@@ -17,6 +17,7 @@ sap.ui.define([
17
17
  "sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState",
18
18
  "sap/ui/fl/apply/_internal/flexState/FlexObjectState",
19
19
  "sap/ui/fl/apply/api/ControlVariantApplyAPI",
20
+ "sap/ui/fl/apply/api/FlexRuntimeInfoAPI",
20
21
  "sap/ui/fl/write/_internal/controlVariants/ControlVariantWriteUtils",
21
22
  "sap/ui/fl/write/_internal/flexState/changes/UIChangeManager",
22
23
  "sap/ui/fl/write/_internal/flexState/FlexObjectManager",
@@ -36,6 +37,7 @@ sap.ui.define([
36
37
  VariantManagementState,
37
38
  FlexObjectState,
38
39
  ControlVariantApplyAPI,
40
+ FlexRuntimeInfoAPI,
39
41
  ControlVariantWriteUtils,
40
42
  UIChangeManager,
41
43
  FlexObjectManager,
@@ -50,7 +52,7 @@ sap.ui.define([
50
52
  *
51
53
  * @namespace sap.ui.fl.variants.VariantManager
52
54
  * @since 1.132
53
- * @version 1.139.0
55
+ * @version 1.141.0
54
56
  * @private
55
57
  * @ui5-restricted sap.ui.fl, sap.ui.rta
56
58
  */
@@ -61,31 +63,40 @@ sap.ui.define([
61
63
  return oAppComponent.getModel(ControlVariantApplyAPI.getVariantModelName());
62
64
  }
63
65
 
66
+ function getDirtyChangesFromVariantChanges(aControlChanges, sFlexReference) {
67
+ const aChangeFileNames = aControlChanges.map((oChange) => oChange.getId());
68
+
69
+ return FlexObjectState.getDirtyFlexObjects(sFlexReference).filter(function(oChange) {
70
+ return aChangeFileNames.includes(oChange.getId()) && !oChange.getSavedToVariant();
71
+ });
72
+ }
73
+
64
74
  /**
65
75
  * Removes passed control changes which are in DIRTY state from the variant state and flex controller.
66
76
  *
67
77
  * @param {object} mPropertyBag - Object with properties
68
78
  * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} mPropertyBag.changes - Array of control changes
79
+ * @param {string} mPropertyBag.reference - Flex reference of the app
69
80
  * @param {string} mPropertyBag.vmReference - Variant management reference
70
81
  * @param {string} mPropertyBag.vReference - Variant reference to remove dirty changes from
71
- * @param {sap.ui.fl.variants.VariantModel} mPropertyBag.model - Variant model instance
82
+ * @param {sap.ui.core.Component} mPropertyBag.appComponent - Model's app component
72
83
  * @param {boolean} [mPropertyBag.revert] - Revert the given changes
73
84
  *
74
85
  * @returns {Promise<undefined>} Resolves when changes have been erased
75
86
  */
76
87
  async function eraseDirtyChanges(mPropertyBag) {
77
- var aVariantDirtyChanges = mPropertyBag.model._getDirtyChangesFromVariantChanges(mPropertyBag.changes);
88
+ var aVariantDirtyChanges = getDirtyChangesFromVariantChanges(mPropertyBag.changes, mPropertyBag.reference);
78
89
  aVariantDirtyChanges = aVariantDirtyChanges.reverse();
79
90
 
80
91
  if (mPropertyBag.revert) {
81
92
  await Reverter.revertMultipleChanges(aVariantDirtyChanges, {
82
- appComponent: mPropertyBag.model.oAppComponent,
93
+ appComponent: mPropertyBag.appComponent,
83
94
  modifier: JsControlTreeModifier,
84
- reference: mPropertyBag.model.sFlexReference
95
+ reference: mPropertyBag.reference
85
96
  });
86
97
  }
87
98
  FlexObjectManager.deleteFlexObjects({
88
- reference: mPropertyBag.model.sFlexReference,
99
+ reference: mPropertyBag.reference,
89
100
  flexObjects: aVariantDirtyChanges
90
101
  });
91
102
  }
@@ -94,18 +105,18 @@ sap.ui.define([
94
105
  * Adds the passed function to the variant switch promise and returns the whole promise chain.
95
106
  *
96
107
  * @param {function():Promise} fnCallback - Callback function returning a promise
97
- * @param {sap.ui.fl.variants.VariantModel} oModel - Variant model
108
+ * @param {string} sFlexReference - Flex reference of the app
98
109
  * @param {string} sVMReference - Variant Management reference
99
- * @returns {Promise<undefined>} Resolves when the variant model is not busy anymore
110
+ * @returns {Promise} Resolves when the variant model is not busy anymore
100
111
  * @private
101
112
  */
102
- function executeAfterSwitch(fnCallback, oModel, sVMReference) {
113
+ function executeAfterSwitch(fnCallback, sFlexReference, sVMReference) {
103
114
  // if there are multiple switches triggered very quickly this makes sure that they are being executed one after another
104
- oModel._oVariantSwitchPromises[sVMReference] = oModel._oVariantSwitchPromises[sVMReference]
115
+ const oNewPromise = VariantManagementState.waitForVariantSwitch(sFlexReference, sVMReference)
105
116
  .catch(function() {})
106
117
  .then(fnCallback);
107
- VariantManagementState.setVariantSwitchPromise(oModel.sFlexReference, oModel._oVariantSwitchPromises[sVMReference], sVMReference);
108
- return oModel._oVariantSwitchPromises[sVMReference];
118
+ VariantManagementState.setVariantSwitchPromise(sFlexReference, sVMReference, oNewPromise);
119
+ return oNewPromise;
109
120
  }
110
121
 
111
122
  async function handleDirtyChanges(aDirtyChanges, sVariantManagementReference, oAppComponent, oVariantModel) {
@@ -179,10 +190,11 @@ sap.ui.define([
179
190
  });
180
191
  await eraseDirtyChanges({
181
192
  changes: aControlChanges,
193
+ reference: oModel.sFlexReference,
182
194
  vmReference: sVMReference,
183
195
  vReference: sSourceVReference,
184
- revert: !bVariantSwitch,
185
- model: oModel
196
+ appComponent: oModel.oAppComponent,
197
+ revert: !bVariantSwitch
186
198
  });
187
199
  }
188
200
  // the variant switch already calls the listeners
@@ -210,9 +222,19 @@ sap.ui.define([
210
222
  return oChange.visible === false
211
223
  && oChange.variantReference === oVariantModel.getCurrentVariantReference(sVMReference);
212
224
  })) {
225
+ // If the current variant is deleted, switch to the default variant
226
+ // In case the deleted variant was the default or the default variant was changed in the
227
+ // same manage variants session, switch to the new default that is passed via the event
228
+ const sNewDefaultVariantReference = (
229
+ oEvent.getParameter("def")
230
+ || VariantManagementState.getDefaultVariantReference({
231
+ reference: oVariantModel.sFlexReference,
232
+ vmReference: sVMReference
233
+ })
234
+ );
213
235
  await oVariantModel.updateCurrentVariant({
214
236
  variantManagementReference: sVMReference,
215
- newVariantReference: sVMReference
237
+ newVariantReference: sNewDefaultVariantReference
216
238
  });
217
239
  }
218
240
 
@@ -257,6 +279,7 @@ sap.ui.define([
257
279
 
258
280
  VariantManager.handleSaveEvent = async function(oVariantManagementControl, mParameters, oVariantModel) {
259
281
  var oAppComponent = Utils.getAppComponentForControl(oVariantManagementControl);
282
+ oVariantModel ||= getVariantModel(oVariantManagementControl);
260
283
  var sVMReference = oVariantModel.getLocalId(oVariantManagementControl.getId(), oAppComponent);
261
284
  var aNewVariantDirtyChanges;
262
285
 
@@ -271,7 +294,7 @@ sap.ui.define([
271
294
  if (mParameters.overwrite) {
272
295
  // handle triggered "Save" button
273
296
  // Includes special handling for PUBLIC variant which requires changing all the dirty changes to PUBLIC layer before saving
274
- aNewVariantDirtyChanges = oVariantModel._getDirtyChangesFromVariantChanges(aSourceVariantChanges);
297
+ aNewVariantDirtyChanges = getDirtyChangesFromVariantChanges(aSourceVariantChanges, oVariantModel.sFlexReference);
275
298
  if (oVariantModel.getVariant(sSourceVariantReference, sVariantManagementReference).layer === Layer.PUBLIC) {
276
299
  aNewVariantDirtyChanges.forEach((oChange) => oChange.setLayer(Layer.PUBLIC));
277
300
  }
@@ -328,9 +351,10 @@ sap.ui.define([
328
351
  // unsaved changes on the source variant are removed before copied variant changes are saved
329
352
  await eraseDirtyChanges({
330
353
  changes: aSourceVariantChanges,
354
+ reference: oVariantModel.sFlexReference,
331
355
  vmReference: sVariantManagementReference,
332
356
  vReference: sSourceVariantReference,
333
- model: oVariantModel
357
+ appComponent: oAppComponent
334
358
  });
335
359
  return handleDirtyChanges(
336
360
  aNewVariantDirtyChanges,
@@ -382,20 +406,21 @@ sap.ui.define([
382
406
  * @returns {Promise<sap.ui.fl.apply._internal.flexObjects.FlexObject[]>} Resolves with the removed dirty changes
383
407
  */
384
408
  VariantManager.eraseDirtyChangesOnVariant = async function(sVariantManagementReference, sVariantReference, oControl) {
385
- const oVariantModel = getVariantModel(oControl);
409
+ const sFlexReference = FlexRuntimeInfoAPI.getFlexReference({ element: oControl });
386
410
  var aSourceVariantChanges = VariantManagementState.getControlChangesForVariant({
387
- reference: oVariantModel.sFlexReference,
411
+ reference: sFlexReference,
388
412
  vmReference: sVariantManagementReference,
389
413
  vReference: sVariantReference
390
414
  });
391
415
 
392
- var aSourceVariantDirtyChanges = oVariantModel._getDirtyChangesFromVariantChanges(aSourceVariantChanges);
416
+ var aSourceVariantDirtyChanges = getDirtyChangesFromVariantChanges(aSourceVariantChanges, sFlexReference);
393
417
 
394
418
  await eraseDirtyChanges({
395
419
  changes: aSourceVariantChanges,
420
+ reference: sFlexReference,
396
421
  vmReference: sVariantManagementReference,
397
422
  vReference: sVariantReference,
398
- model: oVariantModel,
423
+ appComponent: Utils.getAppComponentForControl(oControl),
399
424
  revert: true
400
425
  });
401
426
  return aSourceVariantDirtyChanges;
@@ -606,5 +631,40 @@ sap.ui.define([
606
631
  });
607
632
  };
608
633
 
634
+ /**
635
+ * Returns the dirty changes from the given changes.
636
+ * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} aControlChanges - Array of changes to be checked
637
+ * @param {string} sFlexReference - Flex reference of the app
638
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Array of filtered changes
639
+ * @private
640
+ */
641
+ VariantManager.getDirtyChangesFromVariantChanges = function(aControlChanges, sFlexReference) {
642
+ return getDirtyChangesFromVariantChanges(aControlChanges, sFlexReference);
643
+ };
644
+
645
+ /**
646
+ * Invalidates the variant management map for the given flex reference.
647
+ * This is used to ensure that the variant management map is updated when changes are made.
648
+ * @param {string} sFlexReference - Flex reference of the app
649
+ */
650
+ VariantManager.updateVariantManagementMap = function(sFlexReference) {
651
+ VariantManagementState.getVariantManagementMap().checkUpdate({ reference: sFlexReference });
652
+ };
653
+
654
+ /**
655
+ * Returns all control changes for the given variant.
656
+ * @param {string} sFlexReference - Flex reference of the app
657
+ * @param {*} sVMReference - Variant Management reference
658
+ * @param {*} sVReference - Variant reference
659
+ * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Array of control changes for the given variant
660
+ */
661
+ VariantManager.getControlChangesForVariant = function(sFlexReference, sVMReference, sVReference) {
662
+ return VariantManagementState.getVariant({
663
+ reference: sFlexReference,
664
+ vmReference: sVMReference,
665
+ vReference: sVReference
666
+ }).controlChanges;
667
+ };
668
+
609
669
  return VariantManager;
610
670
  });