@openui5/sap.ui.rta 1.95.0 → 1.96.3

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 (150) hide show
  1. package/.reuse/dep5 +10 -5
  2. package/THIRDPARTY.txt +17 -8
  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 +106 -69
  7. package/src/sap/ui/rta/Utils.js +1 -1
  8. package/src/sap/ui/rta/appVariant/AppVariantDialog.js +4 -3
  9. package/src/sap/ui/rta/appVariant/AppVariantManager.js +24 -17
  10. package/src/sap/ui/rta/appVariant/AppVariantUtils.js +107 -78
  11. package/src/sap/ui/rta/appVariant/Feature.js +5 -12
  12. package/src/sap/ui/rta/appVariant/Utils.js +10 -2
  13. package/src/sap/ui/rta/appVariant/manageApps/webapp/controller/ManageApps.controller.js +35 -20
  14. package/src/sap/ui/rta/command/AddIFrame.js +1 -1
  15. package/src/sap/ui/rta/command/AddProperty.js +1 -1
  16. package/src/sap/ui/rta/command/AddXML.js +1 -1
  17. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +1 -1
  18. package/src/sap/ui/rta/command/AppDescriptorCommand.js +1 -1
  19. package/src/sap/ui/rta/command/BaseCommand.js +1 -1
  20. package/src/sap/ui/rta/command/BindProperty.js +1 -1
  21. package/src/sap/ui/rta/command/Combine.js +1 -1
  22. package/src/sap/ui/rta/command/CommandFactory.js +1 -1
  23. package/src/sap/ui/rta/command/CompositeCommand.js +1 -1
  24. package/src/sap/ui/rta/command/ControlVariantConfigure.js +4 -4
  25. package/src/sap/ui/rta/command/ControlVariantSave.js +1 -1
  26. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +7 -4
  27. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +7 -7
  28. package/src/sap/ui/rta/command/ControlVariantSwitch.js +1 -1
  29. package/src/sap/ui/rta/command/CreateContainer.js +1 -1
  30. package/src/sap/ui/rta/command/CustomAdd.js +1 -1
  31. package/src/sap/ui/rta/command/FlexCommand.js +1 -1
  32. package/src/sap/ui/rta/command/LREPSerializer.js +1 -1
  33. package/src/sap/ui/rta/command/LocalReset.js +1 -1
  34. package/src/sap/ui/rta/command/Move.js +1 -1
  35. package/src/sap/ui/rta/command/Property.js +1 -1
  36. package/src/sap/ui/rta/command/Remove.js +1 -1
  37. package/src/sap/ui/rta/command/Rename.js +1 -1
  38. package/src/sap/ui/rta/command/Reveal.js +1 -1
  39. package/src/sap/ui/rta/command/Settings.js +1 -1
  40. package/src/sap/ui/rta/command/Split.js +1 -1
  41. package/src/sap/ui/rta/command/Stack.js +1 -1
  42. package/src/sap/ui/rta/command/appDescriptor/AddLibrary.js +1 -1
  43. package/src/sap/ui/rta/command/compVariant/CompVariantSaveAs.js +1 -1
  44. package/src/sap/ui/rta/command/compVariant/CompVariantSwitch.js +1 -1
  45. package/src/sap/ui/rta/command/compVariant/CompVariantUpdate.js +1 -1
  46. package/src/sap/ui/rta/enablement/elementActionTest.js +1 -1
  47. package/src/sap/ui/rta/library.js +2 -2
  48. package/src/sap/ui/rta/messagebundle.properties +6 -6
  49. package/src/sap/ui/rta/messagebundle_ar.properties +6 -6
  50. package/src/sap/ui/rta/messagebundle_bg.properties +6 -6
  51. package/src/sap/ui/rta/messagebundle_ca.properties +6 -6
  52. package/src/sap/ui/rta/messagebundle_cs.properties +6 -6
  53. package/src/sap/ui/rta/messagebundle_cy.properties +6 -6
  54. package/src/sap/ui/rta/messagebundle_da.properties +6 -6
  55. package/src/sap/ui/rta/messagebundle_de.properties +6 -6
  56. package/src/sap/ui/rta/messagebundle_el.properties +6 -6
  57. package/src/sap/ui/rta/messagebundle_en.properties +6 -6
  58. package/src/sap/ui/rta/messagebundle_en_GB.properties +6 -6
  59. package/src/sap/ui/rta/messagebundle_en_US_sappsd.properties +6 -6
  60. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +14 -7
  61. package/src/sap/ui/rta/messagebundle_en_US_saptrc.properties +6 -6
  62. package/src/sap/ui/rta/messagebundle_es.properties +6 -6
  63. package/src/sap/ui/rta/messagebundle_es_MX.properties +6 -6
  64. package/src/sap/ui/rta/messagebundle_et.properties +6 -6
  65. package/src/sap/ui/rta/messagebundle_fi.properties +6 -6
  66. package/src/sap/ui/rta/messagebundle_fr.properties +6 -6
  67. package/src/sap/ui/rta/messagebundle_fr_CA.properties +6 -6
  68. package/src/sap/ui/rta/messagebundle_hi.properties +6 -6
  69. package/src/sap/ui/rta/messagebundle_hr.properties +6 -6
  70. package/src/sap/ui/rta/messagebundle_hu.properties +6 -6
  71. package/src/sap/ui/rta/messagebundle_id.properties +6 -6
  72. package/src/sap/ui/rta/messagebundle_it.properties +6 -6
  73. package/src/sap/ui/rta/messagebundle_iw.properties +6 -6
  74. package/src/sap/ui/rta/messagebundle_ja.properties +6 -6
  75. package/src/sap/ui/rta/messagebundle_kk.properties +6 -6
  76. package/src/sap/ui/rta/messagebundle_ko.properties +6 -6
  77. package/src/sap/ui/rta/messagebundle_lt.properties +6 -6
  78. package/src/sap/ui/rta/messagebundle_lv.properties +6 -6
  79. package/src/sap/ui/rta/messagebundle_ms.properties +6 -6
  80. package/src/sap/ui/rta/messagebundle_nl.properties +6 -6
  81. package/src/sap/ui/rta/messagebundle_no.properties +6 -6
  82. package/src/sap/ui/rta/messagebundle_pl.properties +6 -6
  83. package/src/sap/ui/rta/messagebundle_pt.properties +6 -6
  84. package/src/sap/ui/rta/messagebundle_pt_PT.properties +6 -6
  85. package/src/sap/ui/rta/messagebundle_ro.properties +6 -6
  86. package/src/sap/ui/rta/messagebundle_ru.properties +6 -6
  87. package/src/sap/ui/rta/messagebundle_sh.properties +6 -6
  88. package/src/sap/ui/rta/messagebundle_sk.properties +6 -6
  89. package/src/sap/ui/rta/messagebundle_sl.properties +6 -6
  90. package/src/sap/ui/rta/messagebundle_sv.properties +6 -6
  91. package/src/sap/ui/rta/messagebundle_th.properties +6 -6
  92. package/src/sap/ui/rta/messagebundle_tr.properties +6 -6
  93. package/src/sap/ui/rta/messagebundle_uk.properties +6 -6
  94. package/src/sap/ui/rta/messagebundle_vi.properties +6 -6
  95. package/src/sap/ui/rta/messagebundle_zh_CN.properties +6 -6
  96. package/src/sap/ui/rta/messagebundle_zh_TW.properties +6 -6
  97. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +1 -1
  98. package/src/sap/ui/rta/plugin/BaseCreate.js +1 -1
  99. package/src/sap/ui/rta/plugin/Combine.js +1 -1
  100. package/src/sap/ui/rta/plugin/CompVariant.js +1 -2
  101. package/src/sap/ui/rta/plugin/ControlVariant.js +10 -5
  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/EasyAdd.js +1 -1
  106. package/src/sap/ui/rta/plugin/EasyRemove.js +1 -1
  107. package/src/sap/ui/rta/plugin/LocalReset.js +1 -1
  108. package/src/sap/ui/rta/plugin/Plugin.js +1 -1
  109. package/src/sap/ui/rta/plugin/RTAElementMover.js +1 -1
  110. package/src/sap/ui/rta/plugin/Remove.js +1 -1
  111. package/src/sap/ui/rta/plugin/Rename.js +1 -1
  112. package/src/sap/ui/rta/plugin/RenameHandler.js +1 -1
  113. package/src/sap/ui/rta/plugin/Selection.js +1 -1
  114. package/src/sap/ui/rta/plugin/Settings.js +1 -1
  115. package/src/sap/ui/rta/plugin/Split.js +1 -1
  116. package/src/sap/ui/rta/plugin/Stretch.js +1 -1
  117. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +1 -1
  118. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.fragment.xml +74 -0
  119. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +97 -260
  120. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +29 -16
  121. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +1 -1
  122. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +1 -1
  123. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +8 -5
  124. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +31 -29
  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 +1 -1
  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/{assets/InPageStyles.css → themes/base/OverlayWithScrollbar.less} +14 -12
  131. package/src/sap/ui/rta/themes/base/Toolbar.base.less +12 -1
  132. package/src/sap/ui/rta/themes/base/library.source.less +3 -1
  133. package/src/sap/ui/rta/toolbar/Adaptation.fragment.xml +26 -14
  134. package/src/sap/ui/rta/toolbar/Adaptation.js +3 -3
  135. package/src/sap/ui/rta/toolbar/Base.js +1 -1
  136. package/src/sap/ui/rta/toolbar/Fiori.js +1 -1
  137. package/src/sap/ui/rta/toolbar/FioriLike.js +1 -1
  138. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +1 -1
  139. package/src/sap/ui/rta/toolbar/Personalization.js +1 -1
  140. package/src/sap/ui/rta/toolbar/Standalone.js +1 -1
  141. package/src/sap/ui/rta/toolbar/translation/Translation.js +1 -1
  142. package/src/sap/ui/rta/util/PluginManager.js +2 -4
  143. package/src/sap/ui/rta/util/PopupManager.js +1 -1
  144. package/src/sap/ui/rta/util/ServiceEventBus.js +1 -1
  145. package/src/sap/ui/rta/util/adaptationStarter.js +3 -3
  146. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +1 -1
  147. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +1 -1
  148. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +52 -79
  149. package/ui5.yaml +4 -1
  150. package/src/sap/ui/rta/util/changeVisualization/ChangesListPopover.fragment.xml +0 -23
