@openui5/sap.ui.rta 1.134.0 → 1.136.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 (216) hide show
  1. package/REUSE.toml +649 -0
  2. package/THIRDPARTY.txt +23 -23
  3. package/package.json +6 -6
  4. package/src/sap/ui/rta/.library +2 -2
  5. package/src/sap/ui/rta/Client.js +2 -2
  6. package/src/sap/ui/rta/RuntimeAuthoring.js +124 -28
  7. package/src/sap/ui/rta/Utils.js +19 -2
  8. package/src/sap/ui/rta/api/startAdaptation.js +1 -1
  9. package/src/sap/ui/rta/api/startKeyUserAdaptation.js +1 -1
  10. package/src/sap/ui/rta/appVariant/AppVariantDialog.js +1 -1
  11. package/src/sap/ui/rta/appVariant/AppVariantManager.js +26 -26
  12. package/src/sap/ui/rta/appVariant/AppVariantOverviewDialog.js +1 -1
  13. package/src/sap/ui/rta/appVariant/AppVariantUtils.js +1 -1
  14. package/src/sap/ui/rta/appVariant/Feature.js +72 -72
  15. package/src/sap/ui/rta/appVariant/S4HanaCloudBackend.js +1 -1
  16. package/src/sap/ui/rta/appVariant/Utils.js +27 -36
  17. package/src/sap/ui/rta/appVariant/manageApps/webapp/Component.js +1 -1
  18. package/src/sap/ui/rta/appVariant/manageApps/webapp/controller/ManageApps.controller.js +54 -68
  19. package/src/sap/ui/rta/appVariant/manageApps/webapp/i18n/i18n_fr_CA.properties +2 -2
  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 +66 -6
  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 +72 -48
  31. package/src/sap/ui/rta/command/CompositeCommand.js +13 -13
  32. package/src/sap/ui/rta/command/ControlVariantConfigure.js +2 -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 +93 -0
  40. package/src/sap/ui/rta/command/FlexCommand.js +55 -44
  41. package/src/sap/ui/rta/command/LREPSerializer.js +24 -24
  42. package/src/sap/ui/rta/command/LocalReset.js +2 -2
  43. package/src/sap/ui/rta/command/ManifestCommand.js +112 -0
  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 +20 -5
  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/{appDescriptor → manifest}/AddLibrary.js +11 -11
  58. package/src/sap/ui/rta/enablement/TestDelegate.js +1 -1
  59. package/src/sap/ui/rta/enablement/elementActionTest.js +2 -2
  60. package/src/sap/ui/rta/library.js +3 -3
  61. package/src/sap/ui/rta/messagebundle.properties +181 -9
  62. package/src/sap/ui/rta/messagebundle_ar.properties +105 -6
  63. package/src/sap/ui/rta/messagebundle_bg.properties +105 -6
  64. package/src/sap/ui/rta/messagebundle_ca.properties +108 -9
  65. package/src/sap/ui/rta/messagebundle_cnr.properties +106 -7
  66. package/src/sap/ui/rta/messagebundle_cs.properties +103 -4
  67. package/src/sap/ui/rta/messagebundle_cy.properties +105 -6
  68. package/src/sap/ui/rta/messagebundle_da.properties +104 -5
  69. package/src/sap/ui/rta/messagebundle_de.properties +114 -15
  70. package/src/sap/ui/rta/messagebundle_el.properties +102 -3
  71. package/src/sap/ui/rta/messagebundle_en.properties +105 -6
  72. package/src/sap/ui/rta/messagebundle_en_GB.properties +105 -6
  73. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +9 -1
  74. package/src/sap/ui/rta/messagebundle_es.properties +109 -10
  75. package/src/sap/ui/rta/messagebundle_es_MX.properties +113 -14
  76. package/src/sap/ui/rta/messagebundle_et.properties +103 -4
  77. package/src/sap/ui/rta/messagebundle_fi.properties +107 -8
  78. package/src/sap/ui/rta/messagebundle_fr.properties +123 -24
  79. package/src/sap/ui/rta/messagebundle_fr_CA.properties +110 -11
  80. package/src/sap/ui/rta/messagebundle_hi.properties +105 -6
  81. package/src/sap/ui/rta/messagebundle_hr.properties +145 -46
  82. package/src/sap/ui/rta/messagebundle_hu.properties +104 -5
  83. package/src/sap/ui/rta/messagebundle_id.properties +113 -14
  84. package/src/sap/ui/rta/messagebundle_it.properties +146 -47
  85. package/src/sap/ui/rta/messagebundle_iw.properties +105 -6
  86. package/src/sap/ui/rta/messagebundle_ja.properties +117 -18
  87. package/src/sap/ui/rta/messagebundle_kk.properties +104 -5
  88. package/src/sap/ui/rta/messagebundle_ko.properties +105 -6
  89. package/src/sap/ui/rta/messagebundle_lt.properties +105 -6
  90. package/src/sap/ui/rta/messagebundle_lv.properties +104 -5
  91. package/src/sap/ui/rta/messagebundle_mk.properties +108 -9
  92. package/src/sap/ui/rta/messagebundle_ms.properties +115 -16
  93. package/src/sap/ui/rta/messagebundle_nl.properties +104 -5
  94. package/src/sap/ui/rta/messagebundle_no.properties +108 -9
  95. package/src/sap/ui/rta/messagebundle_pl.properties +104 -5
  96. package/src/sap/ui/rta/messagebundle_pt.properties +103 -4
  97. package/src/sap/ui/rta/messagebundle_pt_PT.properties +103 -4
  98. package/src/sap/ui/rta/messagebundle_ro.properties +103 -4
  99. package/src/sap/ui/rta/messagebundle_ru.properties +107 -8
  100. package/src/sap/ui/rta/messagebundle_sh.properties +106 -7
  101. package/src/sap/ui/rta/messagebundle_sk.properties +103 -4
  102. package/src/sap/ui/rta/messagebundle_sl.properties +103 -4
  103. package/src/sap/ui/rta/messagebundle_sr.properties +106 -7
  104. package/src/sap/ui/rta/messagebundle_sv.properties +104 -5
  105. package/src/sap/ui/rta/messagebundle_th.properties +104 -5
  106. package/src/sap/ui/rta/messagebundle_tr.properties +103 -4
  107. package/src/sap/ui/rta/messagebundle_uk.properties +105 -6
  108. package/src/sap/ui/rta/messagebundle_vi.properties +105 -6
  109. package/src/sap/ui/rta/messagebundle_zh_CN.properties +104 -5
  110. package/src/sap/ui/rta/messagebundle_zh_TW.properties +105 -6
  111. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +34 -34
  112. package/src/sap/ui/rta/plugin/AddXMLPlugin.js +54 -32
  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 +114 -114
  116. package/src/sap/ui/rta/plugin/ControlVariant.js +37 -54
  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 +172 -0
  121. package/src/sap/ui/rta/plugin/LocalReset.js +4 -3
  122. package/src/sap/ui/rta/plugin/Plugin.js +31 -11
  123. package/src/sap/ui/rta/plugin/RTAElementMover.js +2 -2
  124. package/src/sap/ui/rta/plugin/Remove.js +2 -2
  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 +75 -62
  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.js +2 -2
  132. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsAnalyzer.js +1 -1
  133. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +2 -2
  134. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +2 -2
  135. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +2 -2
  136. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.fragment.xml +13 -9
  137. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.js +75 -13
  138. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialogController.js +38 -32
  139. package/src/sap/ui/rta/plugin/annotations/AnnotationPlugin.js +61 -21
  140. package/src/sap/ui/rta/plugin/annotations/AnnotationTypes.js +1 -1
  141. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +8 -2
  142. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +2 -2
  143. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +1 -1
  144. package/src/sap/ui/rta/plugin/iframe/urlCleaner.js +1 -1
  145. package/src/sap/ui/rta/plugin/{Rename.js → rename/Rename.js} +29 -67
  146. package/src/sap/ui/rta/plugin/rename/RenameDialog.fragment.xml +63 -0
  147. package/src/sap/ui/rta/plugin/rename/RenameDialog.js +140 -0
  148. package/src/sap/ui/rta/service/Action.js +2 -2
  149. package/src/sap/ui/rta/service/ControllerExtension.js +11 -5
  150. package/src/sap/ui/rta/service/Outline.js +2 -2
  151. package/src/sap/ui/rta/service/Property.js +2 -2
  152. package/src/sap/ui/rta/service/Receiver.js +1 -1
  153. package/src/sap/ui/rta/service/Selection.js +2 -2
  154. package/src/sap/ui/rta/service/SupportTools.js +2 -2
  155. package/src/sap/ui/rta/service/index.js +1 -1
  156. package/src/sap/ui/rta/themes/base/Toolbar.adaptation.less +5 -0
  157. package/src/sap/ui/rta/themes/base/library.source.less +1 -1
  158. package/src/sap/ui/rta/themes/sap_hcb/library.source.less +1 -1
  159. package/src/sap/ui/rta/toolbar/ActionsMenu.fragment.xml +6 -0
  160. package/src/sap/ui/rta/toolbar/Adaptation.fragment.xml +22 -9
  161. package/src/sap/ui/rta/toolbar/Adaptation.js +44 -9
  162. package/src/sap/ui/rta/toolbar/AdaptationRenderer.js +1 -1
  163. package/src/sap/ui/rta/toolbar/Base.js +2 -2
  164. package/src/sap/ui/rta/toolbar/BaseRenderer.js +1 -1
  165. package/src/sap/ui/rta/toolbar/Fiori.js +19 -10
  166. package/src/sap/ui/rta/toolbar/FioriLike.js +7 -5
  167. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +2 -2
  168. package/src/sap/ui/rta/toolbar/Standalone.js +2 -2
  169. package/src/sap/ui/rta/toolbar/contextBased/ManageAdaptations.js +1 -1
  170. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptation.js +2 -2
  171. package/src/sap/ui/rta/toolbar/translation/Translation.js +2 -2
  172. package/src/sap/ui/rta/toolbar/versioning/Versioning.js +2 -2
  173. package/src/sap/ui/rta/util/Animation.js +1 -1
  174. package/src/sap/ui/rta/util/BindingsExtractor.js +1 -1
  175. package/src/sap/ui/rta/util/PluginManager.js +8 -6
  176. package/src/sap/ui/rta/util/PopupManager.js +2 -2
  177. package/src/sap/ui/rta/util/ReloadManager.js +2 -2
  178. package/src/sap/ui/rta/util/ServiceEventBus.js +2 -2
  179. package/src/sap/ui/rta/util/ServiceManager.js +2 -2
  180. package/src/sap/ui/rta/util/adaptationStarter.js +1 -1
  181. package/src/sap/ui/rta/util/changeVisualization/ChangeCategories.js +1 -1
  182. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +2 -2
  183. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +2 -2
  184. package/src/sap/ui/rta/util/changeVisualization/ChangeStates.js +1 -1
  185. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +4 -4
  186. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualizationUtils.js +1 -1
  187. package/src/sap/ui/rta/util/changeVisualization/commands/CombineVisualization.js +1 -1
  188. package/src/sap/ui/rta/util/changeVisualization/commands/CreateContainerVisualization.js +1 -1
  189. package/src/sap/ui/rta/util/changeVisualization/commands/MoveVisualization.js +1 -1
  190. package/src/sap/ui/rta/util/changeVisualization/commands/RenameVisualization.js +1 -1
  191. package/src/sap/ui/rta/util/changeVisualization/commands/SplitVisualization.js +1 -1
  192. package/src/sap/ui/rta/util/changeVisualization/commands/getCommandVisualization.js +1 -1
  193. package/src/sap/ui/rta/util/guidedTour/GuidedTour.js +242 -0
  194. package/src/sap/ui/rta/util/guidedTour/TourMarker.fragment.xml +50 -0
  195. package/src/sap/ui/rta/util/guidedTour/content/GeneralTour.js +205 -0
  196. package/src/sap/ui/rta/util/hasStableId.js +1 -1
  197. package/src/sap/ui/rta/util/isReuseComponent.js +1 -1
  198. package/src/sap/ui/rta/util/showMessageBox.js +1 -1
  199. package/src/sap/ui/rta/util/validateFlexEnabled.js +1 -1
  200. package/src/sap/ui/rta/util/validateStableIds.js +1 -1
  201. package/src/sap/ui/rta/util/validateText.js +1 -1
  202. package/src/sap/ui/rta/util/whatsNew/WhatsNew.js +8 -4
  203. package/src/sap/ui/rta/util/whatsNew/WhatsNewDialog.fragment.xml +1 -1
  204. package/src/sap/ui/rta/util/whatsNew/WhatsNewOverview.js +1 -1
  205. package/src/sap/ui/rta/util/whatsNew/WhatsNewUtils.js +1 -1
  206. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/WhatsNewFeatures.js +85 -1
  207. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/ChangeLabelsAction.png +0 -0
  208. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/DisplayBehavior.png +0 -0
  209. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/ExtendedActions.png +0 -0
  210. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/GuidedTour.png +0 -0
  211. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/ReloadButtonToolbar.png +0 -0
  212. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/whatsNewImages/RenameDialog.png +0 -0
  213. package/ui5.yaml +1 -1
  214. package/.reuse/dep5 +0 -471
  215. package/src/sap/ui/rta/command/AppDescriptorCommand.js +0 -114
  216. package/src/sap/ui/rta/plugin/RenameHandler.js +0 -477
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.rta.plugin.Plugin
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.134.0
32
+ * @version 1.136.0
33
33
  *
