@openui5/sap.ui.integration 1.101.0 → 1.103.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 (182) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +3 -3
  3. package/src/sap/ui/integration/.library +1 -1
  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 +1 -1
  8. package/src/sap/ui/integration/cards/AdaptiveContent.js +1 -1
  9. package/src/sap/ui/integration/cards/AnalyticalContent.js +2 -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 +4 -4
  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 +2 -2
  18. package/src/sap/ui/integration/cards/NumericHeader.js +3 -3
  19. package/src/sap/ui/integration/cards/ObjectContent.js +1 -1
  20. package/src/sap/ui/integration/cards/TableContent.js +3 -3
  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/DateRangeFilter.js +1 -1
  31. package/src/sap/ui/integration/cards/filters/FilterBar.js +1 -1
  32. package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +1 -1
  33. package/src/sap/ui/integration/cards/filters/SearchFilter.js +1 -1
  34. package/src/sap/ui/integration/cards/filters/SelectFilter.js +1 -1
  35. package/src/sap/ui/integration/controls/ActionsStrip.js +1 -1
  36. package/src/sap/ui/integration/controls/ActionsToolbar.js +1 -1
  37. package/src/sap/ui/integration/controls/LinkWithIcon.js +1 -1
  38. package/src/sap/ui/integration/controls/ListContentItem.js +1 -1
  39. package/src/sap/ui/integration/controls/Microchart.js +31 -4
  40. package/src/sap/ui/integration/controls/MicrochartLegend.js +1 -1
  41. package/src/sap/ui/integration/controls/Paginator.js +1 -1
  42. package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +1 -1
  43. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +1 -1
  44. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +1 -1
  45. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +1 -1
  46. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +1 -1
  47. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +1 -1
  48. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  49. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +1 -1
  50. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +1 -1
  51. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  52. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +1 -1
  53. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  54. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  55. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +1 -1
  56. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +1 -1
  57. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  58. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +1 -1
  59. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +1 -1
  60. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +1 -1
  61. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.js +1 -1
  62. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  63. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +1 -1
  64. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +1 -1
  65. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +1 -1
  66. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  67. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  68. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  69. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +1 -1
  70. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -1
  71. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  72. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  73. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  74. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  75. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  76. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  77. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  78. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  79. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +1 -1
  80. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  81. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  82. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +1 -1
  83. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  84. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +1 -1
  85. package/src/sap/ui/integration/designtime/editor/CardEditor.js +18 -8
  86. package/src/sap/ui/integration/designtime/editor/CardPreview.js +2 -1
  87. package/src/sap/ui/integration/editor/Editor.js +161 -41
  88. package/src/sap/ui/integration/editor/EditorResourceBundles.js +1 -1
  89. package/src/sap/ui/integration/editor/Extension.js +1 -1
  90. package/src/sap/ui/integration/editor/Manifest.js +1 -1
  91. package/src/sap/ui/integration/editor/Merger.js +0 -1
  92. package/src/sap/ui/integration/editor/Settings.js +60 -44
  93. package/src/sap/ui/integration/editor/css/Editor.css +11 -5
  94. package/src/sap/ui/integration/editor/fields/BaseField.js +43 -9
  95. package/src/sap/ui/integration/editor/fields/BooleanField.js +1 -1
  96. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  97. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  98. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  99. package/src/sap/ui/integration/editor/fields/IntegerField.js +1 -1
  100. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  101. package/src/sap/ui/integration/editor/fields/ObjectField.js +1119 -446
  102. package/src/sap/ui/integration/editor/fields/ObjectListField.js +186 -197
  103. package/src/sap/ui/integration/editor/fields/StringField.js +36 -13
  104. package/src/sap/ui/integration/editor/fields/StringListField.js +1 -1
  105. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  106. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +1 -1
  107. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  108. package/src/sap/ui/integration/library.js +5 -5
  109. package/src/sap/ui/integration/messagebundle.properties +44 -23
  110. package/src/sap/ui/integration/messagebundle_ar.properties +26 -12
  111. package/src/sap/ui/integration/messagebundle_bg.properties +26 -12
  112. package/src/sap/ui/integration/messagebundle_ca.properties +26 -12
  113. package/src/sap/ui/integration/messagebundle_cs.properties +26 -12
  114. package/src/sap/ui/integration/messagebundle_cy.properties +26 -12
  115. package/src/sap/ui/integration/messagebundle_da.properties +26 -12
  116. package/src/sap/ui/integration/messagebundle_de.properties +26 -12
  117. package/src/sap/ui/integration/messagebundle_el.properties +26 -12
  118. package/src/sap/ui/integration/messagebundle_en.properties +26 -12
  119. package/src/sap/ui/integration/messagebundle_en_GB.properties +26 -12
  120. package/src/sap/ui/integration/messagebundle_en_US_sappsd.properties +26 -12
  121. package/src/sap/ui/integration/messagebundle_en_US_saprigi.properties +26 -12
  122. package/src/sap/ui/integration/messagebundle_en_US_saptrc.properties +26 -12
  123. package/src/sap/ui/integration/messagebundle_es.properties +27 -13
  124. package/src/sap/ui/integration/messagebundle_es_MX.properties +26 -12
  125. package/src/sap/ui/integration/messagebundle_et.properties +26 -12
  126. package/src/sap/ui/integration/messagebundle_fi.properties +27 -13
  127. package/src/sap/ui/integration/messagebundle_fr.properties +26 -12
  128. package/src/sap/ui/integration/messagebundle_fr_CA.properties +26 -12
  129. package/src/sap/ui/integration/messagebundle_hi.properties +26 -12
  130. package/src/sap/ui/integration/messagebundle_hr.properties +26 -12
  131. package/src/sap/ui/integration/messagebundle_hu.properties +26 -12
  132. package/src/sap/ui/integration/messagebundle_id.properties +26 -12
  133. package/src/sap/ui/integration/messagebundle_it.properties +26 -12
  134. package/src/sap/ui/integration/messagebundle_iw.properties +26 -12
  135. package/src/sap/ui/integration/messagebundle_ja.properties +26 -12
  136. package/src/sap/ui/integration/messagebundle_kk.properties +26 -12
  137. package/src/sap/ui/integration/messagebundle_ko.properties +27 -13
  138. package/src/sap/ui/integration/messagebundle_lt.properties +26 -12
  139. package/src/sap/ui/integration/messagebundle_lv.properties +26 -12
  140. package/src/sap/ui/integration/messagebundle_ms.properties +26 -12
  141. package/src/sap/ui/integration/messagebundle_nl.properties +26 -12
  142. package/src/sap/ui/integration/messagebundle_no.properties +26 -12
  143. package/src/sap/ui/integration/messagebundle_pl.properties +26 -12
  144. package/src/sap/ui/integration/messagebundle_pt.properties +26 -12
  145. package/src/sap/ui/integration/messagebundle_pt_PT.properties +26 -12
  146. package/src/sap/ui/integration/messagebundle_ro.properties +26 -12
  147. package/src/sap/ui/integration/messagebundle_ru.properties +26 -12
  148. package/src/sap/ui/integration/messagebundle_sh.properties +26 -12
  149. package/src/sap/ui/integration/messagebundle_sk.properties +26 -12
  150. package/src/sap/ui/integration/messagebundle_sl.properties +26 -12
  151. package/src/sap/ui/integration/messagebundle_sv.properties +26 -12
  152. package/src/sap/ui/integration/messagebundle_th.properties +26 -12
  153. package/src/sap/ui/integration/messagebundle_tr.properties +26 -12
  154. package/src/sap/ui/integration/messagebundle_uk.properties +26 -12
  155. package/src/sap/ui/integration/messagebundle_vi.properties +26 -12
  156. package/src/sap/ui/integration/messagebundle_zh_CN.properties +26 -12
  157. package/src/sap/ui/integration/messagebundle_zh_TW.properties +26 -12
  158. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  159. package/src/sap/ui/integration/model/ObservableModel.js +1 -1
  160. package/src/sap/ui/integration/model/PagingModelListBinding.js +1 -1
  161. package/src/sap/ui/integration/schemas/sap-card.json +121 -10
  162. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  163. package/src/sap/ui/integration/util/BindingHelper.js +1 -1
  164. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  165. package/src/sap/ui/integration/util/CardMerger.js +82 -8
  166. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  167. package/src/sap/ui/integration/util/ContentFactory.js +1 -1
  168. package/src/sap/ui/integration/util/CsrfTokenHandler.js +1 -1
  169. package/src/sap/ui/integration/util/DataProvider.js +1 -1
  170. package/src/sap/ui/integration/util/DataProviderFactory.js +1 -1
  171. package/src/sap/ui/integration/util/Destinations.js +1 -1
  172. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  173. package/src/sap/ui/integration/util/HeaderFactory.js +1 -1
  174. package/src/sap/ui/integration/util/JSONBindingHelper.js +1 -1
  175. package/src/sap/ui/integration/util/LoadingProvider.js +2 -2
  176. package/src/sap/ui/integration/util/Manifest.js +2 -1
  177. package/src/sap/ui/integration/util/RequestDataProvider.js +1 -1
  178. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  179. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  180. package/src/sap/ui/integration/util/SkeletonCard.js +1 -1
  181. package/src/sap/ui/integration/util/Utils.js +16 -1
  182. package/src/sap/ui/integration/widgets/Card.js +34 -12