package/.reuse/dep5 CHANGED
@@ -400,6 +400,11 @@ Copyright: 2014 Vitaly Puzrin, Alex Kocharin
400
400
  License: MIT
401
401
  Comment: these files belong to: Markdown-it
402
402
 
403
+ Files: src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
404
+ Copyright: 2015-2017 Evgeny Poberezkin
405
+ License: MIT
406
+ Comment: these files belong to: ajv
407
+
403
408
 
404
409
  # Library: sap.ui.mdc:
405
410
 
@@ -447,11 +452,6 @@ Copyright: 2009-2014, Alexis Sellier <self@cloudhead.net>
447
452
  License: Apache-2.0
448
453
  Comment: these files belong to: LESS
449
454
 
450
- Files: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
451
- Copyright: 2015-2017 Evgeny Poberezkin
452
- License: MIT
453
- Comment: these files belong to: ajv
454
-
455
455
  Files: lib/jsdoc/ui5/plugin.js
456
456
  Copyright:
457
457
  2009-2021 SAP SE or an SAP affiliate company and OpenUI5 contributors
@@ -459,3 +459,8 @@ Copyright:
459
459
  License: Apache-2.0
460
460
  Comment: these files contain content from SAP and JSDoc 3: plugin.js is overall written by SAP, but contains code taken from JSDoc 3.6.7 (see the respective comments)
