@openui5/sap.ui.integration 1.117.1 → 1.119.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 (184) hide show
  1. package/THIRDPARTY.txt +2 -2
  2. package/package.json +6 -6
  3. package/src/sap/ui/integration/.library +2 -2
  4. package/src/sap/ui/integration/ActionDefinition.js +1 -1
  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 +32 -33
  8. package/src/sap/ui/integration/cards/AdaptiveContent.js +1 -1
  9. package/src/sap/ui/integration/cards/AnalyticalContent.js +13 -9
  10. package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +1 -1
  11. package/src/sap/ui/integration/cards/BaseContent.js +2 -1
  12. package/src/sap/ui/integration/cards/BaseListContent.js +10 -7
  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 +18 -1
  17. package/src/sap/ui/integration/cards/ListContent.js +9 -2
  18. package/src/sap/ui/integration/cards/ListContentRenderer.js +1 -1
  19. package/src/sap/ui/integration/cards/NumericHeader.js +52 -4
  20. package/src/sap/ui/integration/cards/ObjectContent.js +5 -1
  21. package/src/sap/ui/integration/cards/TableContent.js +9 -2
  22. package/src/sap/ui/integration/cards/TimelineContent.js +8 -1
  23. package/src/sap/ui/integration/cards/WebPageContent.js +1 -1
  24. package/src/sap/ui/integration/cards/actions/CardActions.js +1 -1
  25. package/src/sap/ui/integration/cards/actions/ShowCardAction.js +18 -8
  26. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +5 -3
  27. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +1 -1
  28. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +1 -1
  29. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +1 -1
  30. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +1 -1
  31. package/src/sap/ui/integration/cards/filters/BaseFilter.js +1 -1
  32. package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +1 -1
  33. package/src/sap/ui/integration/cards/filters/FilterBar.js +1 -1
  34. package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +1 -1
  35. package/src/sap/ui/integration/cards/filters/SearchFilter.js +1 -1
  36. package/src/sap/ui/integration/cards/filters/SelectFilter.js +1 -1
  37. package/src/sap/ui/integration/cards/list/MicrochartsResizeHelper.js +1 -1
  38. package/src/sap/ui/integration/controls/ActionsStrip.js +4 -2
  39. package/src/sap/ui/integration/controls/ActionsToolbar.js +1 -1
  40. package/src/sap/ui/integration/controls/BlockingMessage.js +1 -1
  41. package/src/sap/ui/integration/controls/LinkWithIcon.js +1 -1
  42. package/src/sap/ui/integration/controls/ListContentItem.js +24 -12
  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/controls/Paginator.js +16 -25
  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/propertyEditor/BasePropertyEditor.js +1 -1
  51. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +1 -1
  52. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +1 -1
  53. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  54. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/codeEditor/CodeEditor.js +1 -1
  55. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +1 -1
  56. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +1 -1
  57. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  58. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +1 -1
  59. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  60. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  61. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +1 -1
  62. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +1 -1
  63. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  64. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +1 -1
  65. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +1 -1
  66. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +1 -1
  67. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.js +1 -1
  68. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  69. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +1 -1
  70. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +1 -1
  71. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +1 -1
  72. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  73. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  74. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  75. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +1 -1
  76. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -1
  77. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  78. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  79. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  80. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  81. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  82. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  83. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  84. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  85. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +1 -1
  86. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  87. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  88. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +1 -1
  89. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  90. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +1 -1
  91. package/src/sap/ui/integration/designtime/editor/Card.js +1 -1
  92. package/src/sap/ui/integration/designtime/editor/CardEditor.js +1 -1
  93. package/src/sap/ui/integration/designtime/editor/CardPreview.js +1 -2
  94. package/src/sap/ui/integration/editor/Editor.js +163 -97
  95. package/src/sap/ui/integration/editor/EditorResourceBundles.js +1 -1
  96. package/src/sap/ui/integration/editor/Extension.js +1 -1
  97. package/src/sap/ui/integration/editor/Manifest.js +1 -1
  98. package/src/sap/ui/integration/editor/Settings.js +347 -79
  99. package/src/sap/ui/integration/editor/css/Editor.css +7 -0
  100. package/src/sap/ui/integration/editor/fields/BaseField.js +98 -5
  101. package/src/sap/ui/integration/editor/fields/BooleanField.js +1 -1
  102. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  103. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  104. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  105. package/src/sap/ui/integration/editor/fields/GroupField.js +1 -1
  106. package/src/sap/ui/integration/editor/fields/IntegerField.js +1 -1
  107. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  108. package/src/sap/ui/integration/editor/fields/ObjectField.js +171 -105
  109. package/src/sap/ui/integration/editor/fields/ObjectListField.js +18 -12
  110. package/src/sap/ui/integration/editor/fields/StringField.js +60 -123
  111. package/src/sap/ui/integration/editor/fields/StringListField.js +1 -1
  112. package/src/sap/ui/integration/editor/fields/fragment/Controller.js +1 -1
  113. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  114. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +100 -42
  115. package/src/sap/ui/integration/editor/fields/viz/ImageSelect.js +40 -0
  116. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  117. package/src/sap/ui/integration/editor/fields/viz/VizBase.js +1 -9
  118. package/src/sap/ui/integration/library-bootstrap.js +5 -4
  119. package/src/sap/ui/integration/library.js +46 -5
  120. package/src/sap/ui/integration/messagebundle.properties +12 -0
  121. package/src/sap/ui/integration/messagebundle_bg.properties +1 -1
  122. package/src/sap/ui/integration/messagebundle_ca.properties +1 -1
  123. package/src/sap/ui/integration/messagebundle_da.properties +1 -1
  124. package/src/sap/ui/integration/messagebundle_el.properties +1 -1
  125. package/src/sap/ui/integration/messagebundle_en.properties +9 -1
  126. package/src/sap/ui/integration/messagebundle_es.properties +1 -1
  127. package/src/sap/ui/integration/messagebundle_es_MX.properties +1 -1
  128. package/src/sap/ui/integration/messagebundle_et.properties +1 -1
  129. package/src/sap/ui/integration/messagebundle_fr.properties +1 -1
  130. package/src/sap/ui/integration/messagebundle_fr_CA.properties +1 -1
  131. package/src/sap/ui/integration/messagebundle_hi.properties +1 -1
  132. package/src/sap/ui/integration/messagebundle_hr.properties +1 -1
  133. package/src/sap/ui/integration/messagebundle_hu.properties +1 -1
  134. package/src/sap/ui/integration/messagebundle_it.properties +1 -1
  135. package/src/sap/ui/integration/messagebundle_iw.properties +1 -1
  136. package/src/sap/ui/integration/messagebundle_ja.properties +1 -1
  137. package/src/sap/ui/integration/messagebundle_kk.properties +1 -1
  138. package/src/sap/ui/integration/messagebundle_lt.properties +1 -1
  139. package/src/sap/ui/integration/messagebundle_lv.properties +1 -1
  140. package/src/sap/ui/integration/messagebundle_nl.properties +1 -1
  141. package/src/sap/ui/integration/messagebundle_no.properties +1 -1
  142. package/src/sap/ui/integration/messagebundle_pl.properties +1 -1
  143. package/src/sap/ui/integration/messagebundle_pt_PT.properties +1 -1
  144. package/src/sap/ui/integration/messagebundle_ro.properties +1 -1
  145. package/src/sap/ui/integration/messagebundle_ru.properties +1 -1
  146. package/src/sap/ui/integration/messagebundle_sh.properties +1 -1
  147. package/src/sap/ui/integration/messagebundle_sl.properties +1 -1
  148. package/src/sap/ui/integration/messagebundle_th.properties +2 -2
  149. package/src/sap/ui/integration/messagebundle_tr.properties +1 -1
  150. package/src/sap/ui/integration/messagebundle_uk.properties +4 -4
  151. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  152. package/src/sap/ui/integration/model/ObservableModel.js +1 -1
  153. package/src/sap/ui/integration/model/PagingModelListBinding.js +1 -1
  154. package/src/sap/ui/integration/schemas/sap-card.json +449 -332
  155. package/src/sap/ui/integration/themes/base/Card.less +141 -1
  156. package/src/sap/ui/integration/thirdparty/markdown-it.js +42 -26
  157. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  158. package/src/sap/ui/integration/util/BindingHelper.js +1 -1
  159. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  160. package/src/sap/ui/integration/util/CacheAndRequestDataProvider.js +25 -10
  161. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  162. package/src/sap/ui/integration/util/ContentFactory.js +1 -1
  163. package/src/sap/ui/integration/util/CsrfTokenHandler.js +1 -1
  164. package/src/sap/ui/integration/util/DataProvider.js +1 -1
  165. package/src/sap/ui/integration/util/DataProviderFactory.js +1 -1
  166. package/src/sap/ui/integration/util/Destinations.js +1 -1
  167. package/src/sap/ui/integration/util/ErrorHandler.js +1 -1
  168. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  169. package/src/sap/ui/integration/util/Form.js +1 -1
  170. package/src/sap/ui/integration/util/HeaderFactory.js +39 -4
  171. package/src/sap/ui/integration/util/JSONBindingHelper.js +1 -1
  172. package/src/sap/ui/integration/util/LoadingProvider.js +1 -1
  173. package/src/sap/ui/integration/util/Manifest.js +1 -1
  174. package/src/sap/ui/integration/util/Measurement.js +7 -3
  175. package/src/sap/ui/integration/util/RequestDataProvider.js +31 -13
  176. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  177. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  178. package/src/sap/ui/integration/util/SkeletonCard.js +1 -1
  179. package/src/sap/ui/integration/util/Utils.js +4 -4
  180. package/src/sap/ui/integration/util/Validators.js +1 -1
  181. package/src/sap/ui/integration/util/loadCardEditor.js +1 -1
  182. package/src/sap/ui/integration/widgets/Card.js +79 -48
  183. package/src/sap/ui/integration/widgets/CardRenderer.js +2 -0
  184. package/src/sap-ui-integration.js +5 -5
