@openui5/sap.ui.integration 1.130.1 → 1.131.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 (201) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +7 -7
  3. package/src/sap/ui/integration/.library +1 -1
  4. package/src/sap/ui/integration/ActionDefinition.js +22 -3
  5. package/src/sap/ui/integration/Designtime.js +1 -1
  6. package/src/sap/ui/integration/Extension.js +1 -1
  7. package/src/sap/ui/integration/Host.js +1 -1
  8. package/src/sap/ui/integration/cards/AdaptiveContent.js +1 -1
  9. package/src/sap/ui/integration/cards/AnalyticalContent.js +1 -1
  10. package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +1 -1
  11. package/src/sap/ui/integration/cards/BaseContent.js +1 -1
  12. package/src/sap/ui/integration/cards/BaseListContent.js +19 -23
  13. package/src/sap/ui/integration/cards/CalendarContent.js +1 -1
  14. package/src/sap/ui/integration/cards/ComponentContent.js +1 -1
  15. package/src/sap/ui/integration/cards/Footer.js +1 -1
  16. package/src/sap/ui/integration/cards/Header.js +1 -1
  17. package/src/sap/ui/integration/cards/ListContent.js +1 -1
  18. package/src/sap/ui/integration/cards/NumericHeader.js +1 -1
  19. package/src/sap/ui/integration/cards/ObjectContent.js +1 -1
  20. package/src/sap/ui/integration/cards/TableContent.js +1 -1
  21. package/src/sap/ui/integration/cards/TimelineContent.js +1 -1
  22. package/src/sap/ui/integration/cards/WebPageContent.js +1 -1
  23. package/src/sap/ui/integration/cards/actions/CardActions.js +1 -1
  24. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +1 -1
  25. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +1 -1
  26. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +1 -1
  27. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +1 -1
  28. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +1 -1
  29. package/src/sap/ui/integration/cards/filters/BaseFilter.js +1 -1
  30. package/src/sap/ui/integration/cards/filters/ComboBoxFilter.js +1 -1
  31. package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +1 -1
  32. package/src/sap/ui/integration/cards/filters/FilterBar.js +1 -1
  33. package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +1 -1
  34. package/src/sap/ui/integration/cards/filters/SearchFilter.js +1 -1
  35. package/src/sap/ui/integration/cards/filters/SelectFilter.js +1 -1
  36. package/src/sap/ui/integration/cards/list/MicrochartsResizeHelper.js +1 -1
  37. package/src/sap/ui/integration/controls/ActionsStrip.js +1 -1
  38. package/src/sap/ui/integration/controls/ActionsToolbar.js +127 -71
  39. package/src/sap/ui/integration/controls/BlockingMessage.js +1 -1
  40. package/src/sap/ui/integration/controls/ComboBox.js +1 -1
  41. package/src/sap/ui/integration/controls/ImageWithOverlay.js +1 -1
  42. package/src/sap/ui/integration/controls/ListContentItem.js +1 -1
  43. package/src/sap/ui/integration/controls/Microchart.js +1 -1
  44. package/src/sap/ui/integration/controls/MicrochartLegend.js +1 -1
  45. package/src/sap/ui/integration/controls/ObjectStatus.js +1 -1
  46. package/src/sap/ui/integration/delegate/Paginator.js +1 -1
  47. package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +1 -1
  48. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +1 -1
  49. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +1 -1
  50. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fr_CA.properties +1 -1
  51. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +1 -1
  52. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +1 -1
  53. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +1 -1
  54. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  55. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/codeEditor/CodeEditor.js +1 -1
  56. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +1 -1
  57. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +1 -1
  58. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  59. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +1 -1
  60. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  61. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  62. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +1 -1
  63. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +1 -1
  64. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  65. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +1 -1
  66. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +1 -1
  67. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +1 -1
  68. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.js +1 -1
  69. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  70. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +1 -1
  71. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +1 -1
  72. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +1 -1
  73. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  74. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  75. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  76. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +1 -1
  77. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -1
  78. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  79. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  80. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  81. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  82. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  83. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  84. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  85. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  86. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +1 -1
  87. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_mk.properties +1 -1
  88. package/src/sap/ui/integration/designtime/cardEditor/i18n/i18n_uk.properties +1 -1
  89. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  90. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  91. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +1 -1
  92. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  93. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +1 -1
  94. package/src/sap/ui/integration/designtime/editor/Card.js +1 -1
  95. package/src/sap/ui/integration/designtime/editor/CardEditor.js +1 -1
  96. package/src/sap/ui/integration/designtime/editor/CardPreview.js +1 -1
  97. package/src/sap/ui/integration/editor/Editor.js +2 -2
  98. package/src/sap/ui/integration/editor/EditorResourceBundles.js +1 -1
  99. package/src/sap/ui/integration/editor/Extension.js +1 -1
  100. package/src/sap/ui/integration/editor/Manifest.js +1 -1
  101. package/src/sap/ui/integration/editor/Settings.js +1 -1
  102. package/src/sap/ui/integration/editor/fields/BaseField.js +1 -1
  103. package/src/sap/ui/integration/editor/fields/BooleanField.js +1 -1
  104. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  105. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  106. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  107. package/src/sap/ui/integration/editor/fields/GroupField.js +1 -1
  108. package/src/sap/ui/integration/editor/fields/IntegerField.js +1 -1
  109. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  110. package/src/sap/ui/integration/editor/fields/ObjectField.js +1 -1
  111. package/src/sap/ui/integration/editor/fields/ObjectListField.js +1 -1
  112. package/src/sap/ui/integration/editor/fields/StringField.js +1 -1
  113. package/src/sap/ui/integration/editor/fields/StringListField.js +1 -1
  114. package/src/sap/ui/integration/editor/fields/fragment/Controller.js +1 -1
  115. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  116. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +1 -1
  117. package/src/sap/ui/integration/editor/fields/viz/ImageSelect.js +1 -1
  118. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  119. package/src/sap/ui/integration/editor/fields/viz/VizBase.js +1 -1
  120. package/src/sap/ui/integration/extensions/OAuth3LO.js +1 -1
  121. package/src/sap/ui/integration/library.js +8 -5
  122. package/src/sap/ui/integration/messagebundle.properties +3 -0
  123. package/src/sap/ui/integration/messagebundle_ar.properties +2 -0
  124. package/src/sap/ui/integration/messagebundle_bg.properties +2 -0
  125. package/src/sap/ui/integration/messagebundle_ca.properties +2 -0
  126. package/src/sap/ui/integration/messagebundle_cnr.properties +2 -0
  127. package/src/sap/ui/integration/messagebundle_cs.properties +2 -0
  128. package/src/sap/ui/integration/messagebundle_cy.properties +2 -0
  129. package/src/sap/ui/integration/messagebundle_da.properties +2 -0
  130. package/src/sap/ui/integration/messagebundle_de.properties +2 -0
  131. package/src/sap/ui/integration/messagebundle_el.properties +2 -0
  132. package/src/sap/ui/integration/messagebundle_en.properties +2 -0
  133. package/src/sap/ui/integration/messagebundle_en_GB.properties +2 -0
  134. package/src/sap/ui/integration/messagebundle_en_US_saprigi.properties +2 -0
  135. package/src/sap/ui/integration/messagebundle_es.properties +3 -1
  136. package/src/sap/ui/integration/messagebundle_es_MX.properties +2 -0
  137. package/src/sap/ui/integration/messagebundle_et.properties +2 -0
  138. package/src/sap/ui/integration/messagebundle_fi.properties +2 -0
  139. package/src/sap/ui/integration/messagebundle_fr.properties +2 -0
  140. package/src/sap/ui/integration/messagebundle_fr_CA.properties +2 -0
  141. package/src/sap/ui/integration/messagebundle_hi.properties +2 -0
  142. package/src/sap/ui/integration/messagebundle_hr.properties +2 -0
  143. package/src/sap/ui/integration/messagebundle_hu.properties +2 -0
  144. package/src/sap/ui/integration/messagebundle_id.properties +2 -0
  145. package/src/sap/ui/integration/messagebundle_it.properties +2 -0
  146. package/src/sap/ui/integration/messagebundle_iw.properties +2 -0
  147. package/src/sap/ui/integration/messagebundle_ja.properties +2 -0
  148. package/src/sap/ui/integration/messagebundle_kk.properties +2 -0
  149. package/src/sap/ui/integration/messagebundle_ko.properties +2 -0
  150. package/src/sap/ui/integration/messagebundle_lt.properties +2 -0
  151. package/src/sap/ui/integration/messagebundle_lv.properties +2 -0
  152. package/src/sap/ui/integration/messagebundle_mk.properties +2 -0
  153. package/src/sap/ui/integration/messagebundle_ms.properties +2 -0
  154. package/src/sap/ui/integration/messagebundle_nl.properties +2 -0
  155. package/src/sap/ui/integration/messagebundle_no.properties +2 -0
  156. package/src/sap/ui/integration/messagebundle_pl.properties +2 -0
  157. package/src/sap/ui/integration/messagebundle_pt.properties +2 -0
  158. package/src/sap/ui/integration/messagebundle_pt_PT.properties +2 -0
  159. package/src/sap/ui/integration/messagebundle_ro.properties +2 -0
  160. package/src/sap/ui/integration/messagebundle_ru.properties +2 -0
  161. package/src/sap/ui/integration/messagebundle_sh.properties +2 -0
  162. package/src/sap/ui/integration/messagebundle_sk.properties +2 -0
  163. package/src/sap/ui/integration/messagebundle_sl.properties +2 -0
  164. package/src/sap/ui/integration/messagebundle_sr.properties +2 -0
  165. package/src/sap/ui/integration/messagebundle_sv.properties +2 -0
  166. package/src/sap/ui/integration/messagebundle_th.properties +2 -0
  167. package/src/sap/ui/integration/messagebundle_tr.properties +2 -0
  168. package/src/sap/ui/integration/messagebundle_uk.properties +2 -0
  169. package/src/sap/ui/integration/messagebundle_vi.properties +2 -0
  170. package/src/sap/ui/integration/messagebundle_zh_CN.properties +2 -0
  171. package/src/sap/ui/integration/messagebundle_zh_TW.properties +2 -0
  172. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  173. package/src/sap/ui/integration/model/ObservableModel.js +1 -1
  174. package/src/sap/ui/integration/schemas/sap-card.json +351 -301
  175. package/src/sap/ui/integration/util/AnalyticsCloudHelper.js +1 -1
  176. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  177. package/src/sap/ui/integration/util/BindingHelper.js +1 -1
  178. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  179. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  180. package/src/sap/ui/integration/util/ComboBoxHelper.js +1 -1
  181. package/src/sap/ui/integration/util/ContentFactory.js +1 -1
  182. package/src/sap/ui/integration/util/CsrfTokenHandler.js +1 -1
  183. package/src/sap/ui/integration/util/DataProvider.js +1 -1
  184. package/src/sap/ui/integration/util/DataProviderFactory.js +1 -1
  185. package/src/sap/ui/integration/util/Destinations.js +1 -1
  186. package/src/sap/ui/integration/util/DisplayVariants.js +1 -1
  187. package/src/sap/ui/integration/util/ErrorHandler.js +1 -1
  188. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  189. package/src/sap/ui/integration/util/Form.js +1 -1
  190. package/src/sap/ui/integration/util/HeaderFactory.js +10 -3
  191. package/src/sap/ui/integration/util/JSONBindingHelper.js +1 -1
  192. package/src/sap/ui/integration/util/LoadingProvider.js +1 -1
  193. package/src/sap/ui/integration/util/Manifest.js +1 -1
  194. package/src/sap/ui/integration/util/OAuth3LOHelper.js +1 -1
  195. package/src/sap/ui/integration/util/RequestDataProvider.js +1 -1
  196. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  197. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  198. package/src/sap/ui/integration/util/SkeletonCard.js +3 -2
  199. package/src/sap/ui/integration/util/Utils.js +1 -1
  200. package/src/sap/ui/integration/util/Validators.js +1 -1
  201. package/src/sap/ui/integration/widgets/Card.js +59 -10
