@openui5/sap.ui.rta 1.117.1 → 1.118.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 (170) hide show
  1. package/.eslintrc.json +25 -1
  2. package/package.json +6 -6
  3. package/src/sap/ui/rta/.library +1 -1
  4. package/src/sap/ui/rta/Client.js +32 -21
  5. package/src/sap/ui/rta/RuntimeAuthoring.js +78 -45
  6. package/src/sap/ui/rta/Utils.js +10 -16
  7. package/src/sap/ui/rta/api/startAdaptation.js +0 -1
  8. package/src/sap/ui/rta/api/startKeyUserAdaptation.js +0 -1
  9. package/src/sap/ui/rta/appVariant/AppVariantDialog.js +24 -26
  10. package/src/sap/ui/rta/appVariant/AppVariantManager.js +1 -3
  11. package/src/sap/ui/rta/appVariant/AppVariantOverviewDialog.js +5 -4
  12. package/src/sap/ui/rta/appVariant/AppVariantUtils.js +21 -21
  13. package/src/sap/ui/rta/appVariant/Feature.js +20 -30
  14. package/src/sap/ui/rta/appVariant/S4HanaCloudBackend.js +21 -17
  15. package/src/sap/ui/rta/appVariant/Utils.js +4 -3
  16. package/src/sap/ui/rta/appVariant/manageApps/webapp/Component.js +8 -7
  17. package/src/sap/ui/rta/appVariant/manageApps/webapp/controller/ManageApps.controller.js +17 -17
  18. package/src/sap/ui/rta/appVariant/manageApps/webapp/model/models.js +1 -1
  19. package/src/sap/ui/rta/command/AddIFrame.js +5 -7
  20. package/src/sap/ui/rta/command/AddProperty.js +1 -3
  21. package/src/sap/ui/rta/command/AddXML.js +7 -7
  22. package/src/sap/ui/rta/command/AddXMLAtExtensionPoint.js +5 -5
  23. package/src/sap/ui/rta/command/AppDescriptorCommand.js +1 -3
  24. package/src/sap/ui/rta/command/BaseCommand.js +1 -3
  25. package/src/sap/ui/rta/command/BindProperty.js +4 -5
  26. package/src/sap/ui/rta/command/Combine.js +1 -3
  27. package/src/sap/ui/rta/command/CommandFactory.js +7 -11
  28. package/src/sap/ui/rta/command/CompositeCommand.js +2 -6
  29. package/src/sap/ui/rta/command/ControlVariantConfigure.js +2 -2
  30. package/src/sap/ui/rta/command/ControlVariantSave.js +1 -1
  31. package/src/sap/ui/rta/command/ControlVariantSaveAs.js +4 -4
  32. package/src/sap/ui/rta/command/ControlVariantSetTitle.js +1 -1
  33. package/src/sap/ui/rta/command/ControlVariantSwitch.js +4 -3
  34. package/src/sap/ui/rta/command/CreateContainer.js +1 -3
  35. package/src/sap/ui/rta/command/CustomAdd.js +1 -2
  36. package/src/sap/ui/rta/command/FlexCommand.js +2 -7
  37. package/src/sap/ui/rta/command/LREPSerializer.js +1 -3
  38. package/src/sap/ui/rta/command/LocalReset.js +1 -1
  39. package/src/sap/ui/rta/command/Move.js +1 -3
  40. package/src/sap/ui/rta/command/Property.js +1 -3
  41. package/src/sap/ui/rta/command/Remove.js +1 -3
  42. package/src/sap/ui/rta/command/Rename.js +1 -3
  43. package/src/sap/ui/rta/command/Resize.js +1 -1
  44. package/src/sap/ui/rta/command/Reveal.js +1 -3
  45. package/src/sap/ui/rta/command/Settings.js +5 -7
  46. package/src/sap/ui/rta/command/Split.js +1 -3
  47. package/src/sap/ui/rta/command/Stack.js +2 -4
  48. package/src/sap/ui/rta/command/appDescriptor/AddLibrary.js +1 -3
  49. package/src/sap/ui/rta/command/compVariant/CompVariantContent.js +1 -1
  50. package/src/sap/ui/rta/command/compVariant/CompVariantSaveAs.js +1 -1
  51. package/src/sap/ui/rta/command/compVariant/CompVariantSwitch.js +4 -3
  52. package/src/sap/ui/rta/command/compVariant/CompVariantUpdate.js +1 -1
  53. package/src/sap/ui/rta/enablement/TestDelegate.js +7 -8
  54. package/src/sap/ui/rta/enablement/elementActionTest.js +25 -29
  55. package/src/sap/ui/rta/library.js +2 -3
  56. package/src/sap/ui/rta/messagebundle.properties +7 -7
  57. package/src/sap/ui/rta/messagebundle_ar.properties +8 -8
  58. package/src/sap/ui/rta/messagebundle_bg.properties +7 -7
  59. package/src/sap/ui/rta/messagebundle_ca.properties +7 -7
  60. package/src/sap/ui/rta/messagebundle_cs.properties +8 -8
  61. package/src/sap/ui/rta/messagebundle_cy.properties +8 -8
  62. package/src/sap/ui/rta/messagebundle_da.properties +7 -7
  63. package/src/sap/ui/rta/messagebundle_de.properties +8 -8
  64. package/src/sap/ui/rta/messagebundle_el.properties +7 -7
  65. package/src/sap/ui/rta/messagebundle_en.properties +8 -8
  66. package/src/sap/ui/rta/messagebundle_en_GB.properties +8 -8
  67. package/src/sap/ui/rta/messagebundle_en_US_sappsd.properties +8 -8
  68. package/src/sap/ui/rta/messagebundle_en_US_saprigi.properties +7 -7
  69. package/src/sap/ui/rta/messagebundle_en_US_saptrc.properties +8 -8
  70. package/src/sap/ui/rta/messagebundle_es.properties +8 -8
  71. package/src/sap/ui/rta/messagebundle_es_MX.properties +8 -8
  72. package/src/sap/ui/rta/messagebundle_et.properties +6 -6
  73. package/src/sap/ui/rta/messagebundle_fi.properties +8 -8
  74. package/src/sap/ui/rta/messagebundle_fr.properties +8 -8
  75. package/src/sap/ui/rta/messagebundle_fr_CA.properties +9 -9
  76. package/src/sap/ui/rta/messagebundle_hi.properties +7 -7
  77. package/src/sap/ui/rta/messagebundle_hr.properties +8 -8
  78. package/src/sap/ui/rta/messagebundle_hu.properties +8 -8
  79. package/src/sap/ui/rta/messagebundle_id.properties +8 -8
  80. package/src/sap/ui/rta/messagebundle_it.properties +8 -8
  81. package/src/sap/ui/rta/messagebundle_iw.properties +8 -8
  82. package/src/sap/ui/rta/messagebundle_ja.properties +8 -8
  83. package/src/sap/ui/rta/messagebundle_kk.properties +8 -8
  84. package/src/sap/ui/rta/messagebundle_ko.properties +7 -7
  85. package/src/sap/ui/rta/messagebundle_lt.properties +8 -8
  86. package/src/sap/ui/rta/messagebundle_lv.properties +8 -8
  87. package/src/sap/ui/rta/messagebundle_ms.properties +8 -8
  88. package/src/sap/ui/rta/messagebundle_nl.properties +8 -8
  89. package/src/sap/ui/rta/messagebundle_no.properties +8 -8
  90. package/src/sap/ui/rta/messagebundle_pl.properties +9 -9
  91. package/src/sap/ui/rta/messagebundle_pt.properties +8 -8
  92. package/src/sap/ui/rta/messagebundle_pt_PT.properties +8 -8
  93. package/src/sap/ui/rta/messagebundle_ro.properties +8 -8
  94. package/src/sap/ui/rta/messagebundle_ru.properties +8 -8
  95. package/src/sap/ui/rta/messagebundle_sh.properties +8 -8
  96. package/src/sap/ui/rta/messagebundle_sk.properties +8 -8
  97. package/src/sap/ui/rta/messagebundle_sl.properties +8 -8
  98. package/src/sap/ui/rta/messagebundle_sv.properties +8 -8
  99. package/src/sap/ui/rta/messagebundle_th.properties +8 -8
  100. package/src/sap/ui/rta/messagebundle_tr.properties +8 -8
  101. package/src/sap/ui/rta/messagebundle_uk.properties +8 -8
  102. package/src/sap/ui/rta/messagebundle_vi.properties +8 -8
  103. package/src/sap/ui/rta/messagebundle_zh_CN.properties +9 -9
  104. package/src/sap/ui/rta/messagebundle_zh_TW.properties +8 -8
  105. package/src/sap/ui/rta/plugin/AddXMLAtExtensionPoint.js +1 -2
  106. package/src/sap/ui/rta/plugin/BaseCreate.js +2 -3
  107. package/src/sap/ui/rta/plugin/Combine.js +1 -2
  108. package/src/sap/ui/rta/plugin/ControlVariant.js +12 -8
  109. package/src/sap/ui/rta/plugin/CreateContainer.js +1 -2
  110. package/src/sap/ui/rta/plugin/CutPaste.js +13 -13
  111. package/src/sap/ui/rta/plugin/DragDrop.js +17 -16
  112. package/src/sap/ui/rta/plugin/EasyAdd.js +12 -10
  113. package/src/sap/ui/rta/plugin/EasyRemove.js +11 -9
  114. package/src/sap/ui/rta/plugin/LocalReset.js +4 -2
  115. package/src/sap/ui/rta/plugin/Plugin.js +6 -10
  116. package/src/sap/ui/rta/plugin/RTAElementMover.js +3 -6
  117. package/src/sap/ui/rta/plugin/Remove.js +8 -9
  118. package/src/sap/ui/rta/plugin/Rename.js +9 -9
  119. package/src/sap/ui/rta/plugin/RenameHandler.js +21 -22
  120. package/src/sap/ui/rta/plugin/Resize.js +11 -10
  121. package/src/sap/ui/rta/plugin/Selection.js +33 -14
  122. package/src/sap/ui/rta/plugin/Settings.js +11 -11
  123. package/src/sap/ui/rta/plugin/Split.js +1 -2
  124. package/src/sap/ui/rta/plugin/Stretch.js +18 -20
  125. package/src/sap/ui/rta/plugin/additionalElements/ActionExtractor.js +4 -9
  126. package/src/sap/ui/rta/plugin/additionalElements/AddElementsDialog.js +5 -9
  127. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsAnalyzer.js +4 -4
  128. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsPlugin.js +41 -43
  129. package/src/sap/ui/rta/plugin/additionalElements/AdditionalElementsUtils.js +2 -3
  130. package/src/sap/ui/rta/plugin/additionalElements/CommandBuilder.js +5 -6
  131. package/src/sap/ui/rta/plugin/iframe/AddIFrame.js +7 -6
  132. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialog.js +5 -5
  133. package/src/sap/ui/rta/plugin/iframe/AddIFrameDialogController.js +28 -27
  134. package/src/sap/ui/rta/service/Action.js +3 -4
  135. package/src/sap/ui/rta/service/ControllerExtension.js +8 -9
  136. package/src/sap/ui/rta/service/Outline.js +13 -11
  137. package/src/sap/ui/rta/service/Property.js +3 -4
  138. package/src/sap/ui/rta/service/Receiver.js +1 -1
  139. package/src/sap/ui/rta/service/Selection.js +2 -3
  140. package/src/sap/ui/rta/service/SupportTools.js +2 -3
  141. package/src/sap/ui/rta/themes/base/Toolbar.base.less +4 -0
  142. package/src/sap/ui/rta/toolbar/Adaptation.js +25 -18
  143. package/src/sap/ui/rta/toolbar/Base.js +25 -11
  144. package/src/sap/ui/rta/toolbar/BaseRenderer.js +2 -2
  145. package/src/sap/ui/rta/toolbar/FeedbackDialog.fragment.xml +4 -4
  146. package/src/sap/ui/rta/toolbar/Fiori.js +20 -20
  147. package/src/sap/ui/rta/toolbar/FioriLike.js +1 -2
  148. package/src/sap/ui/rta/toolbar/OverflowToolbarButton.js +5 -6
  149. package/src/sap/ui/rta/toolbar/Personalization.js +4 -4
  150. package/src/sap/ui/rta/toolbar/Standalone.js +1 -2
  151. package/src/sap/ui/rta/toolbar/contextBased/ManageAdaptations.js +43 -20
  152. package/src/sap/ui/rta/toolbar/contextBased/SaveAsAdaptation.js +16 -7
  153. package/src/sap/ui/rta/toolbar/translation/Translation.js +13 -14
  154. package/src/sap/ui/rta/toolbar/versioning/Versioning.js +31 -28
  155. package/src/sap/ui/rta/util/Animation.js +1 -3
  156. package/src/sap/ui/rta/util/PluginManager.js +1 -3
  157. package/src/sap/ui/rta/util/PopupManager.js +23 -19
  158. package/src/sap/ui/rta/util/ReloadManager.js +4 -4
  159. package/src/sap/ui/rta/util/ServiceEventBus.js +1 -1
  160. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicator.js +18 -16
  161. package/src/sap/ui/rta/util/changeVisualization/ChangeIndicatorRegistry.js +6 -9
  162. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualization.js +9 -10
  163. package/src/sap/ui/rta/util/changeVisualization/ChangeVisualizationUtils.js +1 -1
  164. package/src/sap/ui/rta/util/changeVisualization/commands/CombineVisualization.js +1 -1
  165. package/src/sap/ui/rta/util/changeVisualization/commands/CreateContainerVisualization.js +2 -2
  166. package/src/sap/ui/rta/util/hasStableId.js +1 -1
  167. package/src/sap/ui/rta/util/showMessageBox.js +2 -1
  168. package/src/sap/ui/rta/util/validateText.js +1 -1
  169. package/src/sap/ui/rta/util/StylesLoader.js +0 -31
  170. package/src/sap/ui/rta/util/UrlParser.js +0 -51
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  "use strict";
28
28
 
