@openui5/sap.ui.rta 1.92.0 → 1.95.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 (152) hide show
  1. package/{.eslintrc → .eslintrc.json} +0 -0
  2. package/.reuse/dep5 +1 -6
  3. package/THIRDPARTY.txt +4 -10
  4. package/package.json +6 -6
  5. package/src/sap/ui/rta/.library +1 -1
  6. package/src/sap/ui/rta/Client.js +1 -1
  7. package/src/sap/ui/rta/RuntimeAuthoring.js +67 -57
  8. package/src/sap/ui/rta/Utils.js +73 -1
  9. package/src/sap/ui/rta/appVariant/AppVariantManager.js +1 -1
  10. package/src/sap/ui/rta/appVariant/S4HanaCloudBackend.js +1 -2
  11. package/src/sap/ui/rta/appVariant/manageApps/webapp/i18n/i18n_de.properties +1 -1
  12. package/src/sap/ui/rta/command/AddIFrame.js +1 -1
  13. package/src/sap/ui/rta/command/AddProperty.js +1 -1
  14. package/src/sap/ui/rta/command/AddXML.js +1 -1
  15. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +1 -1
  16. package/src/sap/ui/rta/command/AppDescriptorCommand.js +1 -1
  17. package/src/sap/ui/rta/command/BaseCommand.js +1 -1
  18. package/src/sap/ui/rta/command/BindProperty.js +1 -1
  19. package/src/sap/ui/rta/command/Combine.js +1 -1
  20. package/src/sap/ui/rta/command/CommandFactory.js +146 -125
  21. package/src/sap/ui/rta/command/CompositeCommand.js +1 -1
  22. package/src/sap/ui/rta/command/ControlVariantConfigure.js +1 -1
  23. package/src/sap/ui/rta/command/ControlVariantSave.js +1 -1
  24. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +1 -1
  25. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +1 -1
  26. package/src/sap/ui/rta/command/ControlVariantSwitch.js +1 -1
  27. package/src/sap/ui/rta/command/CreateContainer.js +1 -1
  28. package/src/sap/ui/rta/command/CustomAdd.js +1 -1
  29. package/src/sap/ui/rta/command/FlexCommand.js +25 -14
  30. package/src/sap/ui/rta/command/LREPSerializer.js +25 -24
  31. package/src/sap/ui/rta/command/LocalReset.js +1 -1
  32. package/src/sap/ui/rta/command/Move.js +1 -1
  33. package/src/sap/ui/rta/command/Property.js +1 -1
  34. package/src/sap/ui/rta/command/Remove.js +1 -1
  35. package/src/sap/ui/rta/command/Rename.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 +2 -1
  40. package/src/sap/ui/rta/command/appDescriptor/AddLibrary.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/enablement/TestDelegate.js +47 -37
  45. package/src/sap/ui/rta/enablement/elementActionTest.js +29 -33
  46. package/src/sap/ui/rta/library.js +2 -2
  47. package/src/sap/ui/rta/messagebundle.properties +36 -4
  48. package/src/sap/ui/rta/messagebundle_ar.properties +17 -1
  49. package/src/sap/ui/rta/messagebundle_bg.properties +17 -1
  50. package/src/sap/ui/rta/messagebundle_ca.properties +17 -1
  51. package/src/sap/ui/rta/messagebundle_cs.properties +17 -1
  52. package/src/sap/ui/rta/messagebundle_cy.properties +17 -1
  53. package/src/sap/ui/rta/messagebundle_da.properties +17 -1
  54. package/src/sap/ui/rta/messagebundle_de.properties +32 -16
  55. package/src/sap/ui/rta/messagebundle_el.properties +18 -2
  56. package/src/sap/ui/rta/messagebundle_en.properties +17 -1
  57. package/src/sap/ui/rta/messagebundle_en_GB.properties +17 -1
  58. package/src/sap/ui/rta/messagebundle_en_US_sappsd.properties +18 -2
  59. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +9 -0
  60. package/src/sap/ui/rta/messagebundle_en_US_saptrc.properties +18 -2
  61. package/src/sap/ui/rta/messagebundle_es.properties +17 -1
  62. package/src/sap/ui/rta/messagebundle_es_MX.properties +17 -1
  63. package/src/sap/ui/rta/messagebundle_et.properties +17 -1
  64. package/src/sap/ui/rta/messagebundle_fi.properties +19 -3
  65. package/src/sap/ui/rta/messagebundle_fr.properties +17 -1
  66. package/src/sap/ui/rta/messagebundle_fr_CA.properties +17 -1
  67. package/src/sap/ui/rta/messagebundle_hi.properties +17 -1
  68. package/src/sap/ui/rta/messagebundle_hr.properties +17 -1
  69. package/src/sap/ui/rta/messagebundle_hu.properties +17 -1
  70. package/src/sap/ui/rta/messagebundle_id.properties +19 -3
  71. package/src/sap/ui/rta/messagebundle_it.properties +17 -1
  72. package/src/sap/ui/rta/messagebundle_iw.properties +17 -1
  73. package/src/sap/ui/rta/messagebundle_ja.properties +17 -1
  74. package/src/sap/ui/rta/messagebundle_kk.properties +17 -1
  75. package/src/sap/ui/rta/messagebundle_ko.properties +18 -2
  76. package/src/sap/ui/rta/messagebundle_lt.properties +17 -1
  77. package/src/sap/ui/rta/messagebundle_lv.properties +17 -1
  78. package/src/sap/ui/rta/messagebundle_ms.properties +17 -1
  79. package/src/sap/ui/rta/messagebundle_nl.properties +17 -1
  80. package/src/sap/ui/rta/messagebundle_no.properties +17 -1
  81. package/src/sap/ui/rta/messagebundle_pl.properties +17 -1
  82. package/src/sap/ui/rta/messagebundle_pt.properties +17 -1
  83. package/src/sap/ui/rta/messagebundle_pt_PT.properties +17 -1
  84. package/src/sap/ui/rta/messagebundle_ro.properties +17 -1
  85. package/src/sap/ui/rta/messagebundle_ru.properties +17 -1
  86. package/src/sap/ui/rta/messagebundle_sh.properties +17 -1
  87. package/src/sap/ui/rta/messagebundle_sk.properties +17 -1
  88. package/src/sap/ui/rta/messagebundle_sl.properties +17 -1
  89. package/src/sap/ui/rta/messagebundle_sv.properties +19 -3
  90. package/src/sap/ui/rta/messagebundle_th.properties +17 -1
  91. package/src/sap/ui/rta/messagebundle_tr.properties +17 -1
  92. package/src/sap/ui/rta/messagebundle_uk.properties +17 -1
  93. package/src/sap/ui/rta/messagebundle_vi.properties +17 -1
  94. package/src/sap/ui/rta/messagebundle_zh_CN.properties +17 -1
  95. package/src/sap/ui/rta/messagebundle_zh_TW.properties +17 -1
  96. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +1 -1
  97. package/src/sap/ui/rta/plugin/BaseCreate.js +1 -1
  98. package/src/sap/ui/rta/plugin/Combine.js +1 -1
  99. package/src/sap/ui/rta/plugin/ControlVariant.js +1 -1
  100. package/src/sap/ui/rta/plugin/CreateContainer.js +1 -1
  101. package/src/sap/ui/rta/plugin/CutPaste.js +1 -1
  102. package/src/sap/ui/rta/plugin/DragDrop.js +52 -2
  103. package/src/sap/ui/rta/plugin/EasyAdd.js +1 -1
  104. package/src/sap/ui/rta/plugin/EasyRemove.js +1 -1
  105. package/src/sap/ui/rta/plugin/LocalReset.js +2 -10
  106. package/src/sap/ui/rta/plugin/Plugin.js +1 -1
  107. package/src/sap/ui/rta/plugin/RTAElementMover.js +18 -61
  108. package/src/sap/ui/rta/plugin/Remove.js +1 -1
  109. package/src/sap/ui/rta/plugin/Rename.js +1 -1
  110. package/src/sap/ui/rta/plugin/RenameHandler.js +4 -1
  111. package/src/sap/ui/rta/plugin/Selection.js +35 -1
  112. package/src/sap/ui/rta/plugin/Settings.js +15 -14
  113. package/src/sap/ui/rta/plugin/Split.js +1 -1
  114. package/src/sap/ui/rta/plugin/Stretch.js +133 -138
  115. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +505 -0
  116. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +1 -1
  117. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsAnalyzer.js +10 -7
  118. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +122 -821
  119. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +117 -0
  120. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +337 -0
  121. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +1 -1
  122. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.fragment.xml +1 -1
  123. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +1 -1
  124. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +25 -4
  125. package/src/sap/ui/rta/service/Action.js +1 -1
  126. package/src/sap/ui/rta/service/ControllerExtension.js +1 -1
  127. package/src/sap/ui/rta/service/Outline.js +109 -62
  128. package/src/sap/ui/rta/service/Property.js +1 -1
  129. package/src/sap/ui/rta/service/Selection.js +1 -1
  130. package/src/sap/ui/rta/themes/base/ChangeVisualization.less +16 -0
  131. package/src/sap/ui/rta/themes/base/Overlay.less +59 -58
  132. package/src/sap/ui/rta/themes/sap_hcb/Overlay.less +2 -3
  133. package/src/sap/ui/rta/toolbar/Adaptation.fragment.xml +63 -44
  134. package/src/sap/ui/rta/toolbar/Adaptation.js +49 -37
  135. package/src/sap/ui/rta/toolbar/AdaptationRenderer.js +4 -5
  136. package/src/sap/ui/rta/toolbar/Base.js +76 -25
  137. package/src/sap/ui/rta/toolbar/BaseRenderer.js +2 -2
  138. package/src/sap/ui/rta/toolbar/Fiori.js +9 -9
  139. package/src/sap/ui/rta/toolbar/FioriLike.js +4 -4
  140. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +98 -0
  141. package/src/sap/ui/rta/toolbar/Personalization.js +8 -8
  142. package/src/sap/ui/rta/toolbar/Standalone.js +4 -4
  143. package/src/sap/ui/rta/toolbar/translation/DownloadTranslationDialog.fragment.xml +39 -0
  144. package/src/sap/ui/rta/toolbar/translation/Translation.js +128 -0
  145. package/src/sap/ui/rta/toolbar/translation/TranslationPopover.fragment.xml +19 -0
  146. package/src/sap/ui/rta/util/BindingsExtractor.js +35 -31
  147. package/src/sap/ui/rta/util/PluginManager.js +1 -1
  148. package/src/sap/ui/rta/util/PopupManager.js +1 -1
  149. package/src/sap/ui/rta/util/ServiceEventBus.js +1 -1
  150. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +21 -2
  151. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +1 -1
  152. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +42 -38
