@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,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
 
@@ -123,7 +123,7 @@ sap.ui.define([
123
123
  }
124
124
 
125
125
  function oPropertyToAdditionalElementInfo(oProperty) {
126
- return {
126
+ const oReturn = {
127
127
  selected: false,
128
128
  label: oProperty.label || oProperty.name,
129
129
  parentPropertyName: oProperty.parentPropertyName ? oProperty.parentPropertyName : "",
@@ -136,6 +136,10 @@ sap.ui.define([
136
136
  name: oProperty.name,
137
137
  bindingPath: oProperty.bindingPath
138
138
  };
139
+ if (oProperty.entityTypeDisplayName) {
140
+ oReturn.entityTypeDisplayName = oProperty.entityTypeDisplayName;
141
+ }
142
+ return oReturn;
139
143
  }
140
144
 
141
145
  function getLabel(oElement, mAction) {
@@ -152,7 +156,7 @@ sap.ui.define([
152
156
  function elementToAdditionalElementInfo(mData) {
153
157
  const oElement = mData.element;
154
158
  const sLabel = getLabel(oElement, mData.action);
155
- return {
159
+ const oReturn = {
156
160
  selected: false,
157
161
  label: oElement.__label || sLabel,
158
162
  tooltip: oElement.__tooltip || sLabel || oElement.__bindingPath,
@@ -165,6 +169,10 @@ sap.ui.define([
165
169
  elementId: oElement.getId(),
166
170
  sourceAggregation: mData.sourceAggregation
167
171
  };
172
+ if (oElement.__entityTypeDisplayName) {
173
+ oReturn.entityTypeDisplayName = oElement.__entityTypeDisplayName;
174
+ }
175
+ return oReturn;
168
176
  }
169
177
 
170
178
  /**
@@ -191,17 +199,36 @@ sap.ui.define([
191
199
  return [oElement];
192
200
  }
193
201
 
202
+ /**
203
+ * Marks properties with duplicate labels within the same entity type display name.
204
+ * The same entity can have different contexts (e.g. peer and manager both from Person entity),
205
+ * that's why we use the display name and not the entity type itself.
206
+ *
207
+ * @param {object[]} aProperties - Array of property objects
208
+ * @returns {object[]} - The same array with duplicateName flag set where applicable
209
+ */
194
210
  function checkForDuplicateProperties(aProperties) {
195
- aProperties.forEach(function(oModelProperty, index, aProperties) {
196
- if (oModelProperty.duplicateName !== true) {
197
- for (let j = index + 1; j < aProperties.length - 1; j++) {
198
- if (oModelProperty.label === aProperties[j].label) {
199
- oModelProperty.duplicateName = true;
200
- aProperties[j].duplicateName = true;
201
- }
202
- }
211
+ // Group properties by entityType and label to find duplicates
212
+ const mLabelsByEntityTypeDisplayName = {};
213
+
214
+ aProperties.forEach(function(oProperty) {
215
+ const sEntityTypeDisplayName = oProperty.entityTypeDisplayName || "";
216
+ const sLabel = oProperty.label || "";
217
+ const sKey = `${sEntityTypeDisplayName}|||${sLabel}`;
218
+
219
+ mLabelsByEntityTypeDisplayName[sKey] ||= [];
220
+ mLabelsByEntityTypeDisplayName[sKey].push(oProperty);
221
+ });
222
+
223
+ // Mark properties as duplicates if there are multiple with the same entityType display name and label
224
+ Object.values(mLabelsByEntityTypeDisplayName).forEach(function(aPropertiesWithSameLabel) {
225
+ if (aPropertiesWithSameLabel.length > 1) {
226
+ aPropertiesWithSameLabel.forEach(function(oProperty) {
227
+ oProperty.duplicateName = true;
228
+ });
203
229
  }
204
230
  });
231
+
205
232
  return aProperties;
206
233
  }
207
234
 
@@ -314,8 +341,10 @@ sap.ui.define([
314
341
  */
315
342
  function enhanceInvisibleElement(oInvisibleElement, mSomeItem) {
316
343
  oInvisibleElement.__originalLabel = mSomeItem.label;
317
-
318
344
  oInvisibleElement.__tooltip = mSomeItem.tooltip;
345
+ if (mSomeItem.entityTypeDisplayName) {
346
+ oInvisibleElement.__entityTypeDisplayName = mSomeItem.entityTypeDisplayName;
347
+ }
319
348
 
320
349
  // found element
321
350
  oInvisibleElement.__bindingPath = mSomeItem.name;
@@ -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
 
@@ -12,6 +12,7 @@ sap.ui.define([
12
12
  "sap/ui/core/Lib",
13
13
  "sap/ui/dt/OverlayRegistry",
14
14
  "sap/ui/dt/OverlayUtil",
15
+ "sap/ui/fl/util/CancelError",
15
16
  "sap/ui/fl/write/api/FieldExtensibility",
16
17
  "sap/ui/rta/plugin/additionalElements/ActionExtractor",
17
18
  "sap/ui/rta/plugin/additionalElements/AddElementsDialog",
@@ -28,6 +29,7 @@ sap.ui.define([
28
29
  Lib,
29
30
  OverlayRegistry,
30
31
  OverlayUtil,
32
+ CancelError,
31
33
  FieldExtensibility,
32
34
  ActionExtractor,
33
35
  AddElementsDialog,
@@ -119,7 +121,7 @@ sap.ui.define([
119
121
  * @class The plugin allows to add additional elements that exist either hidden in the UI or in the OData service
120
122
  * @extends sap.ui.rta.plugin.Plugin
121
123
  * @author SAP SE
122
- * @version 1.143.1
124
+ * @version 1.145.0
123
125
  * @constructor
124
126
  * @private
125
127
  * @since 1.44
@@ -323,8 +325,7 @@ sap.ui.define([
323
325
  const oOverlayToFocus = OverlayRegistry.getOverlay(vSiblingElement) || oResponsibleElementOverlay;
324
326
  oOverlayToFocus.focus();
325
327
  } catch (oError) {
326
- // no error means canceled dialog
327
- if (oError instanceof Error) {
328
+ if (!(oError instanceof CancelError)) {
328
329
  throw oError;
329
330
  }
330
331
  }
@@ -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
 
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * Helper object containing methods for the AdditionalElements plugin
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.143.1
20
+ * @version 1.145.0
21
21
  * @private
22
22
  * @since 1.94
23
23
  */
@@ -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
 
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * Helper object to build the RTA commands resulting from the AdditionalElements Plugin
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.143.1
28
+ * @version 1.145.0
29
29
  * @private
30
30
  * @since 1.94
31
31
  */
@@ -24,7 +24,7 @@
24
24
  <link>
25
25
  <Link text="{i18n>ANNOTATION_CHANGE_DIALOG_WARNING_MORE_INFO}"
26
26
  target="_blank"
27
- href=""/> <!-- TODO: Change link once the docs are available -->
27
+ href="{/documentationUrl}"/>
28
28
  </link>
29
29
  </MessageStrip>
30
30
  <Label
@@ -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([
@@ -12,6 +12,7 @@ sap.ui.define([
12
12
  "sap/ui/model/json/JSONModel",
13
13
  "sap/ui/model/resource/ResourceModel",
14
14
  "sap/ui/rta/plugin/annotations/AnnotationChangeDialogController",
15
+ "sap/ui/rta/plugin/annotations/DocumentedAnnotationChanges",
15
16
  "sap/ui/rta/Utils"
16
17
  ], function(
17
18
  ManagedObject,
@@ -21,6 +22,7 @@ sap.ui.define([
21
22
  JSONModel,
22
23
  ResourceModel,
23
24
  AnnotationChangeDialogController,
25
+ DocumentedAnnotationChanges,
24
26
  RtaUtils
25
27
  ) {
26
28
  "use strict";
@@ -29,7 +31,7 @@ sap.ui.define([
29
31
  * @class Constructor for a new sap.ui.rta.plugin.annotations.AnnotationChangeDialog.
30
32
  * @extends sap.ui.base.ManagedObject
31
33
  * @author SAP SE
32
- * @version 1.143.1
34
+ * @version 1.145.0
33
35
  * @constructor
34
36
  * @since 1.132
35
37
  * @private
@@ -57,6 +59,25 @@ sap.ui.define([
57
59
  });
58
60
  }
59
61
 
62
+ function getDocumentationUrl(sFeatureKey) {
63
+ const oDocumentationUrls = {
64
+ btpUrl: "https://help.sap.com/docs/ui5-flexibility-for-key-users/ui5-flexibility-for-key-users/making-ui-changes",
65
+ s4HanaCloudUrl: "https://help.sap.com/docs/SAP_S4HANA_CLOUD/4fc8d03390c342da8a60f8ee387bca1a/54270a390b194c3e97be2424592c3352.html",
66
+ s4HanaOnPremUrl: "https://help.sap.com/docs/ABAP_PLATFORM_NEW/a7b390faab1140c087b8926571e942b7/54270a390b194c3e97be2424592c3352.html"
67
+ };
68
+ if (sFeatureKey === DocumentedAnnotationChanges.Rename) {
69
+ oDocumentationUrls.btpUrl += "#renaming-a-ui-element";
70
+ oDocumentationUrls.s4HanaCloudUrl += "#renaming-a-ui-element";
71
+ oDocumentationUrls.s4HanaOnPremUrl += "#renaming-a-ui-element";
72
+ } else if (sFeatureKey === DocumentedAnnotationChanges.TextArrangement) {
73
+ oDocumentationUrls.btpUrl += "#changing-the-text-arrangement";
74
+ oDocumentationUrls.s4HanaCloudUrl += "#changing-the-text-arrangement";
75
+ oDocumentationUrls.s4HanaOnPremUrl += "#changing-the-text-arrangement";
76
+ }
77
+
78
+ return RtaUtils.getSystemSpecificDocumentationUrl(oDocumentationUrls);
79
+ }
80
+
60
81
  AnnotationChangeDialog.prototype._createDialog = async function() {
61
82
  this._oController = new AnnotationChangeDialogController();
62
83
  const oDialog = await Fragment.load({
@@ -140,7 +161,8 @@ sap.ui.define([
140
161
  control: oControl,
141
162
  annotation: sAnnotation,
142
163
  description: sAnnotationDescription,
143
- singleRename: bSingleRename
164
+ singleRename: bSingleRename,
165
+ featureKey: sFeatureKey
144
166
  } = mPropertyBag;
145
167
  const {
146
168
  serviceUrl: sServiceUrl,
@@ -191,7 +213,9 @@ sap.ui.define([
191
213
  }
192
214
 
193
215
  // Once a change gets passed to the model during initialization, the property _appliedOnModel is set to true
194
- replaceValuesWithValuesFromPendingChanges(aExistingChanges.filter((oChange) => !oChange._appliedOnModel), aProperties, bObjectAsKey);
216
+ replaceValuesWithValuesFromPendingChanges(
217
+ aExistingChanges.filter((oChange) => !oChange._appliedOnModel), aProperties, bObjectAsKey
218
+ );
195
219
 
196
220
  this.oChangeAnnotationModel.setData({
197
221
  objectAsKey: bObjectAsKey,
@@ -206,7 +230,8 @@ sap.ui.define([
206
230
  singleRename: bSingleRename || false,
207
231
  possibleValues: aPossibleValues,
208
232
  valueType: sAnnotationValueType,
209
- serviceUrl: sServiceUrl
233
+ serviceUrl: sServiceUrl,
234
+ documentationUrl: getDocumentationUrl(sFeatureKey)
210
235
  });
211
236
  if (sFilterText) {
212
237
  this._oController.filterProperties(sFilterText, !!bSingleRename);
@@ -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([
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @class Controller for the AnnotationChangeDialog.
36
36
  * @extends sap.ui.core.mvc.Controller
37
37
  * @author SAP SE
38
- * @version 1.143.1
38
+ * @version 1.145.0
39
39
  * @constructor
40
40
  * @since 1.132
41
41
  * @private
@@ -52,8 +52,14 @@ sap.ui.define([
52
52
  AnnotationChangeDialogController.prototype.filterProperties = function(sQuery, bEquals) {
53
53
  const aFilters = [];
54
54
  if (sQuery && sQuery.length > 0) {
55
- const filter = new Filter("label", bEquals ? FilterOperator.EQ : FilterOperator.Contains, sQuery);
56
- aFilters.push(filter);
55
+ const sOperator = bEquals ? FilterOperator.EQ : FilterOperator.Contains;
56
+ const oLabelFilter = new Filter("label", sOperator, sQuery);
57
+ const oValueFilter = new Filter("currentValue", sOperator, sQuery);
58
+ const oCombinedFilter = new Filter({
59
+ filters: [oLabelFilter, oValueFilter],
60
+ and: false
61
+ });
62
+ aFilters.push(oCombinedFilter);
57
63
  }
58
64
 
59
65
  const oList = Element.getElementById("sapUiRtaChangeAnnotationDialog_propertyList");
@@ -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
 
@@ -105,7 +105,7 @@ sap.ui.define([
105
105
  * @class
106
106
  * @extends sap.ui.rta.plugin.Plugin
107
107
  * @author SAP SE
108
- * @version 1.143.1
108
+ * @version 1.145.0
109
109
  * @constructor
110
110
  * @private
111
111
  * @since 1.132
@@ -130,7 +130,7 @@ sap.ui.define([
130
130
 
131
131
  /**
132
132
  * @param {sap.ui.dt.ElementOverlay} oElementOverlay - Overlay to be checked for editable
133
- * @returns {boolean} True if it's editable
133
+ * @returns {boolean} <code>true</code> if it's editable
134
134
  * @private
135
135
  */
136
136
  AnnotationPlugin.prototype._isEditable = function(oElementOverlay) {
@@ -159,7 +159,7 @@ sap.ui.define([
159
159
  * @public
160
160
  */
161
161
  AnnotationPlugin.prototype.isEnabled = function(aElementOverlays) {
162
- if (aElementOverlays.length !== 1) {
162
+ if (!this.isAvailable(aElementOverlays) || aElementOverlays.length !== 1) {
163
163
  return false;
164
164
  }
165
165
 
@@ -186,9 +186,10 @@ sap.ui.define([
186
186
  *
187
187
  * @param {sap.ui.dt.ElementOverlay[]} aElementOverlays - Target Overlays of the action
188
188
  * @param {object} oAction - The action object defined in the designtime
189
+ * @param {string} sKey - Key of the action, used to display the specific documentation link
189
190
  * @return {Promise} Resolves with the creation of the commands
190
191
  */
191
- AnnotationPlugin.prototype.handler = async function(aElementOverlays, oAction) {
192
+ AnnotationPlugin.prototype.handler = async function(aElementOverlays, oAction, sKey) {
192
193
  const oElementOverlay = aElementOverlays[0];
193
194
  const oElement = oElementOverlay.getElement();
194
195
 
@@ -201,7 +202,8 @@ sap.ui.define([
201
202
  annotation: oAction.annotation,
202
203
  description: oAction.description,
203
204
  singleRename: oAction.singleRename,
204
- controlBasedRenameChangeType: oAction.controlBasedRenameChangeType
205
+ controlBasedRenameChangeType: oAction.controlBasedRenameChangeType,
206
+ featureKey: sKey
205
207
  });
206
208
 
207
209
  if (aAnnotationChanges.length) {
@@ -272,7 +274,7 @@ sap.ui.define([
272
274
  typeof oAction.isEnabled === "function" && oAction.isEnabled(aElementOverlays[0].getElement())
273
275
  || (oAction.isEnabled !== false) && this.isEnabled(aElementOverlays)
274
276
  ),
275
- handler: this.handler.bind(this, aElementOverlays, oAction),
277
+ handler: this.handler.bind(this, aElementOverlays, oAction, sKey),
276
278
  additionalInfo: this._getAdditionalInfo(oResponsibleElementOverlay, oAction)
277
279
  });
278
280
  }
@@ -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([], function() {
@@ -0,0 +1,14 @@
1
+
2
+ /*!
3
+ * OpenUI5
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
+ */
7
+ sap.ui.define([], function() {
8
+ "use strict";
9
+
10
+ return {
11
+ Rename: "rename",
12
+ TextArrangement: "textArrangement"
13
+ };
14
+ });
@@ -1,25 +1,27 @@
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
 
7
7
  sap.ui.define([
8
- "sap/ui/core/Lib",
9
- "sap/ui/rta/plugin/BaseCreate",
10
- "sap/ui/fl/Utils",
11
- "sap/ui/dt/Util",
12
8
  "sap/base/util/uid",
13
9
  "sap/ui/core/IconPool",
14
- "sap/ui/rta/plugin/iframe/AddIFrameDialog"
10
+ "sap/ui/core/Lib",
11
+ "sap/ui/dt/Util",
12
+ "sap/ui/fl/util/CancelError",
13
+ "sap/ui/fl/Utils",
14
+ "sap/ui/rta/plugin/iframe/AddIFrameDialog",
15
+ "sap/ui/rta/plugin/BaseCreate"
15
16
  ], function(
16
- Lib,
17
- BaseCreate,
18
- FlexUtils,
19
- DtUtil,
20
17
  uid,
21
18
  IconPool,
22
- AddIFrameDialog
19
+ Lib,
20
+ DtUtil,
21
+ CancelError,
22
+ FlexUtils,
23
+ AddIFrameDialog,
24
+ BaseCreate
23
25
  ) {
24
26
  "use strict";
25
27
 
@@ -89,7 +91,7 @@ sap.ui.define([
89
91
  })
90
92
  .then(function(mSettings) {
91
93
  if (!mSettings) {
92
- return Promise.reject(); // Cancel
94
+ throw new CancelError();
93
95
  }
94
96
  mSettings.index = iIndex;
95
97
  mSettings.aggregation = oAction.aggregation;
@@ -119,7 +121,7 @@ sap.ui.define([
119
121
  * @class The AddIFrame allows trigger AddIFrame operations on the overlay.
120
122
  * @extends sap.ui.rta.plugin.BaseCreate
121
123
  * @author SAP SE
122
- * @version 1.143.1
124
+ * @version 1.145.0
123
125
  * @constructor
124
126
  * @private
125
127
  * @since 1.75
@@ -15,7 +15,6 @@
15
15
  validationError="onValidationError"
16
16
  parseError="onValidationError"
17
17
  contentWidth="50rem"
18
- contentHeight="44rem"
19
18
  core:require="{ FloatType: 'sap/ui/model/type/Float' }"
20
19
  beforeOpen="onBeforeOpen"
21
20
  >
@@ -91,8 +90,13 @@
91
90
  renderType="Bare"
92
91
  >
93
92
  <HBox id="sapUiRtaAddIFrameDialog_ParametersHeader" class="sapUiRtaAddIFrameParametersHeader" justifyContent="SpaceBetween" alignContent="Center">
94
- <Label id="sapUiRtaAddIFrameDialog_ParametersLabel" text="{i18n>IFRAME_ADDIFRAME_DIALOG_PARAMETERS_LABEL}" labelFor="sapUiRtaAddIFrameDialog_ParameterTable"
95
- class="sapUiRtaAddIFrameDialogParametersLabel" design="Bold"/>
93
+ <Label
94
+ id="sapUiRtaAddIFrameDialog_ParametersLabel"
95
+ text="{i18n>IFRAME_ADDIFRAME_DIALOG_PARAMETERS_LABEL}"
96
+ labelFor="sapUiRtaAddIFrameDialog_ParameterTable"
97
+ class="sapUiRtaAddIFrameDialogParametersLabel"
98
+ tooltip="{i18n>IFRAME_ADDIFRAME_DIALOG_PARAMETERS_LABEL}"
99
+ design="Bold"/>
96
100
  <Button
97
101
  id="sapUiRtaAddIFrameDialog_HideParametersButton"
98
102
  icon="sap-icon://decline"
@@ -157,7 +161,7 @@
157
161
  </VBox>
158
162
  </VBox>
159
163
  </layout:Grid>
160
- <VBox id="sapUiRtaAddIFrameDialog_UrlWarningVBox" class="sapUiSmallMarginBegin" displayInline="true">
164
+ <VBox id="sapUiRtaAddIFrameDialog_UrlWarningVBox" class="sapUiSmallMarginBegin sapUiRtaAddIFrameDialogUrlWarningVBox" displayInline="true">
161
165
  <MessageStrip
162
166
  id="sapUiRtaAddIFrameDialog_UrlInfoMessageStrip"
163
167
  text="{i18n>IFRAME_ADDIFRAME_DIALOG_URL_INFO_TEXT}"
@@ -167,7 +171,7 @@
167
171
  <link>
168
172
  <Link text="{i18n>IFRAME_ADDIFRAME_DIALOG_URL_INFO_LINKTEXT}"
169
173
  target="_blank"
170
- href="https://help.sap.com/docs/search?q=Embedding%20Content%20%28Object%20Pages%29"/>
174
+ href="{dialogInfo>/documentationUrl/value}"/>
171
175
  </link>
172
176
  </MessageStrip>
173
177
  </VBox>
@@ -189,7 +193,7 @@
189
193
  id="sapUiRtaAddIFrameDialog_PreviewButton"
190
194
  class="sapUiRtaAddIFrameDialogPreviewButton"
191
195
  press="onPreviewPress"
192
- enabled="{= !${dialogInfo>/frameUrlError/value} &amp;&amp; (${dialogInfo>/previousFrameUrl/value} !== ${dialogInfo>/frameUrl/value} || ${dialogInfo>/settingsUpdate/value})}"
196
+ enabled="{= !${dialogInfo>/frameUrlError/value} &amp;&amp; ${dialogInfo>/frameUrl/value} !== '' &amp;&amp; (${dialogInfo>/previousFrameUrl/value} !== ${dialogInfo>/frameUrl/value} || ${dialogInfo>/settingsUpdate/value})}"
193
197
  icon="{=${dialogInfo>/previousFrameUrl/value} ? 'sap-icon://refresh' : null }"
194
198
  type="{= !${dialogInfo>/frameUrlError/value} &amp;&amp; (${dialogInfo>/previousFrameUrl/value} !== ${dialogInfo>/frameUrl/value} || ${dialogInfo>/settingsUpdate/value}) ? 'Emphasized' : 'Default' }"
195
199
  />
@@ -254,7 +258,7 @@
254
258
  adjustLabelSpan="false"
255
259
  singleContainerFullSize="false"
256
260
  ariaLabelledBy="sapUiRtaAddIFrameDialog_WidthLabel"
257
- columnsXL="2" columnsL="2" columnsM="2" columnsS="2"
261
+ columnsXL="2" columnsL="2" columnsM="2"
258
262
  labelSpanXL="2" labelSpanL="2" labelSpanM="2" labelSpanS="4"
259
263
  emptySpanXL="2" emptySpanL="2" emptySpanM="2" emptySpanS="0"
260
264
  >
@@ -297,7 +301,7 @@
297
301
  adjustLabelSpan="false"
298
302
  singleContainerFullSize="false"
299
303
  ariaLabelledBy="sapUiRtaAddIFrameDialog_HeightLabel"
300
- columnsXL="2" columnsL="2" columnsM="2" columnsS="2"
304
+ columnsXL="2" columnsL="2" columnsM="2"
301
305
  labelSpanXL="2" labelSpanL="2" labelSpanM="2" labelSpanS="4"
302
306
  emptySpanXL="2" emptySpanL="2" emptySpanM="2" emptySpanS="0"
303
307
  >
@@ -476,7 +480,7 @@
476
480
  type="Emphasized"
477
481
  text="{i18n>IFRAME_ADDIFRAME_DIALOG_BUTTON_SAVE}"
478
482
  press="onSavePress"
479
- enabled="{= !!${dialogInfo>/areAllFieldsValid}}"
483
+ enabled="{= !!${dialogInfo>/areAllFieldsValid} }"
480
484
  />
481
485
  </beginButton>
482
486
  <endButton>
@@ -489,4 +493,4 @@
489
493
  />
490
494
  </endButton>
491
495
  </Dialog>
492
- </core:FragmentDefinition>
496
+ </core:FragmentDefinition>
@@ -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
  sap.ui.define([
@@ -39,10 +39,19 @@ sap.ui.define([
39
39
  ? _oTextResources.getText("IFRAME_ADDIFRAME_DIALOG_SELECT_ADDITIONAL_TEXT_PERCENT_SECTION")
40
40
  : _oTextResources.getText("IFRAME_ADDIFRAME_DIALOG_SELECT_ADDITIONAL_TEXT_PERCENT_HEADER");
41
41
 
42
+ const mDocumentationUrls = {
43
+ btpUrl: "https://help.sap.com/docs/ui5-flexibility-for-key-users/ui5-flexibility-for-key-users/embedding-content",
44
+ s4HanaCloudUrl: "https://help.sap.com/docs/SAP_S4HANA_CLOUD/4fc8d03390c342da8a60f8ee387bca1a/8db25610e91342919fcf63d4e5868ae9.html",
45
+ s4HanaOnPremUrl: "https://help.sap.com/docs/ABAP_PLATFORM_NEW/a7b390faab1140c087b8926571e942b7/8db25610e91342919fcf63d4e5868ae9.html"
46
+ };
47
+
42
48
  return new JSONModel({
43
49
  dialogTitle: bSetUpdateTitle ?
44
50
  _oTextResources.getText("IFRAME_ADDIFRAME_DIALOG_UPDATE_TITLE") :
45
51
  _oTextResources.getText("IFRAME_ADDIFRAME_DIALOG_TITLE"),
52
+ documentationUrl: {
53
+ value: RtaUtils.getSystemSpecificDocumentationUrl(mDocumentationUrls)
54
+ },
46
55
  asContainer: {
47
56
  value: bAsContainer
48
57
  },
@@ -67,16 +76,23 @@ sap.ui.define([
67
76
  frameHeightUnit: {
68
77
  value: "vh"
69
78
  },
79
+ // The URL entered by the user (without resolving bindings)
70
80
  frameUrl: {
71
81
  value: "",
72
82
  valueState: ValueState.None
73
83
  },
84
+ // URL value when the dialog was opened (without resolving bindings), to detect changes for update
85
+ initialFrameUrl: {
86
+ value: ""
87
+ },
88
+ // URL value when the last preview was generated (with resolved bindings), to control the preview button state
74
89
  previousFrameUrl: {
75
90
  value: ""
76
91
  },
77
92
  frameUrlError: {
78
93
  value: undefined
79
94
  },
95
+ // URL used for the iframe preview (with resolved bindings)
80
96
  previewUrl: { value: "" },
81
97
  parameters: { value: [] },
82
98
  unitsOfWidthMeasure: [{
@@ -123,7 +139,7 @@ sap.ui.define([
123
139
  * @class Context - Dialog for IFrame settings in Runtime Authoring
124
140
  * @extends sap.ui.base.ManagedObject
125
141
  * @author SAP SE
126
- * @version 1.143.1
142
+ * @version 1.145.0
127
143
  * @constructor
128
144
  * @private
129
145
  * @since 1.78