@openui5/sap.ui.fl 1.131.1 → 1.132.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 (316) hide show
  1. package/.eslintrc.json +1 -2
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +3 -3
  4. package/src/sap/ui/fl/.library +2 -2
  5. package/src/sap/ui/fl/ChangePersistence.js +11 -5
  6. package/src/sap/ui/fl/ChangePersistenceFactory.js +2 -2
  7. package/src/sap/ui/fl/FakeLrepConnector.js +1 -1
  8. package/src/sap/ui/fl/FakeLrepConnectorLocalStorage.js +2 -2
  9. package/src/sap/ui/fl/FakeLrepConnectorSessionStorage.js +2 -2
  10. package/src/sap/ui/fl/FakeLrepLocalStorage.js +2 -2
  11. package/src/sap/ui/fl/FlexController.js +3 -2
  12. package/src/sap/ui/fl/FlexControllerFactory.js +2 -2
  13. package/src/sap/ui/fl/Layer.js +1 -1
  14. package/src/sap/ui/fl/LayerUtils.js +2 -2
  15. package/src/sap/ui/fl/Scenario.js +1 -1
  16. package/src/sap/ui/fl/Utils.js +2 -2
  17. package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +2 -2
  18. package/src/sap/ui/fl/apply/_internal/appVariant/DescriptorChangeTypes.js +1 -1
  19. package/src/sap/ui/fl/apply/_internal/changes/Applier.js +13 -3
  20. package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +2 -2
  21. package/src/sap/ui/fl/apply/_internal/changes/Reverter.js +7 -2
  22. package/src/sap/ui/fl/apply/_internal/changes/Utils.js +49 -23
  23. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Applier.js +20 -21
  24. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ApplyStrategyFactory.js +1 -1
  25. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ApplyUtil.js +1 -1
  26. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +2 -2
  27. package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +2 -2
  28. package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +2 -2
  29. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +2 -2
  30. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewDataSource.js +4 -4
  31. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +2 -2
  32. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewOutbound.js +2 -2
  33. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddTechnicalAttributes.js +3 -3
  34. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +2 -2
  35. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +2 -2
  36. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeOutbound.js +2 -2
  37. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +2 -2
  38. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetAch.js +2 -2
  39. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetDescription.js +2 -2
  40. package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +16 -4
  41. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +2 -2
  42. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetCloudDevAdaptationStatus.js +2 -2
  43. package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +2 -2
  44. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +2 -2
  45. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +2 -2
  46. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +2 -2
  47. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +2 -2
  48. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +2 -2
  49. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +2 -2
  50. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +2 -2
  51. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/ChangeModel.js +2 -2
  52. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +2 -2
  53. package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +2 -2
  54. package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageConnector.js +1 -1
  55. package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +2 -2
  56. package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +1 -1
  57. package/src/sap/ui/fl/apply/_internal/controlVariants/Utils.js +1 -1
  58. package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +2 -2
  59. package/src/sap/ui/fl/apply/_internal/extensionPoint/Registry.js +2 -2
  60. package/src/sap/ui/fl/apply/_internal/flexObjects/AnnotationChange.js +17 -10
  61. package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +16 -2
  62. package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +2 -2
  63. package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariantRevertData.js +1 -1
  64. package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +2 -2
  65. package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +2 -2
  66. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +21 -2
  67. package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +19 -3
  68. package/src/sap/ui/fl/apply/_internal/flexObjects/RevertData.js +1 -1
  69. package/src/sap/ui/fl/apply/_internal/flexObjects/States.js +1 -1
  70. package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +21 -2
  71. package/src/sap/ui/fl/apply/_internal/flexObjects/UpdatableChange.js +5 -1
  72. package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +7 -2
  73. package/src/sap/ui/fl/apply/_internal/flexObjects/getVariantAuthor.js +2 -2
  74. package/src/sap/ui/fl/apply/_internal/flexState/DataSelector.js +1 -1
  75. package/src/sap/ui/fl/apply/_internal/flexState/FlexObjectState.js +10 -4
  76. package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +14 -8
  77. package/src/sap/ui/fl/apply/_internal/flexState/InitialPrepareFunctions.js +1 -1
  78. package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +21 -16
  79. package/src/sap/ui/fl/apply/_internal/flexState/ManifestUtils.js +2 -2
  80. package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +2 -2
  81. package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +2 -2
  82. package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +2 -2
  83. package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +2 -2
  84. package/src/sap/ui/fl/apply/_internal/flexState/communication/FLPAboutInfo.js +140 -0
  85. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantManagementState.js +2 -2
  86. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +3 -3
  87. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/Utils.js +1 -1
  88. package/src/sap/ui/fl/apply/_internal/flexState/compVariants/prepareCompVariantsMap.js +1 -1
  89. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +2 -2
  90. package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +2 -2
  91. package/src/sap/ui/fl/apply/_internal/preprocessors/ComponentLifecycleHooks.js +60 -1
  92. package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +2 -2
  93. package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +20 -3
  94. package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +2 -2
  95. package/src/sap/ui/fl/apply/api/AnnotationChangeHandlerAPI.js +11 -9
  96. package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +1 -1
  97. package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +1 -1
  98. package/src/sap/ui/fl/apply/api/ExtensionPointRegistryAPI.js +1 -1
  99. package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +23 -1
  100. package/src/sap/ui/fl/apply/api/SmartVariantManagementApplyAPI.js +1 -1
  101. package/src/sap/ui/fl/apply/api/UI2PersonalizationApplyAPI.js +1 -1
  102. package/src/sap/ui/fl/changeHandler/AddIFrame.js +2 -2
  103. package/src/sap/ui/fl/changeHandler/AddXML.js +2 -2
  104. package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +2 -2
  105. package/src/sap/ui/fl/changeHandler/Base.js +2 -2
  106. package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +2 -2
  107. package/src/sap/ui/fl/changeHandler/BaseAddXml.js +2 -2
  108. package/src/sap/ui/fl/changeHandler/BaseRename.js +2 -2
  109. package/src/sap/ui/fl/changeHandler/BaseTreeModifier.js +1 -1
  110. package/src/sap/ui/fl/changeHandler/ChangeAnnotation.js +78 -0
  111. package/src/sap/ui/fl/changeHandler/HideControl.js +2 -2
  112. package/src/sap/ui/fl/changeHandler/MoveControls.js +2 -2
  113. package/src/sap/ui/fl/changeHandler/MoveElements.js +2 -2
  114. package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +2 -2
  115. package/src/sap/ui/fl/changeHandler/PropertyChange.js +2 -2
  116. package/src/sap/ui/fl/changeHandler/StashControl.js +2 -2
  117. package/src/sap/ui/fl/changeHandler/UnhideControl.js +2 -2
  118. package/src/sap/ui/fl/changeHandler/UnstashControl.js +2 -2
  119. package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +2 -2
  120. package/src/sap/ui/fl/changeHandler/common/ChangeCategories.js +1 -1
  121. package/src/sap/ui/fl/changeHandler/common/createIFrame.js +1 -1
  122. package/src/sap/ui/fl/changeHandler/common/getTargetAggregationIndex.js +1 -1
  123. package/src/sap/ui/fl/changeHandler/common/revertAddedControls.js +1 -1
  124. package/src/sap/ui/fl/changeHandler/condenser/Classification.js +1 -1
  125. package/src/sap/ui/fl/descriptorRelated/Utils.js +1 -1
  126. package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +9 -7
  127. package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +2 -2
  128. package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +2 -2
  129. package/src/sap/ui/fl/designtime/library.designtime.js +1 -1
  130. package/src/sap/ui/fl/designtime/messagebundle_en_US_saptrc.properties +1 -1
  131. package/src/sap/ui/fl/designtime/util/IFrame.designtime.js +1 -1
  132. package/src/sap/ui/fl/designtime/util/editIFrame.js +1 -1
  133. package/src/sap/ui/fl/designtime/variants/VariantManagement.designtime.js +1 -1
  134. package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +2 -2
  135. package/src/sap/ui/fl/initial/_internal/FlexInfoSession.js +1 -1
  136. package/src/sap/ui/fl/initial/_internal/Storage.js +2 -2
  137. package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +2 -2
  138. package/src/sap/ui/fl/initial/_internal/StorageResultMerger.js +1 -1
  139. package/src/sap/ui/fl/initial/_internal/StorageUtils.js +7 -4
  140. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +8 -7
  141. package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +14 -11
  142. package/src/sap/ui/fl/initial/_internal/connectors/BackendConnector.js +1 -1
  143. package/src/sap/ui/fl/initial/_internal/connectors/BtpServiceConnector.js +15 -1
  144. package/src/sap/ui/fl/initial/_internal/connectors/KeyUserConnector.js +1 -1
  145. package/src/sap/ui/fl/initial/_internal/connectors/LrepConnector.js +1 -1
  146. package/src/sap/ui/fl/initial/_internal/connectors/NeoLrepConnector.js +1 -1
  147. package/src/sap/ui/fl/initial/_internal/connectors/PersonalizationConnector.js +1 -1
  148. package/src/sap/ui/fl/initial/_internal/connectors/StaticFileConnector.js +1 -1
  149. package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +2 -2
  150. package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +2 -2
  151. package/src/sap/ui/fl/initial/api/InitialFlexAPI.js +57 -0
  152. package/src/sap/ui/fl/initial/api/Version.js +1 -1
  153. package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +2 -2
  154. package/src/sap/ui/fl/interfaces/Delegate.js +2 -2
  155. package/src/sap/ui/fl/library.js +44 -44
  156. package/src/sap/ui/fl/library.support.js +3 -3
  157. package/src/sap/ui/fl/messagebundle.properties +4 -1
  158. package/src/sap/ui/fl/messagebundle_ar.properties +2 -0
  159. package/src/sap/ui/fl/messagebundle_bg.properties +2 -0
  160. package/src/sap/ui/fl/messagebundle_ca.properties +2 -0
  161. package/src/sap/ui/fl/messagebundle_cnr.properties +2 -0
  162. package/src/sap/ui/fl/messagebundle_cs.properties +2 -0
  163. package/src/sap/ui/fl/messagebundle_cy.properties +2 -0
  164. package/src/sap/ui/fl/messagebundle_da.properties +2 -0
  165. package/src/sap/ui/fl/messagebundle_de.properties +2 -0
  166. package/src/sap/ui/fl/messagebundle_el.properties +2 -0
  167. package/src/sap/ui/fl/messagebundle_en.properties +2 -0
  168. package/src/sap/ui/fl/messagebundle_en_GB.properties +2 -0
  169. package/src/sap/ui/fl/messagebundle_en_US_saprigi.properties +2 -0
  170. package/src/sap/ui/fl/messagebundle_en_US_saptrc.properties +45 -45
  171. package/src/sap/ui/fl/messagebundle_es.properties +2 -0
  172. package/src/sap/ui/fl/messagebundle_es_MX.properties +2 -0
  173. package/src/sap/ui/fl/messagebundle_et.properties +2 -0
  174. package/src/sap/ui/fl/messagebundle_fi.properties +2 -0
  175. package/src/sap/ui/fl/messagebundle_fr.properties +2 -0
  176. package/src/sap/ui/fl/messagebundle_fr_CA.properties +2 -0
  177. package/src/sap/ui/fl/messagebundle_hi.properties +2 -0
  178. package/src/sap/ui/fl/messagebundle_hr.properties +2 -0
  179. package/src/sap/ui/fl/messagebundle_hu.properties +2 -0
  180. package/src/sap/ui/fl/messagebundle_id.properties +2 -0
  181. package/src/sap/ui/fl/messagebundle_it.properties +2 -0
  182. package/src/sap/ui/fl/messagebundle_iw.properties +2 -0
  183. package/src/sap/ui/fl/messagebundle_ja.properties +2 -0
  184. package/src/sap/ui/fl/messagebundle_kk.properties +2 -0
  185. package/src/sap/ui/fl/messagebundle_ko.properties +2 -0
  186. package/src/sap/ui/fl/messagebundle_lt.properties +2 -0
  187. package/src/sap/ui/fl/messagebundle_lv.properties +2 -0
  188. package/src/sap/ui/fl/messagebundle_mk.properties +2 -0
  189. package/src/sap/ui/fl/messagebundle_ms.properties +2 -0
  190. package/src/sap/ui/fl/messagebundle_nl.properties +2 -0
  191. package/src/sap/ui/fl/messagebundle_no.properties +2 -0
  192. package/src/sap/ui/fl/messagebundle_pl.properties +2 -0
  193. package/src/sap/ui/fl/messagebundle_pt.properties +2 -0
  194. package/src/sap/ui/fl/messagebundle_pt_PT.properties +2 -0
  195. package/src/sap/ui/fl/messagebundle_ro.properties +2 -0
  196. package/src/sap/ui/fl/messagebundle_ru.properties +2 -0
  197. package/src/sap/ui/fl/messagebundle_sh.properties +2 -0
  198. package/src/sap/ui/fl/messagebundle_sk.properties +2 -0
  199. package/src/sap/ui/fl/messagebundle_sl.properties +2 -0
  200. package/src/sap/ui/fl/messagebundle_sr.properties +2 -0
  201. package/src/sap/ui/fl/messagebundle_sv.properties +2 -0
  202. package/src/sap/ui/fl/messagebundle_th.properties +2 -0
  203. package/src/sap/ui/fl/messagebundle_tr.properties +2 -0
  204. package/src/sap/ui/fl/messagebundle_uk.properties +2 -0
  205. package/src/sap/ui/fl/messagebundle_vi.properties +2 -0
  206. package/src/sap/ui/fl/messagebundle_zh_CN.properties +2 -0
  207. package/src/sap/ui/fl/messagebundle_zh_TW.properties +2 -0
  208. package/src/sap/ui/fl/registry/Settings.js +1 -1
  209. package/src/sap/ui/fl/requireAsync.js +1 -1
  210. package/src/sap/ui/fl/support/_internal/extractChangeDependencies.js +1 -1
  211. package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +2 -2
  212. package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +2 -2
  213. package/src/sap/ui/fl/support/_internal/getFlexObjectInfos.js +2 -2
  214. package/src/sap/ui/fl/support/_internal/getFlexSettings.js +2 -2
  215. package/src/sap/ui/fl/support/api/SupportAPI.js +2 -2
  216. package/src/sap/ui/fl/support/apps/contentbrowser/Component.js +1 -1
  217. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +2 -2
  218. package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +2 -2
  219. package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +2 -2
  220. package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +2 -2
  221. package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +2 -2
  222. package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +2 -2
  223. package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +2 -2
  224. package/src/sap/ui/fl/themes/base/library.source.less +1 -1
  225. package/src/sap/ui/fl/themes/sap_hcb/library.source.less +1 -1
  226. package/src/sap/ui/fl/transport/TransportDialog.js +1 -1
  227. package/src/sap/ui/fl/transport/TransportSelection.js +2 -2
  228. package/src/sap/ui/fl/util/DescriptorChangeCheck.js +3 -3
  229. package/src/sap/ui/fl/util/IFrame.flexibility.js +1 -1
  230. package/src/sap/ui/fl/util/IFrame.js +2 -2
  231. package/src/sap/ui/fl/util/IFrameRenderer.js +1 -1
  232. package/src/sap/ui/fl/util/ManagedObjectModel.js +3 -3
  233. package/src/sap/ui/fl/util/changePropertyValueByPath.js +1 -1
  234. package/src/sap/ui/fl/util/getContainerUserInfo.js +1 -1
  235. package/src/sap/ui/fl/util/resolveBinding.js +2 -2
  236. package/src/sap/ui/fl/variants/VariantManagement.js +1 -1
  237. package/src/sap/ui/fl/variants/VariantManager.js +604 -0
  238. package/src/sap/ui/fl/variants/VariantModel.js +27 -557
  239. package/src/sap/ui/fl/variants/context/Component.js +1 -1
  240. package/src/sap/ui/fl/variants/context/controller/ContextVisibility.controller.js +1 -1
  241. package/src/sap/ui/fl/variants/context/i18n/i18n_en_US_saptrc.properties +12 -12
  242. package/src/sap/ui/fl/write/_internal/SaveAs.js +1 -1
  243. package/src/sap/ui/fl/write/_internal/Storage.js +8 -3
  244. package/src/sap/ui/fl/write/_internal/Versions.js +2 -2
  245. package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +2 -2
  246. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +2 -2
  247. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +2 -2
  248. package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +9 -3
  249. package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +69 -48
  250. package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +2 -2
  251. package/src/sap/ui/fl/write/_internal/condenser/Utils.js +1 -1
  252. package/src/sap/ui/fl/write/_internal/condenser/classifications/Create.js +1 -1
  253. package/src/sap/ui/fl/write/_internal/condenser/classifications/Destroy.js +1 -1
  254. package/src/sap/ui/fl/write/_internal/condenser/classifications/LastOneWins.js +1 -1
  255. package/src/sap/ui/fl/write/_internal/condenser/classifications/Move.js +1 -1
  256. package/src/sap/ui/fl/write/_internal/condenser/classifications/Reverse.js +1 -1
  257. package/src/sap/ui/fl/write/_internal/condenser/classifications/Update.js +1 -1
  258. package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +2 -2
  259. package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +32 -2
  260. package/src/sap/ui/fl/write/_internal/connectors/JsObjectConnector.js +1 -1
  261. package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +2 -2
  262. package/src/sap/ui/fl/write/_internal/connectors/LocalStorageConnector.js +1 -1
  263. package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +2 -2
  264. package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +2 -2
  265. package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +2 -2
  266. package/src/sap/ui/fl/write/_internal/connectors/ObjectStorageConnector.js +1 -1
  267. package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +2 -2
  268. package/src/sap/ui/fl/write/_internal/connectors/SessionStorageConnector.js +1 -1
  269. package/src/sap/ui/fl/write/_internal/connectors/Utils.js +2 -2
  270. package/src/sap/ui/fl/write/_internal/controlVariants/ControlVariantWriteUtils.js +1 -1
  271. package/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js +1 -1
  272. package/src/sap/ui/fl/write/_internal/delegates/ODataV4ReadDelegate.js +1 -1
  273. package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +2 -2
  274. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +2 -2
  275. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +2 -2
  276. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +2 -2
  277. package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +2 -2
  278. package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +2 -2
  279. package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +2 -2
  280. package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +2 -2
  281. package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +2 -2
  282. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +2 -2
  283. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +2 -2
  284. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/getEditorConfig.js +1 -1
  285. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +2 -2
  286. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +2 -2
  287. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +2 -2
  288. package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/validators/IsRequired.js +1 -1
  289. package/src/sap/ui/fl/write/_internal/flexState/FlexObjectManager.js +2 -2
  290. package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +2 -2
  291. package/src/sap/ui/fl/write/_internal/flexState/changes/UIChangeManager.js +2 -2
  292. package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +9 -12
  293. package/src/sap/ui/fl/write/_internal/transport/TransportDialog.js +1 -1
  294. package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +2 -2
  295. package/src/sap/ui/fl/write/_internal/transport/Transports.js +2 -2
  296. package/src/sap/ui/fl/write/api/Adaptations.js +1 -1
  297. package/src/sap/ui/fl/write/api/AppVariantWriteAPI.js +1 -1
  298. package/src/sap/ui/fl/write/api/ChangesWriteAPI.js +33 -10
  299. package/src/sap/ui/fl/write/api/ContextBasedAdaptationsAPI.js +40 -27
  300. package/src/sap/ui/fl/write/api/ContextSharingAPI.js +1 -1
  301. package/src/sap/ui/fl/write/api/ControlPersonalizationWriteAPI.js +14 -2
  302. package/src/sap/ui/fl/write/api/FeaturesAPI.js +1 -1
  303. package/src/sap/ui/fl/write/api/FieldExtensibility.js +2 -2
  304. package/src/sap/ui/fl/write/api/LocalResetAPI.js +1 -1
  305. package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +43 -5
  306. package/src/sap/ui/fl/write/api/ReloadInfoAPI.js +1 -1
  307. package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +1 -1
  308. package/src/sap/ui/fl/write/api/SmartBusinessWriteAPI.js +1 -1
  309. package/src/sap/ui/fl/write/api/SmartVariantManagementWriteAPI.js +1 -1
  310. package/src/sap/ui/fl/write/api/TranslationAPI.js +1 -1
  311. package/src/sap/ui/fl/write/api/UI2PersonalizationWriteAPI.js +1 -1
  312. package/src/sap/ui/fl/write/api/VersionsAPI.js +1 -1
  313. package/src/sap/ui/fl/write/api/connectors/FileListBaseConnector.js +1 -1
  314. package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +1 -1
  315. package/src/sap/ui/fl/write/connectors/BaseConnector.js +1 -1
  316. package/ui5.yaml +2 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -11,14 +11,11 @@ sap.ui.define([
11
11
  "sap/base/util/each",
12
12
  "sap/base/util/isEmptyObject",
13
13
  "sap/base/util/merge",
14
- "sap/base/util/ObjectPath",
15
14
  "sap/base/Log",
16
15
  "sap/ui/core/util/reflection/JsControlTreeModifier",
17
16
  "sap/ui/core/BusyIndicator",
18
17
  "sap/ui/core/Element",
19
18
  "sap/ui/core/Lib",
20
- "sap/ui/fl/apply/_internal/changes/Applier",
21
- "sap/ui/fl/apply/_internal/changes/Reverter",
22
19
  "sap/ui/fl/apply/_internal/controlVariants/URLHandler",
23
20
  "sap/ui/fl/apply/_internal/controlVariants/Utils",
24
21
  "sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory",
@@ -29,10 +26,6 @@ sap.ui.define([
29
26
  "sap/ui/fl/apply/_internal/flexState/FlexObjectState",
30
27
  "sap/ui/fl/apply/_internal/flexState/ManifestUtils",
31
28
  "sap/ui/fl/registry/Settings",
32
- "sap/ui/fl/write/_internal/controlVariants/ControlVariantWriteUtils",
33
- "sap/ui/fl/write/_internal/flexState/changes/UIChangeManager",
34
- "sap/ui/fl/write/_internal/flexState/FlexObjectManager",
35
- "sap/ui/fl/write/api/ContextBasedAdaptationsAPI",
36
29
  "sap/ui/fl/Layer",
37
30
  "sap/ui/fl/LayerUtils",
38
31
  "sap/ui/fl/Utils",
@@ -45,14 +38,11 @@ sap.ui.define([
45
38
  each,
46
39
  isEmptyObject,
47
40
  merge,
48
- ObjectPath,
49
41
  Log,
50
42
  JsControlTreeModifier,
51
43
  BusyIndicator,
52
44
  Element,
53
45
  Lib,
54
- Applier,
55
- Reverter,
56
46
  URLHandler,
57
47
  VariantUtil,
58
48
  FlexObjectFactory,
@@ -63,10 +53,6 @@ sap.ui.define([
63
53
  FlexObjectState,
64
54
  ManifestUtils,
65
55
  Settings,
66
- ControlVariantWriteUtils,
67
- UIChangeManager,
68
- FlexObjectManager,
69
- ContextBasedAdaptationsAPI,
70
56
  Layer,
71
57
  LayerUtils,
72
58
  Utils,
@@ -77,102 +63,6 @@ sap.ui.define([
77
63
 
78
64
  var _mUShellServices = {};
79
65
 
80
- /**
81
- * Handler for "select" event fired from a variant management control.
82
- * Adds to the variant switch promise chain, resolving when new variant (if applicable) has been switched and all source variant dirty changes have been removed.
83
- * @param {object} oEvent - Event object
84
- * @param {object} mPropertyBag - Object with properties
85
- * @param {string} mPropertyBag.vmReference - Variant management reference
86
- * @param {sap.ui.fl.variants.VariantModel} mPropertyBag.model - Variant model instance
87
- * @returns {Promise<undefined>} Resolves with undefined
88
- *
89
- * @private
90
- */
91
- function variantSelectHandler(oEvent, mPropertyBag) {
92
- return executeAfterSwitch(function(mParameters, mVariantProperties) {
93
- var oModel = mVariantProperties.model;
94
- var sVMReference = mVariantProperties.vmReference;
95
- var bVariantSwitch = false;
96
- var bOldVariantWasModified = ObjectPath.get([sVMReference, "modified"], oModel.oData);
97
- var sTargetVReference = mParameters.key;
98
- var sSourceVReference = mParameters.key;
99
- return Promise.resolve().then(function() {
100
- // for standard variants 'currentVariant' property is not set
101
- // e.g. variants generated through _ensureStandardVariantExists()
102
- if (
103
- ObjectPath.get([sVMReference, "currentVariant"], oModel.oData)
104
- && oModel.oData[sVMReference].currentVariant !== sTargetVReference
105
- ) {
106
- sSourceVReference = oModel.oData[sVMReference].currentVariant;
107
- bVariantSwitch = true;
108
- return oModel.updateCurrentVariant({
109
- variantManagementReference: sVMReference,
110
- newVariantReference: sTargetVReference,
111
- appComponent: oModel.oAppComponent,
112
- internallyCalled: true
113
- });
114
- }
115
- })
116
- .then(function() {
117
- if (bOldVariantWasModified) {
118
- var aControlChanges = VariantManagementState.getControlChangesForVariant({
119
- reference: oModel.sFlexReference,
120
- vmReference: sVMReference,
121
- vReference: sSourceVReference
122
- });
123
- return eraseDirtyChanges({
124
- changes: aControlChanges,
125
- vmReference: sVMReference,
126
- vReference: sSourceVReference,
127
- revert: !bVariantSwitch,
128
- model: oModel
129
- });
130
- }
131
- return Promise.resolve();
132
- })
133
- .then(function() {
134
- // the variant switch already calls the listeners
135
- if (!bVariantSwitch) {
136
- oModel.callVariantSwitchListeners(sVMReference, oModel.oData[sVMReference].currentVariant);
137
- }
138
- });
139
- }.bind(null, oEvent.getParameters(), mPropertyBag), mPropertyBag.model);
140
- }
141
-
142
- /**
143
- * Removes passed control changes which are in DIRTY state from the variant state and flex controller.
144
- * @param {object} mPropertyBag - Object with properties
145
- * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} mPropertyBag.changes - Array of control changes
146
- * @param {string} mPropertyBag.vmReference - Variant management reference
147
- * @param {string} mPropertyBag.vReference - Variant reference to remove dirty changes from
148
- * @param {sap.ui.fl.variants.VariantModel} mPropertyBag.model - Variant model instance
149
- * @param {boolean} [mPropertyBag.revert] - Revert change from control
150
- *
151
- * @returns {Promise} Resolves when changes have been erased
152
- */
153
- function eraseDirtyChanges(mPropertyBag) {
154
- var aVariantDirtyChanges = mPropertyBag.model._getDirtyChangesFromVariantChanges(mPropertyBag.changes);
155
- aVariantDirtyChanges = aVariantDirtyChanges.reverse();
156
-
157
- return Promise.resolve()
158
- .then(function() {
159
- if (mPropertyBag.revert) {
160
- return Reverter.revertMultipleChanges(aVariantDirtyChanges, {
161
- appComponent: mPropertyBag.model.oAppComponent,
162
- modifier: JsControlTreeModifier,
163
- reference: mPropertyBag.model.sFlexReference
164
- });
165
- }
166
- return undefined;
167
- })
168
- .then(function() {
169
- FlexObjectManager.deleteFlexObjects({
170
- reference: mPropertyBag.model.sFlexReference,
171
- flexObjects: aVariantDirtyChanges
172
- });
173
- });
174
- }
175
-
176
66
  /**
177
67
  * Adds the passed function to the variant switch promise and returns the whole promise chain.
178
68
  *
@@ -288,16 +178,6 @@ sap.ui.define([
288
178
  }));
289
179
  }
290
180
 
291
- function getAdaptationId(sLayer, oControl, sReference) {
292
- var mContextBasedAdaptationBag = {
293
- layer: sLayer,
294
- control: oControl,
295
- reference: sReference
296
- };
297
- var bHasAdaptationsModel = ContextBasedAdaptationsAPI.hasAdaptationsModel(mContextBasedAdaptationBag);
298
- return bHasAdaptationsModel && ContextBasedAdaptationsAPI.getDisplayedAdaptationId(mContextBasedAdaptationBag);
299
- }
300
-
301
181
  function waitForInitialVariantChanges(mPropertyBag) {
302
182
  const aCurrentVariantChanges = VariantManagementState.getInitialUIChanges({
303
183
  vmReference: mPropertyBag.vmReference,
@@ -319,7 +199,7 @@ sap.ui.define([
319
199
  * @class Variant model implementation for JSON format.
320
200
  * @extends sap.ui.model.json.JSONModel
321
201
  * @author SAP SE
322
- * @version 1.131.1
202
+ * @version 1.132.1
323
203
  * @param {object} oData - Either the URL where to load the JSON from or a JS object
324
204
  * @param {object} mPropertyBag - Map of properties required for the constructor
325
205
  * @param {sap.ui.fl.FlexController} mPropertyBag.flexController - <code>FlexController</code> instance for the component which uses the variant model
@@ -590,66 +470,6 @@ sap.ui.define([
590
470
  }
591
471
  };
592
472
 
593
- /**
594
- * Erases dirty changes on a given variant and returns the dirty changes.
595
- *
596
- * @param {string} sVariantManagementReference - Variant management reference
597
- * @param {string} sVariantReference - Variant reference to remove dirty changes from
598
- * @returns {Promise} Promise resolving to dirty changes which will be removed
599
- */
600
- VariantModel.prototype.eraseDirtyChangesOnVariant = function(sVariantManagementReference, sVariantReference) {
601
- var aSourceVariantChanges = VariantManagementState.getControlChangesForVariant({
602
- reference: this.sFlexReference,
603
- vmReference: sVariantManagementReference,
604
- vReference: sVariantReference
605
- });
606
-
607
- var aSourceVariantDirtyChanges = this._getDirtyChangesFromVariantChanges(aSourceVariantChanges);
608
-
609
- return eraseDirtyChanges({
610
- changes: aSourceVariantChanges,
611
- vmReference: sVariantManagementReference,
612
- vReference: sVariantReference,
613
- model: this,
614
- revert: true
615
- })
616
- .then(function() {
617
- return aSourceVariantDirtyChanges;
618
- });
619
- };
620
-
621
- /**
622
- * Adds and applies the given changes.
623
- *
624
- * @param {Array<sap.ui.fl.apply._internal.flexObjects.FlexObject>} aChanges Changes to be applied
625
- * @returns {Promise} Promise resolving when all changes are applied
626
- */
627
- VariantModel.prototype.addAndApplyChangesOnVariant = function(aChanges) {
628
- const aAddedChanges = UIChangeManager.addDirtyChanges(this.sFlexReference, aChanges, this.oAppComponent);
629
- return aAddedChanges.reduce(function(oPreviousPromise, oChange) {
630
- return oPreviousPromise.then(function() {
631
- const oControl = Element.getElementById(
632
- JsControlTreeModifier.getControlIdBySelector(oChange.getSelector(), this.oAppComponent)
633
- );
634
- return Applier.applyChangeOnControl(oChange, oControl, {
635
- modifier: JsControlTreeModifier,
636
- appComponent: this.oAppComponent,
637
- view: Utils.getViewForControl(oControl)
638
- })
639
- .then((oReturn) => {
640
- if (!oReturn.success) {
641
- var oException = oReturn.error || new Error("The change could not be applied.");
642
- FlexObjectManager.deleteFlexObjects({
643
- reference: this.sFlexReference,
644
- flexObjects: [oChange]
645
- });
646
- throw oException;
647
- }
648
- });
649
- }.bind(this));
650
- }.bind(this), Promise.resolve());
651
- };
652
-
653
473
  VariantModel.prototype._getVariantTitleCount = function(sNewText, sVariantManagementReference) {
654
474
  var oData = this.getData();
655
475
  return oData[sVariantManagementReference].variants.reduce(function(iCount, oVariant) {
@@ -738,90 +558,6 @@ sap.ui.define([
738
558
  return oDuplicateVariant;
739
559
  };
740
560
 
741
- /**
742
- * Copies a variant.
743
- * @param {object} mPropertyBag - Map of properties
744
- * @param {string} mPropertyBag.variantManagementReference - Variant management reference
745
- * @param {string} mPropertyBag.title - Title for the variant
746
- * @param {sap.ui.core.Component} mPropertyBag.appComponent - Model's app component
747
- * @param {string} mPropertyBag.layer - Layer on which the new variant should be created
748
- * @param {string} mPropertyBag.newVariantReference - <code>variantReference</code> for the new variant
749
- * @param {string} mPropertyBag.sourceVariantReference - <code>variantReference</code> of the source variant
750
- * @param {string} mPropertyBag.generator - Information about who created the change
751
- * @param {object} mPropertyBag.contexts - Context structure containing roles and countries
752
- * @returns {Promise} Promise resolving to dirty changes created during variant copy
753
- * @private
754
- */
755
- VariantModel.prototype.copyVariant = function(mPropertyBag) {
756
- var oDuplicateVariantData = this._duplicateVariant(mPropertyBag);
757
- oDuplicateVariantData.generator = mPropertyBag.generator;
758
-
759
- this.oData[mPropertyBag.variantManagementReference].variants.push({
760
- key: oDuplicateVariantData.instance.getId(),
761
- rename: true,
762
- change: true,
763
- remove: true,
764
- sharing: mPropertyBag.layer === Layer.USER
765
- ? this.sharing.PRIVATE
766
- : this.sharing.PUBLIC
767
- });
768
-
769
- var aChanges = [];
770
-
771
- // when created a new public variant other users do not see the new public variant
772
- if (mPropertyBag.layer === Layer.PUBLIC) {
773
- oDuplicateVariantData.instance.setFavorite(false);
774
- var oChangeProperties = {
775
- selector: JsControlTreeModifier.getSelector(mPropertyBag.newVariantReference, mPropertyBag.appComponent),
776
- changeType: "setFavorite",
777
- fileType: "ctrl_variant_change",
778
- generator: mPropertyBag.generator,
779
- layer: Layer.USER,
780
- reference: this.sFlexReference,
781
- content: {favorite: true}
782
- };
783
- aChanges.push(FlexObjectFactory.createUIChange(oChangeProperties));
784
- }
785
-
786
- // sets copied variant and associated changes as dirty
787
- aChanges = FlexObjectManager.addDirtyFlexObjects(
788
- this.sFlexReference,
789
- aChanges
790
- .concat([oDuplicateVariantData.instance]
791
- .concat(oDuplicateVariantData.controlChanges)
792
- .concat(mPropertyBag.additionalVariantChanges))
793
- );
794
-
795
- return this.updateCurrentVariant({
796
- variantManagementReference: mPropertyBag.variantManagementReference,
797
- newVariantReference: oDuplicateVariantData.instance.getId(),
798
- appComponent: mPropertyBag.appComponent,
799
- internallyCalled: true,
800
- scenario: "saveAs"
801
- }).then(function() {
802
- return aChanges;
803
- });
804
- };
805
-
806
- VariantModel.prototype.removeVariant = function(mPropertyBag) {
807
- var aChangesToBeDeleted = FlexObjectState.getDirtyFlexObjects(this.sFlexReference)
808
- .filter(function(oChange) {
809
- return (oChange.getVariantReference && oChange.getVariantReference() === mPropertyBag.variant.getId()) ||
810
- oChange.getId() === mPropertyBag.variant.getId();
811
- });
812
-
813
- return this.updateCurrentVariant({
814
- variantManagementReference: mPropertyBag.variantManagementReference,
815
- newVariantReference: mPropertyBag.sourceVariantReference,
816
- appComponent: mPropertyBag.component
817
- }).then(function() {
818
- FlexObjectManager.deleteFlexObjects({
819
- reference: this.sFlexReference,
820
- flexObjects: aChangesToBeDeleted
821
- });
822
- }.bind(this));
823
- };
824
-
825
561
  VariantModel.prototype._collectModelChanges = function(sVariantManagementReference, sLayer, oEvent) {
826
562
  const oData = this.getData()[sVariantManagementReference];
827
563
  const aModelVariants = oData.variants;
@@ -922,113 +658,6 @@ sap.ui.define([
922
658
  };
923
659
  };
924
660
 
925
- /**
926
- * Opens the <i>Manage Views</i> dialog.
927
- * Returns a promise which resolves to changes made from the manage dialog, based on the parameters passed.
928
- * @param {sap.ui.fl.variants.VariantManagement} oVariantManagementControl - Variant management control
929
- * @param {string} sVariantManagementReference - Variant management reference
930
- * @param {string} sLayer - Current layer
931
- * @param {string} sClass - Style class assigned to the management dialog
932
- * @param {Promise<sap.ui.core.ComponentContainer>} oContextSharingComponentPromise - Promise resolving with the ComponentContainer
933
- * @returns {Promise<void>} Promise which resolves when "manage" event is fired from the variant management control
934
- * @private
935
- * @ui5-restricted
936
- */
937
- VariantModel.prototype.manageVariants = function(oVariantManagementControl, sVariantManagementReference, sLayer, sClass, oContextSharingComponentPromise) {
938
- // called from the ControlVariant plugin in Adaptation mode
939
- return new Promise(function(resolve) {
940
- oVariantManagementControl.attachEventOnce("manage", {
941
- resolve,
942
- variantManagementReference: sVariantManagementReference,
943
- layer: sLayer
944
- }, this.fnManageClickRta, this);
945
- oVariantManagementControl.openManagementDialog(true, sClass, oContextSharingComponentPromise);
946
- }.bind(this));
947
- };
948
-
949
- /**
950
- * Sets the variant properties and creates a variant change
951
- * @param {string} sVariantManagementReference - Variant management reference
952
- * @param {object} mPropertyBag - Map of properties
953
- * @param {string} [mPropertyBag.adaptationId] - Adaptation ID to set which overrules the currently display adaptation
954
- * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject} Created Change object
955
- */
956
- VariantModel.prototype.createVariantChange = function(sVariantManagementReference, mPropertyBag) {
957
- var mAdditionalChangeContent = this.setVariantProperties(sVariantManagementReference, mPropertyBag);
958
-
959
- var mNewChangeData = {
960
- changeType: mPropertyBag.changeType,
961
- layer: mPropertyBag.layer,
962
- generator: mPropertyBag.generator,
963
- reference: this.sFlexReference
964
- };
965
-
966
- if (mPropertyBag.adaptationId !== undefined) {
967
- mNewChangeData.adaptationId = mPropertyBag.adaptationId;
968
- } else {
969
- mNewChangeData.adaptationId = getAdaptationId(mPropertyBag.layer, mPropertyBag.appComponent, this.sFlexReference);
970
- }
971
-
972
- if (mPropertyBag.changeType === "setDefault") {
973
- mNewChangeData.fileType = "ctrl_variant_management_change";
974
- mNewChangeData.selector = JsControlTreeModifier.getSelector(sVariantManagementReference, mPropertyBag.appComponent);
975
- } else {
976
- mNewChangeData.fileType = "ctrl_variant_change";
977
- mNewChangeData.selector = JsControlTreeModifier.getSelector(mPropertyBag.variantReference, mPropertyBag.appComponent);
978
- }
979
-
980
- var oChange = FlexObjectFactory.createUIChange(mNewChangeData);
981
- // update change with additional content
982
- oChange.setContent(mAdditionalChangeContent);
983
- if (mPropertyBag.changeType === "setTitle") {
984
- oChange.setText("title", mPropertyBag.title, "XFLD");
985
- }
986
-
987
- return oChange;
988
- };
989
-
990
- /**
991
- * Sets the variant properties and adds a variant change
992
- * @param {string} sVariantManagementReference - Variant management reference
993
- * @param {object} mPropertyBag - Map of properties
994
- * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject} Created Change object
995
- */
996
- VariantModel.prototype.addVariantChange = function(sVariantManagementReference, mPropertyBag) {
997
- var oChange = this.createVariantChange(sVariantManagementReference, mPropertyBag);
998
- FlexObjectManager.addDirtyFlexObjects(this.sFlexReference, [oChange]);
999
-
1000
- return oChange;
1001
- };
1002
-
1003
- /**
1004
- * Sets the variant properties and adds variant changes
1005
- * @param {string} sVariantManagementReference - Variant management reference
1006
- * @param {object[]} aChangePropertyMaps - Array of property maps optionally including the adaptation ID
1007
- * @returns {sap.ui.fl.apply._internal.flexObjects.FlexObject[]} Created Change objects
1008
- */
1009
- VariantModel.prototype.addVariantChanges = function(sVariantManagementReference, aChangePropertyMaps) {
1010
- var aChanges = aChangePropertyMaps.map(function(mProperties) {
1011
- return this.createVariantChange(sVariantManagementReference, mProperties);
1012
- }.bind(this));
1013
- FlexObjectManager.addDirtyFlexObjects(this.sFlexReference, aChanges);
1014
-
1015
- return aChanges;
1016
- };
1017
-
1018
- /**
1019
- * Sets the variant properties and deletes a variant change
1020
- * @param {string} sVariantManagementReference - Variant management reference
1021
- * @param {object} mPropertyBag - Property bag
1022
- * @param {sap.ui.fl.apply._internal.flexObjects.FlexObject} oChange - Variant change to be deleted
1023
- */
1024
- VariantModel.prototype.deleteVariantChange = function(sVariantManagementReference, mPropertyBag, oChange) {
1025
- this.setVariantProperties(sVariantManagementReference, mPropertyBag);
1026
- FlexObjectManager.deleteFlexObjects({
1027
- reference: this.sFlexReference,
1028
- flexObjects: [oChange]
1029
- });
1030
- };
1031
-
1032
661
  /**
1033
662
  * Sets the passed properties on a variant for the passed variant management reference and
1034
663
  * returns the content for change creation
@@ -1213,6 +842,7 @@ sap.ui.define([
1213
842
  }
1214
843
  };
1215
844
 
845
+ // TODO refactor to use standard functions, not functions bound to the model instance that need to be initialized
1216
846
  VariantModel.prototype._initializeManageVariantsEvents = function() {
1217
847
  this.fnManageClickRta = function(oEvent, oData) {
1218
848
  const oModelChanges = this._collectModelChanges(oData.variantManagementReference, oData.layer, oEvent);
@@ -1220,189 +850,27 @@ sap.ui.define([
1220
850
  };
1221
851
 
1222
852
  this.fnManageClick = function(oEvent, oData) {
1223
- (async () => {
1224
- const sVMReference = oData.variantManagementReference;
1225
- if (!this.oFlexController || !this.getData()) {
1226
- return;
1227
- }
1228
- const {
1229
- changes: aConfigurationChangesContent,
1230
- variantsToBeDeleted: aVariantsToBeDeleted
1231
- } = this._collectModelChanges(sVMReference, Layer.USER, oEvent);
1232
-
1233
- if (aConfigurationChangesContent.some((oChange) => {
1234
- return oChange.visible === false
1235
- && oChange.variantReference === this.getCurrentVariantReference(sVMReference);
1236
- })) {
1237
- await this.updateCurrentVariant({
1238
- variantManagementReference: sVMReference,
1239
- newVariantReference: sVMReference
1240
- });
1241
- }
1242
-
1243
- aConfigurationChangesContent.forEach(function(oChangeProperties) {
1244
- oChangeProperties.appComponent = this.oAppComponent;
1245
- }.bind(this));
1246
-
1247
- const aNewVariantChanges = this.addVariantChanges(sVMReference, aConfigurationChangesContent);
1248
- const aVariantDeletionChanges = aVariantsToBeDeleted
1249
- .map((sVariantKey) => {
1250
- const oVariant = VariantManagementState.getVariant({
1251
- reference: this.sFlexReference,
1252
- vmReference: sVMReference,
1253
- vReference: sVariantKey
1254
- });
1255
- if (oVariant.layer === Layer.USER) {
1256
- return ControlVariantWriteUtils.deleteVariant(this.sFlexReference, sVMReference, sVariantKey);
1257
- }
1258
- return [];
1259
- })
1260
- .flat();
1261
- // Save all changes unless they were just added and then removed immediately
1262
- // or are deleted and still dirty and were thus directly removed from the state
1263
- const aChanges = [
1264
- ..._difference(aNewVariantChanges, aVariantDeletionChanges),
1265
- ...aVariantDeletionChanges.filter((oChange) => oChange.getState() !== States.LifecycleState.NEW)
1266
- ];
1267
- // Always pass the pre-defined changes here to avoid that UI changes that are part of the FlexState
1268
- // are also persisted during variant manage save
1269
- this.oChangePersistence.saveDirtyChanges(this.oAppComponent, false, aChanges);
1270
- })();
853
+ sap.ui.require(["sap/ui/fl/variants/VariantManager"], function(VariantManager) {
854
+ VariantManager.handleManageEvent(oEvent, oData, this);
855
+ }.bind(this));
1271
856
  };
1272
857
  };
1273
858
 
1274
- function handleDirtyChanges(oFlexController, aCopiedVariantDirtyChanges, sVariantManagementReference, oAppComponent) {
1275
- if (!this._bDesignTimeMode) {
1276
- return oFlexController.saveSequenceOfDirtyChanges(aCopiedVariantDirtyChanges, oAppComponent)
1277
- .then(function(oResponse) {
1278
- if (oResponse) {
1279
- const oVariantFlexObject = oResponse.response.find((oFlexObject) => oFlexObject.fileType === "ctrl_variant");
1280
- const oAffectedVariant = this.oData[sVariantManagementReference].variants
1281
- .find((oVariant) => oVariant.key === oVariantFlexObject.fileName);
1282
- const oSupportInformation = oAffectedVariant.instance.getSupportInformation();
1283
- oSupportInformation.user = oVariantFlexObject.support.user;
1284
- oAffectedVariant.instance.setSupportInformation(oSupportInformation);
1285
- }
1286
-
1287
- // TODO: as soon as the invalidation is done automatically this can be removed
1288
- this.invalidateMap();
1289
- }.bind(this));
1290
- }
1291
- return Promise.resolve();
1292
- }
1293
-
1294
859
  VariantModel.prototype._handleSaveEvent = function(oEvent) {
1295
860
  if (!this._bDesignTimeMode) {
1296
861
  var oVariantManagementControl = oEvent.getSource();
1297
862
  var mParameters = oEvent.getParameters();
1298
- return this._handleSave(oVariantManagementControl, mParameters);
863
+ sap.ui.require(["sap/ui/fl/variants/VariantManager"], function(VariantManager) {
864
+ VariantManager.handleSaveEvent(oVariantManagementControl, mParameters, this);
865
+ }.bind(this));
1299
866
  }
1300
- return Promise.resolve();
1301
867
  };
1302
868
 
1303
- VariantModel.prototype._handleSave = function(oVariantManagementControl, mParameters) {
1304
- var oAppComponent = Utils.getAppComponentForControl(oVariantManagementControl);
1305
- var sVMReference = this.getLocalId(oVariantManagementControl.getId(), oAppComponent);
1306
- var aNewVariantDirtyChanges;
1307
-
1308
- return executeAfterSwitch(function(sVariantManagementReference, oAppComponent, mParameters) {
1309
- var sSourceVariantReference = this.getCurrentVariantReference(sVariantManagementReference);
1310
- var aSourceVariantChanges = VariantManagementState.getControlChangesForVariant({
1311
- reference: this.sFlexReference,
1312
- vmReference: sVariantManagementReference,
1313
- vReference: sSourceVariantReference
1314
- });
1315
-
1316
- if (mParameters.overwrite) {
1317
- // handle triggered "Save" button.
1318
- // Include special handling for PUBLIC variant which requires changing of all the dirty changes to PUBLIC layer before saving.
1319
- aNewVariantDirtyChanges = this._getDirtyChangesFromVariantChanges(aSourceVariantChanges);
1320
- if (this.getVariant(sSourceVariantReference, sVariantManagementReference).layer === Layer.PUBLIC) {
1321
- aNewVariantDirtyChanges.forEach((oChange) => oChange.setLayer(Layer.PUBLIC));
1322
- }
1323
- return this.oFlexController.saveSequenceOfDirtyChanges(
1324
- aNewVariantDirtyChanges,
1325
- oAppComponent
1326
- )
1327
- .then(function(oResponse) {
1328
- // TODO: as soon as the invalidation is done automatically this can be removed
1329
- this.invalidateMap();
1330
- return oResponse;
1331
- }.bind(this));
1332
- }
1333
-
1334
- var sVariantLayer = mParameters.layer || (mParameters.public ? Layer.PUBLIC : Layer.USER);
1335
- var sVariantChangeLayer = mParameters.layer || Layer.USER;
1336
-
1337
- // handle triggered "SaveAs" button
1338
- var sNewVariantReference = mParameters.newVariantReference || Utils.createDefaultFileName("flVariant");
1339
- var mPropertyBag = {
1340
- variantManagementReference: sVariantManagementReference,
1341
- appComponent: oAppComponent,
1342
- layer: sVariantLayer,
1343
- title: mParameters.name,
1344
- contexts: mParameters.contexts,
1345
- sourceVariantReference: sSourceVariantReference,
1346
- newVariantReference: sNewVariantReference,
1347
- generator: mParameters.generator,
1348
- additionalVariantChanges: [],
1349
- adaptationId: getAdaptationId(sVariantChangeLayer, oAppComponent, this.sFlexReference)
1350
- };
1351
-
1352
- var oBaseChangeProperties = {
1353
- content: {},
1354
- reference: this.sFlexReference,
1355
- generator: mPropertyBag.generator,
1356
- layer: sVariantChangeLayer,
1357
- adaptationId: mPropertyBag.adaptationId
1358
- };
1359
-
1360
- if (mParameters.def) {
1361
- var mPropertyBagSetDefault = merge({
1362
- changeType: "setDefault",
1363
- content: {
1364
- defaultVariant: sNewVariantReference
1365
- },
1366
- fileType: "ctrl_variant_management_change",
1367
- selector: JsControlTreeModifier.getSelector(sVariantManagementReference, mPropertyBag.appComponent)
1368
- }, oBaseChangeProperties);
1369
- mPropertyBag.additionalVariantChanges.push(FlexObjectFactory.createUIChange(mPropertyBagSetDefault));
1370
- }
1371
- if (mParameters.execute) {
1372
- var mPropertyBagSetExecute = merge({
1373
- changeType: "setExecuteOnSelect",
1374
- content: {
1375
- executeOnSelect: true
1376
- },
1377
- fileType: "ctrl_variant_change",
1378
- selector: JsControlTreeModifier.getSelector(mPropertyBag.newVariantReference, mPropertyBag.appComponent)
1379
- }, oBaseChangeProperties);
1380
- mPropertyBag.additionalVariantChanges.push(FlexObjectFactory.createUIChange(mPropertyBagSetExecute));
1381
- }
1382
-
1383
- return this.copyVariant(mPropertyBag)
1384
- .then(function(aCopiedVariantDirtyChanges) {
1385
- aNewVariantDirtyChanges = aCopiedVariantDirtyChanges;
1386
- // unsaved changes on the source variant are removed before copied variant changes are saved
1387
- return eraseDirtyChanges({
1388
- changes: aSourceVariantChanges,
1389
- vmReference: sVariantManagementReference,
1390
- vReference: sSourceVariantReference,
1391
- model: this
1392
- })
1393
- .then(handleDirtyChanges.bind(
1394
- this,
1395
- this.oFlexController,
1396
- aNewVariantDirtyChanges,
1397
- sVariantManagementReference,
1398
- oAppComponent
1399
- ));
1400
- }.bind(this));
1401
- }.bind(this, sVMReference, oAppComponent, mParameters), this)
1402
- .then(function() {
1403
- return aNewVariantDirtyChanges;
869
+ function variantSelectHandler(oEvent, mPropertyBag) {
870
+ sap.ui.require(["sap/ui/fl/variants/VariantManager"], function(VariantManager) {
871
+ VariantManager.handleSelectVariant(oEvent, mPropertyBag);
1404
872
  });
1405
- };
873
+ }
1406
874
 
1407
875
  VariantModel.prototype.getLocalId = function(sId, oAppComponent) {
1408
876
  return JsControlTreeModifier.getSelector(sId, oAppComponent).id;
@@ -1438,24 +906,26 @@ sap.ui.define([
1438
906
 
1439
907
  function resolveTitleBindingsAndCreateVariantChanges(oVariantManagementControl, sVariantManagementReference) {
1440
908
  this.oData[sVariantManagementReference].variants.forEach(function(oVariant) {
1441
- // Find model and key from patterns like {i18n>TextKey} or {i18n>namespace.textkey} - only resource models are supported
1442
- var aMatches = oVariant.title && oVariant.title.match(/{(\w+)>(\w.+)}/);
909
+ // Find model and key from patterns like {i18n>TextKey} or {i18n>namespace.TextKey} - only resource models are supported
910
+ const aMatches = oVariant.title && oVariant.title.match(/{(\w+)>(\w.+)}/);
1443
911
  if (aMatches) {
1444
- var sModelName = aMatches[1];
1445
- var sKey = aMatches[2];
1446
- var oModel = oVariantManagementControl.getModel(sModelName);
912
+ const [, sModelName, sKey] = aMatches;
913
+ const oModel = oVariantManagementControl.getModel(sModelName);
1447
914
  if (oModel) {
1448
- var sResolvedTitle = oModel.getResourceBundle().getText(sKey);
1449
- var mChangeProperties = {
1450
- variantReference: oVariant.key,
915
+ const sResolvedTitle = oModel.getResourceBundle().getText(sKey);
916
+ const mChangeProperties = {
917
+ reference: this.sFlexReference,
1451
918
  changeType: "setTitle",
1452
- title: sResolvedTitle,
1453
919
  layer: oVariant.layer,
1454
- appComponent: this.oAppComponent
920
+ fileType: "ctrl_variant_change",
921
+ selector: JsControlTreeModifier.getSelector(oVariant.key, this.oAppComponent)
922
+
1455
923
  };
1456
- var oVariantChange = this.createVariantChange(sVariantManagementReference, mChangeProperties);
924
+ const oSetTitleChange = FlexObjectFactory.createUIChange(mChangeProperties);
925
+ oSetTitleChange.setText("title", sResolvedTitle, "XFLD");
926
+ oVariant.instance.setName(sResolvedTitle, true);
1457
927
  // The change cannot be added as a dirty change but must survive a state invalidation
1458
- VariantManagementState.addRuntimeSteadyObject(this.sFlexReference, this.oAppComponent.getId(), oVariantChange);
928
+ VariantManagementState.addRuntimeSteadyObject(this.sFlexReference, this.oAppComponent.getId(), oSetTitleChange);
1459
929
  } else {
1460
930
  // Wait for model to be assigned and try again
1461
931
  oVariantManagementControl.attachEventOnce(