@openui5/sap.ui.rta 1.143.1 → 1.145.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 (219) hide show
  1. package/.eslintrc.json +7 -1
  2. package/REUSE.toml +40 -16
  3. package/THIRDPARTY.txt +22 -1
  4. package/package.json +6 -6
  5. package/src/sap/ui/rta/.library +2 -2
  6. package/src/sap/ui/rta/Client.js +2 -2
  7. package/src/sap/ui/rta/RuntimeAuthoring.js +26 -13
  8. package/src/sap/ui/rta/Utils.js +27 -3
  9. package/src/sap/ui/rta/api/startAdaptation.js +1 -1
  10. package/src/sap/ui/rta/api/startKeyUserAdaptation.js +1 -1
  11. package/src/sap/ui/rta/appVariant/AppVariantDialog.js +1 -1
  12. package/src/sap/ui/rta/appVariant/AppVariantManager.js +3 -3
  13. package/src/sap/ui/rta/appVariant/AppVariantOverviewDialog.js +1 -1
  14. package/src/sap/ui/rta/appVariant/AppVariantUtils.js +1 -1
  15. package/src/sap/ui/rta/appVariant/Feature.js +7 -5
  16. package/src/sap/ui/rta/appVariant/S4HanaCloudBackend.js +7 -4
  17. package/src/sap/ui/rta/appVariant/Utils.js +3 -3
  18. package/src/sap/ui/rta/appVariant/manageApps/webapp/Component.js +1 -1
  19. package/src/sap/ui/rta/appVariant/manageApps/webapp/controller/ManageApps.controller.js +1 -1
  20. package/src/sap/ui/rta/appVariant/manageApps/webapp/index.js +1 -1
  21. package/src/sap/ui/rta/appVariant/manageApps/webapp/model/models.js +1 -1
  22. package/src/sap/ui/rta/command/AddIFrame.js +2 -2
  23. package/src/sap/ui/rta/command/AddProperty.js +2 -2
  24. package/src/sap/ui/rta/command/AddXML.js +2 -2
  25. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +2 -2
  26. package/src/sap/ui/rta/command/AnnotationCommand.js +2 -2
  27. package/src/sap/ui/rta/command/BaseCommand.js +2 -2
  28. package/src/sap/ui/rta/command/BindProperty.js +2 -2
  29. package/src/sap/ui/rta/command/Combine.js +2 -2
  30. package/src/sap/ui/rta/command/CommandFactory.js +2 -2
  31. package/src/sap/ui/rta/command/CompositeCommand.js +2 -2
  32. package/src/sap/ui/rta/command/ControlVariantConfigure.js +3 -2
  33. package/src/sap/ui/rta/command/ControlVariantSave.js +2 -2
  34. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +2 -2
  35. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +2 -2
  36. package/src/sap/ui/rta/command/ControlVariantSwitch.js +2 -2
  37. package/src/sap/ui/rta/command/CreateContainer.js +2 -2
  38. package/src/sap/ui/rta/command/CustomAdd.js +2 -2
  39. package/src/sap/ui/rta/command/ExtendControllerCommand.js +2 -2
  40. package/src/sap/ui/rta/command/FlexCommand.js +2 -2
  41. package/src/sap/ui/rta/command/LREPSerializer.js +2 -2
  42. package/src/sap/ui/rta/command/LocalReset.js +2 -2
  43. package/src/sap/ui/rta/command/ManifestCommand.js +2 -2
  44. package/src/sap/ui/rta/command/Move.js +2 -2
  45. package/src/sap/ui/rta/command/Property.js +2 -2
  46. package/src/sap/ui/rta/command/Remove.js +2 -2
  47. package/src/sap/ui/rta/command/Rename.js +2 -2
  48. package/src/sap/ui/rta/command/Resize.js +2 -2
  49. package/src/sap/ui/rta/command/Reveal.js +2 -2
  50. package/src/sap/ui/rta/command/Settings.js +2 -2
  51. package/src/sap/ui/rta/command/Split.js +2 -2
  52. package/src/sap/ui/rta/command/Stack.js +23 -18
  53. package/src/sap/ui/rta/command/compVariant/CompVariantContent.js +2 -2
  54. package/src/sap/ui/rta/command/compVariant/CompVariantSaveAs.js +2 -2
  55. package/src/sap/ui/rta/command/compVariant/CompVariantSwitch.js +2 -2
  56. package/src/sap/ui/rta/command/compVariant/CompVariantUpdate.js +2 -2
  57. package/src/sap/ui/rta/command/manifest/AddLibrary.js +2 -2
  58. package/src/sap/ui/rta/enablement/TestDelegate.js +1 -1
  59. package/src/sap/ui/rta/enablement/elementActionTest.js +92 -96
  60. package/src/sap/ui/rta/library.js +3 -3
  61. package/src/sap/ui/rta/messagebundle.properties +1 -1
  62. package/src/sap/ui/rta/messagebundle_ar.properties +1 -1
  63. package/src/sap/ui/rta/messagebundle_bg.properties +1 -1
  64. package/src/sap/ui/rta/messagebundle_ca.properties +1 -1
  65. package/src/sap/ui/rta/messagebundle_cnr.properties +1 -1
  66. package/src/sap/ui/rta/messagebundle_cs.properties +1 -1
  67. package/src/sap/ui/rta/messagebundle_cy.properties +1 -1
  68. package/src/sap/ui/rta/messagebundle_da.properties +1 -1
  69. package/src/sap/ui/rta/messagebundle_de.properties +1 -1
  70. package/src/sap/ui/rta/messagebundle_el.properties +1 -1
  71. package/src/sap/ui/rta/messagebundle_en.properties +1 -1
  72. package/src/sap/ui/rta/messagebundle_en_GB.properties +1 -1
  73. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +3 -3
  74. package/src/sap/ui/rta/messagebundle_es.properties +1 -1
  75. package/src/sap/ui/rta/messagebundle_es_MX.properties +1 -1
  76. package/src/sap/ui/rta/messagebundle_et.properties +1 -1
  77. package/src/sap/ui/rta/messagebundle_fi.properties +1 -1
  78. package/src/sap/ui/rta/messagebundle_fr.properties +1 -1
  79. package/src/sap/ui/rta/messagebundle_fr_CA.properties +2 -2
  80. package/src/sap/ui/rta/messagebundle_hi.properties +1 -1
  81. package/src/sap/ui/rta/messagebundle_hr.properties +1 -1
  82. package/src/sap/ui/rta/messagebundle_hu.properties +1 -1
  83. package/src/sap/ui/rta/messagebundle_id.properties +1 -1
  84. package/src/sap/ui/rta/messagebundle_it.properties +1 -1
  85. package/src/sap/ui/rta/messagebundle_iw.properties +1 -1
  86. package/src/sap/ui/rta/messagebundle_ja.properties +1 -1
  87. package/src/sap/ui/rta/messagebundle_kk.properties +1 -1
  88. package/src/sap/ui/rta/messagebundle_ko.properties +1 -1
  89. package/src/sap/ui/rta/messagebundle_lt.properties +1 -1
  90. package/src/sap/ui/rta/messagebundle_lv.properties +1 -1
  91. package/src/sap/ui/rta/messagebundle_mk.properties +1 -1
  92. package/src/sap/ui/rta/messagebundle_ms.properties +1 -1
  93. package/src/sap/ui/rta/messagebundle_nl.properties +1 -1
  94. package/src/sap/ui/rta/messagebundle_no.properties +1 -1
  95. package/src/sap/ui/rta/messagebundle_pl.properties +1 -1
  96. package/src/sap/ui/rta/messagebundle_pt.properties +1 -1
  97. package/src/sap/ui/rta/messagebundle_pt_PT.properties +1 -1
  98. package/src/sap/ui/rta/messagebundle_ro.properties +1 -1
  99. package/src/sap/ui/rta/messagebundle_ru.properties +1 -1
  100. package/src/sap/ui/rta/messagebundle_sh.properties +1 -1
  101. package/src/sap/ui/rta/messagebundle_sk.properties +1 -1
  102. package/src/sap/ui/rta/messagebundle_sl.properties +1 -1
  103. package/src/sap/ui/rta/messagebundle_sr.properties +1 -1
  104. package/src/sap/ui/rta/messagebundle_sv.properties +1 -1
  105. package/src/sap/ui/rta/messagebundle_th.properties +1 -1
  106. package/src/sap/ui/rta/messagebundle_tr.properties +1 -1
  107. package/src/sap/ui/rta/messagebundle_uk.properties +1 -1
  108. package/src/sap/ui/rta/messagebundle_vi.properties +1 -1
  109. package/src/sap/ui/rta/messagebundle_zh_CN.properties +1 -1
  110. package/src/sap/ui/rta/messagebundle_zh_TW.properties +1 -1
  111. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +5 -5
  112. package/src/sap/ui/rta/plugin/AddXMLPlugin.js +8 -6
  113. package/src/sap/ui/rta/plugin/BaseCreate.js +2 -2
  114. package/src/sap/ui/rta/plugin/Combine.js +2 -2
  115. package/src/sap/ui/rta/plugin/CompVariant.js +1 -1
  116. package/src/sap/ui/rta/plugin/ControlVariant.js +2 -3
  117. package/src/sap/ui/rta/plugin/CreateContainer.js +2 -2
  118. package/src/sap/ui/rta/plugin/CutPaste.js +2 -2
  119. package/src/sap/ui/rta/plugin/DragDrop.js +2 -2
  120. package/src/sap/ui/rta/plugin/ExtendControllerPlugin.js +13 -4
  121. package/src/sap/ui/rta/plugin/LocalReset.js +2 -2
  122. package/src/sap/ui/rta/plugin/Plugin.js +3 -3
  123. package/src/sap/ui/rta/plugin/RTAElementMover.js +2 -2
  124. package/src/sap/ui/rta/plugin/Remove.js +14 -12
  125. package/src/sap/ui/rta/plugin/Resize.js +2 -2
  126. package/src/sap/ui/rta/plugin/Selection.js +2 -2
  127. package/src/sap/ui/rta/plugin/Settings.js +2 -2
  128. package/src/sap/ui/rta/plugin/Split.js +2 -2
  129. package/src/sap/ui/rta/plugin/Stretch.js +2 -2
  130. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +2 -2
  131. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.fragment.xml +4 -20
  132. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +281 -31
  133. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsAnalyzer.js +41 -12
  134. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +5 -4
  135. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +2 -2
  136. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +2 -2
  137. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.fragment.xml +1 -1
  138. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.js +30 -5
  139. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialogController.js +10 -4
  140. package/src/sap/ui/rta/plugin/annotations/AnnotationPlugin.js +9 -7
  141. package/src/sap/ui/rta/plugin/annotations/AnnotationTypes.js +1 -1
  142. package/src/sap/ui/rta/plugin/annotations/DocumentedAnnotationChanges.js +14 -0
  143. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +15 -13
  144. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.fragment.xml +14 -10
  145. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +18 -2
  146. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +43 -19
  147. package/src/sap/ui/rta/plugin/iframe/urlCleaner.js +1 -1
  148. package/src/sap/ui/rta/plugin/rename/Rename.js +2 -2
  149. package/src/sap/ui/rta/plugin/rename/RenameDialog.js +2 -2
  150. package/src/sap/ui/rta/service/Action.js +2 -2
  151. package/src/sap/ui/rta/service/ControllerExtension.js +2 -2
  152. package/src/sap/ui/rta/service/Outline.js +15 -7
  153. package/src/sap/ui/rta/service/Property.js +2 -2
  154. package/src/sap/ui/rta/service/Receiver.js +1 -1
  155. package/src/sap/ui/rta/service/Selection.js +2 -2
  156. package/src/sap/ui/rta/service/SupportTools.js +2 -2
  157. package/src/sap/ui/rta/service/index.js +1 -1
  158. package/src/sap/ui/rta/themes/base/AddIFrame.less +40 -70
  159. package/src/sap/ui/rta/themes/base/ChangeVisualization.less +23 -20
  160. package/src/sap/ui/rta/themes/base/ContextMenu.less +10 -13
  161. package/src/sap/ui/rta/themes/base/Dialogs.less +26 -40
  162. package/src/sap/ui/rta/themes/base/FieldRepository.less +10 -17
  163. package/src/sap/ui/rta/themes/base/FlexSupportExtension.less +15 -13
  164. package/src/sap/ui/rta/themes/base/MessageBox.less +5 -3
  165. package/src/sap/ui/rta/themes/base/Overlay.less +32 -25
  166. package/src/sap/ui/rta/themes/base/OverlayWithScrollbar.less +25 -11
  167. package/src/sap/ui/rta/themes/base/Toolbar.adaptation.less +53 -40
  168. package/src/sap/ui/rta/themes/base/Toolbar.base.less +14 -18
  169. package/src/sap/ui/rta/themes/base/Toolbar.fiori.less +6 -1
  170. package/src/sap/ui/rta/themes/base/Toolbar.standalone.less +7 -5
  171. package/src/sap/ui/rta/themes/base/WhatsNew.less +6 -5
  172. package/src/sap/ui/rta/themes/base/library.source.less +1 -1
  173. package/src/sap/ui/rta/themes/sap_hcb/library.source.less +1 -1
  174. package/src/sap/ui/rta/toolbar/Adaptation.fragment.xml +2 -2
  175. package/src/sap/ui/rta/toolbar/Adaptation.js +8 -5
  176. package/src/sap/ui/rta/toolbar/AdaptationRenderer.js +1 -1
  177. package/src/sap/ui/rta/toolbar/Base.js +2 -2
  178. package/src/sap/ui/rta/toolbar/BaseRenderer.js +1 -1
  179. package/src/sap/ui/rta/toolbar/Fiori.js +2 -2
  180. package/src/sap/ui/rta/toolbar/FioriLike.js +2 -2
  181. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +2 -2
  182. package/src/sap/ui/rta/toolbar/Standalone.js +2 -2
  183. package/src/sap/ui/rta/toolbar/contextBased/ManageAdaptations.js +14 -12
  184. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptation.js +2 -2
  185. package/src/sap/ui/rta/toolbar/translation/Translation.js +2 -2
  186. package/src/sap/ui/rta/toolbar/versioning/Versioning.js +2 -2
  187. package/src/sap/ui/rta/util/Animation.js +1 -1
  188. package/src/sap/ui/rta/util/BindingsExtractor.js +1 -1
  189. package/src/sap/ui/rta/util/PluginManager.js +2 -2
  190. package/src/sap/ui/rta/util/PopupManager.js +2 -2
  191. package/src/sap/ui/rta/util/ReloadManager.js +2 -2
  192. package/src/sap/ui/rta/util/ServiceEventBus.js +2 -2
  193. package/src/sap/ui/rta/util/ServiceManager.js +2 -2
  194. package/src/sap/ui/rta/util/adaptationStarter.js +1 -1
  195. package/src/sap/ui/rta/util/changeVisualization/ChangeCategories.js +1 -1
  196. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +2 -2
  197. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +2 -2
  198. package/src/sap/ui/rta/util/changeVisualization/ChangeStates.js +1 -1
  199. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +2 -2
  200. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualizationUtils.js +1 -1
  201. package/src/sap/ui/rta/util/changeVisualization/commands/CombineVisualization.js +2 -2
  202. package/src/sap/ui/rta/util/changeVisualization/commands/CreateContainerVisualization.js +1 -1
  203. package/src/sap/ui/rta/util/changeVisualization/commands/MoveVisualization.js +1 -1
  204. package/src/sap/ui/rta/util/changeVisualization/commands/RenameVisualization.js +1 -1
  205. package/src/sap/ui/rta/util/changeVisualization/commands/SplitVisualization.js +1 -1
  206. package/src/sap/ui/rta/util/changeVisualization/commands/getCommandVisualization.js +1 -1
  207. package/src/sap/ui/rta/util/changeVisualization/resolveBinding.js +2 -2
  208. package/src/sap/ui/rta/util/guidedTour/GuidedTour.js +2 -2
  209. package/src/sap/ui/rta/util/guidedTour/content/GeneralTour.js +1 -1
  210. package/src/sap/ui/rta/util/hasStableId.js +1 -1
  211. package/src/sap/ui/rta/util/isReuseComponent.js +1 -1
  212. package/src/sap/ui/rta/util/showMessageBox.js +1 -1
  213. package/src/sap/ui/rta/util/validateFlexEnabled.js +1 -1
  214. package/src/sap/ui/rta/util/validateStableIds.js +1 -1
  215. package/src/sap/ui/rta/util/validateText.js +1 -1
  216. package/src/sap/ui/rta/util/whatsNew/WhatsNew.js +31 -6
  217. package/src/sap/ui/rta/util/whatsNew/WhatsNewOverview.js +1 -1
  218. package/src/sap/ui/rta/util/whatsNew/WhatsNewUtils.js +3 -11
  219. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/WhatsNewFeatures.js +1 -1