File without changes
package/.reuse/dep5 CHANGED
@@ -309,7 +309,7 @@ License: MIT
309
309
  Comment: these files belong to: lodash
310
310
 
311
311
  Files: src/sap.ui.core/src/sap/ui/thirdparty/hyphenopoly/*
312
- Copyright: 2018 Mathias Nater
312
+ Copyright: 2021 Mathias Nater
313
313
  License: MIT
314
314
  Comment: these files belong to: Hyphenopoly
315
315
 
@@ -347,11 +347,6 @@ Copyright: 2013 Ariya Hidayat and other contributors
347
347
  License: BSD-2-Clause
348
348
  Comment: these files belong to: Esprima
349
349
 
350
- Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
351
- Copyright: 2006 Google Inc.
352
- License: Apache-2.0
353
- Comment: these files belong to: google-code-prettify
354
-
355
350
  Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
356
351
  Copyright: 2006-2020, Ivan Sagalaev
357
352
  License: BSD-3-Clause
package/THIRDPARTY.txt CHANGED
@@ -6,7 +6,7 @@ The full text of all referenced licenses is appended at the end of this file.
6
6
 
7
7
  Library: sap.ui.codeeditor:
8
8
 
9
- Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.4
9
+ Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.12
10
10
  Copyright: 2010, Ajax.org B.V.
11
11
  License: BSD-3-Clause
12
12
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
@@ -279,8 +279,8 @@ License: MIT
279
279
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
280
280
  Contained in: src/sap.ui.core/src/sap/ui/base/util/restricted/_/lodash.custom.js
281
281
 
282
- Component: Hyphenopoly, version: 2.4.0
283
- Copyright: 2018 Mathias Nater
282
+ Component: Hyphenopoly, version: 3.4.0
283
+ Copyright: 2021 Mathias Nater
284
284
  License: MIT
285
285
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
286
286
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/hyphenopoly/*
@@ -324,12 +324,6 @@ License: BSD-2-Clause
324
324
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-2-Clause.txt
325
325
  Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/esprima.js
326
326
 
327
- Component: google-code-prettify, version: 20130304
328
- Copyright: 2006 Google Inc.
329
- License: Apache-2.0
330
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
331
- Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
332
-
333
327
  Component: highlight.js, version: 10.4.1
334
328
  Copyright: 2006-2020, Ivan Sagalaev
335
329
  License: BSD-3-Clause
@@ -376,7 +370,7 @@ License: Unicode-DFS-2015
376
370
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Unicode-DFS-2015.txt
377
371
  Contained in: src/sap.ui.integration/src/sap/ui/integration/thirdparty/webcomponents/Unicode-Data-Files-LICENSE.txt
378
372
 
379
- Component: Adaptive Cards, version: 1.2.3
373
+ Component: Adaptive Cards, version: 2.9.0
380
374
  Copyright: 2017 Microsoft
381
375
  License: MIT
382
376
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.rta",
3
- "version": "1.92.0",
3
+ "version": "1.95.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.rta",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,10 +14,10 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.92.0",
18
- "@openui5/sap.ui.core": "1.92.0",
19
- "@openui5/sap.ui.dt": "1.92.0",
20
- "@openui5/sap.ui.fl": "1.92.0",
21
- "@openui5/sap.ui.layout": "1.92.0"
17
+ "@openui5/sap.m": "1.95.0",
18
+ "@openui5/sap.ui.core": "1.95.0",
19
+ "@openui5/sap.ui.dt": "1.95.0",
20
+ "@openui5/sap.ui.fl": "1.95.0",
21
+ "@openui5/sap.ui.layout": "1.95.0"
22
22
  }
23
23
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.92.0</version>
9
+ <version>1.95.0</version>
10
10
 
11
11
  <documentation>SAPUI5 library with RTA controls.</documentation>
12
12
 
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @alias sap.ui.rta.Client
58
58
  * @author SAP SE
59
59
  * @since 1.56.0
60
- * @version 1.92.0
60
+ * @version 1.95.0
61
61
  * @private
62
62
  * @ui5-restricted
63
63
  */