@@ -14,9 +14,10 @@ sap.ui.define([
14
14
  "sap/ui/core/Lib",
15
15
  "sap/ui/core/library",
16
16
  "sap/m/Button",
17
- "sap/m/ActionSheet",
18
17
  "sap/ui/base/ManagedObjectObserver",
19
- "sap/ui/integration/cards/actions/CardActions"
18
+ "sap/ui/integration/cards/actions/CardActions",
19
+ "sap/m/Menu",
20
+ "sap/m/MenuItem"
20
21
  ], function(
21
22
  ActionsToolbarRenderer,
22
23
  capitalize,
@@ -26,9 +27,10 @@ sap.ui.define([
26
27
  Library,
27
28
  coreLibrary,
28
29
  Button,
29
- ActionSheet,
30
30
  ManagedObjectObserver,
31
- CardActions
31
+ CardActions,
32
+ Menu,
33
+ MenuItem
32
34
  ) {
33
35
  "use strict";
34
36
 
@@ -36,7 +38,7 @@ sap.ui.define([
36
38
 
37
39
  var HasPopup = coreLibrary.aria.HasPopup;
38
40
 
39
- function setButtonProperty(oButton, sPropertyName, oValue, oCard) {
41
+ function setMenuItemProperty(oMenuItem, sPropertyName, oValue, oCard) {
40
42
 
41
43
  return new Promise(function (resolve) {
42
44
 
@@ -49,7 +51,7 @@ sap.ui.define([
49
51
  if (oResolvedValue instanceof Promise) {
50
52
 
51
53
  oResolvedValue.then(function (oResult) {
52
- oButton.setProperty(sPropertyName, oResult);
54
+ oMenuItem.setProperty(sPropertyName, oResult);
53
55
  resolve();
54
56
  });
55
57
 
@@ -60,7 +62,7 @@ sap.ui.define([
60
62
  oResolvedValue = oValue;
61
63
  }
62
64
 
63
- oButton.setProperty(sPropertyName, oResolvedValue);
65
+ oMenuItem.setProperty(sPropertyName, oResolvedValue);
64
66
  resolve();
65
67
  });
66
68
  }
@@ -76,7 +78,7 @@ sap.ui.define([
76
78
  * @extends sap.ui.core.Control
77
79
  *
78
80
  * @author SAP SE
79
- * @version 1.130.1
81
+ * @version 1.131.0
80
82
  *
81
83
  * @constructor
82
84
  * @private
@@ -104,8 +106,8 @@ sap.ui.define([
104
106
  visibility: "hidden"
105
107
  },
106
108
 
107
- _actionSheet: {
108
- type: "sap.m.ActionSheet",
109
+ _actionsMenu: {
110
+ type: "sap.m.Menu",
109
111
  multiple: false,
110
112
  visibility: "hidden"
111
113
  }
@@ -115,7 +117,11 @@ sap.ui.define([
115
117
  });
116
118
 
117
119
  ActionsToolbar.prototype.init = function () {
118
- this.setAggregation("_actionSheet", new ActionSheet());
120
+ var oResourceBundle = Library.getResourceBundleFor("sap.ui.integration");
121
+
122
+ this.setAggregation("_actionsMenu", new Menu({
123
+ title: oResourceBundle.getText("CARD_ACTIONS")
124
+ }));
119
125
  this._aActions = []; // holds actions from host and extension
120
126
  this._mActionObservers = new Map();
121
127
  this._oObserver = new ManagedObjectObserver(this._observeActionsAggregation.bind(this));
@@ -145,10 +151,10 @@ sap.ui.define([
145
151
  */
146
152
  ActionsToolbar.prototype.initializeContent = function (oCard) {
147
153
  var that = this,
148
- oActionButton,
149
- aButtons = [],
154
+ oActionMenuItem,
155
+ aMenuItems = [],
150
156
  aActions = [],
151
- oActionSheet = this.getAggregation("_actionSheet"),
157
+ oActionMenu = this.getAggregation("_actionsMenu"),
152
158
  oHost = oCard.getHostInstance(),
153
159
  oExtension = oCard.getAggregation("_extension");
154
160
 
@@ -166,20 +172,20 @@ sap.ui.define([
166
172
  this._aActions = aActions;
167
173
 
168
174
  aActions.forEach(function (oAction) {
169
- oActionButton = that._createActionButton(oAction, false);
170
- aButtons.push(oActionButton);
175
+ oActionMenuItem = that._createActionMenuItem(oAction, false);
176
+ aMenuItems.push(oActionMenuItem);
171
177
  });
172
178
 
173
- if (this._aButtons) {
174
- this._aButtons.forEach(function (oButton) {
175
- oButton.destroy();
179
+ if (this._aMenuItems) {
180
+ this._aMenuItems.forEach(function (oMenuItem) {
181
+ oMenuItem.destroy();
176
182
  });
177
183
  }
178
- aButtons.forEach(oActionSheet.addButton, oActionSheet);
179
- this._aButtons = aButtons;
184
+ aMenuItems.forEach(oActionMenu.addItem, oActionMenu);
185
+ this._aMenuItems = aMenuItems;
180
186
 
181
187
  // Make an initial check for 'visible' and 'enabled' for the buttons
182
- this._refreshButtons().then(this._updateVisibility.bind(this));
188
+ this._refreshMenuItems().then(this._updateVisibility.bind(this));
183
189
  };
184
190
 
185
191
  ActionsToolbar.prototype.setCard = function (oCard) {
@@ -187,8 +193,8 @@ sap.ui.define([
187
193
  };
188
194
 
189
195
  ActionsToolbar.prototype._open = function () {
190
- this._refreshButtons().then(function () {
191
- this.getAggregation("_actionSheet").openBy(this._getToolbar());
196
+ this._refreshMenuItems().then(function () {
197
+ this.getAggregation("_actionsMenu").openBy(this._getToolbar());
192
198
  }.bind(this));
193
199
  };
194
200
 
@@ -213,43 +219,61 @@ sap.ui.define([
213
219
  return oToolbar;
214
220
  };
215
221
 
216
- ActionsToolbar.prototype._refreshButtons = function () {
217
- var aActions = this._aActions,
218
- oCard = this._oCard,
219
- aButtons = this._aButtons,
220
- mAction,
221
- oButton,
222
- i,
223
- aPromises = [];
224
-
225
- for (i = 0; i < aActions.length; i++) {
226
- mAction = aActions[i];
227
- oButton = aButtons[i];
228
-
229
- aPromises.push(setButtonProperty(oButton, 'enabled', mAction.enabled, oCard));
230
- aPromises.push(setButtonProperty(oButton, 'visible', mAction.visible, oCard));
231
- }
222
+ ActionsToolbar.prototype._refreshMenuItems = function () {
223
+ const aPromises = [];
224
+
225
+ this._refreshRecursiveMenuItems(this._aActions, this._aMenuItems, aPromises);
232
226
 
233
227
  return Promise.all(aPromises);
234
228
  };
235
229
 
230
+ ActionsToolbar.prototype._refreshRecursiveMenuItems = function (aActions, aMenuItems, aPromises) {
231
+ const oCard = this._oCard;
232
+
233
+ if (!aActions || !aMenuItems) {
234
+ return;
235
+ }
236
+
237
+ aActions.forEach((mAction, i) => {
238
+ const oMenuItem = aMenuItems[i];
239
+ aPromises.push(setMenuItemProperty(oMenuItem, 'enabled', mAction.enabled, oCard));
240
+ aPromises.push(setMenuItemProperty(oMenuItem, 'visible', mAction.visible, oCard));
241
+
242
+ this._refreshRecursiveMenuItems(mAction.actions, oMenuItem.getItems(), aPromises);
243
+ });
244
+ };
245
+
236
246
  /**
237
- * @param {object} vAction Action config object
247
+ * @param {sap.ui.integration.ActionDefinition|object} vAction Action config object
238
248
  * @param {boolean} bIsActionDefinition
239
- * @returns {sap.m.Button} Button, which will be displayed in the menu
249
+ * @returns {sap.m.MenuItem} MenuItem, which will be displayed in the menu
240
250
  */
241
- ActionsToolbar.prototype._createActionButton = function (vAction, bIsActionDefinition) {
251
+ ActionsToolbar.prototype._createActionMenuItem = function (vAction, bIsActionDefinition) {
242
252
  var mSettings = bIsActionDefinition ? this._getActionConfig(vAction) : vAction;
253
+ const aNestedMenuItems = [];
254
+
255
+ const aActions = bIsActionDefinition ? mSettings.actionDefinitions : mSettings.actions;
256
+ if (aActions) {
257
+ aActions.forEach((oSubAction) => {
258
+ aNestedMenuItems.push(this._createActionMenuItem(oSubAction, bIsActionDefinition));
259
+ });
260
+ }
243
261
 
244
- var oBtn = new Button({
262
+ var oMenuItem = new MenuItem({
245
263
  icon: mSettings.icon,
246
264
  text: mSettings.text,
247
265
  tooltip: mSettings.tooltip,
248
- type: mSettings.buttonType,
266
+ startsSection: mSettings.startsSection,
249
267
  visible: bIsActionDefinition ? mSettings.visible : false,
268
+ items: aNestedMenuItems,
250
269
  press: function (oEvent) {
251
270
  var mCurrSettings = bIsActionDefinition ? this._getActionConfig(vAction) : vAction;
252
271
 
272
+ if (mCurrSettings.actionDefinitions?.length > 0 ||
273
+ mCurrSettings.actions?.length > 0) {
274
+ return;
275
+ }
276
+
253
277
  CardActions.fireAction({
254
278
  card: this._oCard,
255
279
  host: this._oCard.getHostInstance(),
@@ -261,15 +285,19 @@ sap.ui.define([
261
285
  });
262
286
 
263
287
  if (bIsActionDefinition) {
264
- oBtn.setEnabled(mSettings.enabled);
288
+ oMenuItem.setEnabled(mSettings.enabled);
289
+
290
+ vAction.setAssociation("_menuItem", oMenuItem);
291
+
292
+ this._attachObservers(vAction);
265
293
  }
266
294
 
267
- return oBtn;
295
+ return oMenuItem;
268
296
  };
269
297
 
270
298
  ActionsToolbar.prototype._updateVisibility = function () {
271
- var bVisible = this.getAggregation("_actionSheet").getButtons().some(function (oButton) {
272
- return oButton.getVisible();
299
+ var bVisible = this.getAggregation("_actionsMenu").getItems().some(function (oMenuItem) {
300
+ return oMenuItem.getVisible();
273
301
  });
274
302
 
275
303
  this.setVisible(bVisible);
@@ -284,7 +312,7 @@ sap.ui.define([
284
312
  };
285
313
 
286
314
  ActionsToolbar.prototype._getActionConfig = function (oActionDefinition) {
287
- var mSettings = ["visible", "enabled", "icon", "text", "tooltip", "parameters", "buttonType", "type"].reduce(function (mAcc, sKey) {
315
+ var mSettings = ["visible", "enabled", "icon", "text", "tooltip", "parameters", "type", "actionDefinitions", "startsSection"].reduce(function (mAcc, sKey) {
288
316
  mAcc[sKey] = oActionDefinition["get" + capitalize(sKey)]();
289
317
  return mAcc;
290
318
  }, {});
@@ -301,47 +329,75 @@ sap.ui.define([
301
329
  * @param {object} oChanges The mutation info
302
330
  */
303
331
  ActionsToolbar.prototype._observeActionsAggregation = function (oChanges) {
304
- var oActionDefinition = oChanges.child;
332
+ const oActionDefinition = oChanges.child,
333
+ oParent = oChanges.object;
305
334
 
306
335
  if (oChanges.mutation === "insert") {
307
- var oButton = this._createActionButton(oActionDefinition, true);
336
+ const oMenuItem = this._createActionMenuItem(oActionDefinition, true),
337
+ iIndex = oParent.indexOfActionDefinition(oActionDefinition);
308
338
 
309
- this.getAggregation("_actionSheet").insertButton(oButton, this.indexOfActionDefinition(oActionDefinition));
310
- oActionDefinition.setAssociation("_menuButton", oButton);
339
+ let oParentMenu;
340
+ if (oParent.isA("sap.ui.integration.ActionDefinition")) {
341
+ oParentMenu = Element.getElementById(oParent.getAssociation("_menuItem"));
342
+ } else {
343
+ oParentMenu = this.getAggregation("_actionsMenu");
344
+ }
345
+
346
+ oParentMenu.insertItem(oMenuItem, iIndex);
311
347
 
312
- var oActionObserver = new ManagedObjectObserver(this._observeSingleAction.bind(this));
313
- oActionObserver.observe(oActionDefinition, {
314
- properties: true,
315
- aggregations: ["tooltip"]
316
- });
317
- this._mActionObservers.set(oActionDefinition.getId(), oActionObserver);
318
348
  this._updateVisibility();
319
349
  } else if (oChanges.mutation === "remove") {
320
- Element.getElementById(oActionDefinition.getAssociation("_menuButton")).destroy();
321
- this._mActionObservers.get(oActionDefinition.getId()).disconnect();
322
- this._mActionObservers.delete(oActionDefinition.getId());
350
+ Element.getElementById(oActionDefinition.getAssociation("_menuItem")).destroy();
351
+ this._detachObservers(oActionDefinition);
323
352
  }
324
353
  };
325
354
 
355
+ /**
356
+ * @param {sap.ui.integration.ActionDefinition} oActionDefinition The ActionDefinition object to observe
357
+ */
358
+ ActionsToolbar.prototype._attachObservers = function (oActionDefinition) {
359
+ // Observe for children action definitions
360
+ this._oObserver.observe(oActionDefinition, {
361
+ aggregations: [
362
+ "actionDefinitions"
363
+ ]
364
+ });
365
+
366
+ // Observe for properties changes
367
+ var oActionObserver = new ManagedObjectObserver(this._observeSingleAction.bind(this));
368
+ oActionObserver.observe(oActionDefinition, {
369
+ properties: true,
370
+ aggregations: ["tooltip"]
371
+ });
372
+ this._mActionObservers.set(oActionDefinition.getId(), oActionObserver);
373
+ };
374
+
375
+ /**
376
+ * @param {sap.ui.integration.ActionDefinition} oActionDefinition The ActionDefinition object to unobserve
377
+ */
378
+ ActionsToolbar.prototype._detachObservers = function (oActionDefinition) {
379
+ // Observe for children action definitions
380
+ this._oObserver.unobserve(oActionDefinition);
381
+
382
+ this._mActionObservers.get(oActionDefinition.getId()).disconnect();
383
+ this._mActionObservers.delete(oActionDefinition.getId());
384
+ };
385
+
326
386
  ActionsToolbar.prototype._observeSingleAction = function (oChanges) {
327
387
  var oActionDefinition = oChanges.object,
328
388
  sName = oChanges.name,
329
- oButton = Element.getElementById(oActionDefinition.getAssociation("_menuButton")),
389
+ oMenuItem = Element.getElementById(oActionDefinition.getAssociation("_menuItem")),
330
390
  vVal = oChanges.current;
331
391
 
332
392
  if (["type", "parameters"].indexOf(sName) !== -1) {
333
393
  return;
334
394
  }
335
395
 
336
- if (oChanges.type === "aggregation") {
396
+ if (oChanges.type === "aggregation" && sName !== "actionDefinitions") {
337
397
  vVal = oChanges.child;
338
398
  }
339
399
 
340
- if (sName === "buttonType") {
341
- sName = "type";
342
- }
343
-
344
- oButton["set" + capitalize(sName)](vVal);
400
+ oMenuItem["set" + capitalize(sName)](vVal);
345
401
  this._updateVisibility();
346
402
  };
347
403
 
@@ -351,7 +407,7 @@ sap.ui.define([
351
407
  if (bValue) {
352
408
  oToolbar.setEnabled(true);
353
409
  } else {
354
- this.getAggregation("_actionSheet").close();
410
+ this.getAggregation("_actionsMenu").close();
355
411
  oToolbar.setEnabled(false);
356
412
  }
357
413
  };
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @extends sap.ui.core.Control
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.130.1
56
+ * @version 1.131.0
57
57
  *
58
58
  * @constructor
59
59
  * @private
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.m.ComboBox
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.130.1
27
+ * @version 1.131.0
28
28
  *
29
29
  * @constructor
30
30
  * @private
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * @extends sap.ui.core.Control
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.130.1
44
+ * @version 1.131.0
45
45
  *
46
46
  * @constructor
47
47
  * @private
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  * @extends sap.m.ListItemBase
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.130.1
51
+ * @version 1.131.0
52
52
  *
53
53
  * @constructor
54
54
  * @private
@@ -99,7 +99,7 @@ sap.ui.define([
99
99
  * @extends sap.ui.core.Control
100
100
  *
101
101
  * @author SAP SE
102
- * @version 1.130.1
102
+ * @version 1.131.0
103
103
  *
104
104
  * @constructor
105
105
  * @private
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.130.1
35
+ * @version 1.131.0
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.m.ObjectStatus
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.130.1
37
+ * @version 1.131.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.base.ManagedObject
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.130.1
35
+ * @version 1.131.0
36
36
  *
37
37
  * @constructor
38
38
  * @ui5-restricted
@@ -136,7 +136,7 @@ sap.ui.define([
136
136
  * @alias sap.ui.integration.designtime.baseEditor.BaseEditor
137
137
  * @author SAP SE
138
138
  * @since 1.70.0
139
- * @version 1.130.1
139
+ * @version 1.131.0
140
140
  * @private
141
141
  * @experimental since 1.70.0
142
142
  * @ui5-restricted
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @alias sap.ui.integration.designtime.baseEditor.PropertyEditor
38
38
  * @author SAP SE
39
39
  * @since 1.73.0
40
- * @version 1.130.1
40
+ * @version 1.131.0
41
41
  * @private
42
42
  * @experimental since 1.73.0
43
43
  * @ui5-restricted
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  * @alias sap.ui.integration.designtime.baseEditor.PropertyEditors
70
70
  * @author SAP SE
71
71
  * @since 1.73.0
72
- * @version 1.130.1
72
+ * @version 1.131.0
73
73
  * @private
74
74
  * @experimental since 1.73.0
75
75
  * @ui5-restricted
@@ -60,7 +60,7 @@ BASE_EDITOR.PROPERTY.BINDING_NOT_ALLOWED=Les cha\u00EEnes de liaison ne sont pas
60
60
 
61
61
  BASE_EDITOR.ARRAY.ITEM_LABEL=\u00C9l\u00E9ment
62
62
 
63
- BASE_EDITOR.ARRAY.NEW_ITEM_LABEL=Nouveau\: {0}
63
+ BASE_EDITOR.ARRAY.NEW_ITEM_LABEL=Nouveau\u00A0\: {0}
64
64
 
65
65
  BASE_EDITOR.ARRAY.REMOVE=Supprimer l'\u00E9l\u00E9ment
66
66
 
@@ -50,7 +50,7 @@ sap.ui.define([
50
50
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.BasePropertyEditor
51
51
  * @author SAP SE
52
52
  * @since 1.70
53
- * @version 1.130.1
53
+ * @version 1.131.0
54
54
  *
55
55
  * @private
56
56
  * @experimental 1.70
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  * @namespace sap.ui.integration.designtime.baseEditor.propertyEditor.PropertyEditorFactory
16
16
  *
17
17
  * @author SAP SE
18
- * @version 1.130.1
18
+ * @version 1.131.0
19
19
  *
20
20
  * @static
21
21
  * @since 1.75
@@ -82,7 +82,7 @@ sap.ui.define([
82
82
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.arrayEditor.ArrayEditor
83
83
  * @author SAP SE
84
84
  * @since 1.72
85
- * @version 1.130.1
85
+ * @version 1.131.0
86
86
  *
87
87
  * @private
88
88
  * @experimental 1.72
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.booleanEditor.BooleanEditor
23
23
  * @author SAP SE
24
24
  * @since 1.72
25
- * @version 1.130.1
25
+ * @version 1.131.0
26
26
  *
27
27
  * @private
28
28
  * @experimental 1.72
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.codeEditor.CodeEditor
62
62
  * @author SAP SE
63
63
  * @since 1.106
64
- * @version 1.130.1
64
+ * @version 1.131.0
65
65
  *
66
66
  * @private
67
67
  * @experimental 1.106
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.dateEditor.DateEditor
23
23
  * @author SAP SE
24
24
  * @since 1.76
25
- * @version 1.130.1
25
+ * @version 1.131.0
26
26
  *
27
27
  * @private
28
28
  * @experimental 1.76
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.dateTimeEditor.DateTimeEditor
25
25
  * @author SAP SE
26
26
  * @since 1.76
27
- * @version 1.130.1
27
+ * @version 1.131.0
28
28
  *
29
29
  * @private
30
30
  * @experimental 1.76
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.enumStringEditor.EnumStringEditor
46
46
  * @author SAP SE
47
47
  * @since 1.70
48
- * @version 1.130.1
48
+ * @version 1.131.0
49
49
  *
50
50
  * @private
51
51
  * @experimental 1.70
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.groupEditor.GroupEditor
46
46
  * @author SAP SE
47
47
  * @since 1.85
48
- * @version 1.130.1
48
+ * @version 1.131.0
49
49
  *
50
50
  * @private
51
51
  * @experimental 1.85
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.iconEditor.IconEditor
41
41
  * @author SAP SE
42
42
  * @since 1.70
43
- * @version 1.130.1
43
+ * @version 1.131.0
44
44
  *
45
45
  * @private
46
46
  * @experimental 1.70
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  *
20
20
  * @namespace sap.ui.integration.designtime.baseEditor.propertyEditor.iconEditor.IsInIconPool
21
21
  * @author SAP SE
22
- * @version 1.130.1
22
+ * @version 1.131.0
23
23
  *
24
24
  * @static
25
25
  * @since 1.81
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.integerEditor.IntegerEditor
25
25
  * @author SAP SE
26
26
  * @since 1.76
27
- * @version 1.130.1
27
+ * @version 1.131.0
28
28
  *
29
29
  * @private
30
30
  * @experimental 1.76
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.jsonEditor.JsonEditor
25
25
  * @author SAP SE
26
26
  * @since 1.72
27
- * @version 1.130.1
27
+ * @version 1.131.0
28
28
  *
29
29
  * @private
30
30
  * @experimental 1.72
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.listEditor.ListEditor
23
23
  * @author SAP SE
24
24
  * @since 1.76
25
- * @version 1.130.1
25
+ * @version 1.131.0
26
26
  *
27
27
  * @private
28
28
  * @experimental 1.76
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.mapEditor.MapEditor
95
95
  * @author SAP SE
96
96
  * @since 1.74
97
- * @version 1.130.1
97
+ * @version 1.131.0
98
98
  *
99
99
  * @private
100
100
  * @experimental 1.74
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.multiSelectEditor.MultiSelectEditor
46
46
  * @author SAP SE
47
47
  * @since 1.97
48
- * @version 1.130.1
48
+ * @version 1.131.0
49
49
  *
50
50
  * @private
51
51
  * @experimental 1.98
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.numberEditor.NumberEditor
29
29
  * @author SAP SE
30
30
  * @since 1.72
31
- * @version 1.130.1
31
+ * @version 1.131.0
32
32
  *
33
33
  * @private
34
34
  * @experimental 1.72
@@ -51,7 +51,7 @@ sap.ui.define([
51
51
  * @alias sap.ui.integration.designtime.baseEditor.propertyEditor.objectArrayEditor.ObjectArrayEditor
52
52
  * @author SAP SE
53
53
  * @since 1.100.0
54
- * @version 1.130.1
54
+ * @version 1.131.0
55
55
  *
56
56
  * @private
57
57
  * @experimental 1.100