@openui5/sap.ui.rta 1.136.1 → 1.138.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 (177) hide show
  1. package/REUSE.toml +0 -28
  2. package/THIRDPARTY.txt +1 -25
  3. package/package.json +6 -6
  4. package/src/sap/ui/rta/.library +1 -1
  5. package/src/sap/ui/rta/Client.js +1 -1
  6. package/src/sap/ui/rta/RuntimeAuthoring.js +33 -22
  7. package/src/sap/ui/rta/Utils.js +1 -1
  8. package/src/sap/ui/rta/appVariant/AppVariantManager.js +1 -1
  9. package/src/sap/ui/rta/command/AddIFrame.js +1 -1
  10. package/src/sap/ui/rta/command/AddProperty.js +1 -1
  11. package/src/sap/ui/rta/command/AddXML.js +1 -1
  12. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +1 -1
  13. package/src/sap/ui/rta/command/AnnotationCommand.js +1 -1
  14. package/src/sap/ui/rta/command/BaseCommand.js +1 -1
  15. package/src/sap/ui/rta/command/BindProperty.js +1 -1
  16. package/src/sap/ui/rta/command/Combine.js +1 -1
  17. package/src/sap/ui/rta/command/CommandFactory.js +1 -1
  18. package/src/sap/ui/rta/command/CompositeCommand.js +1 -1
  19. package/src/sap/ui/rta/command/ControlVariantConfigure.js +1 -1
  20. package/src/sap/ui/rta/command/ControlVariantSave.js +1 -1
  21. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +1 -1
  22. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +1 -1
  23. package/src/sap/ui/rta/command/ControlVariantSwitch.js +1 -1
  24. package/src/sap/ui/rta/command/CreateContainer.js +1 -1
  25. package/src/sap/ui/rta/command/CustomAdd.js +1 -1
  26. package/src/sap/ui/rta/command/ExtendControllerCommand.js +1 -1
  27. package/src/sap/ui/rta/command/FlexCommand.js +2 -3
  28. package/src/sap/ui/rta/command/LREPSerializer.js +2 -85
  29. package/src/sap/ui/rta/command/LocalReset.js +1 -1
  30. package/src/sap/ui/rta/command/ManifestCommand.js +1 -1
  31. package/src/sap/ui/rta/command/Move.js +1 -1
  32. package/src/sap/ui/rta/command/Property.js +1 -1
  33. package/src/sap/ui/rta/command/Remove.js +1 -1
  34. package/src/sap/ui/rta/command/Rename.js +1 -1
  35. package/src/sap/ui/rta/command/Resize.js +1 -1
  36. package/src/sap/ui/rta/command/Reveal.js +1 -1
  37. package/src/sap/ui/rta/command/Settings.js +1 -1
  38. package/src/sap/ui/rta/command/Split.js +1 -1
  39. package/src/sap/ui/rta/command/Stack.js +115 -87
  40. package/src/sap/ui/rta/command/compVariant/CompVariantContent.js +1 -1
  41. package/src/sap/ui/rta/command/compVariant/CompVariantSaveAs.js +1 -1
  42. package/src/sap/ui/rta/command/compVariant/CompVariantSwitch.js +1 -1
  43. package/src/sap/ui/rta/command/compVariant/CompVariantUpdate.js +1 -1
  44. package/src/sap/ui/rta/command/manifest/AddLibrary.js +1 -1
  45. package/src/sap/ui/rta/enablement/elementActionTest.js +1 -1
  46. package/src/sap/ui/rta/library.js +2 -2
  47. package/src/sap/ui/rta/messagebundle.properties +12 -60
  48. package/src/sap/ui/rta/messagebundle_ar.properties +17 -41
  49. package/src/sap/ui/rta/messagebundle_bg.properties +17 -41
  50. package/src/sap/ui/rta/messagebundle_ca.properties +17 -41
  51. package/src/sap/ui/rta/messagebundle_cnr.properties +17 -41
  52. package/src/sap/ui/rta/messagebundle_cs.properties +16 -40
  53. package/src/sap/ui/rta/messagebundle_cy.properties +17 -41
  54. package/src/sap/ui/rta/messagebundle_da.properties +17 -41
  55. package/src/sap/ui/rta/messagebundle_de.properties +15 -39
  56. package/src/sap/ui/rta/messagebundle_el.properties +17 -41
  57. package/src/sap/ui/rta/messagebundle_en.properties +18 -42
  58. package/src/sap/ui/rta/messagebundle_en_GB.properties +18 -42
  59. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +102 -35
  60. package/src/sap/ui/rta/messagebundle_es.properties +43 -67
  61. package/src/sap/ui/rta/messagebundle_es_MX.properties +17 -41
  62. package/src/sap/ui/rta/messagebundle_et.properties +18 -42
  63. package/src/sap/ui/rta/messagebundle_fi.properties +17 -41
  64. package/src/sap/ui/rta/messagebundle_fr.properties +18 -42
  65. package/src/sap/ui/rta/messagebundle_fr_CA.properties +18 -42
  66. package/src/sap/ui/rta/messagebundle_hi.properties +17 -41
  67. package/src/sap/ui/rta/messagebundle_hr.properties +18 -42
  68. package/src/sap/ui/rta/messagebundle_hu.properties +17 -41
  69. package/src/sap/ui/rta/messagebundle_id.properties +22 -46
  70. package/src/sap/ui/rta/messagebundle_it.properties +17 -41
  71. package/src/sap/ui/rta/messagebundle_iw.properties +18 -42
  72. package/src/sap/ui/rta/messagebundle_ja.properties +20 -44
  73. package/src/sap/ui/rta/messagebundle_kk.properties +23 -47
  74. package/src/sap/ui/rta/messagebundle_ko.properties +18 -42
  75. package/src/sap/ui/rta/messagebundle_lt.properties +17 -41
  76. package/src/sap/ui/rta/messagebundle_lv.properties +17 -41
  77. package/src/sap/ui/rta/messagebundle_mk.properties +19 -43
  78. package/src/sap/ui/rta/messagebundle_ms.properties +17 -41
  79. package/src/sap/ui/rta/messagebundle_nl.properties +16 -40
  80. package/src/sap/ui/rta/messagebundle_no.properties +17 -41
  81. package/src/sap/ui/rta/messagebundle_pl.properties +20 -44
  82. package/src/sap/ui/rta/messagebundle_pt.properties +17 -41
  83. package/src/sap/ui/rta/messagebundle_pt_PT.properties +18 -42
  84. package/src/sap/ui/rta/messagebundle_ro.properties +17 -41
  85. package/src/sap/ui/rta/messagebundle_ru.properties +17 -41
  86. package/src/sap/ui/rta/messagebundle_sh.properties +17 -41
  87. package/src/sap/ui/rta/messagebundle_sk.properties +13 -37
  88. package/src/sap/ui/rta/messagebundle_sl.properties +38 -62
  89. package/src/sap/ui/rta/messagebundle_sr.properties +17 -41
  90. package/src/sap/ui/rta/messagebundle_sv.properties +18 -42
  91. package/src/sap/ui/rta/messagebundle_th.properties +18 -42
  92. package/src/sap/ui/rta/messagebundle_tr.properties +17 -41
  93. package/src/sap/ui/rta/messagebundle_uk.properties +18 -42
  94. package/src/sap/ui/rta/messagebundle_vi.properties +19 -43
  95. package/src/sap/ui/rta/messagebundle_zh_CN.properties +18 -42
  96. package/src/sap/ui/rta/messagebundle_zh_TW.properties +18 -42
  97. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +1 -1
  98. package/src/sap/ui/rta/plugin/AddXMLPlugin.js +1 -1
  99. package/src/sap/ui/rta/plugin/BaseCreate.js +1 -1
  100. package/src/sap/ui/rta/plugin/Combine.js +1 -1
  101. package/src/sap/ui/rta/plugin/ControlVariant.js +1 -1
  102. package/src/sap/ui/rta/plugin/CreateContainer.js +1 -1
  103. package/src/sap/ui/rta/plugin/CutPaste.js +1 -1
  104. package/src/sap/ui/rta/plugin/DragDrop.js +1 -1
  105. package/src/sap/ui/rta/plugin/ExtendControllerPlugin.js +1 -1
  106. package/src/sap/ui/rta/plugin/LocalReset.js +1 -1
  107. package/src/sap/ui/rta/plugin/Plugin.js +1 -1
  108. package/src/sap/ui/rta/plugin/RTAElementMover.js +1 -1
  109. package/src/sap/ui/rta/plugin/Remove.js +1 -1
  110. package/src/sap/ui/rta/plugin/Resize.js +1 -1
  111. package/src/sap/ui/rta/plugin/Selection.js +14 -7
  112. package/src/sap/ui/rta/plugin/Settings.js +1 -1
  113. package/src/sap/ui/rta/plugin/Split.js +1 -1
  114. package/src/sap/ui/rta/plugin/Stretch.js +1 -1
  115. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +11 -1
  116. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +1 -1
  117. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +1 -1
  118. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +1 -1
  119. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +1 -1
  120. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.fragment.xml +16 -3
  121. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialog.js +1 -1
  122. package/src/sap/ui/rta/plugin/annotations/AnnotationChangeDialogController.js +1 -1
  123. package/src/sap/ui/rta/plugin/annotations/AnnotationPlugin.js +3 -3
  124. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +1 -1
  125. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.fragment.xml +2 -2
  126. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +1 -1
  127. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +23 -6
  128. package/src/sap/ui/rta/plugin/rename/Rename.js +1 -1
  129. package/src/sap/ui/rta/plugin/rename/RenameDialog.js +1 -1
  130. package/src/sap/ui/rta/service/Action.js +1 -1
  131. package/src/sap/ui/rta/service/ControllerExtension.js +1 -1
  132. package/src/sap/ui/rta/service/Outline.js +1 -1
  133. package/src/sap/ui/rta/service/Property.js +1 -1
  134. package/src/sap/ui/rta/service/Selection.js +1 -1
  135. package/src/sap/ui/rta/service/SupportTools.js +1 -1
  136. package/src/sap/ui/rta/toolbar/ActionsMenu.fragment.xml +4 -4
  137. package/src/sap/ui/rta/toolbar/Adaptation.js +15 -3
  138. package/src/sap/ui/rta/toolbar/Base.js +1 -1
  139. package/src/sap/ui/rta/toolbar/Fiori.js +1 -1
  140. package/src/sap/ui/rta/toolbar/FioriLike.js +1 -1
  141. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +1 -1
  142. package/src/sap/ui/rta/toolbar/Standalone.js +1 -1
  143. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptation.js +1 -1
  144. package/src/sap/ui/rta/toolbar/translation/Translation.js +1 -1
  145. package/src/sap/ui/rta/toolbar/versioning/Versioning.js +1 -1
  146. package/src/sap/ui/rta/util/Animation.js +4 -6
  147. package/src/sap/ui/rta/util/BindingsExtractor.js +44 -53
  148. package/src/sap/ui/rta/util/PluginManager.js +6 -6
  149. package/src/sap/ui/rta/util/PopupManager.js +90 -109
  150. package/src/sap/ui/rta/util/ReloadManager.js +53 -98
  151. package/src/sap/ui/rta/util/ServiceEventBus.js +3 -4
  152. package/src/sap/ui/rta/util/ServiceManager.js +1 -1
  153. package/src/sap/ui/rta/util/adaptationStarter.js +59 -80
  154. package/src/sap/ui/rta/util/changeVisualization/ChangeCategories.js +3 -3
  155. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +1 -1
  156. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +1 -1
  157. package/src/sap/ui/rta/util/changeVisualization/ChangeStates.js +2 -4
  158. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +1 -1
  159. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualizationUtils.js +5 -7
  160. package/src/sap/ui/rta/util/changeVisualization/commands/CombineVisualization.js +9 -9
  161. package/src/sap/ui/rta/util/changeVisualization/commands/CreateContainerVisualization.js +5 -5
  162. package/src/sap/ui/rta/util/changeVisualization/commands/MoveVisualization.js +8 -8
  163. package/src/sap/ui/rta/util/changeVisualization/commands/RenameVisualization.js +5 -5
  164. package/src/sap/ui/rta/util/changeVisualization/commands/SplitVisualization.js +5 -5
  165. package/src/sap/ui/rta/util/changeVisualization/commands/getCommandVisualization.js +2 -2
  166. package/src/sap/ui/rta/util/guidedTour/GuidedTour.js +1 -1
  167. package/src/sap/ui/rta/util/guidedTour/content/GeneralTour.js +1 -1
  168. package/src/sap/ui/rta/util/hasStableId.js +11 -19
  169. package/src/sap/ui/rta/util/showMessageBox.js +15 -15
  170. package/src/sap/ui/rta/util/validateFlexEnabled.js +35 -34
  171. package/src/sap/ui/rta/util/validateStableIds.js +22 -31
  172. package/src/sap/ui/rta/util/validateText.js +7 -7
  173. package/src/sap/ui/rta/util/whatsNew/WhatsNew.js +33 -7
  174. package/src/sap/ui/rta/util/whatsNew/WhatsNewOverview.js +2 -6
  175. package/src/sap/ui/rta/util/whatsNew/WhatsNewOverviewDialog.fragment.xml +1 -0
  176. package/src/sap/ui/rta/util/whatsNew/WhatsNewUtils.js +4 -4
  177. package/src/sap/ui/rta/util/whatsNew/whatsNewContent/WhatsNewFeatures.js +8 -22
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @class
17
17
  * @extends sap.ui.rta.command.FlexCommand