34
34
  * @constructor
35
35
  * @private
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * handled by the AdditionalElements Plugin (Reveal, Add Via Delegate, Add Custom)
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.134.0
35
+ * @version 1.136.0
36
36
  * @private
37
37
  * @since 1.94
38
38
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
  sap.ui.define([
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @class Context - Dialog for available Fields in Runtime Authoring
33
33
  * @extends sap.ui.base.ManagedObject
34
34
  * @author SAP SE
35
- * @version 1.134.0
35
+ * @version 1.136.0
36
36
  * @constructor
37
37
  * @private
38
38
  * @since 1.44
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -119,7 +119,7 @@ sap.ui.define([
119
119
  * @class The plugin allows to add additional elements that exist either hidden in the UI or in the OData service
120
120
  * @extends sap.ui.rta.plugin.Plugin
121
121
  * @author SAP SE
122
- * @version 1.134.0
122
+ * @version 1.136.0
123
123
  * @constructor
124
124
  * @private
125
125
  * @since 1.44
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -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.134.0
20
+ * @version 1.136.0
21
21
  * @private
22
22
  * @since 1.94
23
23
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 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
 
@@ -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.134.0
28
+ * @version 1.136.0
29
29
  * @private
30
30
  * @since 1.94
31
31
  */
@@ -9,9 +9,10 @@
9
9
  resizable="false"
10
10
  draggable="true"
11
11
  contentWidth="50rem"
12
- contentHeight="25rem"
12
+ contentHeight="{= ${/singleRename} === true ? 'auto' : '25rem'}"
13
13
  title="{/title}"
14
14
  class="sapUiContentPadding"
15
+ escapeHandler=".onCancel"
15
16
  >
16
17
  <content>
17
18
  <VBox>
@@ -30,7 +31,11 @@
30
31
  id="sapUiRtaChangeAnnotationDialog_description"
31
32
  visible="{= ${/description}.length > 0}"
32
33
  text="{/description}"/>
33
- <HBox fitContainer="true">
34
+ <HBox
35
+ id="sapUiRtaChangeAnnotationDialog_filterHBox"
36
+ fitContainer="true"
37
+ visible="{= ${/singleRename} === false}"
38
+ >
34
39
  <SearchField
35
40
  id="sapUiRtaChangeAnnotationDialog_propertiesFilter"
36
41
  placeholder="{i18n>ANNOTATION_CHANGE_DIALOG_PROPERTY_SEARCH}"
@@ -54,9 +59,9 @@
54
59
  <f:Form editable="true">
55
60
  <f:layout>
56
61
  <f:ResponsiveGridLayout
57
- labelSpanXL="3"
58
- labelSpanL="3"
59
- labelSpanM="3"
62
+ labelSpanXL="4"
63
+ labelSpanL="4"
64
+ labelSpanM="4"
60
65
  labelSpanS="12"
61
66
  adjustLabelSpan="false"
62
67
  emptySpanXL="0"
@@ -77,10 +82,9 @@
77
82
  <beginButton>
78
83
  <Button
79
84
  id="sapUiRtaChangeAnnotationDialog_saveButton"
80
- enabled="{= ${path: '/properties', formatter: '.hasChangesFormatter'}}"
81
85
  type="Emphasized"
82
- text="{i18n>ANNOTATION_CHANGE_DIALOG_SAVE}"
83
- press="onSavePress"
86
+ text="{i18n>ANNOTATION_CHANGE_DIALOG_CONFIRM}"
87
+ press="onSave"
84
88
  />
85
89
  </beginButton>
86
90
  <endButton>
@@ -88,7 +92,7 @@
88
92
  id="sapUiRtaChangeAnnotationDialog_cancelButton"
89
93
  type="Transparent"
90
94
  text="{i18n>ANNOTATION_CHANGE_DIALOG_CANCEL}"
91
- press="onCancelPress"
95
+ press="onCancel"
92
96
  />
93
97
  </endButton>
94
98
  </Dialog>
@@ -1,12 +1,13 @@
1
1
 
2
2
  /*!
3
3
  * OpenUI5
4
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2025 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([
8
8
  "sap/ui/base/ManagedObject",
9
9
  "sap/ui/core/Fragment",
10
+ "sap/ui/dt/ElementUtil",
10
11
  "sap/ui/fl/write/api/PersistenceWriteAPI",
11
12
  "sap/ui/model/json/JSONModel",
12
13
  "sap/ui/model/resource/ResourceModel",
@@ -15,6 +16,7 @@ sap.ui.define([
15
16
  ], function(
16
17
  ManagedObject,
17
18
  Fragment,
19
+ ElementUtil,
18
20
  PersistenceWriteAPI,
19
21
  JSONModel,
20
22
  ResourceModel,
@@ -27,7 +29,7 @@ sap.ui.define([
27
29
  * @class Constructor for a new sap.ui.rta.plugin.annotations.AnnotationChangeDialog.
28
30
  * @extends sap.ui.base.ManagedObject
29
31
  * @author SAP SE
30
- * @version 1.134.0
32
+ * @version 1.136.0
31
33
  * @constructor
32
34
  * @since 1.132
33
35
  * @private
@@ -35,6 +37,26 @@ sap.ui.define([
35
37
  */
36
38
  const AnnotationChangeDialog = ManagedObject.extend("sap.ui.rta.plugin.annotations.AnnotationChangeDialog");
37
39
 
40
+ function replaceValue(aProperties, sAnnotationPath, sValue) {
41
+ const oProperty = aProperties.find((oProperty) => oProperty.annotationPath === sAnnotationPath);
42
+ if (oProperty) {
43
+ oProperty.currentValue = sValue;
44
+ oProperty.originalValue = sValue;
45
+ }
46
+ }
47
+
48
+ function replaceCurrentValueWithTextFromControl(aProperties, sPreSelectedProperty, oControl) {
49
+ const aNewLabel = ElementUtil.getLabelForElement(oControl);
50
+ replaceValue(aProperties, sPreSelectedProperty, aNewLabel);
51
+ }
52
+
53
+ function replaceValuesWithValuesFromPendingChanges(aAnnotationChanges, aProperties, bObjectAsKey) {
54
+ aAnnotationChanges.forEach((oChange) => {
55
+ const sAnnotationPath = oChange.getContent().annotationPath;
56
+ replaceValue(aProperties, sAnnotationPath, bObjectAsKey ? JSON.stringify(oChange.getValue()) : oChange.getValue());
57
+ });
58
+ }
59
+
38
60
  AnnotationChangeDialog.prototype._createDialog = async function() {
39
61
  this._oController = new AnnotationChangeDialogController();
40
62
  const oDialog = await Fragment.load({
@@ -63,6 +85,8 @@ sap.ui.define([
63
85
  * @property {string} properties.annotationPath - Path of the property
64
86
  * @property {string} properties.propertyName - Name of the property
65
87
  * @property {string} properties.currentValue - Current value of the property
88
+ * @property {string} [properties.label] - Label of the property. If not given, the property name is used
89
+ * @property {string} [properties.tooltip] - Tooltip of the property
66
90
  * @property {object[]} possibleValues - Array of possible values for value list type properties
67
91
  * @property {string} possibleValues.key - Key of the option
68
92
  * @property {string} possibleValues.text - Text of the option
@@ -83,10 +107,15 @@ sap.ui.define([
83
107
  *
84
108
  * @typedef {object} sap.ui.rta.plugin.annotations.AnnotationChangeDefinition
85
109
  * @property {string} annotationChangeType - Change type
110
+ * @property {string} serviceUrl - Url of the OData service
86
111
  * @property {object} content - Change content
87
112
  * @property {string} content.annotationPath - Path of the property
88
113
  * @property {string} content.value - New value
89
- * @property {string} serviceUrl - Url of the OData service
114
+ * @property {string} content.text - New value as translatable text. If given, the value is ignored
115
+ * @property {object} [content.objectTemplateInfo] - Object template to construct a return object.
116
+ * If given the applyChange function will return an object as value, which is parsed from the template string.
117
+ * @property {string} [content.objectTemplateInfo.templateAsString] - Stringified template to be used for constructing the return object
118
+ * @property {string} [content.objectTemplateInfo.placeholder] - Placeholder in the template string. Will be replaced by the new value
90
119
  * @public
91
120
  */
92
121
 
@@ -110,20 +139,31 @@ sap.ui.define([
110
139
  delegate: oDelegate,
111
140
  control: oControl,
112
141
  annotation: sAnnotation,
113
- description: sAnnotationDescription = ""
142
+ description: sAnnotationDescription,
143
+ singleRename: bSingleRename
114
144
  } = mPropertyBag;
115
145
  const {
116
146
  serviceUrl: sServiceUrl,
117
147
  properties: aDelegateProperties,
118
- possibleValues: aPossibleValues,
148
+ possibleValues: aDelegatePossibleValues,
119
149
  preSelectedProperty: sPreSelectedPropertyKey
120
- } = oDelegate.getAnnotationsChangeInfo(oControl, sAnnotation);
150
+ } = await oDelegate.getAnnotationsChangeInfo(oControl, sAnnotation);
151
+
152
+ const bObjectAsKey = !!aDelegatePossibleValues?.some((oPossibleValue) => typeof oPossibleValue.key === "object");
153
+ // the key could be an object which does not work as property for the Select control
154
+ // therefore the key must be stringified and later parsed
121
155
  const aProperties = aDelegateProperties.map((oProperty) => ({
122
156
  ...oProperty,
123
- originalValue: oProperty.currentValue
157
+ currentValue: bObjectAsKey ? JSON.stringify(oProperty.currentValue) : oProperty.currentValue,
158
+ originalValue: bObjectAsKey ? JSON.stringify(oProperty.currentValue) : oProperty.currentValue,
159
+ label: oProperty.label || oProperty.propertyName
160
+ }));
161
+ const aPossibleValues = (aDelegatePossibleValues || []).map((oPossibleValue) => ({
162
+ ...oPossibleValue,
163
+ key: bObjectAsKey ? JSON.stringify(oPossibleValue.key) : oPossibleValue.key
124
164
  }));
125
165
 
126
- aProperties.sort((oProperty1, oProperty2) => oProperty1.propertyName.localeCompare(oProperty2.propertyName));
166
+ aProperties.sort((oProperty1, oProperty2) => oProperty1.label.localeCompare(oProperty2.label));
127
167
 
128
168
  const aExistingChanges = PersistenceWriteAPI._getAnnotationChanges({
129
169
  control: oControl
@@ -135,25 +175,47 @@ sap.ui.define([
135
175
 
136
176
  this._oDialog ||= await this._createDialog();
137
177
 
138
- const sFilterText = sPreSelectedPropertyKey
139
- ? aProperties.find((oProperty) => oProperty.annotationPath === sPreSelectedPropertyKey).propertyName
140
- : "";
178
+ const sFilterText = (
179
+ sPreSelectedPropertyKey && aProperties.find((oProperty) => oProperty.annotationPath === sPreSelectedPropertyKey)?.label
180
+ ) || "";
181
+
182
+ // default size limit is 100, but we need to display all properties.
183
+ // As the list size is not dynamic, we can set the size limit to the number of properties
184
+ // the size influences all binding sizes, so we only set it if the number of properties is greater than 100
185
+ if (aProperties.length > 100) {
186
+ this.oChangeAnnotationModel.setSizeLimit(aProperties.length);
187
+ }
188
+
189
+ if (bSingleRename) {
190
+ replaceCurrentValueWithTextFromControl(aProperties, sPreSelectedPropertyKey, oControl);
191
+ }
192
+
193
+ // 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);
195
+
141
196
  this.oChangeAnnotationModel.setData({
197
+ objectAsKey: bObjectAsKey,
198
+ control: oControl,
142
199
  title: sAnnotationTitle,
143
- description: sAnnotationDescription,
200
+ description: sAnnotationDescription || "",
144
201
  properties: aProperties, // all properties
145
202
  changedProperties: aProperties.filter(({ annotationPath }) => aChangedAnnotations.includes(annotationPath)),
146
203
  propertiesToDisplay: aProperties, // switches dynamically between all properties and changed properties
147
204
  showChangedPropertiesOnly: false,
148
205
  filterText: sFilterText,
206
+ singleRename: bSingleRename || false,
149
207
  possibleValues: aPossibleValues,
150
208
  valueType: sAnnotationValueType,
151
209
  serviceUrl: sServiceUrl
152
210
  });
153
211
  if (sFilterText) {
154
- this._oController.filterProperties(sFilterText);
212
+ this._oController.filterProperties(sFilterText, !!bSingleRename);
155
213
  }
214
+ // Ensure that the model is fully refreshed before opening the dialog
215
+ this.oChangeAnnotationModel.refresh(true);
156
216
  const aChangedProperties = await this._openDialog();
217
+ // reset filter to not have a filtered list when opening the dialog again
218
+ this._oController.filterProperties("");
157
219
  this._oDialog.close();
158
220
  return aChangedProperties;
159
221
  };
@@ -1,11 +1,12 @@
1
1
 
2
2
  /*!
3
3
  * OpenUI5
4
- * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2025 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([
8
8
  "sap/m/Input",
9
+ "sap/m/Label",
9
10
  "sap/m/Select",
10
11
  "sap/m/Switch",
11
12
  "sap/ui/core/mvc/Controller",
@@ -17,6 +18,7 @@ sap.ui.define([
17
18
  "sap/ui/rta/plugin/annotations/AnnotationTypes"
18
19
  ], function(
19
20
  Input,
21
+ Label,
20
22
  Select,
21
23
  Switch,
22
24
  Controller,
@@ -33,7 +35,7 @@ sap.ui.define([
33
35
  * @class Controller for the AnnotationChangeDialog.
34
36
  * @extends sap.ui.core.mvc.Controller
35
37
  * @author SAP SE
36
- * @version 1.134.0
38
+ * @version 1.136.0
37
39
  * @constructor
38
40
  * @since 1.132
39
41
  * @private
@@ -47,10 +49,10 @@ sap.ui.define([
47
49
  });
48
50
  };
49
51
 
50
- AnnotationChangeDialogController.prototype.filterProperties = function(sQuery) {
52
+ AnnotationChangeDialogController.prototype.filterProperties = function(sQuery, bEquals) {
51
53
  const aFilters = [];
52
54
  if (sQuery && sQuery.length > 0) {
53
- const filter = new Filter("propertyName", FilterOperator.Contains, sQuery);
55
+ const filter = new Filter("label", bEquals ? FilterOperator.EQ : FilterOperator.Contains, sQuery);
54
56
  aFilters.push(filter);
55
57
  }
56
58
 
@@ -67,16 +69,24 @@ sap.ui.define([
67
69
  AnnotationChangeDialogController.prototype.switchDisplayMode = function(oEvent) {
68
70
  const bShowChangedPropertiesOnly = oEvent.getParameter("state");
69
71
  const oList = Element.getElementById("sapUiRtaChangeAnnotationDialog_propertyList");
70
- oList.getModel().setProperty("/showChangedPropertiesOnly", bShowChangedPropertiesOnly);
71
- oList.getModel().setProperty(
72
- "/propertiesToDisplay",
73
- bShowChangedPropertiesOnly
74
- ? oList.getModel().getProperty("/changedProperties")
75
- : oList.getModel().getProperty("/properties")
76
- );
72
+ const oModel = oList.getModel();
73
+ oModel.setProperty("/showChangedPropertiesOnly", bShowChangedPropertiesOnly);
74
+
75
+ if (bShowChangedPropertiesOnly) {
76
+ const aOriginallyChangedProperties = oModel.getProperty("/changedProperties");
77
+ const aAllChangedProperties = oModel.getProperty("/properties").filter((oProperty) => (
78
+ aOriginallyChangedProperties.some((oOriginallyChangedProperty) => (
79
+ oOriginallyChangedProperty.annotationPath === oProperty.annotationPath
80
+ ))
81
+ || oProperty.originalValue !== oProperty.currentValue
82
+ ));
83
+ oModel.setProperty("/propertiesToDisplay", aAllChangedProperties);
84
+ } else {
85
+ oModel.setProperty("/propertiesToDisplay", oModel.getProperty("/properties"));
86
+ }
77
87
  };
78
88
 
79
- AnnotationChangeDialogController.prototype.onSavePress = function(oEvent) {
89
+ AnnotationChangeDialogController.prototype.onSave = function(oEvent) {
80
90
  const oModelData = oEvent.getSource().getModel().getData();
81
91
  const aChanges = oModelData.properties
82
92
  .map((oProperty) => {
@@ -89,30 +99,23 @@ sap.ui.define([
89
99
  annotationPath: oProperty.annotationPath
90
100
  }
91
101
  };
92
- oChangeSpecificData.content[oModelData.valueType === AnnotationTypes.StringType ? "text" : "value"] = oProperty.currentValue;
102
+ oChangeSpecificData.content[oModelData.valueType === AnnotationTypes.StringType ? "text" : "value"] =
103
+ oModelData.objectAsKey ? JSON.parse(oProperty.currentValue) : oProperty.currentValue;
93
104
  return oChangeSpecificData;
94
105
  })
95
106
  .filter(Boolean);
107
+
96
108
  this._fnResolveAfterClose(aChanges);
97
109
  };
98
110
 
99
- AnnotationChangeDialogController.prototype.onCancelPress = function() {
111
+ AnnotationChangeDialogController.prototype.onCancel = function() {
100
112
  this._fnResolveAfterClose([]);
101
113
  };
102
114
 
103
115
  function createEditorField(sValueType) {
104
- const onChange = () => {
105
- // Property updates are handled via two-way binding
106
- // However, the binding of the save button doesn't detect changes
107
- // within nested object properties, so it has to be refreshed explicitly
108
- const oSaveButton = Element.getElementById("sapUiRtaChangeAnnotationDialog_saveButton");
109
- oSaveButton.getBinding("enabled").refresh(true);
110
- };
111
-
112
116
  if (sValueType === AnnotationTypes.ValueListType) {
113
117
  const oSelect = new Select({
114
- selectedKey: "{currentValue}",
115
- change: onChange
118
+ selectedKey: "{currentValue}"
116
119
  });
117
120
 
118
121
  const oItemTemplate = new Item({
@@ -132,14 +135,17 @@ sap.ui.define([
132
135
  if (sValueType === AnnotationTypes.StringType) {
133
136
  return new Input({
134
137
  value: "{currentValue}",
135
- change: onChange
138
+ liveChange: (oEvent) => {
139
+ const sValue = oEvent.getParameter("newValue");
140
+ const oContext = oEvent.getSource().getBindingContext();
141
+ oEvent.getSource().getModel().setProperty("currentValue", sValue, oContext);
142
+ }
136
143
  });
137
144
  }
138
145
 
139
146
  if (sValueType === AnnotationTypes.BooleanType) {
140
147
  return new Switch({
141
- state: "{currentValue}",
142
- change: onChange
148
+ state: "{currentValue}"
143
149
  });
144
150
  }
145
151
 
@@ -148,19 +154,19 @@ sap.ui.define([
148
154
 
149
155
  AnnotationChangeDialogController.prototype.editorFactory = function(sId, oContext) {
150
156
  const sValueType = oContext.getProperty("/valueType");
157
+ const bSingleRename = oContext.getProperty("/singleRename");
151
158
 
152
159
  return new FormElement({
153
160
  id: sId,
154
- label: "{propertyName}",
161
+ label: new Label({
162
+ text: bSingleRename ? "{i18n>ANNOTATION_CHANGE_DIALOG_SINGLE_RENAME_LABEL}" : "{= ${label} || ${propertyName}}",
163
+ tooltip: "{tooltip}"
164
+ }),
155
165
  fields: [
156
166
  createEditorField.call(this, sValueType)
157
167
  ]
158
168
  });
159
169
  };
160
170
 
161
- AnnotationChangeDialogController.prototype.hasChangesFormatter = function(aProperties) {
162
- return aProperties?.some((oProperty) => oProperty.originalValue !== oProperty.currentValue);
163
- };
164
-
165
171
  return AnnotationChangeDialogController;
166
172
  });