29
29
  // shortcut for sap.ui.core.ValueState
30
- var ValueState = coreLibrary.ValueState;
30
+ var {ValueState} = coreLibrary;
31
31
 
32
32
  var _aTextInputFields = ["frameUrl", "title"];
33
33
  var _aNumericInputFields = ["frameWidth", "frameHeight"];
@@ -38,6 +38,7 @@ sap.ui.define([
38
38
  }
39
39
 
40
40
  return Controller.extend("sap.ui.rta.plugin.iframe.AddIFrameDialogController", {
41
+ // eslint-disable-next-line object-shorthand
41
42
  constructor: function(oJSONModel, mSettings) {
42
43
  this._oJSONModel = oJSONModel;
43
44
  this._importSettings(mSettings);
@@ -48,7 +49,7 @@ sap.ui.define([
48
49
  * Event handler for validation success
49
50
  * @param {sap.ui.base.Event} oEvent - Event
50
51
  */
51
- onValidationSuccess: function(oEvent) {
52
+ onValidationSuccess(oEvent) {
52
53
  oEvent.getSource().setValueState(ValueState.None);
53
54
  this._oJSONModel.setProperty("/areAllFieldsValid",
54
55
  this._areAllTextFieldsValid() && this._areAllValueStateNones());
@@ -58,7 +59,7 @@ sap.ui.define([
58
59
  * Event handler for validation error
59
60
  * @param {sap.ui.base.Event} oEvent - Event
60
61
  */
61
- onValidationError: function(oEvent) {
62
+ onValidationError(oEvent) {
62
63
  oEvent.getSource().setValueState(ValueState.Error);
63
64
  this._oJSONModel.setProperty("/areAllFieldsValid", false);
64
65
  this._setFocusOnInvalidInput();
@@ -67,7 +68,7 @@ sap.ui.define([
67
68
  /**
68
69
  * Event handler for save button
69
70
  */
70
- onSavePress: function() {
71
+ onSavePress() {
71
72
  var sUrl = this._buildPreviewURL(this._buildReturnedURL());
72
73
  if (isValidUrl(sUrl) && this._areAllTextFieldsValid() && this._areAllValueStateNones()) {
73
74
  this._close(this._buildReturnedSettings());
@@ -80,7 +81,7 @@ sap.ui.define([
80
81
  * Event handler for Show Preview button
81
82
  * @param {sap.ui.base.Event} oEvent - Event
82
83
  */
83
- onShowPreview: function() {
84
+ onShowPreview() {
84
85
  var sURL = this._buildPreviewURL(this._buildReturnedURL());
85
86
  if (!isValidUrl(sURL)) {
86
87
  return;
@@ -108,7 +109,7 @@ sap.ui.define([
108
109
  * Event handler for pressing a parameter
109
110
  * @param {sap.ui.base.Event} oEvent - Event
110
111
  */
111
- onParameterPress: function(oEvent) {
112
+ onParameterPress(oEvent) {
112
113
  var sKey = oEvent.getSource().getBindingContext().getObject().key;
113
114
  this._oJSONModel.setProperty("/frameUrl/value", this._addURLParameter(sKey));
114
115
  this.onUrlChange();
@@ -118,7 +119,7 @@ sap.ui.define([
118
119
  * Event handler for live change on the parameter search field
119
120
  * @param {sap.ui.base.Event} oEvent - Event
120
121
  */
121
- onLiveChange: function(oEvent) {
122
+ onLiveChange(oEvent) {
122
123
  var oFilter = new Filter("label", FilterOperator.Contains, oEvent.getParameter("newValue"));
123
124
  var oBinding = sap.ui.getCore().byId("sapUiRtaAddIFrameDialog_ParameterTable").getBinding("items");
124
125
  oBinding.filter([oFilter]);
@@ -131,7 +132,7 @@ sap.ui.define([
131
132
  * @returns {string} URL with parameters and values
132
133
  * @private
133
134
  */
134
- _buildPreviewURL: function(sEditURL) {
135
+ _buildPreviewURL(sEditURL) {
135
136
  return sEditURL.replace(/{(.*?)}/g, function(sMatch) {
136
137
  return this._mParameterHashMap[sMatch];
137
138
  }.bind(this));
@@ -144,7 +145,7 @@ sap.ui.define([
144
145
  * @returns {string} URL with the added parameter
145
146
  * @private
146
147
  */
147
- _addURLParameter: function(sParameter) {
148
+ _addURLParameter(sParameter) {
148
149
  return this._buildReturnedURL() + sParameter;
149
150
  },
150
151
 
@@ -154,11 +155,11 @@ sap.ui.define([
154
155
  * @returns {string} URL to be returned
155
156
  * @private
156
157
  */
157
- _buildReturnedURL: function() {
158
+ _buildReturnedURL() {
158
159
  return urlCleaner(this._oJSONModel.getProperty("/frameUrl/value"));
159
160
  },
160
161
 
161
- onUrlChange: function() {
162
+ onUrlChange() {
162
163
  var sUrl = this._buildPreviewURL(this._buildReturnedURL());
163
164
  var oUrlInput = sap.ui.getCore().byId("sapUiRtaAddIFrameDialog_EditUrlTA");
164
165
  if (isValidUrl(sUrl)) {
@@ -175,7 +176,7 @@ sap.ui.define([
175
176
  * @returns {object} Parameter hashmap
176
177
  * @private
177
178
  */
178
- _buildParameterHashMap: function(mParameters) {
179
+ _buildParameterHashMap(mParameters) {
179
180
  if (mParameters && mParameters.parameters) {
180
181
  return Utils.buildHashMapFromArray(mParameters.parameters, "key", "value");
181
182
  }
@@ -185,11 +186,11 @@ sap.ui.define([
185
186
  /**
186
187
  * Event handler for Cancel button
187
188
  */
188
- onCancelPress: function() {
189
+ onCancelPress() {
189
190
  this._close();
190
191
  },
191
192
 
192
- onContainerTitleChange: function(oEvent) {
193
+ onContainerTitleChange(oEvent) {
193
194
  var oInput = oEvent.getSource();
194
195
  var sValueState = "None";
195
196
  var bValidationError = false;
@@ -220,7 +221,7 @@ sap.ui.define([
220
221
  * @param {object|undefined} mSettings - IFrame settings to be returned
221
222
  * @private
222
223
  */
223
- _close: function(mSettings) {
224
+ _close(mSettings) {
224
225
  var oAddIFrameDialog = sap.ui.getCore().byId("sapUiRtaAddIFrameDialog");
225
226
  this._mSettings = mSettings;
226
227
  oAddIFrameDialog.close();
@@ -232,18 +233,18 @@ sap.ui.define([
232
233
  * @returns {object|undefined} IFrame settings
233
234
  * @public
234
235
  */
235
- getSettings: function() {
236
+ getSettings() {
236
237
  return this._mSettings;
237
238
  },
238
239
 
239
- _areAllValueStateNones: function() {
240
+ _areAllValueStateNones() {
240
241
  var oData = this._oJSONModel.getData();
241
242
  return _aTextInputFields.concat(_aNumericInputFields).every(function(sFieldName) {
242
243
  return oData[sFieldName].valueState === ValueState.None;
243
244
  }, this);
244
245
  },
245
246
 
246
- _areAllTextFieldsValid: function() {
247
+ _areAllTextFieldsValid() {
247
248
  var oJSONModel = this._oJSONModel;
248
249
  var bAsContainer = this._oJSONModel.getProperty("asContainer/value");
249
250
  return _aTextInputFields.reduce(function(bAllValid, sFieldName) {
@@ -251,19 +252,19 @@ sap.ui.define([
251
252
  if (sFieldName === "title" && !bAsContainer) {
252
253
  return true;
253
254
  }
254
- var sValuePath = "/" + sFieldName + "/value";
255
+ var sValuePath = `/${sFieldName}/value`;
255
256
  var sValueState;
256
257
  if (oJSONModel.getProperty(sValuePath).trim() === "") {
257
258
  sValueState = ValueState.Error;
258
259
  } else {
259
260
  sValueState = ValueState.None;
260
261
  }
261
- oJSONModel.setProperty(sValuePath + "State", sValueState);
262
+ oJSONModel.setProperty(`${sValuePath}State`, sValueState);
262
263
  return bAllValid && sValueState === ValueState.None;
263
264
  }, true);
264
265
  },
265
266
 
266
- _buildReturnedSettings: function() {
267
+ _buildReturnedSettings() {
267
268
  var mSettings = {};
268
269
  var oData = this._oJSONModel.getData();
269
270
  _aTextInputFields.concat(_aNumericInputFields, _aSelectInputFields).forEach(function(sFieldName) {
@@ -282,13 +283,13 @@ sap.ui.define([
282
283
  * @param {object|undefined} mSettings - Existing IFrame settings
283
284
  * @private
284
285
  */
285
- _importSettings: function(mSettings) {
286
+ _importSettings(mSettings) {
286
287
  if (mSettings) {
287
288
  Object.keys(mSettings).forEach(function(sFieldName) {
288
289
  if (sFieldName === "frameWidth" || sFieldName === "frameHeight") {
289
290
  this._importIFrameSize(sFieldName, mSettings[sFieldName]);
290
291
  } else {
291
- this._oJSONModel.setProperty("/" + sFieldName + "/value", mSettings[sFieldName]);
292
+ this._oJSONModel.setProperty(`/${sFieldName}/value`, mSettings[sFieldName]);
292
293
  }
293
294
  }, this);
294
295
  }
@@ -300,11 +301,11 @@ sap.ui.define([
300
301
  * @param {string} sFieldName - Field name
301
302
  * @param {string} sSize - Size to import
302
303
  */
303
- _importIFrameSize: function(sFieldName, sSize) {
304
+ _importIFrameSize(sFieldName, sSize) {
304
305
  var aResults = sSize.split(/(px|rem|%|vh)/);
305
306
  if (aResults.length >= 2) {
306
- this._oJSONModel.setProperty("/" + sFieldName + "/value", parseFloat(aResults[0]));
307
- this._oJSONModel.setProperty("/" + sFieldName + "Unit/value", aResults[1]);
307
+ this._oJSONModel.setProperty(`/${sFieldName}/value`, parseFloat(aResults[0]));
308
+ this._oJSONModel.setProperty(`/${sFieldName}Unit/value`, aResults[1]);
308
309
  }
309
310
  },
310
311
 
@@ -315,7 +316,7 @@ sap.ui.define([
315
316
  * An empty URL field disables the Save button and does not need to be checked
316
317
  *
317
318
  */
318
- _setFocusOnInvalidInput: function() {
319
+ _setFocusOnInvalidInput() {
319
320
  var oData = this._oJSONModel.getData();
320
321
  _aNumericInputFields.some(function(sFieldName) {
321
322
  if (oData[sFieldName].valueState === ValueState.Error) {
@@ -23,9 +23,8 @@ sap.ui.define([
23
23
  * @namespace
24
24
  * @name sap.ui.rta.service.Action
25
25
  * @author SAP SE
26
- * @experimental Since 1.58
27
26
  * @since 1.58
28
- * @version 1.117.1
27
+ * @version 1.118.0
29
28
  * @private
30
29
  * @ui5-restricted
31
30
  *
@@ -187,7 +186,7 @@ sap.ui.define([
187
186
  * @public
188
187
  * @function
189
188
  */
190
- get: get,
189
+ get,
191
190
 
192
191
  /**
193
192
  * Returns a list of available actions for the specified control(s).
@@ -199,7 +198,7 @@ sap.ui.define([
199
198
  * @public
200
199
  * @function
201
200
  */
202
- execute: execute
201
+ execute
203
202
  }
204
203
  };
205
204
  };
@@ -29,9 +29,8 @@ sap.ui.define([
29
29
  * @namespace
30
30
  * @name sap.ui.rta.service.ControllerExtension
31
31
  * @author SAP SE
32
- * @experimental Since 1.58
33
32
  * @since 1.58
34
- * @version 1.117.1
33
+ * @version 1.118.0
35
34
  * @private
36
35
  * @ui5-restricted
37
36
  */
@@ -41,13 +40,13 @@ sap.ui.define([
41
40
  return new Promise(function(resolve, reject) {
42
41
  var sUrl;
43
42
  jQuery.ajax({
44
- url: sUrl = sap.ui.require.toUrl(sPath) + ".js",
43
+ url: sUrl = `${sap.ui.require.toUrl(sPath)}.js`,
45
44
  async: true,
46
- success: function(data) {
45
+ success(data) {
47
46
  resolve(data);
48
47
  },
49
- error: function(xhr, textStatus, error) {
50
- var oError = new Error("resource " + sPath + " could not be loaded from " + sUrl + ". Check for 'file not found' or parse errors. Reason: " + error);
48
+ error(xhr, textStatus, error) {
49
+ var oError = new Error(`resource ${sPath} could not be loaded from ${sUrl}. Check for 'file not found' or parse errors. Reason: ${error}`);
51
50
  oError.status = textStatus;
52
51
  oError.error = error;
53
52
  oError.statusCode = xhr.status;
@@ -73,7 +72,7 @@ sap.ui.define([
73
72
  * @return {object} Definition of the newly created change
74
73
  * @public
75
74
  */
76
- add: function(sCodeRef, sViewId) {
75
+ add(sCodeRef, sViewId) {
77
76
  var oFlexSettings = oRta.getFlexSettings();
78
77
  if (!oFlexSettings.developerMode) {
79
78
  throw DtUtil.createError("service.ControllerExtension#add", "code extensions can only be created in developer mode", "sap.ui.rta");
@@ -120,14 +119,14 @@ sap.ui.define([
120
119
  * @return {Promise<string>} Promise that resolves with the template as string or rejects when the file was not found
121
120
  * @public
122
121
  */
123
- getTemplate: function(sViewId) {
122
+ getTemplate(sViewId) {
124
123
  var oViewOverlay = OverlayRegistry.getOverlay(sViewId);
125
124
  if (!oViewOverlay) {
126
125
  throw DtUtil.createError("service.ControllerExtension#getTemplate", "no overlay found for the given view ID", "sap.ui.rta");
127
126
  }
128
127
 
129
128
  var sControllerExtensionTemplatePath = oViewOverlay.getDesignTimeMetadata().getControllerExtensionTemplate();
130
- return makeAjaxCall(sControllerExtensionTemplatePath + "-dbg")
129
+ return makeAjaxCall(`${sControllerExtensionTemplatePath}-dbg`)
131
130
  .catch(function() {
132
131
  return makeAjaxCall(sControllerExtensionTemplatePath);
133
132
  });
@@ -42,9 +42,8 @@ sap.ui.define([
42
42
  * @namespace
43
43
  * @name sap.ui.rta.service.Outline
44
44
  * @author SAP SE
45
- * @experimental Since 1.56
46
45
  * @since 1.56
47
- * @version 1.117.1
46
+ * @version 1.118.0
48
47
  * @private
49
48
  * @ui5-restricted
50
49
  */
@@ -57,6 +56,7 @@ sap.ui.define([
57
56
  * @private
58
57
  * @ui5-restricted
59
58
  * @property {string[]} defaultContent - List of control IDs that belong to the default content of an extension point
59
+ * @property {string[]} createdControls - List of control IDs that were created in an extension point
60
60
  */
61
61
 
62
62
  /**
@@ -145,7 +145,7 @@ sap.ui.define([
145
145
  if (!oPassedOverlay) {
146
146
  throw DtUtil.createError(
147
147
  "services.Outline#get",
148
- "Cannot find element with id= " + sId + ". A valid or empty value for the initial element id should be provided.", "sap.ui.rta"
148
+ `Cannot find element with id= ${sId}. A valid or empty value for the initial element id should be provided.`, "sap.ui.rta"
149
149
  );
150
150
  }
151
151
  aInitialOverlays.push(oPassedOverlay);
@@ -163,8 +163,8 @@ sap.ui.define([
163
163
  var sParentId = oData.id;
164
164
  var sAggregationName = oData.technicalName;
165
165
  return ExtensionPointRegistryAPI.getExtensionPointInfoByParentId({parentId: sParentId})
166
- .filter(function(mExtenstionPoint) {
167
- return mExtenstionPoint.aggregationName === sAggregationName;
166
+ .filter(function(mExtensionPoint) {
167
+ return mExtensionPoint.aggregationName === sAggregationName;
168
168
  });
169
169
  };
170
170
 
@@ -178,7 +178,8 @@ sap.ui.define([
178
178
  extensionPointInfo: {
179
179
  defaultContent: mExtensionPoint.defaultContent.map(function(oControl) {
180
180
  return oControl.getId();
181
- })
181
+ }),
182
+ createdControls: mExtensionPoint.createdControls || []
182
183
  }
183
184
  };
184
185
  };
@@ -462,7 +463,7 @@ sap.ui.define([
462
463
  // Only send new root overlays as updates; children elements are part of their outlines already
463
464
  if (mParams.elementOverlay.isRoot()) {
464
465
  var sRootElementId = mParams.elementOverlay.getElement().getId();
465
- oResponse.element = oOutline._getOutline(sRootElementId)[0];
466
+ [oResponse.element] = oOutline._getOutline(sRootElementId);
466
467
  oResponse.type = "new";
467
468
  break;
468
469
  }
@@ -470,13 +471,13 @@ sap.ui.define([
470
471
 
471
472
  case "elementOverlayAdded":
472
473
  // Overlays added to existing aggregations
473
- oResponse.element = oOutline._getOutline(sElementId)[0];
474
+ [oResponse.element] = oOutline._getOutline(sElementId);
474
475
  oResponse.targetId = sTargetId;
475
476
  oResponse.type = "new";
476
477
  break;
477
478
 
478
479
  case "elementOverlayMoved":
479
- oResponse.element = oOutline._getOutline(sElementId, 0)[0];
480
+ [oResponse.element] = oOutline._getOutline(sElementId, 0);
480
481
  oResponse.targetId = sTargetId;
481
482
  oResponse.type = "move";
482
483
  break;
@@ -497,7 +498,8 @@ sap.ui.define([
497
498
  oResponse.element.id =
498
499
  oResponse.elementOverlay.getElement()
499
500
  ? oResponse.elementOverlay.getElement().getId()
500
- : oResponse.elementOverlay.getAssociation("element"); // Triggered via DesignTime elementOverlayDestroyed event
501
+ // Triggered via DesignTime elementOverlayDestroyed event
502
+ : oResponse.elementOverlay.getAssociation("element");
501
503
  oResponse.type = "destroy";
502
504
  break;
503
505
  }
@@ -514,7 +516,7 @@ sap.ui.define([
514
516
 
515
517
  case "elementPropertyChanged":
516
518
  // Trigger origin is ManagedObjectObserver
517
- oResponse.element = oOutline._getOutline(sElementId, 0)[0];
519
+ [oResponse.element] = oOutline._getOutline(sElementId, 0);
518
520
  oResponse.type = "elementPropertyChange";
519
521
  break;
520
522
 
@@ -26,9 +26,8 @@ sap.ui.define([
26
26
  * @namespace
27
27
  * @name sap.ui.rta.service.Property
28
28
  * @author SAP SE
29
- * @experimental Since 1.58
30
29
  * @since 1.58
31
- * @version 1.117.1
30
+ * @version 1.118.0
32
31
  * @private
33
32
  * @ui5-restricted
34
33
  */
@@ -173,7 +172,7 @@ sap.ui.define([
173
172
  if (typeof bIgnore !== "boolean") {
174
173
  throw DtUtil.createError(
175
174
  "services.Property#get",
176
- "Invalid ignore property value found in designtime for element with id " + oElement.getId() + " .", "sap.ui.rta"
175
+ `Invalid ignore property value found in designtime for element with id ${oElement.getId()} .`, "sap.ui.rta"
177
176
  );
178
177
  }
179
178
 
@@ -269,7 +268,7 @@ sap.ui.define([
269
268
  if (typeof bIgnore !== "boolean" && typeof bIgnore !== "undefined") {
270
269
  throw DtUtil.createError(
271
270
  "services.Property#get",
272
- "Invalid ignore property value found in designtime for element with id " + oElement.getId() + " .", "sap.ui.rta"
271
+ `Invalid ignore property value found in designtime for element with id ${oElement.getId()} .`, "sap.ui.rta"
273
272
  );
274
273
  }
275
274
  // to ensure ignore function is replaced by a boolean value
@@ -172,7 +172,7 @@ sap.ui.define([
172
172
  oPostMessageBus.subscribe(CHANNEL_ID, "unsubscribe", fnReceiver);
173
173
 
174
174
  return {
175
- destroy: function() {
175
+ destroy() {
176
176
  if (oPostMessageBus) {
177
177
  oPostMessageBus.unsubscribe(CHANNEL_ID, "getService", fnReceiver);
178
178
  oPostMessageBus.unsubscribe(CHANNEL_ID, "callMethod", fnReceiver);
@@ -13,9 +13,8 @@ sap.ui.define(function() {
13
13
  * @namespace
14
14
  * @name sap.ui.rta.service.Selection
15
15
  * @author SAP SE
16
- * @experimental Since 1.58
17
16
  * @since 1.58
18
- * @version 1.117.1
17
+ * @version 1.118.0
19
18
  * @private
20
19
  * @ui5-restricted
21
20
  */
@@ -48,7 +47,7 @@ sap.ui.define(function() {
48
47
  * @return {string[]} Selected control IDs
49
48
  * @public
50
49
  */
51
- get: function() {
50
+ get() {
52
51
  return getControlIds(oSelectionManager.get());
53
52
  },
54
53
 
@@ -27,9 +27,8 @@ sap.ui.define([
27
27
  * @namespace
28
28
  * @name sap.ui.rta.service.SupportTools
29
29
  * @author SAP SE
30
- * @experimental Since 1.106
31
30
  * @since 1.106
32
- * @version 1.117.1
31
+ * @version 1.118.0
33
32
  * @private
34
33
  * @ui5-restricted
35
34
  */
@@ -342,7 +341,7 @@ sap.ui.define([
342
341
  onRtaStart();
343
342
 
344
343
  return {
345
- destroy: function() {
344
+ destroy() {
346
345
  window.removeEventListener("message", fnOnMessageReceivedBound);
347
346
  }
348
347
  };
@@ -34,5 +34,9 @@
34
34
  padding-left: 1.25rem; //20px
35
35
  height: 2.75rem; /* Overrider `.sapUiSizeCompact .sapMTB` */ //44px
36
36
  background-color: @_sap_ui_rta_Toolbar_Base_BaseBG;
37
+
38
+ &.sapUiRtaToolbar_scrolling {
39
+ position: fixed!important;
40
+ }
37
41
  }
38
42
  }
@@ -21,7 +21,8 @@ sap.ui.define([
21
21
  "sap/ui/rta/toolbar/translation/Translation",
22
22
  "sap/ui/rta/toolbar/versioning/Versioning",
23
23
  "sap/ui/rta/Utils",
24
- "sap/m/MessageBox"
24
+ "sap/m/MessageBox",
25
+ "sap/ui/performance/Measurement"
25
26
  ], function(
26
27
  AdaptationRenderer,
27
28
  Log,
@@ -39,7 +40,8 @@ sap.ui.define([
39
40
  Translation,
40
41
  Versioning,
41
42
  Utils,
42
- MessageBox
43
+ MessageBox,
44
+ Measurement
43
45
  ) {
44
46
  "use strict";
45
47
 
@@ -51,13 +53,12 @@ sap.ui.define([
51
53
  * @extends sap.ui.rta.toolbar.Base
52
54
  *
53
55
  * @author SAP SE
54
- * @version 1.117.1
56
+ * @version 1.118.0
55
57
  *
56
58
  * @constructor
57
59
  * @private
58
60
  * @since 1.48
59
61
  * @alias sap.ui.rta.toolbar.Adaptation
60
- * @experimental Since 1.48. This class is experimental. API might be changed in future.
61
62
  */
62
63
  var Adaptation = Base.extend("sap.ui.rta.toolbar.Adaptation", {
63
64
  renderer: AdaptationRenderer,
@@ -92,11 +93,11 @@ sap.ui.define([
92
93
  // Size of three icons + spacing in pixels
93
94
  var SWITCHER_ICON_WIDTH = 124;
94
95
 
95
- Adaptation.prototype.init = function() {
96
+ Adaptation.prototype.init = function(...aArgs) {
96
97
  this._mSizeLimits = {
97
98
  switchToIcons: undefined
98
99
  };
99
- this._pFragmentLoaded = Base.prototype.init.apply(this, arguments)
100
+ this._pFragmentLoaded = Base.prototype.init.apply(this, aArgs)
100
101
  .then(function() {
101
102
  this._onResize = this._onResize.bind(this);
102
103
  window.addEventListener("resize", this._onResize);
@@ -113,12 +114,12 @@ sap.ui.define([
113
114
  return this._pFragmentLoaded;
114
115
  };
115
116
 
116
- Adaptation.prototype.exit = function() {
117
+ Adaptation.prototype.exit = function(...aArgs) {
117
118
  window.removeEventListener("resize", this._onResize);
118
119
  this._aIntersectionObservers.forEach(function(oInstersectionObserver) {
119
120
  oInstersectionObserver.disconnect();
120
121
  });
121
- Base.prototype.exit.apply(this, arguments);
122
+ Base.prototype.exit.apply(this, aArgs);
122
123
  };
123
124
 
124
125
  Adaptation.prototype._restoreHiddenElements = function() {
@@ -147,11 +148,11 @@ sap.ui.define([
147
148
 
148
149
  Adaptation.prototype.adjustToolbarSectionWidths = function() {
149
150
  // The middle section (switcher) is used as base for the other calculations
150
- this.getControl(Adaptation.MIDDLE_SECTION).setWidth((this._iSwitcherToolbarWidth) + "px");
151
+ this.getControl(Adaptation.MIDDLE_SECTION).setWidth(`${this._iSwitcherToolbarWidth}px`);
151
152
  [Adaptation.LEFT_SECTION, Adaptation.RIGHT_SECTION].forEach(function(sSectionName) {
152
153
  this.getControl(sSectionName).getDomRef().style.setProperty(
153
154
  "width",
154
- "calc(50% - " + Math.ceil(this._iSwitcherToolbarWidth / 2) + "px)",
155
+ `calc(50% - ${Math.ceil(this._iSwitcherToolbarWidth / 2)}px)`,
155
156
  "important"
156
157
  );
157
158
  }.bind(this));
@@ -245,7 +246,7 @@ sap.ui.define([
245
246
  var oButton = oEvent.getSource();
246
247
  if (!this._oActionsMenuFragment) {
247
248
  return Fragment.load({
248
- id: this.getId() + "_actionsMenu_fragment",
249
+ id: `${this.getId()}_actionsMenu_fragment`,
249
250
  name: "sap.ui.rta.toolbar.ActionsMenu",
250
251
  controller: {
251
252
  openDownloadTranslationDialog: onOpenDownloadTranslationDialog.bind(this),
@@ -254,7 +255,7 @@ sap.ui.define([
254
255
  overviewForKeyUser: onOverviewForKeyUserPressed.bind(this),
255
256
  overviewForDeveloper: onOverviewForDeveloperPressed.bind(this),
256
257
  restore: this.eventHandler.bind(this, "Restore"),
257
- formatSaveAsEnabled: formatSaveAsEnabled,
258
+ formatSaveAsEnabled,
258
259
  saveAs: onSaveAsPressed.bind(this)
259
260
  }
260
261
  }).then(function(oMenu) {
@@ -302,7 +303,7 @@ sap.ui.define([
302
303
  Adaptation.prototype.buildControls = function() {
303
304
  return Fragment.load({
304
305
  name: "sap.ui.rta.toolbar.Adaptation",
305
- id: this.getId() + "_fragment",
306
+ id: `${this.getId()}_fragment`,
306
307
  controller: {
307
308
  activate: this._openVersionTitleDialog.bind(this),
308
309
  discardDraft: this.eventHandler.bind(this, "DiscardDraft"),
@@ -374,11 +375,14 @@ sap.ui.define([
374
375
 
375
376
  function performMigration(oRtaInformation) {
376
377
  BusyIndicator.show();
378
+ Measurement.start("onCBAMigration", "Measurement of migration to context-based adaptation");
377
379
  return ContextBasedAdaptationsAPI.migrate({
378
380
  control: oRtaInformation.rootControl,
379
381
  layer: oRtaInformation.flexSettings.layer
380
382
  })
381
383
  .finally(function() {
384
+ Measurement.end("onCBAMigration");
385
+ Measurement.getActive() && Log.info(`onCBAMigration: ${Measurement.getMeasurement("onCBAMigration").time} ms`);
382
386
  BusyIndicator.hide();
383
387
  })
384
388
  .then(Utils.showMessageBox.bind(undefined, "information", "DAC_DIALOG_MIGRATION_SUCCESSFULL_DESCRIPTION", {
@@ -403,8 +407,11 @@ sap.ui.define([
403
407
  function onSaveAsAdaptation() {
404
408
  var oRtaInformation = this.getRtaInformation();
405
409
  Utils.checkDraftOverwrite(this.getModel("versions")).then(function() {
410
+ Measurement.start("onCBACanMigrate", "Measurement if its possible to migrate to context-based adaptation");
406
411
  return ContextBasedAdaptationsAPI.canMigrate({ control: oRtaInformation.rootControl, layer: oRtaInformation.flexSettings.layer });
407
412
  }).then(function(bCanMigrate) {
413
+ Measurement.end("onCBACanMigrate");
414
+ Measurement.getActive() && Log.info(`onCBACanMigrate: ${Measurement.getMeasurement("onCBACanMigrate").time} ms`);
408
415
  if (bCanMigrate) {
409
416
  confirmMigration.call(this, oRtaInformation);
410
417
  } else {
@@ -425,7 +432,7 @@ sap.ui.define([
425
432
  function handleError(oError) {
426
433
  if (oError !== "cancel") {
427
434
  Utils.showMessageBox("error", "MSG_LREP_TRANSFER_ERROR", {error: oError});
428
- Log.error("sap.ui.rta: " + oError.stack || oError.message || oError);
435
+ Log.error(`sap.ui.rta: ${oError.stack || oError.message || oError}`);
429
436
  }
430
437
  }
431
438
 
@@ -468,7 +475,7 @@ sap.ui.define([
468
475
  }
469
476
 
470
477
  Adaptation.prototype.getControl = function(sName) {
471
- var oControl = sap.ui.getCore().byId(this.getId() + "_fragment--sapUiRta_" + sName);
478
+ var oControl = sap.ui.getCore().byId(`${this.getId()}_fragment--sapUiRta_${sName}`);
472
479
  // Control is inside the ActionsMenu
473
480
  if (!oControl && this._oActionsMenuFragment) {
474
481
  oControl = sap.ui.getCore().byId(this._oActionsMenuFragment.getId().replace("sapUiRta_actions", "sapUiRta_") + sName);
@@ -479,11 +486,11 @@ sap.ui.define([
479
486
  /**
480
487
  * @inheritDoc
481
488
  */
482
- Adaptation.prototype.hide = function() {
489
+ Adaptation.prototype.hide = function(...aArgs) {
483
490
  this._aIntersectionObservers.forEach(function(oInstersectionObserver) {
484
491
  oInstersectionObserver.disconnect();
485
492
  });
486
- return Base.prototype.hide.apply(this, arguments);
493
+ return Base.prototype.hide.apply(this, aArgs);
487
494
  };
488
495
 
489
496
  Adaptation.prototype.showFeedbackForm = function() {
@@ -499,7 +506,7 @@ sap.ui.define([
499
506
  oUrlParams.set("feature", (sConnector === "KeyUserConnector" ? "BTP" : "ABAP"));
500
507
 
501
508
  var oFeedbackDialogModel = new JSONModel({
502
- url: sURL + "?" + oUrlParams.toString()
509
+ url: `${sURL}?${oUrlParams.toString()}`
503
510
  });
504
511
 
505
512
  return Fragment.load({