18
18
  * @author SAP SE
19
- * @version 1.136.1
19
+ * @version 1.138.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.34
@@ -12,7 +12,7 @@ sap.ui.define(["sap/ui/rta/command/FlexCommand"], function(FlexCommand) {
12
12
  * @class
13
13
  * @extends sap.ui.rta.command.FlexCommand
14
14
  * @author SAP SE
15
- * @version 1.136.1
15
+ * @version 1.138.0
16
16
  * @constructor
17
17
  * @private
18
18
  * @since 1.42
@@ -12,7 +12,7 @@ sap.ui.define(["sap/ui/rta/command/FlexCommand"], function(FlexCommand) {
12
12
  * @class
13
13
  * @extends sap.ui.rta.command.FlexCommand
14
14
  * @author SAP SE
15
- * @version 1.136.1
15
+ * @version 1.138.0
16
16
  * @constructor
17
17
  * @private
18
18
  * @since 1.34
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @class
17
17
  * @extends sap.ui.rta.command.FlexCommand
18
18
  * @author SAP SE
19
- * @version 1.136.1
19
+ * @version 1.138.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.101
@@ -12,7 +12,7 @@ sap.ui.define(["sap/ui/rta/command/FlexCommand"], function(FlexCommand) {
12
12
  * @class
13
13
  * @extends sap.ui.rta.command.FlexCommand
14
14
  * @author SAP SE
15
- * @version 1.136.1
15
+ * @version 1.138.0
16
16
  * @constructor
17
17
  * @private
18
18
  * @since 1.44
@@ -12,7 +12,7 @@ sap.ui.define(["sap/ui/rta/command/FlexCommand"], function(FlexCommand) {
12
12
  * @class
13
13
  * @extends sap.ui.rta.command.FlexCommand
14
14
  * @author SAP SE
15
- * @version 1.136.1
15
+ * @version 1.138.0
16
16
  * @constructor
17
17
  * @private
18
18
  * @since 1.44
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  * @class
15
15
  * @extends sap.ui.rta.command.FlexCommand
16
16
  * @author SAP SE
17
- * @version 1.136.1
17
+ * @version 1.138.0
18
18
  * @constructor
19
19
  * @private
20
20
  * @since 1.46
@@ -5,22 +5,26 @@
5
5
  */
6
6
  sap.ui.define([
7
7
  "sap/ui/base/ManagedObject",
8
+ "sap/ui/core/util/reflection/JsControlTreeModifier",
9
+ "sap/ui/core/Lib",
8
10
  "sap/ui/fl/write/api/PersistenceWriteAPI",
9
11
  "sap/ui/fl/Utils",
10
- "sap/ui/rta/command/Settings",
11
12
  "sap/ui/rta/command/CompositeCommand",
12
- "sap/ui/core/util/reflection/JsControlTreeModifier",
13
- "sap/ui/rta/util/showMessageBox",
14
- "sap/ui/core/Lib"
13
+ "sap/ui/rta/command/FlexCommand",
14
+ "sap/ui/rta/command/ManifestCommand",
15
+ "sap/ui/rta/command/Settings",
16
+ "sap/ui/rta/util/showMessageBox"
15
17
  ], function(
16
18
  ManagedObject,
19
+ JsControlTreeModifier,
20
+ Lib,
17
21
  PersistenceWriteAPI,
18
22
  FlUtils,
19
- Settings,
20
23
  CompositeCommand,
21
- JsControlTreeModifier,
22
- showMessageBox,
23
- Lib
24
+ FlexCommand,
25
+ ManifestCommand,
26
+ Settings,
27
+ showMessageBox
24
28
  ) {
25
29
  "use strict";
26
30
 
@@ -88,7 +92,7 @@ sap.ui.define([
88
92
  * @class
89
93
  * @extends sap.ui.base.ManagedObject
90
94
  * @author SAP SE
91
- * @version 1.136.1
95
+ * @version 1.138.0
92
96
  * @constructor
93
97
  * @private
94
98
  * @since 1.34
@@ -112,7 +116,16 @@ sap.ui.define([
112
116
  lastCommandExecuted: {
113
117
  type: "object",
114
118
  defaultValue: Promise.resolve()
119
+ },
120
+
121
+ /**
122
+ * Promise is resolved when last command of the stack is unexecuted
123
+ */
124
+ lastCommandUnExecuted: {
125
+ type: "object",
126
+ defaultValue: Promise.resolve()
115
127
  }
128
+
116
129
  },
117
130
  aggregations: {
118
131
  commands: {
@@ -122,20 +135,9 @@ sap.ui.define([
122
135
  },
123
136
  events: {
124
137
  /**
125
- * Fired if the Stack changes because of a change execution or if all commands get removed.
126
- * In case of change execution the modified event will be fired after the commandExecuted event.
138
+ * Fired if the Stack changes because of a change execution or if commands get removed.
127
139
  */
128
- modified: {},
129
-
130
- /**
131
- * Fired after a successful execution of a command (also includes undo).
132
- */
133
- commandExecuted: {
134
- parameters: {
135
- command: {type: "object"},
136
- undo: {type: "boolean"}
137
- }
138
- }
140
+ modified: {}
139
141
  }
140
142
  }
141
143
  });
@@ -173,33 +175,11 @@ sap.ui.define([
173
175
  return Promise.resolve(oStack);
174
176
  };
175
177
 
176
- /**
177
- * @param {function} fnHandler Handler are called when commands are executed or undone. They get parameter
178
- * like the commandExecuted event and the stack will wait for any processing
179
- * until they are done.
180
- */
181
- Stack.prototype.addCommandExecutionHandler = function(fnHandler) {
182
- this._aCommandExecutionHandler.push(fnHandler);
183
- };
184
-
185
- Stack.prototype.removeCommandExecutionHandler = function(fnHandler) {
186
- var i = this._aCommandExecutionHandler.indexOf(fnHandler);
187
- if (i > -1) {
188
- this._aCommandExecutionHandler.splice(i, 1);
189
- }
190
- };
191
-
192
178
  Stack.prototype.init = function() {
193
179
  this._aCommandExecutionHandler = [];
194
180
  this._toBeExecuted = -1;
195
181
  };
196
182
 
197
- Stack.prototype._waitForCommandExecutionHandler = function(mParam) {
198
- return Promise.all(this._aCommandExecutionHandler.map(function(fnHandler) {
199
- return fnHandler(mParam);
200
- }));
201
- };
202
-
203
183
  Stack.prototype._getCommandToBeExecuted = function() {
204
184
  return this.getCommands()[this._toBeExecuted];
205
185
  };
@@ -256,36 +236,88 @@ sap.ui.define([
256
236
  return this.getCommands().length === 0;
257
237
  };
258
238
 
239
+ async function addCommandChangesToPersistence(oCommand) {
240
+ let oAppComponent;
241
+ const aSubCommands = this.getSubCommands(oCommand);
242
+ const aManifestPromises = [];
243
+ let aChanges = aSubCommands.map((oSubCommand) => {
244
+ // Filter out runtime only changes
245
+ if (oSubCommand.getRuntimeOnly()) {
246
+ return undefined;
247
+ }
248
+ // Manifest changes are stored separately
249
+ if (oSubCommand instanceof ManifestCommand) {
250
+ aManifestPromises.push(oSubCommand.createAndStoreChange());
251
+ return undefined;
252
+ }
253
+ if (oSubCommand instanceof FlexCommand) {
254
+ oAppComponent = oSubCommand.getAppComponent();
255
+ if (oAppComponent) {
256
+ return oSubCommand.getPreparedChange();
257
+ }
258
+ }
259
+ return undefined;
260
+ }).filter(Boolean);
261
+ await Promise.all(aManifestPromises);
262
+ // Filter out persisted changes
263
+ if (this._aPersistedChanges) {
264
+ aChanges = aChanges.filter((oChange) => this._aPersistedChanges.indexOf(oChange.getId()) === -1);
265
+ }
266
+ if (oAppComponent) {
267
+ PersistenceWriteAPI.add({
268
+ flexObjects: aChanges,
269
+ selector: oAppComponent
270
+ });
271
+ }
272
+ }
273
+
274
+ function removeCommandChangesFromPersistence(oCommand) {
275
+ let oAppComponent;
276
+ const aFlexObjects = [];
277
+ const aSubCommands = this.getSubCommands(oCommand);
278
+ aSubCommands.forEach((oSubCommand) => {
279
+ // for revertable changes which don't belong to LREP (variantSwitch) or runtime only changes
280
+ if (!(oSubCommand instanceof FlexCommand || oSubCommand instanceof ManifestCommand)
281
+ || oSubCommand.getRuntimeOnly()) {
282
+ return;
283
+ }
284
+ const oChange = oSubCommand.getPreparedChange();
285
+ oAppComponent = oSubCommand.getAppComponent();
286
+ if (oAppComponent) {
287
+ aFlexObjects.push(oChange);
288
+ }
289
+ });
290
+ if (oAppComponent) {
291
+ PersistenceWriteAPI.remove({
292
+ flexObjects: aFlexObjects,
293
+ selector: oAppComponent
294
+ });
295
+ }
296
+ }
297
+
259
298
  Stack.prototype.execute = function() {
260
299
  this.setLastCommandExecuted(
261
- this.getLastCommandExecuted().catch(function() {
300
+ this.getLastCommandExecuted().catch(() => {
262
301
  // continue also if previous command failed
263
- }).then(function() {
302
+ }).then(async () => {
264
303
  var oCommand = this._getCommandToBeExecuted();
265
304
  if (oCommand) {
266
- var mParam = {
267
- command: oCommand,
268
- undo: false
269
- };
270
- return oCommand.execute()
271
-
272
- .then(this._waitForCommandExecutionHandler.bind(this, mParam))
273
-
274
- .then(function() {
305
+ try {
306
+ await addCommandChangesToPersistence.call(this, oCommand);
307
+ await oCommand.execute();
275
308
  this._toBeExecuted--;
276
309
  const aDiscardedChanges = oCommand.getDiscardedChanges?.();
277
310
  if (aDiscardedChanges) {
278
311
  handleDiscardedChanges.call(this, aDiscardedChanges, false);
279
312
  }
280
- this.fireCommandExecuted(mParam);
281
313
  this.fireModified();
282
- }.bind(this))
283
-
284
- .catch(function(oError) {
285
- oError ||= new Error("Executing of the change failed.");
314
+ } catch (oCaughtError) {
315
+ const oError = oCaughtError || new Error("Executing of the change failed.");
286
316
  oError.index = this._toBeExecuted;
287
317
  oError.command = this.removeCommand(this._toBeExecuted); // remove failing command
288
318
  this._toBeExecuted--;
319
+ // Remove Flex Changes for failed command from persistence
320
+ removeCommandChangesFromPersistence.call(this, oError.command);
289
321
  var oRtaResourceBundle = Lib.getResourceBundleFor("sap.ui.rta");
290
322
  // AddXMLAtExtensionPoint errors explain to the user what they did wrong, so they shouldn't open an incident
291
323
  const sErrorMessage = oCommand.isA("sap.ui.rta.command.AddXMLAtExtensionPoint") ?
@@ -295,41 +327,37 @@ sap.ui.define([
295
327
  {title: oRtaResourceBundle.getText("HEADER_ERROR")},
296
328
  "error"
297
329
  );
298
- return Promise.reject(oError);
299
- }.bind(this));
330
+ throw oError;
331
+ }
300
332
  }
301
333
  return undefined;
302
- }.bind(this))
334
+ })
303
335
  );
304
336
  return this.getLastCommandExecuted();
305
337
  };
306
338
 
307
339
  Stack.prototype._unExecute = function() {
308
- if (this.canUndo()) {
309
- this._bUndoneCommands = true;
310
- this._toBeExecuted++;
311
- var oCommand = this._getCommandToBeExecuted();
312
- const aDiscardedChanges = oCommand.getDiscardedChanges?.();
313
- if (oCommand) {
314
- var mParam = {
315
- command: oCommand,
316
- undo: true
317
- };
318
- return oCommand.undo()
319
-
320
- .then(this._waitForCommandExecutionHandler.bind(this, mParam))
321
-
322
- .then(function() {
323
- if (aDiscardedChanges) {
324
- handleDiscardedChanges.call(this, aDiscardedChanges, true);
340
+ this.setLastCommandUnExecuted(
341
+ this.getLastCommandUnExecuted().catch(() => {
342
+ // continue also if previous undo failed
343
+ }).then(async () => {
344
+ if (this.canUndo()) {
345
+ this._bUndoneCommands = true;
346
+ this._toBeExecuted++;
347
+ var oCommand = this._getCommandToBeExecuted();
348
+ const aDiscardedChanges = oCommand.getDiscardedChanges?.();
349
+ if (oCommand) {
350
+ await oCommand.undo();
351
+ removeCommandChangesFromPersistence.call(this, oCommand);
352
+ if (aDiscardedChanges) {
353
+ handleDiscardedChanges.call(this, aDiscardedChanges, true);
354
+ }
355
+ this.fireModified();
325
356
  }
326
- this.fireCommandExecuted(mParam);
327
- this.fireModified();
328
- }.bind(this));
329
- }
330
- return Promise.resolve();
331
- }
332
- return Promise.resolve();
357
+ }
358
+ })
359
+ );
360
+ return this.getLastCommandUnExecuted();
333
361
  };
334
362
 
335
363
  Stack.prototype.canUndo = function() {
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @class
21
21
  * @extends sap.ui.rta.command.BaseCommand
22
22
  * @author SAP SE
23
- * @version 1.136.1
23
+ * @version 1.138.0
24
24
  * @constructor
25
25
  * @private
26
26
  * @since 1.102
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @class
21
21
  * @extends sap.ui.rta.command.BaseCommand
22
22
  * @author SAP SE
23
- * @version 1.136.1
23
+ * @version 1.138.0
24
24
  * @constructor
25
25
  * @private
26
26
  * @since 1.87
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * @class
19
19
  * @extends sap.ui.rta.command.BaseCommand
20
20
  * @author SAP SE
21
- * @version 1.136.1
21
+ * @version 1.138.0
22
22
  * @constructor
23
23
  * @private
24
24
  * @since 1.87
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @class
23
23
  * @extends sap.ui.rta.command.BaseCommand
24
24
  * @author SAP SE
25
- * @version 1.136.1
25
+ * @version 1.138.0
26
26
  * @constructor
27
27
  * @private
28
28
  * @since 1.87
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.rta.command.ManifestCommand
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.136.1
22
+ * @version 1.138.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * E.g. <code>elementActionTest.only("Remove");</code>
62
62
  *
63
63
  * @author SAP SE
64
- * @version 1.136.1
64
+ * @version 1.138.0
65
65
  *
66
66
  * @static
67
67
  * @since 1.42
@@ -22,14 +22,14 @@ sap.ui.define([
22
22
  * @namespace
23
23
  * @alias sap.ui.rta
24
24
  * @author SAP SE
25
- * @version 1.136.1
25
+ * @version 1.138.0
26
26
  * @since 1.50
27
27
  * @private
28
28
  */
29
29
  var thisLib = Lib.init({
30
30
  name: "sap.ui.rta",
31
31
  apiVersion: 2,
32
- version: "1.136.1",
32
+ version: "1.138.0",
33
33
  dependencies: ["sap.ui.core", "sap.m", "sap.ui.fl", "sap.ui.dt"],
34
34
  types: [],
35
35
  interfaces: [],
@@ -89,6 +89,10 @@ HEADER_ADDITIONAL_ELEMENTS=Available Content\: {0}
89
89
  HEADER_ADDITIONAL_ELEMENTS_WITH_AGGREGATION=Available Content for\: {0}
90
90
  #XBUT: Tooltip for Apps Variant menu in RTA Toolbar
91
91
  BTN_MANAGE_APPS_TXT=App Variants
92
+ #XTOL: Tooltip for App Variants Menut Item in the RTA Toolbar
93
+ TOOLTIP_MANAGE_APPS_TXT_DISABLED=App variants are not supported for this app.
94
+ #XTOL: Tooltip for App Variants 'Save As' Menu Item in the RTA Toolbar
95
+ TOOLTIP_SAVE_AS_APP_VARIANT_DISABLED=Only active versions can be saved as app variants. Please activate your draft.
92
96
  #XBUT: Tooltip for Manage Apps Variant submenu item in RTA Toolbar
93
97
  BTN_MANAGE_APPS_ITEM=Manage
94
98
  #XBUT: Button 'Save As' of the Toolbar
@@ -191,8 +195,6 @@ TIT_DOWNLOAD_CHANGED_TEXTS=Download
191
195
  MSG_DOWNLOAD_CHANGED_TEXTS=Download an XLIFF file containing translations of changed UI texts. Already existing translations for these texts are included.
192
196
  #XBUT: Button text to cancel the Download Changed UI Texts dialog
193
197
  BUT_DOWNLOAD_CHANGED_TEXTS_CANCEL=Cancel
194
- #MSG: Placeholder for the source language dropdown field
195
- TXT_SOURCE_LANGUAGE=Source Language
196
198
  #MSG: Placeholder for the target language dropdown field
197
199
  TXT_TARGET_LANGUAGE=Target Language
198
200
  #XBUT: Button 'Navigation' of the Toolbar
@@ -209,8 +211,6 @@ MSG_RESTORE_FAILED=Sorry, your UI changes cannot be discarded at this time. Plea
209
211
  FORM_PERS_RESET_TITLE=Reset to Standard Version
210
212
  #XMSG: reset confirmation dialog message
211
213
  FORM_PERS_RESET_MESSAGE=Do you want to discard all UI changes and reset the app to the standard version?
212
- #XMSG: reset confirmation dialog message in personalization mode
213
- FORM_PERS_RESET_MESSAGE_PERSONALIZATION=Do you want to discard all your personalization changes and reset the app?
214
214
  #XMSG: Error message presented if a technical error occurred
215
215
  MSG_LREP_TRANSFER_ERROR=Sorry, a technical error occurred. Please try again later, or contact your administrator.
216
216
  #XMSG: Error message showing the reason (technical info)
@@ -231,8 +231,6 @@ BTN_UNSAVED_CHANGES_ON_CLOSE_DONT_SAVE=Discard
231
231
  MSG_UNSAVED_CHANGES=If you confirm, all your UI changes will be lost. To save them, close this dialog box, and exit UI Adaptation.
232
232
  #XMSG: Message when no fields are available in the add-field-dialog
233
233
  MSG_NO_FIELDS=No more content available
234
- #XHED: Dialog title for personalization exists
235
- HEADER_PERSONALIZATION_EXISTS=Information
236
234
  #XMSG: Dialog message for personalization exists
237
235
  MSG_PERSONALIZATION_OR_PUBLIC_VIEWS_EXISTS=You have personalized the app or there are public views. The app is reloading without these changes.
238
236
  #XMSG: MessageToast to warn users that changes made in navigation mode will be discarded after exit
@@ -257,8 +255,6 @@ MSG_RESTRICTED_CONTEXT_EXIST_AND_PERSONALIZATION=You have personalized the app,
257
255
  MSG_RESTRICTED_CONTEXT_EXIST=Role-specific views are available for this app. The app is reloading with these views.
258
256
  #XHED: Title of a dialog explaining that a page reload is needed
259
257
  HEADER_RELOAD_NEEDED=App Requires Reload
260
- #XBUT: Button of a dialog triggering a page reload
261
- BUTTON_RELOAD_NEEDED=Reload
262
258
  #XMSG: Dialog message before a reload when personalization changes will be applied again
263
259
  MSG_RELOAD_WITH_PERSONALIZATION_AND_VIEWS=The app will now reload with your personalization changes and public views.
264
260
  #XMSG: Dialog message before a reload when draft changes will be removed on rta exit
@@ -301,8 +297,6 @@ APP_DIALOG_SUB_TITLE_TEXT=Subtitle
301
297
  APP_DIALOG_DESCRIPTION_TEXT=Description
302
298
  #XTIT: App dialog icon text
303
299
  APP_DIALOG_ICON_TEXT=Icon
304
- #XTIT: Title for any error during rename
305
- RENAME_ERROR_TITLE=Naming Error
306
300
  #MSG: Error Message when the user enters an invalid empty string during rename
307
301
  RENAME_EMPTY_ERROR_TEXT=Please enter a name.
308
302
  #MSG: Error Message when the user enters an invalid string interpreted as binding
@@ -495,6 +489,10 @@ ANNOTATION_CHANGE_DIALOG_CONFIRM=OK
495
489
  ANNOTATION_CHANGE_DIALOG_CANCEL=Cancel
496
490
  #XTXT: Label for single rename entries
497
491
  ANNOTATION_CHANGE_DIALOG_SINGLE_RENAME_LABEL=Selected Label
492
+ #XTIT: Title for when there are no properties to change
493
+ ANNOTATION_CHANGE_DIALOG_NO_PROPERTIES_TITLE=No possible changes
494
+ #XTXT: Description when there are no properties to change
495
+ ANNOTATION_CHANGE_DIALOG_NO_PROPERTIES_DESCRIPTION=You can't make changes of this type to these elements.
498
496
 
499
497
  #XTIT: Title for the rename dialog
500
498
  RENAME_DIALOG_TITLE=Rename
@@ -526,8 +524,6 @@ TXT_CHANGEVISUALIZATION_CHANGE_MOVE=Element "{0}" was moved
526
524
  TXT_CHANGEVISUALIZATION_CHANGE_MOVE_WITHIN=Element "{0}" was moved within its container
527
525
  #XTXT: Description for remove-changes
528
526
  TXT_CHANGEVISUALIZATION_CHANGE_REMOVE=Element "{0}" was removed
529
- #XTXT: Description for reveal-changes
530
- TXT_CHANGEVISUALIZATION_CHANGE_REVEAL=Element "{0}" was added
531
527
  #XTXT: Description for combine-changes
532
528
  TXT_CHANGEVISUALIZATION_CHANGE_COMBINE=Element "{0}" was combined
533
529
  #XTXT: Description for combine-changes with two original elements
@@ -538,26 +534,12 @@ TXT_CHANGEVISUALIZATION_CHANGE_COMBINE_MANY={0} elements were combined
538
534
  TXT_CHANGEVISUALIZATION_CHANGE_SPLIT=Element "{0}" was split
539
535
  #XTXT: Description for createcontainer-changes
540
536
  TXT_CHANGEVISUALIZATION_CHANGE_CREATECONTAINER=Group "{0}" was added
541
- #XTXT: Description for adddelegateproperty-changes
542
- TXT_CHANGEVISUALIZATION_CHANGE_ADDDELEGATEPROPERTY=Field "{0}" was added
543
- #XTXT: Description for addiframe-changes
544
- TXT_CHANGEVISUALIZATION_CHANGE_ADDIFRAME=IFrame was added
545
- #XTXT: Description for settings-changes
546
- TXT_CHANGEVISUALIZATION_CHANGE_SETTINGS=Settings of element "{0}" were changed
547
- #XTXT: Generic description for other-changes
548
- TXT_CHANGEVISUALIZATION_CHANGE_OTHER=Element was changed
549
537
  #XTIT: Table column label for type in ChangeIndicatorPopover
550
538
  TIT_CHANGEVISUALIZATION_TYPE=Type
551
- #XTIT: Title for ChangePopover and ChangesPopover
552
- TIT_CHANGEVISUALIZATION_CHANGES=Changes
553
539
  #XFLD: Table column label for date in ChangeIndicatorPopover
554
540
  TIT_CHANGEVISUALIZATION_DATE=Date
555
- #XFLD: Table column label for details in ChangeIndicatorPopover
556
- TIT_CHANGEVISUALIZATION_DETAILS=Details
557
541
  #XFLD: Table column label for description in ChangeIndicatorPopover
558
542
  TIT_CHANGEVISUALIZATION_DESCRIPTION=Description
559
- #XTOL: Tooltip for showChanges Button in Toolbar to show changes
560
- BUT_CHANGEVISUALIZATION_SHOWCHANGES=Visualize Key User Changes
561
543
  #XTOL: Tooltip for Select Changes Button in Toolbar
562
544
  BUT_CHANGEVISUALIZATION_SELECTCHANGES=Select Change Type
563
545
  #XMSG: Info Message for Hidden Changes
@@ -572,24 +554,12 @@ TXT_CHANGEVISUALIZATION_OVERVIEW_MOVE=Move
572
554
  BTN_CHANGEVISUALIZATION_OVERVIEW_MOVE=Moved Elements
573
555
  #XTXT: Text for rename-changes item of ChangesPopover
574
556
  TXT_CHANGEVISUALIZATION_OVERVIEW_RENAME=Rename
575
- #XBUT: Button text for rename-changes
576
- BTN_CHANGEVISUALIZATION_OVERVIEW_RENAME=Renamed Elements
577
557
  #XTXT: Text for add-changes item of ChangesPopover
578
558
  TXT_CHANGEVISUALIZATION_OVERVIEW_ADD=Add
579
- #BUT: Button text for add-changes
580
- BTN_CHANGEVISUALIZATION_OVERVIEW_ADD=Added Elements
581
559
  #XTXT: Text for combine- and split-changes item of ChangesPopover
582
560
  TXT_CHANGEVISUALIZATION_OVERVIEW_COMBINESPLIT=Combine and Split
583
- #XBUT: Button text for combine- and split-changes
584
- BTN_CHANGEVISUALIZATION_OVERVIEW_COMBINESPLIT=Combined and Split Elements
585
- #XTXT: Text for remove-changes item of ChangesPopover
586
- TXT_CHANGEVISUALIZATION_OVERVIEW_REMOVE=Remove
587
- #XBUT: Button text for remove-changes
588
- BTN_CHANGEVISUALIZATION_OVERVIEW_REMOVE=Removed Elements
589
561
  #XTXT: Text for other-changes item of ChangesPopover
590
562
  TXT_CHANGEVISUALIZATION_OVERVIEW_OTHER=Other
591
- #XBUT: Button text for other-changes
592
- BTN_CHANGEVISUALIZATION_OVERVIEW_OTHER=Other Changes
593
563
  #XBUT: Segmented Button text for all changes
594
564
  BUT_CHANGEVISUALIZATION_VERSIONING_ALL=All
595
565
  #XBUT: Segmented Button text for draft changes
@@ -610,8 +580,6 @@ BUT_CHANGEVISUALIZATION_LEARNMORE=[Learn more]
610
580
  TXT_CHANGEVISUALIZATION_INDICATOR_TOOLTIP_SING=1 change
611
581
  #XTXT: Tooltip for change indicator for multiple changes with number
612
582
  TXT_CHANGEVISUALIZATION_INDICATOR_TOOLTIP_PLUR={0} changes
613
- #XTXT: Group in title (needed for OPA-tests when creating new group)
614
- TXT_CHANGEVISUALIZATION_GROUP_IN_TITLE=Group
615
583
 
616
584
  #XMSG: Warning Message for mixed changes
617
585
  MSG_ADAPTATION_STARTER_MIXED_CHANGES_WARNING=UI changes to this app have been made in another system. To avoid conflicts, we strongly advise to make UI changes in one system only and transport them to the other systems. See [Adapting the UI](https://help.sap.com/docs/search?q=Adapting%20the%20UI).
@@ -667,14 +635,8 @@ DAC_DIALOG_MIGRATION_ERROR_DESCRIPTION=An Error occurred during the migration. P
667
635
  MANAGE_ADAPTATIONS_DIALOG_HEADER=Manage Adaptations
668
636
  #XTIT: Text for Manage Adaptations Button in RTA toolbar
669
637
  BTN_MANAGE_APP_CTX=Manage Adaptations
670
- #XBUT: Tooltip for Manage Adaptations Button in RTA Toolbar
671
- TXT_MANAGE_APP_CTX=View, edit or delete adaptations
672
638
  #XFLD: column header for column on the far left
673
639
  CLM_HEADER_PRIORITY=Priority
674
- #XFLD: column header for table who created table row and when
675
- CLM_HEADER_CREATED=Created
676
- #XFLD: column header for table who last changed table row and when
677
- CLM_HEADER_CHANGED=Last Changed
678
640
  #XFLD: actions that can be performed on new artefact
679
641
  CLM_HEADER_ADAPTATIONS_ACTIONS=Actions
680
642
  #XFLD: column header for column on the far left
@@ -687,22 +649,14 @@ CLM_HEADER_ADAPTATIONS_CREATED_ON=Created On
687
649
  CLM_HEADER_ADAPTATIONS_CHANGED_ON=Changed On
688
650
  #XFLD: description of a new artefact
689
651
  MAA_DIALOG_DESCRIPTION=Description
690
- #XBTN: save as new artefact
691
- MAA_DIALOG_SAVE_AS_APP=Save as
692
652
  #XBTN: button to adapt the UI
693
653
  MAA_DIALOG_ADAPT_UI=Adapt UI
694
- #XFLD: menu bar item for available actions
695
- MENU_BTN_SHARE=Share
696
- #XFLD: menu bar item for available actions
697
- MENU_BTN_EDIT=Edit
698
654
  #XFLD: delete context-based adaptation button
699
655
  MAA_DIALOG_DELETE=Delete
700
656
  #XTXT: priority dropdown selection for first position
701
657
  TXT_SELECT_FIRST_PRIO=Insert before all (Priority '1')
702
658
  #XTXT: priority dropdown selection for all other positions
703
659
  TXT_SELECT_PRIO=Insert after ''{0}'' (Priority ''{1}'')
704
- #XTXT: placeholder text to enter into description input field
705
- SAVE_AS_DIALOG_PLACEHOLDER_DESCRIPTION_TEXT=Enter description
706
660
  #XFLD: postfix for context table cell
707
661
  TXT_TABLE_CONTEXT_CELL_ROLE=role
708
662
  #XFLD: postfix for context table cell
@@ -713,8 +667,6 @@ TXT_DEFAULT_APP=Context-free adaptation
713
667
  APP_CTX_DIALOG_SAVE=Save
714
668
  #XBUT: Context-Based Adaptation predefined text for Cancel button
715
669
  APP_CTX_DIALOG_CANCEL=Cancel
716
- #XBUT: Context-Based Adaptation predefined text for Confirm button
717
- APP_CTX_DIALOG_CONFIRM=Confirm
718
670
  TOOLTIP_APP_CTX_DIALOG_SAVE=Context-based adaptation has not been changed.
719
671
  #TXT: Context-Based Adaptation duplicate title error message
720
672
  TXT_CTX_ERROR_DUPLICATE_TITLE=The adaptation title already exists. Please enter a different title.
@@ -739,9 +691,9 @@ TIT_TOUR_GENERAL_TITLE=General UI Adaptation Tour
739
691
  TXT_TOUR_GENERAL_DESCRIPTION=It looks like you haven't used Key User Adaptation before. Would you like to take a tour of the core features now? If you'd prefer to take the tour later, you can start it from the "More Actions" menu at any time.
740
692
 
741
693
  #TIT: UI Adaptation Button - Title
742
- TIT_TOUR_GENERAL_STEP_UI_ADAPTATION_BUTTON_TITLE=Adaptation Mode
694
+ TIT_TOUR_GENERAL_STEP_UI_ADAPTATION_BUTTON_TITLE=UI Adaptation Mode
743
695
  #TXT: UI Adaptation Button - Description
744
- TXT_TOUR_GENERAL_STEP_UI_ADAPTATION_BUTTON_DESCRIPTION=In "Adaptation" mode, you make changes to the current screen. You can edit UI elements, adjust configurations, and customize the layout.
696
+ TXT_TOUR_GENERAL_STEP_UI_ADAPTATION_BUTTON_DESCRIPTION=In "UI Adaptation" mode, you make changes to the current screen. You can edit UI elements, adjust configurations, and customize the layout.
745
697
 
746
698
  #TIT: Navigation Button - Title
747
699
  TIT_TOUR_GENERAL_STEP_NAVIGATION_BUTTON_TITLE=Navigation Mode
@@ -756,7 +708,7 @@ TXT_TOUR_GENERAL_STEP_VISUALIZATION_BUTTON_DESCRIPTION=In "Visualization" mode,
756
708
  #TIT: Change List Dropdown Menu - Title
757
709
  TIT_TOUR_GENERAL_STEP_CHANGE_LIST_DROPDOWN_TITLE=Changes Filter
758
710
  #TXT: Change List Dropdown Menu - Description
759
- TXT_TOUR_GENERAL_STEP_CHANGE_LIST_DROPDOWN_DESCRIPTION=The "Changes Filter" allows users to filter visualized changes by type and condition. You can choose to view all changes, which is the default setting. Alternatively, you can select draft changes, which are not yet activated, or unsaved changes, which are made in the current session and not yet saved.
711
+ TXT_TOUR_GENERAL_STEP_CHANGE_LIST_DROPDOWN_DESCRIPTION=The changes filter allows users to filter visualized changes by type and condition. You can choose to view all changes, which is the default setting. Alternatively, you can select draft changes, which are not yet activated, or unsaved changes, which are made in the current session and not yet saved.
760
712
 
761
713
  #TIT: Save Button - Title
762
714
  TIT_TOUR_GENERAL_STEP_SAVE_BUTTON_TITLE=Save Draft
@@ -776,7 +728,7 @@ TXT_TOUR_GENERAL_STEP_REDO_BUTTON_DESCRIPTION=This button becomes active when yo
776
728
  #TIT: Activate Version Button - Title
777
729
  TIT_TOUR_GENERAL_STEP_ACTIVATE_VERSION_BUTTON_TITLE=Activate New Version
778
730
  #TXT: Activate Version Button - Description
779
- TXT_TOUR_GENERAL_STEP_ACTIVATE_VERSION_BUTTON_DESCRIPTION=Click the "Activate Version" button to save the current draft changes as a new version. This action makes the changes visible to end users.
731
+ TXT_TOUR_GENERAL_STEP_ACTIVATE_VERSION_BUTTON_DESCRIPTION=Click the "Activate New Version" button to save the current draft changes as a new version. This action makes the changes visible to end users.
780
732
 
781
733
  #TIT: Versions Dropdown Menu - Title
782
734
  TIT_TOUR_GENERAL_STEP_VERSIONS_DROPDOWN_TITLE=Display Available Versions