461
461
 
462
+ Files: src/sap.ui.core/src/sap/ui/core/themes/base/base.less src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
463
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
464
+ License: Apache-2.0
465
+ Comment: these files belong to: SAP Theming Base Content
466
+
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.12
9
+ Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.13
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
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.6
200
+ Component: URI.js, version: 1.19.7
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -389,6 +389,12 @@ License: MIT
389
389
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
390
390
  Contained in: src/sap.ui.integration/src/sap/ui/integration/thirdparty/markdown-it.js
391
391
 
392
+ Component: ajv, version: 6.12.3
393
+ Copyright: 2015-2017 Evgeny Poberezkin
394
+ License: MIT
395
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
396
+ Contained in: src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
397
+
392
398
 
393
399
  Library: sap.ui.mdc:
394
400
 
@@ -444,18 +450,21 @@ License: Apache-2.0
444
450
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
445
451
  Contained in: src/testsuite-utils/src/main/resources/META-INF/less/less.js
446
452
 
447
- Component: ajv, version: 6.12.3
448
- Copyright: 2015-2017 Evgeny Poberezkin
449
- License: MIT
450
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
451
- Contained in: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
452
-
453
453
  Component: JSDoc 3, version: 3.6.7
454
454
  Copyright: 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
455
455
  License: Apache-2.0
456
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
457
457
  Contained in: lib/jsdoc/ui5/plugin.js
458
458
 
459
+ Component: SAP Theming Base Content, version: 11.1.34
460
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
461
+ License: Apache-2.0
462
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
+ Contained in: src/sap.ui.core/src/sap/ui/core/themes/base/base.less
464
+ src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less
465
+ src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less
466
+ src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
467
+
459
468
 
460
469
  ALL LICENSE TEXTS:
461
470
  ==================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.rta",
3
- "version": "1.95.0",
3
+ "version": "1.96.3",
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.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"
17
+ "@openui5/sap.m": "1.96.3",
18
+ "@openui5/sap.ui.core": "1.96.3",
19
+ "@openui5/sap.ui.dt": "1.96.3",
20
+ "@openui5/sap.ui.fl": "1.96.3",
21
+ "@openui5/sap.ui.layout": "1.96.3"
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.95.0</version>
9
+ <version>1.96.3</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.95.0
60
+ * @version 1.96.3
61
61
  * @private
62
62
  * @ui5-restricted
63
63
  */