@@ -11,7 +11,8 @@ sap.ui.define([
11
11
  "sap/m/CheckBox",
12
12
  "sap/base/util/deepEqual",
13
13
  "sap/base/util/deepClone",
14
- "sap/ui/integration/util/Utils"
14
+ "sap/ui/integration/util/Utils",
15
+ "sap/m/table/columnmenu/Menu"
15
16
  ], function (
16
17
  ObjectField,
17
18
  JSONModel,
@@ -19,7 +20,8 @@ sap.ui.define([
19
20
  CheckBox,
20
21
  deepEqual,
21
22
  deepClone,
22
- Utils
23
+ Utils,
24
+ Menu
23
25
  ) {
24
26
  "use strict";
25
27
 
@@ -29,7 +31,7 @@ sap.ui.define([
29
31
  * @alias sap.ui.integration.editor.fields.ObjectListField
30
32
  * @author SAP SE
31
33
  * @since 1.100.0
32
- * @version 1.117.1
34
+ * @version 1.119.0
33
35
  * @private
34
36
  * @experimental since 1.100.0
35
37
  * @ui5-restricted
@@ -71,6 +73,15 @@ sap.ui.define([
71
73
  var oControl = that.getAggregation("_field");
72
74
  if (oControl instanceof Table) {
73
75
  oControl.addStyleClass("sapUiIntegrationEditorItemObjectListFieldTable");
76
+ // create a column header menu
77
+ that._oMenu = new Menu();
78
+ var aColumns = oControl.getColumns();
79
+ for (var i = 0; i < aColumns.length; i++) {
80
+ // if column supports filter or sort, add menu as header menu for it
81
+ if (aColumns[i].getFilterProperty() || aColumns[i].getSortProperty()) {
82
+ aColumns[i].setHeaderMenu(that._oMenu.getId());
83
+ }
84
+ }
74
85
  var oConfig = that.getConfiguration();
75
86
  // select all the results come from config.value
76
87
  if (!oConfig.values){
@@ -140,13 +151,6 @@ sap.ui.define([
140
151
  });
141
152
  };
142
153
 
143
- ObjectListField.prototype.addNewObject = function (oEvent) {
144
- var that = this;
145
- var oControl = oEvent.getSource();
146
- that._newObjectTemplate._dt._uuid = Utils.generateUuidV4();
147
- that.openObjectDetailsPopover(that._newObjectTemplate, oControl, "add");
148
- };
149
-
150
154
  ObjectListField.prototype.onSelectionColumnClick = function(oEvent) {
151
155
  var that = this;
152
156
  var bIsSelected = oEvent.getParameter("selected");
@@ -245,9 +249,9 @@ sap.ui.define([
245
249
  var oConfig = that.getConfiguration();
246
250
  var oTable = that.getAggregation("_field");
247
251
  var oModel = oTable.getModel();
252
+ var sPath = oTable.getBinding("rows").getPath();
248
253
  if (Array.isArray(oConfig.value) && oConfig.value.length > 0) {
249
- var aValues = deepClone(oConfig.value, 500),
250
- sPath = oTable.getBinding("rows").getPath();
254
+ var aValues = deepClone(oConfig.value, 500);
251
255
  if (Array.isArray(tResult) && tResult.length > 0) {
252
256
  that._positionCount = oConfig.value.length + 1;
253
257
  var aUUIDs = [];
@@ -315,6 +319,8 @@ sap.ui.define([
315
319
  oResult._dt._position = that._positionCount;
316
320
  that._positionCount++;
317
321
  });
322
+ } else {
323
+ oModel.setProperty(sPath, []);
318
324
  }
319
325
  oModel.setProperty("/_allSelected", false);
320
326
  }
@@ -16,17 +16,11 @@ sap.ui.define([
16
16
  "sap/m/OverflowToolbar",
17
17
  "sap/m/ToolbarSpacer",
18
18
  "sap/ui/core/ListItem",
19
- "sap/m/List",
20
- "sap/m/CustomListItem",
21
19
  "sap/m/VBox",
22
20
  "sap/base/util/each",
23
21
  "sap/base/util/restricted/_debounce",
24
22
  "sap/ui/core/Core",
25
- "sap/ui/model/json/JSONModel",
26
- "sap/base/util/deepClone",
27
- "sap/ui/model/Sorter",
28
- "sap/m/GroupHeaderListItem",
29
- "sap/ui/core/CustomData"
23
+ "sap/base/util/deepClone"
30
24
  ], function (
31
25
  BaseField,
32
26
  Input,
@@ -39,17 +33,11 @@ sap.ui.define([
39
33
  OverflowToolbar,
40
34
  ToolbarSpacer,
41
35
  ListItem,
42
- List,
43
- CustomListItem,
44
36
  VBox,
45
37
  each,
46
38
  _debounce,
47
39
  Core,
48
- JSONModel,
49
- deepClone,
50
- Sorter,
51
- GroupHeaderListItem,
52
- CustomData
40
+ deepClone
53
41
  ) {
54
42
  "use strict";
55
43
  var REGEXP_PARAMETERS = /parameters\.([^\}\}]+)/g;
@@ -65,7 +53,7 @@ sap.ui.define([
65
53
  * @alias sap.ui.integration.editor.fields.StringField
66
54
  * @author SAP SE
67
55
  * @since 1.83.0
68
- * @version 1.117.1
56
+ * @version 1.119.0
69
57
  * @private
70
58
  * @experimental since 1.83.0
71
59
  * @ui5-restricted
@@ -437,89 +425,12 @@ sap.ui.define([
437
425
  var oField = oControl.getParent();
438
426
  var sParameterId = oField.getParameterId();
439
427
  var oConfig = oField.getConfiguration();
440
-
441
- if (!that._aOriginTranslatedValues) {
442
- //init the origin translation value list in card i18n files
443
- that._aOriginTranslatedValues = oField.getOriginTranslatedValues(oConfig);
444
- }
445
- var aTempTranslatedLanguages = deepClone(that._aOriginTranslatedValues, 500);
446
428
  var oResourceBundle = oField.getResourceBundle();
447
- //merge the value in texts or beforeLayerChange into the value list of i18n files
448
- aTempTranslatedLanguages.forEach(function (translatedValue) {
449
- var sTranslateText = oField.getTranslationValueInTexts(translatedValue.key, oConfig.manifestpath);
450
- if (sTranslateText) {
451
- translatedValue.value = sTranslateText;
452
- if (Array.isArray(that._aUpdatedLanguages) && !that._aUpdatedLanguages.includes(translatedValue.key)) {
453
- translatedValue.originValue = translatedValue.value;
454
- }
455
- } else if (oConfig._beforeLayerChange) {
456
- translatedValue.value = oConfig._beforeLayerChange;
457
- if (Array.isArray(that._aUpdatedLanguages) && !that._aUpdatedLanguages.includes(translatedValue.key)) {
458
- translatedValue.originValue = translatedValue.value;
459
- }
460
- }
461
- translatedValue.status = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
462
- if (translatedValue.key === oResourceBundle.sLocale.replaceAll('_', '-')) {
463
- translatedValue.editable = false;
464
- }
465
- });
466
-
467
- var aTranslatedValues = {
468
- "currentLanguage": {},
469
- "isUpdated": false,
470
- "translatedLanguages": []
471
- };
472
- var oModel;
473
- if (aTempTranslatedLanguages) {
474
- //check the updated language list, update the data model
475
- aTempTranslatedLanguages.forEach(function (translatedValue) {
476
- if (Array.isArray(that._aUpdatedLanguages) && that._aUpdatedLanguages.includes(translatedValue.key)) {
477
- translatedValue.value = oField.getTranslationValueInTexts(translatedValue.key, oConfig.manifestpath);
478
- translatedValue.status = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
479
- }
480
- if (translatedValue.key === oResourceBundle.sLocale.replaceAll('_', '-')) {
481
- translatedValue.value = oControl.getValue();
482
- aTranslatedValues.currentLanguage = translatedValue;
483
- } else {
484
- aTranslatedValues.translatedLanguages.push(translatedValue);
485
- }
486
- });
487
- }
429
+ var oTranslatedValues = that.buildTranslationsData(oField, oControl);
430
+ var oTranslatonsModel;
488
431
  var sPlacement = oField.getPopoverPlacement(oControl._oValueHelpIcon);
489
432
  if (!that._oTranslationPopover) {
490
- var oList = new List(sParameterId + "_translation_popover_value_list", {
491
- //mode: "Delete",
492
- items: {
493
- path: "languages>/translatedLanguages",
494
- template: new CustomListItem({
495
- content: [
496
- new VBox({
497
- items: [
498
- new Text({
499
- text: "{languages>description}"
500
- }),
501
- new Input({
502
- value: "{languages>value}",
503
- editable: "{languages>editable}"
504
- })
505
- ]
506
- })
507
- ],
508
- customData: [
509
- new CustomData({
510
- key: "{languages>key}",
511
- value: "{languages>description}"
512
- })
513
- ]
514
- }),
515
- sorter: [new Sorter({
516
- path: 'status',
517
- descending: true,
518
- group: true
519
- })],
520
- groupHeaderFactory: oField.getGroupHeader
521
- }
522
- });
433
+ var oList = that.buildTranslationsList(sParameterId + "_translation_popover_value_list");
523
434
  that._oTranslationPopover = new Popover(sParameterId + "_translation_popover", {
524
435
  placement: sPlacement,
525
436
  contentWidth: "300px",
@@ -585,41 +496,67 @@ sap.ui.define([
585
496
  ]
586
497
  })
587
498
  }).addStyleClass("sapUiIntegrationFieldTranslation");
588
- oModel = new JSONModel(aTranslatedValues);
589
- oModel.attachPropertyChange(function(oEvent) {
590
- //update the status of each translation for grouping
591
- //update the isUpdated property
592
- var oData = oModel.getData();
593
- var sUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
594
- var sNotUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
595
- var bIsUpdated = false;
596
- oData.translatedLanguages.forEach(function(oLanguage) {
597
- if (oLanguage.value !== oLanguage.originValue) {
598
- oLanguage.status = sUpdatedStr;
599
- bIsUpdated = true;
600
- } else {
601
- oLanguage.status = sNotUpdatedStr;
602
- }
603
- });
604
- oData.isUpdated = bIsUpdated;
605
- oModel.setData(oData);
606
- oModel.checkUpdate(true);
607
- });
608
- that._oTranslationPopover.setModel(oModel, "languages");
499
+ oTranslatonsModel = that.buildTranslationsModel(oTranslatedValues);
500
+ that._oTranslationPopover.setModel(oTranslatonsModel, "languages");
609
501
  } else {
610
502
  that._oTranslationPopover.setPlacement(sPlacement);
611
- oModel = that._oTranslationPopover.getModel("languages");
612
- oModel.setData(aTranslatedValues);
613
- oModel.checkUpdate(true);
503
+ oTranslatonsModel = that._oTranslationPopover.getModel("languages");
504
+ oTranslatonsModel.setData(oTranslatedValues);
505
+ oTranslatonsModel.checkUpdate(true);
614
506
  }
615
507
  that._oTranslationPopover.openBy(oControl._oValueHelpIcon);
616
508
  };
617
509
 
618
- StringField.prototype.getGroupHeader = function(oGroup) {
619
- return new GroupHeaderListItem({
620
- title: oGroup.key,
621
- upperCase: false
510
+ StringField.prototype.buildTranslationsData = function(oField, oControl) {
511
+ var that = this;
512
+ var oConfig = oField.getConfiguration();
513
+ if (!that._aOriginTranslatedValues) {
514
+ //init the origin translation value list in card i18n files
515
+ that._aOriginTranslatedValues = oField.getOriginTranslatedValues(oConfig);
516
+ }
517
+ var aTempTranslatedLanguages = deepClone(that._aOriginTranslatedValues, 500);
518
+ var oResourceBundle = oField.getResourceBundle();
519
+ //merge the value in texts or beforeLayerChange into the value list of i18n files
520
+ aTempTranslatedLanguages.forEach(function (translatedValue) {
521
+ var sTranslateText = oField.getTranslationValueInTexts(translatedValue.key, oConfig.manifestpath);
522
+ if (sTranslateText) {
523
+ translatedValue.value = sTranslateText;
524
+ if (Array.isArray(that._aUpdatedLanguages) && !that._aUpdatedLanguages.includes(translatedValue.key)) {
525
+ translatedValue.originValue = translatedValue.value;
526
+ }
527
+ } else if (oConfig._beforeLayerChange) {
528
+ translatedValue.value = oConfig._beforeLayerChange;
529
+ if (Array.isArray(that._aUpdatedLanguages) && !that._aUpdatedLanguages.includes(translatedValue.key)) {
530
+ translatedValue.originValue = translatedValue.value;
531
+ }
532
+ }
533
+ translatedValue.status = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
534
+ if (translatedValue.key === oResourceBundle.sLocale.replaceAll('_', '-')) {
535
+ translatedValue.editable = false;
536
+ }
622
537
  });
538
+
539
+ var oTranslatedValues = {
540
+ "currentLanguage": {},
541
+ "isUpdated": false,
542
+ "translatedLanguages": []
543
+ };
544
+ if (aTempTranslatedLanguages) {
545
+ //check the updated language list, update the data model
546
+ aTempTranslatedLanguages.forEach(function (translatedValue) {
547
+ if (Array.isArray(that._aUpdatedLanguages) && that._aUpdatedLanguages.includes(translatedValue.key)) {
548
+ translatedValue.value = oField.getTranslationValueInTexts(translatedValue.key, oConfig.manifestpath);
549
+ translatedValue.status = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
550
+ }
551
+ if (translatedValue.key === oResourceBundle.sLocale.replaceAll('_', '-')) {
552
+ translatedValue.value = oControl.getValue();
553
+ oTranslatedValues.currentLanguage = translatedValue;
554
+ } else {
555
+ oTranslatedValues.translatedLanguages.push(translatedValue);
556
+ }
557
+ });
558
+ }
559
+ return oTranslatedValues;
623
560
  };
624
561
 
625
562
  return StringField;
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @alias sap.ui.integration.editor.fields.StringListField
45
45
  * @author SAP SE
46
46
  * @since 1.83.0
47
- * @version 1.117.1
47
+ * @version 1.119.0
48
48
  * @private
49
49
  * @experimental since 1.83.0
50
50
  * @ui5-restricted
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  * @alias sap.ui.integration.editor.fields.fragment.Controller
16
16
  * @author SAP SE
17
17
  * @since 1.105.0
18
- * @version 1.117.1
18
+ * @version 1.119.0
19
19
  * @private
20
20
  * @experimental since 1.105.0
21
21
  * @ui5-restricted
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @alias sap.ui.integration.editor.fields.viz.ColorSelect
22
22
  * @author SAP SE
23
23
  * @since 1.84.0
24
- * @version 1.117.1
24
+ * @version 1.119.0
25
25
  * @private
26
26
  * @experimental since 1.84.0
27
27
  * @ui5-restricted
@@ -12,9 +12,11 @@ sap.ui.define([
12
12
  "sap/base/util/merge",
13
13
  "sap/ui/core/Core",
14
14
  "sap/base/util/deepClone",
15
- "sap/ui/integration/formatters/IconFormatter"
15
+ "sap/ui/integration/formatters/IconFormatter",
16
+ "sap/m/Popover",
17
+ "sap/m/Image"
16
18
  ], function (
17
- VizBase, Select, ListItem, JSONModel, IconPool, merge, Core, deepClone, IconFormatter
19
+ VizBase, Select, ListItem, JSONModel, IconPool, merge, Core, deepClone, IconFormatter, Popover, Image
18
20
  ) {
19
21
  "use strict";
20
22
 
@@ -27,7 +29,7 @@ sap.ui.define([
27
29
  * @alias sap.ui.integration.editor.fields.viz.IconSelect
28
30
  * @author SAP SE
29
31
  * @since 1.84.0
30
- * @version 1.117.1
32
+ * @version 1.119.0
31
33
  * @private
32
34
  * @experimental since 1.84.0
33
35
  * @ui5-restricted
@@ -47,6 +49,14 @@ sap.ui.define([
47
49
  allowNone: {
48
50
  type: "boolean",
49
51
  defaultValue: true
52
+ },
53
+ /**
54
+ * Specifies whether or not to allow Default Icons (SAP Icons).
55
+ * @since 1.119
56
+ */
57
+ allowDefaultIcons: {
58
+ type: "boolean",
59
+ defaultValue: true
50
60
  }
51
61
  }
52
62
  },
@@ -55,30 +65,28 @@ sap.ui.define([
55
65
  }
56
66
  });
57
67
 
58
- IconSelect.prototype._initIconModel = function () {
68
+ IconSelect.prototype._initDefaultIcons = function () {
69
+ aDefaultIcons = [];
59
70
  var aIconNames = IconPool.getIconNames();
60
71
  aIconNames = aIconNames.sort(function (a, b) {
61
72
  return a.toLowerCase().localeCompare(b.toLowerCase());
62
73
  });
63
- var aIcons = [];
64
- if (!aDefaultIcons) {
65
- aIconNames.filter(function (s) {
66
- var text = IconPool.getIconInfo(s).text || ("-" + s).replace(/-(.)/ig, function (sMatch, sChar) {
67
- return " " + sChar.toUpperCase();
68
- }).substring(1);
69
- aIcons.push({
70
- icon: "sap-icon://" + s,
71
- key: "sap-icon://" + s,
72
- text: text,
73
- tooltip: text,
74
- enabled: true
75
- });
74
+ aIconNames.filter(function (s) {
75
+ var text = IconPool.getIconInfo(s).text || ("-" + s).replace(/-(.)/ig, function (sMatch, sChar) {
76
+ return " " + sChar.toUpperCase();
77
+ }).substring(1);
78
+ aDefaultIcons.push({
79
+ icon: "sap-icon://" + s,
80
+ key: "sap-icon://" + s,
81
+ text: text,
82
+ tooltip: text,
83
+ enabled: true
76
84
  });
77
- aDefaultIcons = deepClone(aIcons, 500);
78
- } else {
79
- aIcons = deepClone(aDefaultIcons, 500);
80
- }
81
- aIcons = [{
85
+ });
86
+ };
87
+
88
+ IconSelect.prototype._initIconModel = function () {
89
+ var aIcons = [{
82
90
  icon: "",
83
91
  text: oResourceBundle.getText("EDITOR_ICON_NONE"),
84
92
  tooltip: "",
@@ -96,7 +104,10 @@ sap.ui.define([
96
104
  tooltip: "",
97
105
  key: "selected",
98
106
  enabled: false
99
- }].concat(aIcons);
107
+ }];
108
+ if (this.getAllowDefaultIcons()) {
109
+ aIcons = aIcons.concat(deepClone(aDefaultIcons, 500));
110
+ }
100
111
  this._oIconModel = new JSONModel(aIcons);
101
112
  this._oIconModel.setSizeLimit(aIcons.length);
102
113
  };
@@ -105,6 +116,9 @@ sap.ui.define([
105
116
  if (oResourceBundle && oResourceBundle.sLocale !== Core.getConfiguration().getLanguage()) {
106
117
  oResourceBundle = Core.getLibraryResourceBundle("sap.ui.integration");
107
118
  }
119
+ if (!aDefaultIcons) {
120
+ this._initDefaultIcons();
121
+ }
108
122
  if (!this._oIconModel) {
109
123
  this._initIconModel();
110
124
  }
@@ -145,28 +159,18 @@ sap.ui.define([
145
159
  this._oControl.setModel(this._oIconModel, "iconlist");
146
160
 
147
161
  //add style class and height on open
148
- var fnOpen = this._oControl.open;
149
- this._oControl.open = function () {
150
- fnOpen && fnOpen.apply(this, arguments);
151
- this.getPicker().addStyleClass("sapUiIntegrationIconSelectList");
152
- this.getPicker().setContentHeight("400px");
153
- };
162
+ this._oControl._fnOpen = this._oControl.open;
163
+ if (this.getAllowDefaultIcons()) {
164
+ this._oControl.open = function () {
165
+ this._fnOpen && this._fnOpen.apply(this, arguments);
166
+ this.getPicker().addStyleClass("sapUiIntegrationIconSelectList");
167
+ this.getPicker().setContentHeight("400px");
168
+ };
169
+ }
154
170
 
155
171
  //show file image before the label
156
172
  this._oControl.addDelegate({
157
- onAfterRendering: function () {
158
- var oIconDomRef = this._oControl.getDomRef("labelIcon");
159
- if (oIconDomRef) {
160
- var sCustomImage = this._oControl._customImage;
161
- if (sCustomImage) {
162
- oIconDomRef.style.backgroundImage = "url('" + sCustomImage + "')";
163
- oIconDomRef.classList.add("sapMSelectListItemIconCustom");
164
- } else {
165
- oIconDomRef.style.backgroundImage = "unset";
166
- oIconDomRef.classList.remove("sapMSelectListItemIconCustom");
167
- }
168
- }
169
- }.bind(this)
173
+ onAfterRendering: this.onAfterRenderingSelect.bind(this)
170
174
  });
171
175
 
172
176
  //keyboard handling only if the list is open
@@ -293,5 +297,59 @@ sap.ui.define([
293
297
  return this;
294
298
  };
295
299
 
300
+ IconSelect.prototype.onAfterRenderingSelect = function () {
301
+ var oIconDomRef = this._oControl.getDomRef("labelIcon");
302
+ if (oIconDomRef) {
303
+ var sCustomImage = this._oControl._customImage;
304
+ var oIcon = Core.byId(oIconDomRef.id);
305
+ if (sCustomImage) {
306
+ oIconDomRef.style.backgroundImage = "url('" + sCustomImage + "')";
307
+ oIconDomRef.classList.add("sapMSelectListItemIconCustom");
308
+ oIconDomRef.children[0].title = oResourceBundle.getText("EDITOR_IMAGE_CUSTOMICON_TOOLTIP");
309
+ oIcon.onclick = function(oEvent) {
310
+ oEvent.stopImmediatePropagation();
311
+ oIcon._oImagePopover = new Popover(oIcon.getId() + "-imagePopover", {
312
+ placement: "Right",
313
+ showHeader: false,
314
+ content: new Image(oIcon.getId() + "-imagePopover-image", {
315
+ src: sCustomImage
316
+ }).addStyleClass("image")
317
+ }).addStyleClass("sapUiIntegrationImageSelect");
318
+ oIcon._oImagePopover.openBy(oIcon);
319
+ };
320
+ } else {
321
+ oIconDomRef.style.backgroundImage = "unset";
322
+ oIconDomRef.classList.remove("sapMSelectListItemIconCustom");
323
+ oIcon.onclick = undefined;
324
+ }
325
+ }
326
+ };
327
+
328
+ IconSelect.prototype.setAllowDefaultIcons = function (bAllowDefaultIcons) {
329
+ if (typeof bAllowDefaultIcons === "boolean" && this.getAllowDefaultIcons() !== bAllowDefaultIcons) {
330
+ var aIcons = this._oIconModel.getData();
331
+ if (bAllowDefaultIcons) {
332
+ //add default icons
333
+ aIcons = aIcons.concat(deepClone(aDefaultIcons, 500));
334
+ //add style class and height on open
335
+ this._oControl.open = function () {
336
+ this._fnOpen && this._fnOpen.apply(this, arguments);
337
+ this.getPicker().addStyleClass("sapUiIntegrationIconSelectList");
338
+ this.getPicker().setContentHeight("400px");
339
+ };
340
+ } else {
341
+ //remove default icons
342
+ aIcons = aIcons.slice(0, 3);
343
+ //remove style class on open
344
+ this._oControl.open = function () {
345
+ this._fnOpen && this._fnOpen.apply(this, arguments);
346
+ this.getPicker().removeStyleClass("sapUiIntegrationIconSelectList");
347
+ };
348
+ }
349
+ this._oIconModel.setData(aIcons);
350
+ this._oIconModel.setSizeLimit(aIcons.length);
351
+ }
352
+ };
353
+
296
354
  return IconSelect;
297
355
  });
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/ui/integration/editor/fields/viz/IconSelect"
8
+ ], function (
9
+ IconSelect
10
+ ) {
11
+ "use strict";
12
+
13
+ /**
14
+ * @class Image Select
15
+ * @extends sap.ui.integration.editor.fields.viz.IconSelect
16
+ * @alias sap.ui.integration.editor.fields.viz.ImageSelect
17
+ * @author SAP SE
18
+ * @since 1.119.0
19
+ * @version 1.119.0
20
+ * @private
21
+ * @experimental since 1.119.0
22
+ * @ui5-restricted
23
+ */
24
+ var ImageSelect = IconSelect.extend("sap.ui.integration.editor.fields.viz.ImageSelect", {
25
+ metadata: {
26
+ library: "sap.ui.integration",
27
+ properties: {
28
+ allowDefaultIcons: {
29
+ type: "boolean",
30
+ defaultValue: false
31
+ }
32
+ }
33
+ },
34
+ renderer: {
35
+ apiVersion: 2
36
+ }
37
+ });
38
+
39
+ return ImageSelect;
40
+ });
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @alias sap.ui.integration.editor.fields.viz.ShapeSelect
20
20
  * @author SAP SE
21
21
  * @since 1.84.0
22
- * @version 1.117.1
22
+ * @version 1.119.0
23
23
  * @private
24
24
  * @experimental since 1.84.0
25
25
  * @ui5-restricted
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @alias sap.ui.integration.editor.fields.viz.VizBase
20
20
  * @author SAP SE
21
21
  * @since 1.105.0
22
- * @version 1.117.1
22
+ * @version 1.119.0
23
23
  * @private
24
24
  * @experimental since 1.105.0
25
25
  * @ui5-restricted
@@ -84,14 +84,6 @@ sap.ui.define([
84
84
 
85
85
  // bind propety to this._oControl
86
86
  VizBase.prototype.bindPropertyToControl = function (sProperty, oBindingInfo) {
87
- if (sProperty === "value") {
88
- var oControlBindingInfo = merge({}, oBindingInfo);
89
- this._oControl.bindProperty("value", oControlBindingInfo);
90
- }
91
- if (sProperty === "editable") {
92
- var oControlBindingInfo = merge({}, oBindingInfo);
93
- this._oControl.bindProperty("editable", oControlBindingInfo);
94
- }
95
87
  };
96
88
 
97
89
  return VizBase;
@@ -27,10 +27,11 @@
27
27
  }
28
28
 
29
29
  function registerLibraryTags(sLibrary) {
30
- var oLibrary = coreInstance.getLoadedLibraries()[sLibrary];
31
- //collect the prefix and the relevant tags
32
- var aTags = Object.keys(oLibrary.customElements),
30
+ var oLibrary = coreInstance.getLoadedLibraries()[sLibrary],
31
+ mCustomElements = oLibrary.extensions["sap.ui.integration"].customElements,
32
+ aTags = Object.keys(mCustomElements),
33
33
  sTags = scriptTag.getAttribute("tags");
34
+
34
35
  if (sTags) {
35
36
  aTags = sTags.split(",");
36
37
  }
@@ -38,7 +39,7 @@
38
39
  window.sap.ui.require(
39
40
  aTags.map(
40
41
  function (o, i) {
41
- return oLibrary.customElements[aTags[i]];
42
+ return mCustomElements[aTags[i]];
42
43
  }
43
44
  )
44
45
  );