@@ -144,7 +144,7 @@ sap.ui.define([
144
144
  * @extends sap.ui.core.Control
145
145
  *
146
146
  * @author SAP SE
147
- * @version 1.101.0
147
+ * @version 1.103.0
148
148
  * @constructor
149
149
  * @since 1.94
150
150
  * @private
@@ -892,7 +892,7 @@ sap.ui.define([
892
892
  * @experimental since 1.94
893
893
  * @public
894
894
  * @author SAP SE
895
- * @version 1.101.0
895
+ * @version 1.103.0
896
896
  * @borrows sap.ui.integration.editor.Editor#getParameters as getParameters
897
897
  * @borrows sap.ui.integration.editor.Editor#resolveDestination as resolveDestination
898
898
  * @borrows sap.ui.integration.editor.Editor#request as request
@@ -1308,6 +1308,8 @@ sap.ui.define([
1308
1308
  var oTranslationChange = {
1309
1309
  "texts": {}
1310
1310
  };
1311
+ // delete the error texts property
1312
+ delete oChange.texts;
1311
1313
  oTranslationChange.texts[sLanguage] = {};
1312
1314
  Object.keys(oChange).forEach(function (s) {
1313
1315
  if (s.charAt(0) === "/") {
@@ -1463,8 +1465,8 @@ sap.ui.define([
1463
1465
  if (oItem.translatable && !oItem._changed && oItem._translatedPlaceholder && !this._currentLayerManifestChanges[oItem.manifestpath]) {
1464
1466
  //do not save a value that was not changed and comes from a translated default value
1465
1467
  //mResult[oItem.manifestpath] = oItem._translatedPlaceholder;
1466
- //if we would save it
1467
- continue;
1468
+ //but we need to save the setting changes for the next layer, so remove the continue sentence.
1469
+ //continue;
1468
1470
  } else {
1469
1471
  if (oItem.valueItems) {
1470
1472
  mResult[oItem.manifestpath.substring(0, oItem.manifestpath.lastIndexOf("/")) + "/valueItems"] = oItem.valueItems;
@@ -1476,6 +1478,13 @@ sap.ui.define([
1476
1478
  case "string":
1477
1479
  if (!oItem.translatable) {
1478
1480
  mResult[oItem.manifestpath] = oItem.value;
1481
+ } else if (oItem._hasDynamicValue) {
1482
+ // if value is dynamic value of a translatable parameter, save it and delete all the current translations
1483
+ mResult[oItem.manifestpath] = oItem.value;
1484
+ this.deleteAllTranslationValuesInTexts(oItem.manifestpath);
1485
+ } else if (oItem._beforeValue && (oItem._beforeValue.indexOf("{context>") === 0 || oItem._beforeValue.indexOf("{{parameters") === 0)) {
1486
+ // if before value is dynamic value of a translatable parameter, save it
1487
+ mResult[oItem.manifestpath] = oItem.value;
1479
1488
  }
1480
1489
  break;
1481
1490
  case "group":
@@ -1517,24 +1526,64 @@ sap.ui.define([
1517
1526
  }
1518
1527
  }
1519
1528
  }
1520
- if (oSettings.texts) {
1521
- mResult.texts = {};
1522
- for (var language in oSettings.texts) {
1523
- mResult.texts[language] = {};
1524
- for (var translation in oSettings.texts[language]) {
1525
- mResult.texts[language][translation] = oSettings.texts[language][translation];
1529
+ if (this.getMode() === "translation") {
1530
+ // translation mode don't have texts property
1531
+ delete mResult.texts;
1532
+ } else if (oSettings.texts) {
1533
+ mResult.texts = deepClone(oSettings.texts, 500) || {};
1534
+ // Clean the translations of object or object list field :
1535
+ // - remove the translations if the object is not exist in value
1536
+ for (var language in mResult.texts){
1537
+ for (var key in mResult.texts[language]) {
1538
+ if (typeof mResult.texts[language][key] === "object") {
1539
+ var vValue = mResult[key];
1540
+ if (!vValue || typeof vValue !== "object" || deepEqual(vValue, {}) || deepEqual(vValue, [])) {
1541
+ delete mResult.texts[language][key];
1542
+ } else if (Array.isArray(vValue)) {
1543
+ // get all the uuids in value list of object list field
1544
+ var aUUIDs = vValue.map(function (oObject) {
1545
+ return oObject._dt ? oObject._dt._uuid || "" : "";
1546
+ });
1547
+ // delete translation texts if uuid not included in value list
1548
+ for (var uuid in mResult.texts[language][key]) {
1549
+ if (!includes(aUUIDs, uuid)) {
1550
+ delete mResult.texts[language][key][uuid];
1551
+ }
1552
+ }
1553
+ } else {
1554
+ // get the uuid in the object value of object field
1555
+ var sUUID = vValue._dt ? vValue._dt._uuid || "" : "";
1556
+ if (sUUID !== "") {
1557
+ // only save the translation texts of current uuid
1558
+ var oTranslation = mResult.texts[language][key][sUUID];
1559
+ if (!oTranslation) {
1560
+ delete mResult.texts[language][key];
1561
+ } else {
1562
+ mResult.texts[language][key] = {};
1563
+ mResult.texts[language][key][sUUID] = oTranslation;
1564
+ }
1565
+ } else {
1566
+ delete mResult.texts[language][key];
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1571
+ if (deepEqual(mResult.texts[language], {})) {
1572
+ delete mResult.texts[language];
1526
1573
  }
1527
1574
  }
1528
- }
1529
- //add a property ":multipleLanguage" for backward compatibility of multiple language feature
1530
- if (this.getMode() !== "translation") {
1531
- mResult[":multipleLanguage"] = true;
1575
+ if (deepEqual(mResult.texts, {})) {
1576
+ delete mResult.texts;
1577
+ }
1532
1578
  }
1533
1579
  mResult[":layer"] = Merger.layers[this.getMode()];
1534
1580
  mResult[":errors"] = this.checkCurrentSettings()[":errors"];
1535
1581
  if (mNext) {
1536
1582
  mResult[":designtime"] = mNext;
1537
1583
  }
1584
+ if (oSettings[":designtime"]) {
1585
+ mResult[":designtime"] = merge(mResult[":designtime"], oSettings[":designtime"]);
1586
+ }
1538
1587
  return mResult;
1539
1588
  };
1540
1589
  /**
@@ -1956,8 +2005,8 @@ sap.ui.define([
1956
2005
  }
1957
2006
  }.bind(this)));
1958
2007
  //listen to value changes on the settings
1959
- var oValueBinding = this._settingsModel.bindProperty(oConfig._settingspath + "/value");
1960
- oValueBinding.attachChange(function () {
2008
+ oField._oValueBinding = this._settingsModel.bindProperty(oConfig._settingspath + "/value");
2009
+ oField._oValueBinding.attachChange(function () {
1961
2010
  if (!this._bIgnoreUpdates) {
1962
2011
  oConfig._changed = true;
1963
2012
  if (oConfig._dependentFields && oConfig._dependentFields.length > 0) {
@@ -1994,7 +2043,7 @@ sap.ui.define([
1994
2043
  }
1995
2044
  oField._oDataProviderFactory = this._oDataProviderFactory;
1996
2045
  oField.setAssociation("_messageStrip", MessageStripId);
1997
- oField._previewPostion = this.getPreviewPosition();
2046
+ oField._previewPosition = this.getPreviewPosition();
1998
2047
  return oField;
1999
2048
  };
2000
2049
 
@@ -2034,7 +2083,7 @@ sap.ui.define([
2034
2083
  /**
2035
2084
  * request data via data provider in RT
2036
2085
  * @param {object} oConfig
2037
- * @param {BaseField} oField
2086
+ * @param {sap.ui.integration.editor.fields.BaseField} oField
2038
2087
  */
2039
2088
  Editor.prototype._requestData = function (oConfig, oField) {
2040
2089
  var oDataProvider = this._oDataProviderFactory.create(oConfig.values.data);
@@ -2072,7 +2121,9 @@ sap.ui.define([
2072
2121
  }
2073
2122
  if (oConfig.type === "object" || oConfig.type === "object[]") {
2074
2123
  tResult.forEach(function (oResult) {
2075
- oResult._editable = false;
2124
+ oResult._dt = {
2125
+ _editable: false
2126
+ };
2076
2127
  });
2077
2128
  }
2078
2129
  if (this.getMode() === "content" && oConfig.pageAdminValues && oConfig.pageAdminValues.length > 0) {
@@ -2282,7 +2333,7 @@ sap.ui.define([
2282
2333
  /**
2283
2334
  * Creates a unnamed model if a values.data section exists in the configuration
2284
2335
  * @param {object} oConfig
2285
- * @param {BaseField} oField
2336
+ * @param {sap.ui.integration.editor.fields.BaseField} oField
2286
2337
  */
2287
2338
  Editor.prototype._addValueListModel = function (oConfig, oField, nTimeout) {
2288
2339
  if (oConfig.values) {
@@ -2347,7 +2398,7 @@ sap.ui.define([
2347
2398
  /**
2348
2399
  * Creates a meta model if a values.metadata section exists in the configuration
2349
2400
  * @param {object} oConfig
2350
- * @param {BaseField} oField
2401
+ * @param {sap.ui.integration.editor.fields.BaseField} oField
2351
2402
  */
2352
2403
  Editor.prototype._addMetadataModel = function (oConfig, oField) {
2353
2404
  if (oConfig.values && oConfig.values.metadata) {
@@ -2370,16 +2421,6 @@ sap.ui.define([
2370
2421
  oRequestDefaultParameters.serviceUrl = oData.url;
2371
2422
  var oMetaDataModel = new ODataModel(oRequestDefaultParameters);
2372
2423
  oMetaDataModel.oMetaModel.fetchData().then(function(oMetaData) {
2373
- if (oConfig.type === "object" || oConfig.type === "object[]") {
2374
- var sPath = oConfig.values.metadata.namespace + "." + oConfig.values.metadata.entityTypeName;
2375
- oMetaData[sPath] = Object.assign(oMetaData[sPath], {
2376
- _Actions: {
2377
- $kind: 'Property',
2378
- $Type: 'Actions',
2379
- $MaxLength: 15
2380
- }
2381
- });
2382
- }
2383
2424
  oField.setModel(new JSONModel(oMetaData), "meta");
2384
2425
  });
2385
2426
  });
@@ -2424,17 +2465,33 @@ sap.ui.define([
2424
2465
  }
2425
2466
  };
2426
2467
 
2427
- Editor.prototype.getBeforeLayerChange = function (sKey) {
2468
+ Editor.prototype.getBeforeLayerChange = function (sManifestPath) {
2428
2469
  if (!this._beforeLayerManifestChanges) {
2429
2470
  this._beforeLayerManifestChanges = {};
2430
2471
  }
2431
- return this._beforeLayerManifestChanges[sKey];
2472
+ return this._beforeLayerManifestChanges[sManifestPath];
2432
2473
  };
2433
2474
 
2434
- Editor.prototype.getTranslationValueInTexts = function (sLanguage, sKey) {
2475
+ Editor.prototype.getTranslationValueInTexts = function (sLanguage, sManifestPath) {
2435
2476
  var sTranslationPath = "/texts/" + sLanguage;
2436
2477
  var oProperty = this._settingsModel.getProperty(sTranslationPath) || {};
2437
- return oProperty[sKey];
2478
+ return oProperty[sManifestPath];
2479
+ };
2480
+
2481
+ Editor.prototype.deleteAllTranslationValuesInTexts = function (sManifestPath) {
2482
+ var that = this;
2483
+ var oData = that._settingsModel.getData();
2484
+ if (!oData || !oData.texts) {
2485
+ return;
2486
+ }
2487
+ var sTranslationPath = "/texts";
2488
+ var oTexts = deepClone(oData.texts, 500);
2489
+ for (var n in oTexts) {
2490
+ if (oTexts[n][sManifestPath]) {
2491
+ delete oTexts[n][sManifestPath];
2492
+ }
2493
+ }
2494
+ this._settingsModel.setProperty(sTranslationPath, oTexts);
2438
2495
  };
2439
2496
 
2440
2497
  Editor.prototype._handleITBValidation = function (oEditor, sItem, sErrorType) {
@@ -2787,6 +2844,9 @@ sap.ui.define([
2787
2844
  var oNewLabel = null;
2788
2845
  var sLanguage = Core.getConfiguration().getLanguage().replaceAll('_', '-');
2789
2846
  if (sMode === "translation") {
2847
+ if (oConfig.type !== "string") {
2848
+ return;
2849
+ }
2790
2850
  if ((typeof oConfig.value === "string" && oConfig.value.indexOf("{") === 0) || typeof oConfig.values !== "undefined") {
2791
2851
  //do not show dynamic values for translation
2792
2852
  return;
@@ -2843,6 +2903,14 @@ sap.ui.define([
2843
2903
  oConfig.label = oConfig._translatedLabel || "";
2844
2904
  oConfig.required = false; //translation is never required
2845
2905
  var oTranslateLanguageField = this._createField(oConfig);
2906
+ //accessibility set aria-label
2907
+ var tfDelegate = {
2908
+ onAfterRendering: function(oEvent) {
2909
+ var tfField = document.getElementById(oTranslateLanguageField.getId());
2910
+ tfField.setAttribute("aria-label", oLabel);
2911
+ }
2912
+ };
2913
+ oTranslateLanguageField.addEventDelegate(tfDelegate);
2846
2914
  this.addAggregation("_formContent",
2847
2915
  oTranslateLanguageField
2848
2916
  );
@@ -2861,12 +2929,23 @@ sap.ui.define([
2861
2929
  oConfig.value = this._currentLayerManifestChanges[oConfig.manifestpath];
2862
2930
  oConfig._beforeLayerChange = oConfig.value;
2863
2931
  }
2864
- sLanguage = this._language;
2865
- var sTranslateText = this.getTranslationValueInTexts(sLanguage, oConfig.manifestpath);
2866
- if (sTranslateText) {
2867
- oConfig.value = sTranslateText;
2932
+ //only get translations of string fields
2933
+ if (oConfig.type === "string") {
2934
+ sLanguage = this._language;
2935
+ var sTranslateText = this.getTranslationValueInTexts(sLanguage, oConfig.manifestpath);
2936
+ if (sTranslateText) {
2937
+ oConfig.value = sTranslateText;
2938
+ }
2868
2939
  }
2869
2940
  var oField = this._createField(oConfig);
2941
+ //accessibility set aria-label
2942
+ var fDelegate = {
2943
+ onAfterRendering: function(oEvent) {
2944
+ var eField = document.getElementById(oField.getId());
2945
+ eField.setAttribute("aria-label", oNewLabel);
2946
+ }
2947
+ };
2948
+ oField.addEventDelegate(fDelegate);
2870
2949
  this.addAggregation("_formContent",
2871
2950
  oField
2872
2951
  );
@@ -3057,6 +3136,11 @@ sap.ui.define([
3057
3136
  sTranslationTextKey = sPlaceholder.substring(6, sPlaceholder.length - 1);
3058
3137
  }
3059
3138
  }
3139
+ // if the value is a dynamic value, do not allow to translate, and delete all the translations
3140
+ if (oItem.value && (oItem.value.indexOf("{context>") === 0 || oItem.value.indexOf("{{parameters") === 0)) {
3141
+ this.deleteAllTranslationValuesInTexts(oItem.manifestpath);
3142
+ sTranslationTextKey = null;
3143
+ }
3060
3144
  var sTranslationValueinTexts = this.getTranslationValueInTexts(sLanguage, oItem.manifestpath);
3061
3145
  //only if there is a translation key
3062
3146
  if (sTranslationTextKey) {
@@ -3103,6 +3187,24 @@ sap.ui.define([
3103
3187
  if (oValueTokens) {
3104
3188
  oItem.valueTokens = oValueTokens;
3105
3189
  }
3190
+ } else if (typeof oItem.value === "object" && oItem.type === "object") {
3191
+ // backward compatibility for pre saved value
3192
+ if (typeof oItem.value._editable === "boolean") {
3193
+ oItem.value._dt = {
3194
+ "_editable" : oItem.value._editable
3195
+ };
3196
+ delete oItem.value._editable;
3197
+ }
3198
+ } else if (Array.isArray(oItem.value) && oItem.value.length > 0 && oItem.type === "object[]") {
3199
+ // backward compatibility for pre saved value
3200
+ oItem.value.forEach(function (oObject) {
3201
+ if (typeof oObject._editable === "boolean") {
3202
+ oObject._dt = {
3203
+ "_editable" : oObject._editable
3204
+ };
3205
+ delete oObject._editable;
3206
+ }
3207
+ });
3106
3208
  }
3107
3209
 
3108
3210
  //translate label if it is {{KEY}}
@@ -3259,6 +3361,7 @@ sap.ui.define([
3259
3361
  */
3260
3362
  Editor.prototype._applyDesigntimeLayers = function (oSettings) {
3261
3363
  var oTexts = {};
3364
+ var oDesigntime = {};
3262
3365
  //pull current values
3263
3366
  if (this._appliedLayerManifestChanges && Array.isArray(this._appliedLayerManifestChanges)) {
3264
3367
  for (var i = 0; i < this._appliedLayerManifestChanges.length; i++) {
@@ -3266,7 +3369,14 @@ sap.ui.define([
3266
3369
  if (oChanges) {
3267
3370
  var aKeys = Object.keys(oChanges);
3268
3371
  for (var j = 0; j < aKeys.length; j++) {
3269
- this._settingsModel.setProperty(aKeys[j], oChanges[aKeys[j]]);
3372
+ var vValue = oChanges[aKeys[j]];
3373
+ // if the value of design time is object type,it should for the object field/object list field
3374
+ // add it into designtime of settings
3375
+ if (typeof vValue === "object") {
3376
+ oDesigntime[aKeys[j]] = merge(oDesigntime[aKeys[j]], vValue);
3377
+ continue;
3378
+ }
3379
+ this._settingsModel.setProperty(aKeys[j], vValue);
3270
3380
  }
3271
3381
  }
3272
3382
  var oAppliedLayerManifestChangeTexts = this._appliedLayerManifestChanges[i]["texts"];
@@ -3283,14 +3393,21 @@ sap.ui.define([
3283
3393
  //apply the values to a "_next/editable", "_next/visible" entry to the settings.
3284
3394
  //the current layer needs to be able to change those values
3285
3395
  var sPath = aKeys[j],
3396
+ vValue = oChanges[sPath];
3286
3397
  sNext = sPath.substring(0, sPath.lastIndexOf("/") + 1) + "_next";
3398
+ // if the value of design time is object type,it should for the object field/object list field
3399
+ // add it into designtime of settings
3400
+ if (typeof vValue === "object") {
3401
+ oDesigntime[sPath] = merge(oDesigntime[sPath], vValue);
3402
+ continue;
3403
+ }
3287
3404
  if (!this._settingsModel.getProperty(sNext)) {
3288
3405
  //create a _next entry if it does not exist
3289
3406
  this._settingsModel.setProperty(sNext, {});
3290
3407
  }
3291
3408
  var sNext = sPath.substring(0, sPath.lastIndexOf("/") + 1) + "_next",
3292
3409
  sProp = sPath.substring(sPath.lastIndexOf("/") + 1);
3293
- this._settingsModel.setProperty(sNext + "/" + sProp, oChanges[aKeys[j]]);
3410
+ this._settingsModel.setProperty(sNext + "/" + sProp, vValue);
3294
3411
  }
3295
3412
  }
3296
3413
  var ocurrentLayerManifestChangeTexts = this._currentLayerManifestChanges["texts"];
@@ -3301,6 +3418,9 @@ sap.ui.define([
3301
3418
  if (!deepEqual(oTexts, {})) {
3302
3419
  this._settingsModel.setProperty("/texts", oTexts);
3303
3420
  }
3421
+ if (!deepEqual(oDesigntime, {})) {
3422
+ this._settingsModel.setProperty("/:designtime", oDesigntime);
3423
+ }
3304
3424
  };
3305
3425
  /**
3306
3426
  * Creates a designtime instance based on an configuration section within the manifest.
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @alias sap.ui.integration.editor.EditorResourceBundles
17
17
  * @author SAP SE
18
18
  * @since 1.94.0
19
- * @version 1.101.0
19
+ * @version 1.103.0
20
20
  * @private
21
21
  * @experimental since 1.94.0
22
22
  * @ui5-restricted
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.base.ManagedObject
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.101.0
27
+ * @version 1.103.0
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @extends sap.ui.integration.util.Manifest
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.101.0
20
+ * @version 1.103.0
21
21
  *
22
22
  * @constructor
23
23
  * @since 1.94
@@ -43,7 +43,6 @@ sap.ui.define([
43
43
  Merger.mergeManifestPathChanges(oModel, oChange);
44
44
  }
45
45
  });
46
-
47
46
  }
48
47
  return oInitialManifest;
49
48
  },
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  * @alias sap.ui.integration.editor.Settings
67
67
  * @author SAP SE
68
68
  * @since 1.83.0
69
- * @version 1.101.0
69
+ * @version 1.103.0
70
70
  * @private
71
71
  * @experimental since 1.83.0
72
72
  * @ui5-restricted
@@ -303,6 +303,7 @@ sap.ui.define([
303
303
  oSegmentedButton = createSegmentedButton();
304
304
  var oDynamicValueText = new Text({
305
305
  text: oResourceBundle.getText("EDITOR_MORE_DYNAMICVALUES"),
306
+ tooltip: oResourceBundle.getText("EDITOR_MORE_DYNAMICVALUES"),
306
307
  visible: "{= ${currentSettings>allowDynamicValues} && !${currentSettings>allowSettings}}"
307
308
  }).addStyleClass("sapUiTinyMagin");
308
309
  var oSettingsText = new Text({
@@ -496,10 +497,13 @@ sap.ui.define([
496
497
 
497
498
  oDynamicValueField.addStyleClass("selectvariable");
498
499
 
499
-
500
+ var selectDynamicValueLabel = new Label({
501
+ text: "Select a dynamic value"
502
+ });
503
+ oDynamicValueField.addAriaLabelledBy(selectDynamicValueLabel);
500
504
  var oVBox = new VBox({
501
505
  items: [
502
- new Label({ text: "Select a dynamic value" }),
506
+ selectDynamicValueLabel,
503
507
  oDynamicValueField
504
508
  ]
505
509
  });
@@ -548,18 +552,21 @@ sap.ui.define([
548
552
  }
549
553
 
550
554
  function createCurrentValuesBox() {
555
+ var settingsActualValueTxt = new Text({
556
+ text: oResourceBundle.getText("EDITOR_ACTUAL_VALUE")
557
+ });
558
+ var settingsActualValueInput = new Input({
559
+ value: {
560
+ path: "currentSettings>_currentContextValue"
561
+ },
562
+ editable: false
563
+ });
564
+ settingsActualValueInput.addAriaLabelledBy(settingsActualValueTxt);
551
565
  var oCurrentValue = new VBox("settings_current_value", {
552
566
  width: "100%",
553
567
  items: [
554
- new Text({
555
- text: oResourceBundle.getText("EDITOR_ACTUAL_VALUE")
556
- }),
557
- new Input({
558
- value: {
559
- path: "currentSettings>_currentContextValue"
560
- },
561
- editable: false
562
- })]
568
+ settingsActualValueTxt,
569
+ settingsActualValueInput]
563
570
  });
564
571
  oCurrentValue.addStyleClass("currentval");
565
572
 
@@ -574,49 +581,58 @@ sap.ui.define([
574
581
  text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN"),
575
582
  wrapping: true
576
583
  }).addStyleClass("stitle"));
584
+ var settingsAdminVisibleLabel = new Label({
585
+ text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_VISIBLE"),
586
+ wrapping: true
587
+ });
588
+ var settingsAdminVisibleCKB = new CheckBox({
589
+ selected: "{= ${currentSettings>_next/visible} !== false}",
590
+ select: function (oEvent) {
591
+ setNextSetting("visible", oEvent.getParameter("selected"));
592
+ }
593
+ });
594
+ settingsAdminVisibleCKB.addAriaLabelledBy(settingsAdminVisibleLabel);
577
595
  oBox.addItem(new HBox({
578
596
  items: [
579
- new Label({
580
- text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_VISIBLE"),
581
- wrapping: true
582
- }),
583
- new CheckBox({
584
- selected: "{= ${currentSettings>_next/visible} !== false}",
585
- select: function (oEvent) {
586
- setNextSetting("visible", oEvent.getParameter("selected"));
587
- }
588
- })
597
+ settingsAdminVisibleLabel,
598
+ settingsAdminVisibleCKB
589
599
  ]
590
600
  }).addStyleClass("cbrow"));
601
+ var settingsAdminEditLabel = new Label({
602
+ text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_EDIT"),
603
+ wrapping: true
604
+ });
605
+ var settingsAdminEditCKB = new CheckBox({
606
+ selected: "{= ${currentSettings>_next/editable} !== false}",
607
+ enabled: "{= ${currentSettings>_next/visible} !== false}",
608
+ select: function (oEvent) {
609
+ setNextSetting("editable", oEvent.getParameter("selected"));
610
+ }
611
+ });
612
+ settingsAdminEditCKB.addAriaLabelledBy(settingsAdminEditLabel);
591
613
  oBox.addItem(new HBox({
592
614
  items: [
593
- new Label({
594
- text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_EDIT"),
595
- wrapping: true
596
- }),
597
- new CheckBox({
598
- selected: "{= ${currentSettings>_next/editable} !== false}",
599
- enabled: "{= ${currentSettings>_next/visible} !== false}",
600
- select: function (oEvent) {
601
- setNextSetting("editable", oEvent.getParameter("selected"));
602
- }
603
- })
615
+ settingsAdminEditLabel,
616
+ settingsAdminEditCKB
604
617
  ]
605
618
  }).addStyleClass("cbrow"));
619
+ var settingsAdminDYNLabel = new Label({
620
+ text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_DYN"),
621
+ wrapping: true
622
+ });
623
+ var settingsAdminDYNCKB = new CheckBox({
624
+ selected: "{= ${currentSettings>_next/allowDynamicValues} !== false}",
625
+ enabled: "{= ${currentSettings>_next/visible} !== false && ${currentSettings>_next/editable} !== false}",
626
+ select: function (oEvent) {
627
+ setNextSetting("allowDynamicValues", oEvent.getParameter("selected"));
628
+ }
629
+ });
630
+ settingsAdminDYNCKB.addAriaLabelledBy(settingsAdminDYNLabel);
606
631
  oBox.addItem(new HBox({
607
632
  visible: "{= ${currentSettings>allowDynamicValues}!== false}",
608
633
  items: [
609
- new Label({
610
- text: oResourceBundle.getText("EDITOR_MORE_SETTINGS_P_ADMIN_DYN"),
611
- wrapping: true
612
- }),
613
- new CheckBox({
614
- selected: "{= ${currentSettings>_next/allowDynamicValues} !== false}",
615
- enabled: "{= ${currentSettings>_next/visible} !== false && ${currentSettings>_next/editable} !== false}",
616
- select: function (oEvent) {
617
- setNextSetting("allowDynamicValues", oEvent.getParameter("selected"));
618
- }
619
- })
634
+ settingsAdminDYNLabel,
635
+ settingsAdminDYNCKB
620
636
  ]
621
637
  }).addStyleClass("cbrow"));
622
638
 
@@ -251,6 +251,11 @@
251
251
  padding-top: 0.2rem !important;
252
252
  }
253
253
 
254
+ .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectFieldTable .sapUiTableDataCell > .sapUiTableCellInner,
255
+ .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectListFieldTable .sapUiTableDataCell > .sapUiTableCellInner{
256
+ text-overflow: unset;
257
+ }
258
+
254
259
  .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectFieldTable .sapMTBStandard,
255
260
  .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectListFieldTable .sapMTBStandard {
256
261
  border-bottom: 0px !important;
@@ -258,7 +263,7 @@
258
263
  padding-left: 0.25rem !important;
259
264
  }
260
265
 
261
- .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectFieldTable .sapMTB,
266
+ .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectFieldTable .sapMTB,
262
267
  .sapUiIntegrationEditor .sapUiIntegrationEditorItem .sapUiIntegrationEditorItemObjectListFieldTable .sapMTB{
263
268
  height: 2rem !important;
264
269
  border: solid 0.0625rem #d9d9d9;
@@ -269,8 +274,7 @@
269
274
  font-size: 0.8rem;
270
275
  }
271
276
 
272
- .sapUiIntegrationFieldTranslation .sapMPopoverTitle,
273
- .sapUiIntegrationFieldObjectListPopup .sapMPopoverTitle {
277
+ .sapUiIntegrationFieldTranslation .sapMPopoverTitle{
274
278
  max-width: 300px !important;
275
279
  font-size: 1.125rem;
276
280
  text-align: center;
@@ -278,14 +282,16 @@
278
282
  padding: 0.5rem 0 0 0;
279
283
  }
280
284
 
281
- .sapUiIntegrationFieldTranslation .sapMLIB.sapMGHLI {
285
+ .sapUiIntegrationFieldTranslation .sapMLIB.sapMGHLI,
286
+ .sapUiIntegrationEditorItemObjectFieldDetailsPopover .sapMLIB.sapMGHLI {
282
287
  font-weight: bold;
283
288
  border-bottom: 0;
284
289
  height: 2.25rem;
285
290
  padding-top: 0.5rem;
286
291
  }
287
292
 
288
- .sapUiIntegrationFieldTranslation .sapMCLI {
293
+ .sapUiIntegrationFieldTranslation .sapMCLI,
294
+ .sapUiIntegrationEditorItemObjectFieldDetailsPopover .sapMCLI {
289
295
  padding: 0 1rem 0 1rem;
290
296
  border-bottom: 0;
291
297
  }