@@ -45,7 +45,6 @@ sap.ui.define([
45
45
  "sap/base/Log",
46
46
  "sap/ui/events/KeyCodes",
47
47
  "sap/ui/model/json/JSONModel",
48
- "sap/ui/core/Fragment",
49
48
  "sap/ui/rta/util/validateFlexEnabled",
50
49
  "sap/ui/rta/util/changeVisualization/ChangeVisualization"
51
50
  ],
@@ -89,7 +88,6 @@ function(
89
88
  Log,
90
89
  KeyCodes,
91
90
  JSONModel,
92
- Fragment,
93
91
  validateFlexEnabled,
94
92
  ChangeVisualization
95
93
  ) {
@@ -109,7 +107,7 @@ function(
109
107
  * @class The runtime authoring allows to adapt the fields of a running application.
110
108
  * @extends sap.ui.base.ManagedObject
111
109
  * @author SAP SE
112
- * @version 1.92.0
110
+ * @version 1.95.0
113
111
  * @constructor
114
112
  * @private
115
113
  * @since 1.30
@@ -168,7 +166,7 @@ function(
168
166
  }
169
167
  },
170
168
 
171
- /** Defines view state of the RTA. Possible values: adaptation, navigation */
169
+ /** Defines view state of key user adaptation. Possible values: adaptation, navigation, visualization */
172
170
  mode: {
173
171
  type: "string",
174
172
  defaultValue: "adaptation"
@@ -307,7 +305,7 @@ function(
307
305
  };
308
306
 
309
307
  RuntimeAuthoring.prototype.onPopupClose = function(oEvent) {
310
- if (oEvent.getParameters() instanceof sap.m.Dialog) {
308
+ if (oEvent.getParameters().isA("sap.m.Dialog")) {
311
309
  this.getToolbar().setColor();
312
310
  }
313
311
  };
@@ -518,11 +516,6 @@ function(
518
516
  return this.getToolbar().show();
519
517
  }
520
518
  }.bind(this))
521
- .then(function () {
522
- if (this.getShowToolbars() && this.getChangeVisualization) {
523
- this.getChangeVisualization().setRootControlId(this.getRootControl());
524
- }
525
- }.bind(this))
526
519
  .then(function () {
527
520
  if (Device.browser.name === "ff") {
528
521
  // in FF shift+f10 also opens a browser context menu.
@@ -739,7 +732,7 @@ function(
739
732
  return this._handleReloadOnExit(bSkipRestart)
740
733
  .then(function(oReloadInfo) {
741
734
  return ((bDontSaveChanges) ? Promise.resolve() : this._serializeToLrep(this))
742
- .then(this._checkToolbarAndExecuteFunction.bind(this, "hide"))
735
+ .then(this._checkToolbarAndExecuteFunction.bind(this, "hide", bDontSaveChanges))
743
736
  .then(function() {
744
737
  this.fireStop();
745
738
  if (oReloadInfo.reloadMethod && (oReloadInfo.reloadMethod !== this._RELOAD.NOT_NEEDED)) {
@@ -1004,45 +997,40 @@ function(
1004
997
 
1005
998
  RuntimeAuthoring.prototype._createToolsMenu = function(aButtonsVisibility) {
1006
999
  if (!this.getDependent("toolbar")) {
1007
- var ToolbarConstructor;
1000
+ var bUserLayer = this.getLayer() === Layer.USER;
1001
+ var oProperties = {
1002
+ rtaInformation: {
1003
+ flexSettings: this.getFlexSettings(),
1004
+ rootControl: this.getRootControlInstance(),
1005
+ commandStack: this.getCommandStack()
1006
+ },
1007
+ textResources: this._getTextResources(),
1008
+ restore: this._onRestore.bind(this),
1009
+ exit: this.stop.bind(this, false, bUserLayer)
1010
+ };
1008
1011
 
1009
- if (this.getLayer() === Layer.USER) {
1010
- ToolbarConstructor = PersonalizationToolbar;
1011
- } else if (Utils.isOriginalFioriToolbarAccessible()) {
1012
- ToolbarConstructor = FioriToolbar;
1013
- } else if (Utils.getFiori2Renderer()) {
1014
- ToolbarConstructor = FioriLikeToolbar;
1015
- } else {
1016
- ToolbarConstructor = StandaloneToolbar;
1012
+ if (!bUserLayer) {
1013
+ oProperties.transport = this._onTransport.bind(this);
1014
+ oProperties.undo = this._onUndo.bind(this);
1015
+ oProperties.redo = this._onRedo.bind(this);
1016
+ oProperties.modeChange = this._onModeChange.bind(this);
1017
+ oProperties.activate = this._onActivate.bind(this);
1018
+ oProperties.discardDraft = this._onDiscardDraft.bind(this);
1019
+ oProperties.switchVersion = this._onSwitchVersion.bind(this);
1020
+ oProperties.toggleChangeVisualizationPopover = this.getChangeVisualization
1021
+ ? this.getChangeVisualization().togglePopover.bind(this.getChangeVisualization())
1022
+ : function () {};
1017
1023
  }
1024
+
1018
1025
  var oToolbar;
1019
- if (this.getLayer() === Layer.USER) {
1020
- oToolbar = new ToolbarConstructor({
1021
- textResources: this._getTextResources(),
1022
- //events
1023
- exit: this.stop.bind(this, false, true),
1024
- restore: this._onRestore.bind(this)
1025
- });
1026
+ if (bUserLayer) {
1027
+ oToolbar = new PersonalizationToolbar(oProperties);
1028
+ } else if (Utils.isOriginalFioriToolbarAccessible()) {
1029
+ oToolbar = new FioriToolbar(oProperties);
1030
+ } else if (Utils.getFiori2Renderer()) {
1031
+ oToolbar = new FioriLikeToolbar(oProperties);
1026
1032
  } else {
1027
- oToolbar = new ToolbarConstructor({
1028
- textResources: this._getTextResources(),
1029
- //events
1030
- exit: this.stop.bind(this, false, false),
1031
- transport: this._onTransport.bind(this),
1032
- restore: this._onRestore.bind(this),
1033
- undo: this._onUndo.bind(this),
1034
- redo: this._onRedo.bind(this),
1035
- modeChange: this._onModeChange.bind(this),
1036
- manageApps: RtaAppVariantFeature.onGetOverview.bind(null, true, this.getLayer()),
1037
- appVariantOverview: this._onGetAppVariantOverview.bind(this),
1038
- saveAs: RtaAppVariantFeature.onSaveAs.bind(RtaAppVariantFeature, true, true, this.getLayer(), null),
1039
- activate: this._onActivate.bind(this),
1040
- discardDraft: this._onDiscardDraft.bind(this),
1041
- switchVersion: this._onSwitchVersion.bind(this),
1042
- toggleChangeVisualization: this.getChangeVisualization
1043
- ? this.getChangeVisualization().toggleActive.bind(this.getChangeVisualization())
1044
- : function () {}
1045
- });
1033
+ oToolbar = new StandaloneToolbar(oProperties);
1046
1034
  }
1047
1035
  this.addDependent(oToolbar, "toolbar");
1048
1036
 
@@ -1053,6 +1041,8 @@ function(
1053
1041
  this._oToolbarControlsModel = new JSONModel({
1054
1042
  undoEnabled: false,
1055
1043
  redoEnabled: false,
1044
+ translationVisible: false,
1045
+ translationEnabled: false,
1056
1046
  publishVisible: aButtonsVisibility.publishAvailable,
1057
1047
  publishEnabled: this.bInitialPublishEnabled,
1058
1048
  restoreEnabled: this.bInitialResetEnabled,
@@ -1073,6 +1063,12 @@ function(
1073
1063
  }.bind(this));
1074
1064
  }
1075
1065
 
1066
+ /* TODO enable as soon as the code is ready
1067
+ FeaturesAPI.isKeyUserTranslationEnabled(this.getLayer()).then(function(oResult) {
1068
+ this._oToolbarControlsModel.setProperty("/translationVisible", oResult);
1069
+ }.bind(this));
1070
+ */
1071
+
1076
1072
  this.getToolbar().setModel(this._oVersionsModel, "versions");
1077
1073
  this.getToolbar().setModel(this._oToolbarControlsModel, "controls");
1078
1074
  }.bind(this));
@@ -1080,13 +1076,6 @@ function(
1080
1076
  return Promise.resolve();
1081
1077
  };
1082
1078
 
1083
- RuntimeAuthoring.prototype._onGetAppVariantOverview = function(oEvent) {
1084
- var oItem = oEvent.getParameter("item");
1085
-
1086
- var bTriggeredForKeyUser = oItem.getId() === "keyUser";
1087
- return RtaAppVariantFeature.onGetOverview(bTriggeredForKeyUser, this.getLayer());
1088
- };
1089
-
1090
1079
  /**
1091
1080
  * Exit Runtime Authoring - destroy all controls and plugins
1092
1081
  *
@@ -1711,10 +1700,31 @@ function(
1711
1700
  * @param {string} sNewMode The new value for the 'mode' property
1712
1701
  */
1713
1702
  RuntimeAuthoring.prototype.setMode = function (sNewMode) {
1714
- if (this.getMode() !== sNewMode) {
1715
- var bOverlaysEnabled = sNewMode === "adaptation";
1716
- this._oDesignTime.setEnabled(bOverlaysEnabled);
1717
- this.getPluginManager().getPlugin("tabHandling")[bOverlaysEnabled ? "removeTabIndex" : "restoreTabIndex"]();
1703
+ var sCurrentMode = this.getMode();
1704
+ if (sCurrentMode !== sNewMode) {
1705
+ var oChangeVisualization = this.getChangeVisualization && this.getChangeVisualization();
1706
+ if (sNewMode === "visualization" || sCurrentMode === "visualization") {
1707
+ oChangeVisualization.triggerModeChange(this.getRootControl());
1708
+ }
1709
+ var oTabHandlingPlugin = this.getPluginManager().getPlugin("tabHandling");
1710
+ var oSelectionPlugin = this.getPluginManager().getPlugin("selection");
1711
+
1712
+ // Switch between another mode and navigation -> toggle overlay & App-Tabindex enablement
1713
+ if (sCurrentMode === "navigation" || sNewMode === "navigation") {
1714
+ this._oDesignTime.setEnabled(sNewMode !== "navigation");
1715
+ oTabHandlingPlugin[(sNewMode === "navigation") ? "restoreTabIndex" : "removeTabIndex"]();
1716
+ }
1717
+
1718
+ oTabHandlingPlugin[(sNewMode === "adaptation") ? "restoreOverlayTabIndex" : "removeOverlayTabIndex"]();
1719
+ oSelectionPlugin.setIsActive(!(sNewMode === "visualization"));
1720
+
1721
+ Overlay.getOverlayContainer().toggleClass("sapUiRtaVisualizationMode", (sNewMode === "visualization"));
1722
+ if (sNewMode === "visualization") {
1723
+ jQuery(".sapUiDtOverlayMovable").css("cursor", "default");
1724
+ } else {
1725
+ jQuery(".sapUiDtOverlayMovable").css("cursor", "move");
1726
+ }
1727
+
1718
1728
  this._oToolbarControlsModel.setProperty("/modeSwitcher", sNewMode);
1719
1729
  this.setProperty("mode", sNewMode);
1720
1730
  this.fireModeChanged({mode: sNewMode});
@@ -12,6 +12,9 @@ sap.ui.define([
12
12
  "sap/ui/fl/LayerUtils",
13
13
  "sap/ui/dt/OverlayUtil",
14
14
  "sap/ui/dt/DOMUtil",
15
+ "sap/ui/dt/ElementUtil",
16
+ "sap/ui/dt/MetadataPropagationUtil",
17
+ "sap/ui/rta/util/hasStableId",
15
18
  "sap/m/MessageBox",
16
19
  "sap/ui/rta/util/BindingsExtractor",
17
20
  "sap/base/util/restricted/_omit",
@@ -26,6 +29,9 @@ function(
26
29
  FlexLayerUtils,
27
30
  OverlayUtil,
28
31
  DOMUtil,
32
+ ElementUtil,
33
+ MetadataPropagationUtil,
34
+ hasStableId,
29
35
  MessageBox,
30
36
  BindingsExtractor,
31
37
  _omit,
@@ -40,7 +46,7 @@ function(
40
46
  * @class Utility functionality to work with controls, e.g. iterate through aggregations, find parents, etc.
41
47
  *
42
48
  * @author SAP SE
43
- * @version 1.92.0
49
+ * @version 1.95.0
44
50
  *
45
51
  * @private
46
52
  * @static
@@ -553,5 +559,71 @@ function(
553
559
  }, {});
554
560
  };
555
561
 
562
+ /**
563
+ * Checks drop ability for aggregation overlays
564
+ * @param {sap.ui.dt.Overlay} oAggregationOverlay Aggregation overlay object
565
+ * @param {sap.ui.dt.ElementOverlay} oMovedOverlay Overlay being moved/added
566
+ * @param {sap.ui.rta.Plugin} oPlugin RTA plugin calling this method
567
+ * @param {boolean} [bOverlayNotInDom] Flag defining if overlay is not in DOM
568
+ * @return {Promise.<boolean>} Promise with true value if overlay can be added to the aggregation overlay or false value if not.
569
+ * @override
570
+ */
571
+ Utils.checkTargetZone = function(oAggregationOverlay, oMovedOverlay, oPlugin, bOverlayNotInDom) {
572
+ function fnHasMoveAction(oAggregationOverlay, oElement, oRelevantContainer, oPlugin) {
573
+ var oAggregationDTMetadata = oAggregationOverlay.getDesignTimeMetadata();
574
+ var oMoveAction = oAggregationDTMetadata.getAction("move", oElement);
575
+ if (!oMoveAction) {
576
+ return Promise.resolve(false);
577
+ }
578
+ // moveChangeHandler information is always located on the relevant container
579
+ return oPlugin.hasChangeHandler(oMoveAction.changeType, oRelevantContainer);
580
+ }
581
+
582
+ return ElementUtil.checkTargetZone(oAggregationOverlay, oMovedOverlay, bOverlayNotInDom)
583
+ .then(function(bTargetZone) {
584
+ if (!bTargetZone) {
585
+ return false;
586
+ }
587
+
588
+ var oMovedElement = oMovedOverlay.getElement();
589
+ var oTargetOverlay = oAggregationOverlay.getParent();
590
+ var oMovedRelevantContainer = oMovedOverlay.getRelevantContainer();
591
+
592
+ // the element or the parent overlay might be destroyed or not available
593
+ if (!oMovedElement || !oTargetOverlay) {
594
+ return false;
595
+ }
596
+
597
+ var oTargetElement = oTargetOverlay.getElement();
598
+ var oAggregationDtMetadata = oAggregationOverlay.getDesignTimeMetadata();
599
+
600
+ // determine target relevantContainer
601
+ var vTargetRelevantContainerAfterMove = MetadataPropagationUtil.getRelevantContainerForPropagation(oAggregationDtMetadata.getData(), oMovedElement);
602
+ vTargetRelevantContainerAfterMove = vTargetRelevantContainerAfterMove || oTargetElement;
603
+
604
+ // check for same relevantContainer
605
+ if (
606
+ !oMovedRelevantContainer
607
+ || !vTargetRelevantContainerAfterMove
608
+ || !hasStableId(oTargetOverlay)
609
+ || oMovedRelevantContainer !== vTargetRelevantContainerAfterMove
610
+ ) {
611
+ return false;
612
+ }
613
+
614
+ // check if binding context is the same
615
+ if (
616
+ // binding context is not relevant if the element is being moved inside its parent
617
+ oMovedOverlay.getParent().getElement() !== oTargetElement
618
+ && !Utils.checkSourceTargetBindingCompatibility(oMovedElement, oTargetElement)
619
+ ) {
620
+ return false;
621
+ }
622
+
623
+ // check if movedOverlay is movable into the target aggregation
624
+ return fnHasMoveAction(oAggregationOverlay, oMovedElement, vTargetRelevantContainerAfterMove, oPlugin);
625
+ });
626
+ };
627
+
556
628
  return Utils;
557
629
  }, /* bExport= */true);
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class
25
25
  * @extends sap.ui.base.ManagedObject
26
26
  * @author SAP SE
27
- * @version 1.92.0
27
+ * @version 1.95.0
28
28
  * @constructor
29
29
  * @private
30
30
  * @since 1.53
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  reject(oError);
136
136
  };
137
137
 
138
- return oModel.read("/aps_iam_app_ddl('" + sIamAppId + "')/to_BusinessCatalogAssignment", {success: fnSuccess, error: fnFailure});
138
+ oModel.read("/aps_iam_app_ddl('" + sIamAppId + "')/to_BusinessCatalogAssignment", {success: fnSuccess, error: fnFailure});
139
139
  });
140
140
  };
141
141
 
@@ -159,4 +159,3 @@ sap.ui.define([
159
159
 
160
160
  return S4HanaCloudBackend;
161
161
  });
162
-
@@ -13,7 +13,7 @@ MAA_NEW_APP_VARIANT=Gerade angelegt
13
13
  MAA_ORIGINAL_TYPE=Original-App
14
14
  MAA_APP_VARIANT_TYPE=App-Variante
15
15
  MAA_CURRENT_APP_STATUS=Aktueller Status
16
- MAA_DIALOG_SAVE_AS_APP=Sichern unter
16
+ MAA_DIALOG_SAVE_AS_APP=Sichern als
17
17
  TOOLTIP_MAA_DIALOG_SAVE_AS_APP=Neue App-Variante anlegen
18
18
  TOOLTIP_MAA_DIALOG_COPY_ID=ID der App-Variante in Zwischenablage kopieren
19
19
  MAA_DIALOG_COPY_ID=ID kopieren
@@ -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.92.0
19
+ * @version 1.95.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.75
@@ -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.92.0
17
+ * @version 1.95.0
18
18
  * @constructor
19
19
  * @private
20
20
  * @since 1.78
@@ -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.92.0
19
+ * @version 1.95.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.54
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class
25
25
  * @extends sap.ui.rta.command.FlexCommand
26
26
  * @author SAP SE
27
- * @version 1.92.0
27
+ * @version 1.95.0
28
28
  * @constructor
29
29
  * @private
30
30
  * @since 1.76
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @extends sap.ui.rta.command.BaseCommand
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.95.0
25
25
  *
26
26
  * @constructor
27
27
  * @private
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/base/ManagedObject"], function(ManagedObject) {
13
13
  * @extends sap.ui.base.ManagedObject
14
14
  *
15
15
  * @author SAP SE
16
- * @version 1.92.0
16
+ * @version 1.95.0
17
17
  *
18
18
  * @constructor
19
19
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @class
27
27
  * @extends sap.ui.rta.command.FlexCommand
28
28
  * @author SAP SE
29
- * @version 1.92.0
29
+ * @version 1.95.0
30
30
  * @constructor
31
31
  * @private
32
32
  * @since 1.38
@@ -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.92.0
19
+ * @version 1.95.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.46