@@ -1,32 +1,34 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
+ "sap/base/util/Deferred",
7
8
  "sap/base/Log",
8
9
  "sap/m/Token",
9
10
  "sap/ui/core/mvc/Controller",
10
11
  "sap/ui/core/Element",
11
12
  "sap/ui/core/Lib",
12
13
  "sap/ui/core/library",
13
- "sap/ui/rta/util/validateText",
14
14
  "sap/ui/fl/util/IFrame",
15
15
  "sap/ui/model/Filter",
16
16
  "sap/ui/model/FilterOperator",
17
- "sap/ui/rta/plugin/iframe/urlCleaner"
17
+ "sap/ui/rta/plugin/iframe/urlCleaner",
18
+ "sap/ui/rta/util/validateText"
18
19
  ], function(
20
+ Deferred,
19
21
  Log,
20
22
  Token,
21
23
  Controller,
22
24
  Element,
23
25
  Lib,
24
26
  coreLibrary,
25
- validateText,
26
27
  IFrame,
27
28
  Filter,
28
29
  FilterOperator,
29
- urlCleaner
30
+ urlCleaner,
31
+ validateText
30
32
  ) {
31
33
  "use strict";
32
34
 
@@ -72,13 +74,7 @@ sap.ui.define([
72
74
  },
73
75
 
74
76
  onBeforeOpen() {
75
- if (this._buildPreviewURL()) {
76
- // If a URL is set initially (updateIframe), validate it
77
- this.onValidateUrl();
78
- } else {
79
- // Disable the save button but don't show an error message
80
- this._checkIfAllFieldsValid(false);
81
- }
77
+ this._oJSONModel.setProperty("/initialFrameUrl/value", this._oJSONModel.getProperty("/frameUrl/value"));
82
78
  // Configure the MultiInput field
83
79
  // This syntax is the suggested way by the UI5 documentation to trigger a submit on the input field on focus loss
84
80
  const oMultiInput = Element.getElementById("sapUiRtaAddIFrameDialog_AddAdditionalParametersInput");
@@ -86,6 +82,7 @@ sap.ui.define([
86
82
  },
87
83
 
88
84
  onSwitchChange() {
85
+ this._checkIfAllFieldsValid(true);
89
86
  this._oJSONModel.setProperty("/settingsUpdate/value", true);
90
87
  },
91
88
 
@@ -110,6 +107,7 @@ sap.ui.define([
110
107
 
111
108
  this._oJSONModel.setProperty("/advancedSettings/value/additionalSandboxParameters", aSandboxParameters);
112
109
  this._oJSONModel.setProperty("/settingsUpdate/value", true);
110
+ this._checkIfAllFieldsValid(true);
113
111
  },
114
112
 
115
113
  /**
@@ -134,8 +132,8 @@ sap.ui.define([
134
132
  /**
135
133
  * Event handler for save button
136
134
  */
137
- onSavePress() {
138
- const sUrl = this._buildPreviewURL();
135
+ async onSavePress() {
136
+ const sUrl = await this._buildPreviewURL();
139
137
  if (isValidUrl(sUrl).result && this._areAllTextFieldsValid() && this._areAllValueStateNones()) {
140
138
  this._close(this._buildReturnedSettings());
141
139
  } else {
@@ -146,9 +144,9 @@ sap.ui.define([
146
144
  /**
147
145
  * Event handler for Show Preview button
148
146
  */
149
- onPreviewPress() {
147
+ async onPreviewPress() {
150
148
  const sReturnedURL = this._buildReturnedURL();
151
- const sURL = this._buildPreviewURL();
149
+ const sURL = await this._buildPreviewURL();
152
150
 
153
151
  if (!isValidUrl(sURL).result) {
154
152
  return;
@@ -210,6 +208,7 @@ sap.ui.define([
210
208
  // Extract "/frameWidth" or "/frameHeight" from the binding path (e.g. /frameWidth/value)
211
209
  const sPropertyName = sPropertyPath.replace(/\/value$/, "");
212
210
  setNewPreviewSize.call(this, sPropertyName);
211
+ this._checkIfAllFieldsValid(true);
213
212
  },
214
213
 
215
214
  /**
@@ -224,6 +223,7 @@ sap.ui.define([
224
223
  // Extract "/frameWidth" or "/frameHeight" from the binding path (e.g. /frameWidthUnit/value)
225
224
  const sPropertyName = sPropertyPath.replace(/Unit\/value$/, "");
226
225
  setNewPreviewSize.call(this, sPropertyName);
226
+ this._checkIfAllFieldsValid(true);
227
227
  },
228
228
 
229
229
  /**
@@ -232,16 +232,34 @@ sap.ui.define([
232
232
  * @private
233
233
  */
234
234
  _buildPreviewURL() {
235
+ const oValidationPromise = new Deferred();
235
236
  const sUrl = this._buildReturnedURL();
236
237
  const oResolver = Element.getElementById("sapUiRtaAddIFrameDialog_PreviewLinkResolver");
237
238
  try {
239
+ // Whenever a URL contains a binding string, all old bindings are cleaned up
240
+ // and a new binding is created for the text property
241
+ // However this doesn't happen if there was a binding previously and the new url
242
+ // value is a plain string, which can then lead to problems with two-way bindings
243
+ // where the new plain value would leak back into the model
244
+ // In this case the old binding has to be cleaned up explicitly
245
+ oResolver.unbindProperty("text");
246
+
238
247
  oResolver.applySettings({
239
248
  text: sUrl
240
249
  });
250
+ const oBinding = oResolver.getBinding("text");
251
+ if (oBinding?.isA("sap.ui.model.odata.v4.ODataPropertyBinding")) {
252
+ // V4 bindings are asynchronous, so we need to wait for the change event
253
+ oBinding.attachEventOnce("change", () => {
254
+ oValidationPromise.resolve(oResolver.getText());
255
+ });
256
+ } else {
257
+ oValidationPromise.resolve(oResolver.getText());
258
+ }
241
259
  } catch (err) {
242
260
  return undefined;
243
261
  }
244
- return oResolver.getText();
262
+ return oValidationPromise.promise;
245
263
  },
246
264
 
247
265
  /**
@@ -281,6 +299,12 @@ sap.ui.define([
281
299
  return urlCleaner(this._oJSONModel.getProperty("/frameUrl/value"));
282
300
  },
283
301
 
302
+ /**
303
+ * Triggers the validation of all fields and updates the "areAllFieldsValid" property in the model
304
+ * This property is also used to enable/disable the Save button, hence the check must be called after every update on the dialog
305
+ *
306
+ * @param {boolean} bExternalValidationSuccess - Whether external validation was successful
307
+ */
284
308
  _checkIfAllFieldsValid(bExternalValidationSuccess) {
285
309
  const bAllFieldsValid = (
286
310
  bExternalValidationSuccess
@@ -291,8 +315,8 @@ sap.ui.define([
291
315
  this._oJSONModel.setProperty("/areAllFieldsValid", bAllFieldsValid);
292
316
  },
293
317
 
294
- onValidateUrl() {
295
- const sUrl = this._buildPreviewURL();
318
+ async onValidateUrl() {
319
+ const sUrl = await this._buildPreviewURL();
296
320
  const { result: bResult, error: sError } = isValidUrl(sUrl);
297
321
  if (bResult) {
298
322
  this._oJSONModel.setProperty("/frameUrlError/value", "");
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.rta.plugin.Plugin
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.143.1
31
+ * @version 1.145.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -1,7 +1,7 @@
1
1
 
2
2
  /*!
3
3
  * OpenUI5
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
  sap.ui.define([
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class Constructor for a new sap.ui.rta.plugin.rename.RenameDialog.
28
28
  * @extends sap.ui.base.ManagedObject
29
29
  * @author SAP SE
30
- * @version 1.143.1
30
+ * @version 1.145.0
31
31
  * @constructor
32
32
  * @since 1.136
33
33
  * @private
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @name sap.ui.rta.service.Action
25
25
  * @author SAP SE
26
26
  * @since 1.58
27
- * @version 1.143.1
27
+ * @version 1.145.0
28
28
  * @private
29
29
  * @ui5-restricted
30
30
  *
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @name sap.ui.rta.service.ControllerExtension
31
31
  * @author SAP SE
32
32
  * @since 1.58
33
- * @version 1.143.1
33
+ * @version 1.145.0
34
34
  * @private
35
35
  * @ui5-restricted
36
36
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @name sap.ui.rta.service.Outline
44
44
  * @author SAP SE
45
45
  * @since 1.56
46
- * @version 1.143.1
46
+ * @version 1.145.0
47
47
  * @private
48
48
  * @ui5-restricted
49
49
  */
@@ -184,12 +184,12 @@ sap.ui.define([
184
184
  };
185
185
  };
186
186
 
187
- oOutline._enrichExtensionPointData = function(oData, oOverlay) {
187
+ oOutline._enrichExtensionPointData = function(oData, oOverlay, bIsPartOfTemplate) {
188
188
  var bIsDesignMode = DesignTime.isDesignModeEnabled();
189
189
  if (!bIsDesignMode) {
190
190
  return undefined;
191
191
  }
192
- if (oData.type === "aggregation") {
192
+ if (oData.type === "aggregation" && !bIsPartOfTemplate) {
193
193
  var aExtensionPoints = this._getExtensionPoints(oData)
194
194
  .sort(function(mExtensionPointA, mExtensionPointB) {
195
195
  return mExtensionPointB.index - mExtensionPointA.index;
@@ -259,9 +259,10 @@ sap.ui.define([
259
259
  * @param {int} [iDepth] - Level of children to traverse
260
260
  * @param {sap.ui.dt.Overlay} [oParentOverlay] - Parent overlay (if present) for the passed overlay
261
261
  * @param {object} [mTemplateData] - Propagates template data to the aggregation template clones
262
+ * @param {boolean} [bNestedInTemplate] - Whether the overlay is nested inside a template
262
263
  * @returns {OutlineObject} Outline model data
263
264
  */
264
- oOutline._getChildrenNodes = function(oOverlay, iDepth, oParentOverlay, mTemplateData) {
265
+ oOutline._getChildrenNodes = function(oOverlay, iDepth, oParentOverlay, mTemplateData, bNestedInTemplate) {
265
266
  var bValidDepth = DtUtil.isInteger(iDepth);
266
267
  var mAggregationTemplates = {};
267
268
 
@@ -295,11 +296,18 @@ sap.ui.define([
295
296
  // decrement depth for children nodes
296
297
  iDepth = bValidDepth ? iDepth - 1 : iDepth;
297
298
 
299
+ const bIsPartOfTemplate = bNestedInTemplate || oData.type === "aggregationBindingTemplate";
298
300
  var mInnerTemplateData = {};
299
301
  oData.elements = aChildren
300
302
  .map(function(oChildOverlay) {
301
303
  var mNextTemplateData = getTemplateData(oChildOverlay, mTemplateData, mInnerTemplateData);
302
- var oNextData = this._getChildrenNodes(oChildOverlay, iDepth, oChildOverlay.getParent(), mNextTemplateData);
304
+ const oNextData = this._getChildrenNodes(
305
+ oChildOverlay,
306
+ iDepth,
307
+ oChildOverlay.getParent(),
308
+ mNextTemplateData,
309
+ bIsPartOfTemplate
310
+ );
303
311
  if (oNextData.type === "aggregationBindingTemplate") {
304
312
  var sAggregationName = mAggregationTemplates[oChildOverlay.getId()];
305
313
  mInnerTemplateData[sAggregationName] = merge({}, oNextData);
@@ -311,7 +319,7 @@ sap.ui.define([
311
319
  });
312
320
 
313
321
  // get extension point information if available
314
- this._enrichExtensionPointData(oData, oOverlay);
322
+ this._enrichExtensionPointData(oData, oOverlay, bIsPartOfTemplate);
315
323
  }
316
324
 
317
325
  return cleanupData(oData);
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @name sap.ui.rta.service.Property
28
28
  * @author SAP SE
29
29
  * @since 1.58
30
- * @version 1.143.1
30
+ * @version 1.145.0
31
31
  * @private
32
32
  * @ui5-restricted
33
33
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -14,7 +14,7 @@ sap.ui.define(function() {
14
14
  * @name sap.ui.rta.service.Selection
15
15
  * @author SAP SE
16
16
  * @since 1.58
17
- * @version 1.143.1
17
+ * @version 1.145.0
18
18
  * @private
19
19
  * @ui5-restricted
20
20
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @name sap.ui.rta.service.SupportTools
31
31
  * @author SAP SE
32
32
  * @since 1.106
33
- * @version 1.143.1
33
+ * @version 1.145.0
34
34
  * @private
35
35
  * @ui5-restricted
36
36
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,103 +1,80 @@
1
- /******************************************************************
2
- Style of the RTA Add IFrame Dialog - base Theme
3
- *******************************************************************/
4
- @_sap_ui_rta_AddIFrame_BorderColor: @sapUiGroupContentBorderColor; //#000;
5
- @_sap_ui_rta_AddIFrame_PreviewBackgroundColor: @sapUiContentImagePlaceholderBackground; //#fff
6
- @_sap_ui_rta_AddIFrame_PreviewTextColor: @sapUiContentForegroundTextColor; //#000
1
+ /* ===================================== */
2
+ /* CSS for control sap.ui.rta/AddIFrame */
3
+ /* Base theme */
4
+ /* ===================================== */
5
+
6
+ @_sap_ui_rta_AddIFrame_BorderColor: var(--sapGroup_ContentBorderColor); /* #000 */
7
+ @_sap_ui_rta_AddIFrame_PreviewBackgroundColor: var(--sapContent_ImagePlaceholderBackground); /* #fff */
8
+ @_sap_ui_rta_AddIFrame_PreviewTextColor: var(--sapContent_ForegroundTextColor); /* #000 */
7
9
 
8
10
  .sapUiRtaMode {
11
+
9
12
  .sapUiRtaAddIFrameDialog {
13
+
10
14
  .sapMBarPH.sapMBarContainer {
11
15
  justify-content: center
12
16
  }
13
17
 
14
- &.sapMDialog > header .sapMDialogTitleGroup {
15
- &:focus::after {
16
- content: none;
17
- }
18
- }
19
-
20
18
  .sapUiRtaAddIFrameDialogVlWrapper {
19
+
21
20
  .sapUiRtaAddIFrameDialogContainer {
22
- padding: 0 1rem 0 1rem;
21
+ padding: 0 var(--sapContent_Space_Small);
23
22
  }
24
23
 
25
24
  .sapUiRtaAddIFrameDialogShowParametersButton {
26
- margin-top: 1.3rem;
25
+ position: relative;
26
+ top: 1.375rem;
27
27
  }
28
28
 
29
29
  .sapUiRtaAddIFrameDialogHideParametersButton {
30
- margin-top: -@sapUiMarginTiny;
30
+ margin-top: ~"calc(-1 * var(--sapContent_Space_Small))";
31
31
  }
32
32
 
33
33
  .sapUiRtaAddIFrameParametersHeader {
34
- margin-bottom: -@sapUiMarginTiny;
35
- }
36
-
37
- .sapUiRtaAddIFrameDialogSizeVBox {
38
- margin-top: -@sapUiMarginSmall;
39
- }
40
-
41
- .sapUiRtaAddIFrameDialogSizeGrid {
42
- .sapUiFormResGridMain {
43
- padding: 0;
34
+ margin-bottom: ~"calc(-1 * var(--sapContent_Space_Tiny))";
35
+ .sapUiRtaAddIFrameDialogParametersLabel {
36
+ // avoid label beeing too long
37
+ max-width: 20.5rem;
44
38
  }
45
39
  }
46
40
 
47
- .sapUiRtaAddIFrameDialogPercentGrid {
48
- padding: 0.25rem 0 0 0;
49
- margin: 0 1rem;
50
- border-bottom: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; //1px
51
-
52
- > div {
53
- margin-bottom: 0.25rem;
54
- }
55
-
56
- .sapUiRtaAddIFrameDialogPercentText {
57
- float: right;
58
-
59
- &.sapUiRtaAddIFrameDialogPercentText-invisible {
60
- visibility: hidden;
61
- }
62
- }
41
+ .sapUiRtaAddIFrameDialogSizeVBox {
42
+ margin-top: ~"calc(-1 * var(--sapContent_Space_Small))";
63
43
  }
64
44
 
65
45
  .sapUiRtaAddIFrameDialogEditGrid {
66
- margin-top: 1rem;
46
+ margin-top: var(--sapContent_Space_Small);
67
47
 
68
48
  .sapUiRtaAddIFrameDialogParameters {
49
+
69
50
  .sapMScrollCont {
70
- border: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; //1px
51
+ border: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; /* 1px */
71
52
  }
72
53
  }
73
54
 
74
55
  .sapUiRtaAddIFrameDialogEditUrl {
56
+
75
57
  .sapMTextArea {
76
58
  margin-bottom: 0;
77
-
78
- .sapMTextAreaInner {
79
- border: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; //1px
80
- }
81
59
  }
82
60
  }
83
61
  }
84
62
 
85
- .sapUiRtaAddIFrameDialogUrlWarningGrid {
86
- padding-left: 1.625rem;
63
+ .sapUiRtaAddIFrameDialogUrlWarningVBox {
64
+ width: 96%;
87
65
  }
88
66
 
89
67
  .sapUiRtaAddIFrameDialogAdvancedSettingsGrid {
68
+
90
69
  .sapUiRtaAddIFrameDialogAdvancedSettingsPanel {
91
70
  margin: 0 !important;
92
71
 
93
- .sapMPanelContent {
94
- padding: 0.5rem 1rem 0.5rem 1rem;
72
+ .sapMPanelWrappingDivTb {
73
+ border-radius: 0;
95
74
  }
96
-
97
75
  .sapUiRtaAddIFrameDialogAdvancedSettingsToolbar {
98
76
  height: 2rem !important;
99
77
  padding-right: 0;
100
- margin-left: 2.75rem;
101
78
 
102
79
  .sapUiRtaAddIFrameDialogAdvancedSettingsTitle {
103
80
  font-size: 0.875rem;
@@ -108,34 +85,27 @@
108
85
 
109
86
  .sapUiRtaAddIFrameDialogPreviewGrid {
110
87
  padding: 0;
111
- margin: 0 1rem 1rem;
88
+ margin: 0 var(--sapContent_Space_Small) var(--sapContent_Space_Small);
112
89
  background: @_sap_ui_rta_AddIFrame_PreviewBackgroundColor;
113
- border: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; //1px
90
+ border: 0.0625rem solid @_sap_ui_rta_AddIFrame_BorderColor; /* 1px */
114
91
  overflow: auto;
115
92
  height: 230px;
116
-
117
- > div {
118
- margin-bottom: 0;
119
- height: 9.75rem;
120
- }
121
93
  }
122
94
  }
123
95
  }
124
96
  }
125
97
 
126
98
  .sapUiRtaMode.sapUiSizeCozy {
99
+
127
100
  .sapUiRtaAddIFrameDialog {
128
- .sapUiRtaAddIFrameDialogVlWrapper {
129
- .sapUiRtaAddIFrameDialogAdvancedSettingsGrid {
130
- .sapUiRtaAddIFrameDialogAdvancedSettingsPanel {
131
- .sapUiRtaAddIFrameDialogAdvancedSettingsToolbar {
132
- height: 2.625rem !important;
133
101
 
134
- .sapUiRtaAddIFrameDialogAdvancedSettingsTitle {
135
- margin-left: 0.25rem;
136
- }
137
- }
138
- }
102
+ .sapUiRtaAddIFrameDialogVlWrapper {
103
+ .sapUiRtaAddIFrameDialogHideParametersButton {
104
+ position: relative;
105
+ top: -0.3125rem;
106
+ }
107
+ .sapUiRtaAddIFrameParametersHeader {
108
+ margin-bottom: var(--sapContent_Space_Small);
139
109
  }
140
110
  }
141
111
  }
@@ -1,33 +1,33 @@
1
- /******************************************************************
2
- Style of the RTA Change Visualization - base theme
3
- *******************************************************************/
4
- @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorMedium: @sapUiChartPaletteSequentialHue1Dark1; //#1b57a7
5
- @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark: @sapUiChartPaletteSequentialHue11Dark2; //#0e4186
6
- @_sap_ui_rta_ChangeVisualization_OverlayBoxShadow: @sapUiUx3ToolPopupShadow; //0px 6px 12px 0px fade(black, 30);
7
- @_sap_ui_rta_ChangeVisualization_OverlayOutlineColor: @sapUiSelected; //#8fb5ff
1
+ /* =============================================== */
2
+ /* CSS for control sap.ui.rta/ChangeVisualization */
3
+ /* Base theme */
4
+ /* =============================================== */
5
+
6
+ @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorMedium: @sapUiChartPaletteSequentialHue1Dark1; /* #1b57a7 */
7
+ @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark: @sapUiChartPaletteSequentialHue11Dark2; /* #0e4186 */
8
+ @_sap_ui_rta_ChangeVisualization_OverlayOutlineColor: var(--sapSelectedColor); /* #8fb5ff */
8
9
 
9
10
  .sapUiRtaChangeIndicator {
10
11
  height: 0.8rem;
11
12
  width: 0.8rem;
12
13
  position: relative;
13
14
  border-radius: 50%;
14
- margin-top: 0.25rem;
15
- margin-left: 0.25rem;
16
15
  transition: width 0.3s, height 0.3s, box-shadow 0.3s;
17
16
  cursor: pointer;
18
17
  background-color: @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorMedium;
19
18
  opacity: 0.75;
19
+ top: 0.25rem;
20
+ left: 0.25rem;
20
21
 
21
22
  &.sapUiRtaChangeIndicatorVerticallyCentered {
22
23
  top: 50%;
23
24
  transform: translateY(-50%);
24
- margin-top: 0;
25
25
  }
26
26
 
27
27
  &.sapUiRtaHover {
28
28
  height: 0.9rem;
29
29
  width: 0.9rem;
30
- box-shadow: 0 0 0.25rem @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark;
30
+ box-shadow: var(--sapContent_Shadow2);
31
31
  }
32
32
  }
33
33
 
@@ -36,24 +36,24 @@
36
36
  &.sapUiRtaChangeIndicatorHovered {
37
37
  cursor: pointer !important;
38
38
 
39
- &:after {
40
- content: " ";
39
+ &::after {
40
+ content: '';
41
41
  transition: box-shadow .25s;
42
- box-shadow: @_sap_ui_rta_ChangeVisualization_OverlayBoxShadow;
43
- outline: 0.0625rem solid @_sap_ui_rta_ChangeVisualization_OverlayOutlineColor; //1px
44
- outline-offset: -0.0625rem; //1px
42
+ box-shadow: var(--sapContent_Shadow2);
43
+ outline: 0.0625rem solid @_sap_ui_rta_ChangeVisualization_OverlayOutlineColor !important; /* 1px */
44
+ outline-offset: -0.0625rem; /* 1px */
45
45
  }
46
46
  }
47
47
 
48
48
  &.sapUiRtaChangeIndicatorDependent {
49
49
  position: absolute;
50
- box-shadow: inset 0 0 0 0.1875rem @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, @_sap_ui_rta_ChangeVisualization_OverlayBoxShadow;
50
+ box-shadow: inset 0 0 0 0.1875rem @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, var(--sapContent_Shadow2);
51
51
  background-color: fade(@_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, 25%);
52
52
  animation: fadeOut linear 1.5s;
53
53
  animation-fill-mode: forwards;
54
54
  @keyframes fadeOut {
55
55
  66% {
56
- box-shadow: inset 0 0 0 0.1875rem @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, @_sap_ui_rta_ChangeVisualization_OverlayBoxShadow;
56
+ box-shadow: inset 0 0 0 0.1875rem @_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, var(--sapContent_Shadow2);
57
57
  background-color: fade(@_sap_ui_rta_ChangeVisualization_ChangeIndicatorColorDark, 25%);
58
58
  }
59
59
  100% {
@@ -65,9 +65,11 @@
65
65
  }
66
66
 
67
67
  .sapUiRtaMode {
68
+
68
69
  .sapMPopover {
70
+
69
71
  .sapUiRtaChangesList {
70
- // Visualize Changes: gray out items with no changes
72
+ /* Visualize Changes: gray out items with no changes */
71
73
  li.sapMLIBTypeInactive {
72
74
  opacity: 0.5;
73
75
  }
@@ -75,8 +77,9 @@
75
77
  }
76
78
  }
77
79
 
78
- //do not show focus border in the popover
80
+ /* do not show focus border in the popover */
79
81
  .sapUiRtaChangeVisualizationPopover {
82
+
80
83
  .sapMLIBFocusable:focus {
81
84
  outline: none;
82
85
  }