@@ -107,7 +107,7 @@ function(
107
107
  * @class The runtime authoring allows to adapt the fields of a running application.
108
108
  * @extends sap.ui.base.ManagedObject
109
109
  * @author SAP SE
110
- * @version 1.95.0
110
+ * @version 1.96.3
111
111
  * @constructor
112
112
  * @private
113
113
  * @since 1.30
@@ -119,7 +119,7 @@ function(
119
119
  // ---- control specific ----
120
120
  library: "sap.ui.rta",
121
121
  associations: {
122
- /** The root control which the runtime authoring should handle. Can only be sap.ui.core.Element or sap.ui.core.UIComponent */
122
+ /** The root control which the runtime authoring should handle. Can only be sap.ui.core.Control or sap.ui.core.UIComponent */
123
123
  rootControl: {
124
124
  type: "sap.ui.base.ManagedObject"
125
125
  }
@@ -225,6 +225,7 @@ function(
225
225
  this._dependents = {};
226
226
  this._mServices = {};
227
227
  this._mCustomServicesDictinary = {};
228
+ this._mUShellServices = {};
228
229
 
229
230
  this.addDependent(new PluginManager(), "pluginManager");
230
231
  this.addDependent(new PopupManager(), "popupManager");
@@ -244,6 +245,11 @@ function(
244
245
  if (this._shouldValidateFlexEnabled()) {
245
246
  this.attachEvent("start", validateFlexEnabled.bind(null, this));
246
247
  }
248
+
249
+ this._loadUShellServicesPromise = FlexUtils.getUShellServices(["URLParsing", "AppLifeCycle", "CrossApplicationNavigation"])
250
+ .then(function (mUShellServices) {
251
+ this._mUShellServices = mUShellServices;
252
+ }.bind(this));
247
253
  },
248
254
  _RELOAD: {
249
255
  NOT_NEEDED: "NO_RELOAD",
@@ -411,6 +417,15 @@ function(
411
417
  }).then(this._setVersionsModel.bind(this));
412
418
  };
413
419
 
420
+ function addOrRemoveStyleClass(oRootControl, bAdd) {
421
+ if (oRootControl.isA("sap.ui.core.UIComponent")) {
422
+ oRootControl = oRootControl.getRootControl();
423
+ }
424
+ if (oRootControl) {
425
+ oRootControl[bAdd ? "addStyleClass" : "removeStyleClass"]("sapUiRtaRoot");
426
+ }
427
+ }
428
+
414
429
  /**
415
430
  * Start UI adaptation at runtime (RTA).
416
431
  * @return {Promise} Returns a Promise with the initialization of RTA
@@ -429,7 +444,8 @@ function(
429
444
  return Promise.reject(vError);
430
445
  }
431
446
 
432
- return this._initVersioning()
447
+ return this._loadUShellServicesPromise
448
+ .then(this._initVersioning.bind(this))
433
449
  /*
434
450
  Check if the application has personalized changes and reload without them;
435
451
  Also Check if the application has an available draft and if yes, reload with those changes.
@@ -495,15 +511,9 @@ function(
495
511
  // this is needed to initially check if undo is available, e.g. when the stack gets initialized with changes
496
512
  .then(this._onStackModified.bind(this))
497
513
  .then(function () {
498
- // non-blocking style loading
499
- StylesLoader
500
- .loadStyles("InPageStyles")
501
- .then(function (sData) {
502
- var sStyles = sData.replace(/%scrollWidth%/g, DOMUtil.getScrollbarWidth() + "px");
503
- DOMUtil.insertStyles(sStyles, Overlay.getOverlayContainer().get(0));
504
- });
505
- })
506
- .then(function () {
514
+ //Resolve the CSS variable set in themes/base/OverlayWithScrollbar.css
515
+ Overlay.getOverlayContainer().get(0).style.setProperty("--sap-ui-rta-scrollbar-scrollWidth", DOMUtil.getScrollbarWidth() + "px");
516
+ Overlay.getOverlayContainer().get(0).style.setProperty("--sap-ui-rta-scrollbar-scrollWidthPlusTwo", DOMUtil.getScrollbarWidth() + 2 + "px");
507
517
  return oDesignTimePromise;
508
518
  })
509
519
  .then(function () {
@@ -527,11 +537,7 @@ function(
527
537
  this.fnKeyDown = this._onKeyDown.bind(this);
528
538
  jQuery(document).on("keydown", this.fnKeyDown);
529
539
 
530
- var oRootOverlay = OverlayRegistry.getOverlay(this.getRootControl());
531
- this._$RootControl = oRootOverlay.getAssociatedDomRef();
532
- if (this._$RootControl) {
533
- this._$RootControl.addClass("sapUiRtaRoot");
534
- }
540
+ addOrRemoveStyleClass(this.getRootControlInstance(), true);
535
541
  }.bind(this))
536
542
  .then(function () {
537
543
  this._sStatus = STARTED;
@@ -907,7 +913,7 @@ function(
907
913
  }
908
914
  var bTriggerReload = true;
909
915
  this.getCommandStack().removeAllCommands();
910
- var mParsedHash = this._removeVersionParameterForFLP(oReloadInfo, FlexUtils.getParsedURLHash(), bTriggerReload);
916
+ var mParsedHash = this._removeVersionParameterForFLP(oReloadInfo, FlexUtils.getParsedURLHash(this._getUShellService("URLParsing")), bTriggerReload);
911
917
  this._triggerCrossAppNavigation(mParsedHash);
912
918
  return this.stop(true, true);
913
919
  };
@@ -926,6 +932,7 @@ function(
926
932
  })
927
933
  .then(this._handleDiscard.bind(this));
928
934
  }
935
+ return undefined;
929
936
  }.bind(this));
930
937
  };
931
938
 
@@ -940,23 +947,23 @@ function(
940
947
 
941
948
  if (this.canUndo()) {
942
949
  this._nSwitchToVersion = nVersion;
943
- return Utils.showMessageBox("warning", "MSG_SWITCH_VERSION_DIALOG", {
950
+ Utils.showMessageBox("warning", "MSG_SWITCH_VERSION_DIALOG", {
944
951
  titleKey: "TIT_SWITCH_VERSION_DIALOG",
945
952
  actions: [MessageBox.Action.YES, MessageBox.Action.NO, MessageBox.Action.CANCEL],
946
953
  emphasizedAction: MessageBox.Action.YES
947
954
  }).then(function (sAction) {
948
- switch (sAction) {
949
- case MessageBox.Action.YES:
950
- return this._serializeToLrep(this)
951
- .then(this._switchVersion.bind(this, this._nSwitchToVersion));
952
- case MessageBox.Action.NO:
953
- // avoids the data loss popup; a reload is triggered later and will destroy RTA & the command stack
954
- this.getCommandStack().removeAllCommands(true);
955
- this._switchVersion(this._nSwitchToVersion);
955
+ if (sAction === MessageBox.Action.YES) {
956
+ this._serializeToLrep(this)
957
+ .then(this._switchVersion.bind(this, this._nSwitchToVersion));
958
+ } else if (sAction === MessageBox.Action.NO) {
959
+ // avoids the data loss popup; a reload is triggered later and will destroy RTA & the command stack
960
+ this.getCommandStack().removeAllCommands(true);
961
+ this._switchVersion(this._nSwitchToVersion);
956
962
  }
963
+ return undefined;
957
964
  }.bind(this));
965
+ return;
958
966
  }
959
-
960
967
  this._switchVersion(nVersion);
961
968
  };
962
969
 
@@ -966,7 +973,7 @@ function(
966
973
  RuntimeAuthoring.enableRestart(this.getLayer(), this.getRootControlInstance());
967
974
 
968
975
  if (!FlexUtils.getUshellContainer()) {
969
- if (!ReloadInfoAPI.hasVersionParameterWithValue({value: sVersion})) {
976
+ if (!ReloadInfoAPI.hasVersionParameterWithValue({value: sVersion}, this._getUShellService("URLParsing"))) {
970
977
  var oReloadInfo = {
971
978
  versionSwitch: true,
972
979
  version: sVersion
@@ -975,20 +982,25 @@ function(
975
982
  }
976
983
  return this._reloadPage();
977
984
  }
978
- var mParsedHash = FlexUtils.getParsedURLHash();
985
+ var mParsedHash = FlexUtils.getParsedURLHash(this._getUShellService("URLParsing"));
979
986
  VersionsAPI.loadVersionForApplication({
980
987
  selector: this.getRootControlInstance(),
981
988
  layer: this.getLayer(),
982
989
  version: nVersion
983
990
  });
984
991
  var aVersionsParameter = mParsedHash.params[sap.ui.fl.Versions.UrlParameter];
985
- if (aVersionsParameter && aVersionsParameter[0] === sVersion) {
992
+ if (
993
+ aVersionsParameter &&
994
+ aVersionsParameter[0] === sVersion &&
995
+ this._getUShellService("AppLifeCycle")
996
+ ) {
986
997
  // RTA was started with a version parameter, the displayed version has changed and the key user switches back
987
- FlexUtils.getUshellContainer().getService("AppLifeCycle").reloadCurrentApp();
998
+ this._getUShellService("AppLifeCycle").reloadCurrentApp();
988
999
  } else {
989
1000
  mParsedHash.params[sap.ui.fl.Versions.UrlParameter] = sVersion;
990
1001
  this._triggerCrossAppNavigation(mParsedHash);
991
1002
  }
1003
+ return undefined;
992
1004
  };
993
1005
 
994
1006
  RuntimeAuthoring.prototype._setUriParameter = function (sParameters) {
@@ -1017,8 +1029,8 @@ function(
1017
1029
  oProperties.activate = this._onActivate.bind(this);
1018
1030
  oProperties.discardDraft = this._onDiscardDraft.bind(this);
1019
1031
  oProperties.switchVersion = this._onSwitchVersion.bind(this);
1020
- oProperties.toggleChangeVisualizationPopover = this.getChangeVisualization
1021
- ? this.getChangeVisualization().togglePopover.bind(this.getChangeVisualization())
1032
+ oProperties.onCommandCategorySelection = this.getChangeVisualization
1033
+ ? this.getChangeVisualization().onCommandCategorySelection.bind(this.getChangeVisualization())
1022
1034
  : function () {};
1023
1035
  }
1024
1036
 
@@ -1100,8 +1112,8 @@ function(
1100
1112
  jQuery(document).off("keydown", this.fnKeyDown);
1101
1113
  }
1102
1114
 
1103
- if (this._$RootControl) {
1104
- this._$RootControl.removeClass("sapUiRtaRoot");
1115
+ if (this.getRootControlInstance()) {
1116
+ addOrRemoveStyleClass(this.getRootControlInstance(), false);
1105
1117
  }
1106
1118
 
1107
1119
  this.setCommandStack(null);
@@ -1169,7 +1181,7 @@ function(
1169
1181
  * the changes for both places will be deleted. For App Variants all the changes are saved in one place.
1170
1182
  *
1171
1183
  * @private
1172
- * @returns {Promise}
1184
+ * @returns {Promise} Resolves when change persistence is resetted
1173
1185
  */
1174
1186
  RuntimeAuthoring.prototype._deleteChanges = function() {
1175
1187
  var sLayer = this.getLayer();
@@ -1180,7 +1192,7 @@ function(
1180
1192
  }).then(function () {
1181
1193
  ReloadInfoAPI.removeInfoSessionStorage(oSelector);
1182
1194
  var oReloadInfo = {
1183
- isDraftAvailable: ReloadInfoAPI.hasVersionParameterWithValue({value: sLayer}),
1195
+ isDraftAvailable: ReloadInfoAPI.hasVersionParameterWithValue({value: sLayer}, this._getUShellService("URLParsing")),
1184
1196
  layer: sLayer,
1185
1197
  deleteMaxLayer: false,
1186
1198
  triggerHardReload: true
@@ -1261,25 +1273,28 @@ function(
1261
1273
  */
1262
1274
  RuntimeAuthoring.prototype._onRestore = function() {
1263
1275
  var sLayer = this.getLayer();
1264
- var sMessage = sLayer === Layer.USER
1265
- ? this._getTextResources().getText("FORM_PERS_RESET_MESSAGE_PERSONALIZATION")
1266
- : this._getTextResources().getText("FORM_PERS_RESET_MESSAGE");
1267
- var sTitle = sLayer === Layer.USER
1268
- ? this._getTextResources().getText("BTN_RESTORE")
1269
- : this._getTextResources().getText("FORM_PERS_RESET_TITLE");
1276
+ var sMessageKey = sLayer === Layer.USER
1277
+ ? "FORM_PERS_RESET_MESSAGE_PERSONALIZATION"
1278
+ : "FORM_PERS_RESET_MESSAGE";
1279
+ var sTitleKey = sLayer === Layer.USER
1280
+ ? "BTN_RESTORE"
1281
+ : "FORM_PERS_RESET_TITLE";
1270
1282
 
1271
1283
  this.getPluginManager().handleStopCutPaste();
1272
1284
 
1273
- return Utils.showMessageBox("warning", sMessage, {
1274
- titleKey: sTitle,
1285
+ return Utils.showMessageBox("warning", sMessageKey, {
1286
+ titleKey: sTitleKey,
1275
1287
  actions: [MessageBox.Action.OK, MessageBox.Action.CANCEL],
1276
1288
  emphasizedAction: MessageBox.Action.OK
1277
1289
  }).then(function(sAction) {
1278
1290
  if (sAction === MessageBox.Action.OK) {
1279
1291
  RuntimeAuthoring.enableRestart(sLayer, this.getRootControlInstance());
1280
- this._deleteChanges();
1281
- this.getCommandStack().removeAllCommands();
1292
+ return this._deleteChanges()
1293
+ .then(function () {
1294
+ this.getCommandStack().removeAllCommands();
1295
+ }.bind(this));
1282
1296
  }
1297
+ return undefined;
1283
1298
  }.bind(this));
1284
1299
  };
1285
1300
 
@@ -1420,12 +1435,15 @@ function(
1420
1435
  };
1421
1436
 
1422
1437
  RuntimeAuthoring.prototype._triggerCrossAppNavigation = function(mParsedHash) {
1423
- if (this.getLayer() !== Layer.USER) {
1424
- return FlexUtils.ifUShellContainerThen(function(aServices) {
1425
- aServices[0].toExternal(this._buildNavigationArguments(mParsedHash));
1426
- return Promise.resolve(true);
1427
- }.bind(this), ["CrossApplicationNavigation"]);
1438
+ if (
1439
+ (this.getLayer() !== Layer.USER) &&
1440
+ this._getUShellService("CrossApplicationNavigation")
1441
+ ) {
1442
+ this._getUShellService("CrossApplicationNavigation")
1443
+ .toExternal(this._buildNavigationArguments(mParsedHash));
1444
+ return true;
1428
1445
  }
1446
+ return false;
1429
1447
  };
1430
1448
 
1431
1449
  RuntimeAuthoring.prototype._removeVersionParameterForFLP = function(oReloadInfo, mParsedHash, bTriggerReload) {
@@ -1434,13 +1452,16 @@ function(
1434
1452
  return mParsedHash;
1435
1453
  }
1436
1454
 
1437
- var sVersionParameter = FlexUtils.getParameter(flexLibrary.Versions.UrlParameter);
1455
+ var sVersionParameter = FlexUtils.getParameter(flexLibrary.Versions.UrlParameter, this._getUShellService("URLParsing"));
1438
1456
  if (sVersionParameter) {
1439
1457
  delete mParsedHash.params[flexLibrary.Versions.UrlParameter];
1440
- } else if ((this._isDraftAvailable() || bTriggerReload /* for discarding of dirty changes */)
1441
- && !oReloadInfo.hasHigherLayerChanges) {
1458
+ } else if (
1459
+ (this._isDraftAvailable() || bTriggerReload /* for discarding of dirty changes */) &&
1460
+ !oReloadInfo.hasHigherLayerChanges &&
1461
+ this._getUShellService("AppLifeCycle")
1462
+ ) {
1442
1463
  // reloading this way only works when we dont have to remove max-layer parameter, see _removeMaxLayerParameterForFLP
1443
- FlexUtils.getUshellContainer().getService("AppLifeCycle").reloadCurrentApp();
1464
+ this._getUShellService("AppLifeCycle").reloadCurrentApp();
1444
1465
  }
1445
1466
  return mParsedHash;
1446
1467
  };
@@ -1468,14 +1489,18 @@ function(
1468
1489
  return this._triggerHardReload(oReloadInfo);
1469
1490
  }
1470
1491
 
1471
- var mParsedHash = FlexUtils.getParsedURLHash();
1492
+ var mParsedHash = FlexUtils.getParsedURLHash(this._getUShellService("URLParsing"));
1472
1493
  if (!mParsedHash) {
1473
- return;
1494
+ return undefined;
1474
1495
  }
1475
1496
 
1476
1497
  // allContexts do not change the url parameter to trigger a reload
1477
- if (oReloadInfo.allContexts && !oReloadInfo.hasHigherLayerChanges) {
1478
- FlexUtils.getUshellContainer().getService("AppLifeCycle").reloadCurrentApp();
1498
+ if (
1499
+ oReloadInfo.allContexts &&
1500
+ !oReloadInfo.hasHigherLayerChanges &&
1501
+ this._getUShellService("AppLifeCycle")
1502
+ ) {
1503
+ this._getUShellService("AppLifeCycle").reloadCurrentApp();
1479
1504
  }
1480
1505
 
1481
1506
  mParsedHash = this._removeMaxLayerParameterForFLP(oReloadInfo, mParsedHash);
@@ -1582,7 +1607,7 @@ function(
1582
1607
  };
1583
1608
 
1584
1609
  RuntimeAuthoring.prototype._triggerReloadOnStart = function(oReloadInfo) {
1585
- FlexUtils.ifUShellContainerThen(function() {
1610
+ if (this._getUShellService("CrossApplicationNavigation")) {
1586
1611
  if (oReloadInfo.isDraftAvailable) {
1587
1612
  // clears FlexState and triggers reloading of the flex data without blocking
1588
1613
  VersionsAPI.loadDraftForApplication({
@@ -1596,7 +1621,7 @@ function(
1596
1621
  allContexts: oReloadInfo.allContexts
1597
1622
  });
1598
1623
  }
1599
- }, ["CrossApplicationNavigation"]);
1624
+ }
1600
1625
  var sReason = this._getReloadMessageOnStart(oReloadInfo);
1601
1626
  if (!sReason) {
1602
1627
  return Promise.resolve();
@@ -1605,8 +1630,12 @@ function(
1605
1630
  .then(function() {
1606
1631
  RuntimeAuthoring.enableRestart(oReloadInfo.layer, this.getRootControlInstance());
1607
1632
  // allContexts do not change the url parameter to trigger a reload
1608
- if (oReloadInfo.allContexts && !oReloadInfo.hasHigherLayerChanges) {
1609
- FlexUtils.getUshellContainer().getService("AppLifeCycle").reloadCurrentApp();
1633
+ if (
1634
+ oReloadInfo.allContexts &&
1635
+ !oReloadInfo.hasHigherLayerChanges &&
1636
+ this._getUShellService("AppLifeCycle")
1637
+ ) {
1638
+ this._getUShellService("AppLifeCycle").reloadCurrentApp();
1610
1639
  }
1611
1640
  if (FlexUtils.getUshellContainer()) {
1612
1641
  // clears FlexState and triggers reloading of the flex data without blocking
@@ -1632,7 +1661,8 @@ function(
1632
1661
  layer: this.getLayer(),
1633
1662
  selector: this.getRootControlInstance(),
1634
1663
  ignoreMaxLayerParameter: false,
1635
- includeCtrlVariants: true
1664
+ includeCtrlVariants: true,
1665
+ URLParsingService: this._getUShellService("URLParsing")
1636
1666
  };
1637
1667
  return ReloadInfoAPI.getReloadReasonsForStart(oReloadInfo)
1638
1668
  .then(function (oReloadInfo) {
@@ -1642,6 +1672,7 @@ function(
1642
1672
  if (oReloadInfo.hasHigherLayerChanges || oReloadInfo.isDraftAvailable || oReloadInfo.allContexts) {
1643
1673
  return this._triggerReloadOnStart(oReloadInfo);
1644
1674
  }
1675
+ return undefined;
1645
1676
  }.bind(this));
1646
1677
  };
1647
1678
 
@@ -1650,10 +1681,11 @@ function(
1650
1681
  * This function must only be called outside of the ushell.
1651
1682
  *
1652
1683
  * @param {Object} oReloadInfo - Information to determine reload is needed
1653
- * @returns {Promise}
1684
+ * @returns {Promise} Resolves when page reload is triggered
1654
1685
  */
1655
1686
  RuntimeAuthoring.prototype._triggerHardReload = function(oReloadInfo) {
1656
1687
  oReloadInfo.parameters = document.location.search;
1688
+ oReloadInfo.URLParsingService = this._getUShellService("URLParsing");
1657
1689
  var sParameters = ReloadInfoAPI.handleUrlParametersForStandalone(oReloadInfo);
1658
1690
  if (document.location.search !== sParameters) {
1659
1691
  this._setUriParameter(sParameters);
@@ -1682,7 +1714,8 @@ function(
1682
1714
  changesNeedReload: bChangesNeedReload,
1683
1715
  isDraftAvailable: this._oVersionsModel.getProperty("/draftAvailable"),
1684
1716
  versioningEnabled: this._oVersionsModel.getProperty("/versioningEnabled"),
1685
- activeVersion: this._oVersionsModel.getProperty("/activeVersion")
1717
+ activeVersion: this._oVersionsModel.getProperty("/activeVersion"),
1718
+ URLParsingService: this._getUShellService("URLParsing")
1686
1719
  };
1687
1720
  oReloadInfo = ReloadInfoAPI.getReloadMethod(oReloadInfo);
1688
1721
  return this._handleReloadMessageBoxOnExit(oReloadInfo).then(function () {
@@ -1704,7 +1737,7 @@ function(
1704
1737
  if (sCurrentMode !== sNewMode) {
1705
1738
  var oChangeVisualization = this.getChangeVisualization && this.getChangeVisualization();
1706
1739
  if (sNewMode === "visualization" || sCurrentMode === "visualization") {
1707
- oChangeVisualization.triggerModeChange(this.getRootControl());
1740
+ oChangeVisualization.triggerModeChange(this.getRootControl(), this.getToolbar());
1708
1741
  }
1709
1742
  var oTabHandlingPlugin = this.getPluginManager().getPlugin("tabHandling");
1710
1743
  var oSelectionPlugin = this.getPluginManager().getPlugin("selection");
@@ -1940,5 +1973,9 @@ function(
1940
1973
  return this.startService(sName);
1941
1974
  };
1942
1975
 
1976
+ RuntimeAuthoring.prototype._getUShellService = function(sServiceName) {
1977
+ return FlexUtils.getUshellContainer() && this._mUShellServices[sServiceName];
1978
+ };
1979
+
1943
1980
  return RuntimeAuthoring;
1944
1981
  });
@@ -46,7 +46,7 @@ function(
46
46
  * @class Utility functionality to work with controls, e.g. iterate through aggregations, find parents, etc.
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.95.0
49
+ * @version 1.96.3
50
50
  *
51
51
  * @private
52
52
  * @static
@@ -143,9 +143,10 @@ function(
143
143
  var aIcons = [];
144
144
 
145
145
  aUI5Icons.forEach(function(sName) {
146
+ var iconInfo = IconPool.getIconInfo(sName);
146
147
  aIcons.push({
147
- icon: IconPool.getIconInfo(sName).uri,
148
- name: sName.toLowerCase()
148
+ icon: iconInfo.uri,
149
+ name: (iconInfo.text === "") ? sName.toLowerCase() : iconInfo.text
149
150
  });
150
151
  });
151
152
 
@@ -283,7 +284,7 @@ function(
283
284
 
284
285
  // initialize dialog and create member variables.
285
286
  this.setTitle(oResources.getText("CREATE_APP_VARIANT_DIALOG_TITLE"));
286
- this.setContentWidth("620px");
287
+ this.setContentWidth("700px");
287
288
  this.setContentHeight("250px");
288
289
 
289
290
  oCustomTileModel = new JSONModel({
@@ -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.95.0
27
+ * @version 1.96.3
28
28
  * @constructor
29
29
  * @private
30
30
  * @since 1.53
@@ -83,6 +83,7 @@ sap.ui.define([
83
83
  /**
84
84
  *
85
85
  * @param {Object} oAppVariantSpecificData - Contains the specific info needed to create the inline changes for the app variant
86
+ * @param {sap.ui.fl.Selector} vSelector - Managed object or selector object
86
87
  * @returns {Promise[]} returns all the descriptor inline changes
87
88
  * @description Creates all the descriptor inline changes for different change types.
88
89
  */
@@ -108,25 +109,31 @@ sap.ui.define([
108
109
  aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_ui_setIcon", vSelector));
109
110
 
110
111
  /***********************************************************Inbounds handling******************************************************************/
111
- var oInboundInfo = AppVariantUtils.getInboundInfo(oAppVariantSpecificData.inbounds);
112
- var sCurrentRunningInboundId = oInboundInfo.currentRunningInbound;
112
+ return AppVariantUtils.getInboundInfo(oAppVariantSpecificData.inbounds)
113
+ .then(function(oInboundInfo) {
114
+ var sCurrentRunningInboundId = oInboundInfo.currentRunningInbound;
113
115
 
114
- // If there is no inbound, create a new inbound
115
- if (oInboundInfo.addNewInboundRequired) {
116
- // create a inline change using a change type 'appdescr_app_addNewInbound'
117
- oPropertyChange = AppVariantUtils.prepareAddNewInboundChange(sCurrentRunningInboundId, sAppVariantId, oAppVariantSpecificData);
118
- aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_addNewInbound", vSelector));
116
+ // If there is no inbound, create a new inbound
117
+ if (oInboundInfo.addNewInboundRequired) {
118
+ // create a inline change using a change type 'appdescr_app_addNewInbound'
119
+ var oInlineChangePromise = AppVariantUtils.prepareAddNewInboundChange(sCurrentRunningInboundId, sAppVariantId, oAppVariantSpecificData)
120
+ .then(function(oPropertyChange) {
121
+ return AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_addNewInbound", vSelector);
122
+ });
119
123
 
120
- // create a inline change using a change type 'appdescr_app_removeAllInboundsExceptOne'
121
- oPropertyChange = AppVariantUtils.prepareRemoveAllInboundsExceptOneChange(sCurrentRunningInboundId);
122
- aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_removeAllInboundsExceptOne", vSelector));
123
- } else {
124
- // create a inline change using a change type 'appdescr_app_changeInbound'
125
- oPropertyChange = AppVariantUtils.prepareChangeInboundChange(sCurrentRunningInboundId, sAppVariantId, oAppVariantSpecificData);
126
- aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_changeInbound", vSelector));
127
- }
124
+ aAllInlineChangeOperations.push(oInlineChangePromise);
125
+
126
+ // create a inline change using a change type 'appdescr_app_removeAllInboundsExceptOne'
127
+ oPropertyChange = AppVariantUtils.prepareRemoveAllInboundsExceptOneChange(sCurrentRunningInboundId);
128
+ aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_removeAllInboundsExceptOne", vSelector));
129
+ } else {
130
+ // create a inline change using a change type 'appdescr_app_changeInbound'
131
+ oPropertyChange = AppVariantUtils.prepareChangeInboundChange(sCurrentRunningInboundId, sAppVariantId, oAppVariantSpecificData);
132
+ aAllInlineChangeOperations.push(AppVariantUtils.createInlineChange(oPropertyChange, "appdescr_app_changeInbound", vSelector));
133
+ }
128
134
 
129
- return Promise.all(aAllInlineChangeOperations);
135
+ return Promise.all(aAllInlineChangeOperations);
136
+ });
130
137
  };
131
138
 
132
139
  /**