@openui5/sap.ui.integration 1.94.0 → 1.97.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 (188) hide show
  1. package/.reuse/dep5 +12 -12
  2. package/THIRDPARTY.txt +21 -17
  3. package/package.json +3 -3
  4. package/src/sap/ui/integration/.library +6 -1
  5. package/src/sap/ui/integration/ActionDefinition.js +1 -1
  6. package/src/sap/ui/integration/Designtime.js +1 -1
  7. package/src/sap/ui/integration/Extension.js +1 -1
  8. package/src/sap/ui/integration/Host.js +107 -8
  9. package/src/sap/ui/integration/ManifestResolver.js +102 -0
  10. package/src/sap/ui/integration/cards/AdaptiveContent.js +1 -1
  11. package/src/sap/ui/integration/cards/AnalyticalContent.js +180 -150
  12. package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +6 -3
  13. package/src/sap/ui/integration/cards/BaseContent.js +60 -6
  14. package/src/sap/ui/integration/cards/BaseContentRenderer.js +1 -1
  15. package/src/sap/ui/integration/cards/BaseListContent.js +26 -4
  16. package/src/sap/ui/integration/cards/CalendarContent.js +4 -2
  17. package/src/sap/ui/integration/cards/CalendarContentRenderer.js +9 -3
  18. package/src/sap/ui/integration/cards/ComponentContent.js +2 -1
  19. package/src/sap/ui/integration/cards/Footer.js +1 -1
  20. package/src/sap/ui/integration/cards/Header.js +7 -1
  21. package/src/sap/ui/integration/cards/ListContent.js +71 -22
  22. package/src/sap/ui/integration/cards/ListContentRenderer.js +38 -7
  23. package/src/sap/ui/integration/cards/NumericHeader.js +9 -2
  24. package/src/sap/ui/integration/cards/ObjectContent.js +145 -131
  25. package/src/sap/ui/integration/cards/TableContent.js +12 -8
  26. package/src/sap/ui/integration/cards/TimelineContent.js +7 -9
  27. package/src/sap/ui/integration/cards/WebPageContent.js +5 -1
  28. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +1 -1
  29. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +1 -1
  30. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +1 -1
  31. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +1 -1
  32. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +1 -1
  33. package/src/sap/ui/integration/cards/{Filter.js → filters/BaseFilter.js} +56 -128
  34. package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +234 -0
  35. package/src/sap/ui/integration/{util → cards/filters}/FilterBarFactory.js +37 -12
  36. package/src/sap/ui/integration/cards/filters/SelectFilter.js +187 -0
  37. package/src/sap/ui/integration/controls/ActionsStrip.js +1 -1
  38. package/src/sap/ui/integration/controls/ActionsToolbar.js +1 -1
  39. package/src/sap/ui/integration/controls/ListContentItem.js +13 -2
  40. package/src/sap/ui/integration/controls/ListContentItemRenderer.js +65 -2
  41. package/src/sap/ui/integration/controls/Microchart.js +1 -1
  42. package/src/sap/ui/integration/controls/MicrochartLegend.js +1 -1
  43. package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +26 -1
  44. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +44 -2
  45. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +27 -1
  46. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n.properties +34 -25
  47. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ar.properties +19 -13
  48. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_bg.properties +19 -13
  49. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ca.properties +19 -13
  50. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_cs.properties +19 -13
  51. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_cy.properties +19 -13
  52. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_da.properties +19 -13
  53. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_de.properties +19 -13
  54. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_el.properties +19 -13
  55. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en.properties +19 -13
  56. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_GB.properties +19 -13
  57. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_sappsd.properties +19 -13
  58. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_en_US_saptrc.properties +20 -14
  59. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_es.properties +19 -13
  60. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_es_MX.properties +19 -13
  61. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_et.properties +19 -13
  62. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fi.properties +19 -13
  63. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fr.properties +19 -13
  64. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_fr_CA.properties +19 -13
  65. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hi.properties +19 -13
  66. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hr.properties +19 -13
  67. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_hu.properties +19 -13
  68. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_id.properties +19 -13
  69. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_it.properties +19 -13
  70. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_iw.properties +19 -13
  71. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ja.properties +19 -13
  72. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_kk.properties +19 -13
  73. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ko.properties +19 -13
  74. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_lt.properties +19 -13
  75. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_lv.properties +19 -13
  76. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ms.properties +19 -13
  77. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_nl.properties +19 -13
  78. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_no.properties +19 -13
  79. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pl.properties +19 -13
  80. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pt.properties +19 -13
  81. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_pt_PT.properties +19 -13
  82. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ro.properties +19 -13
  83. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_ru.properties +19 -13
  84. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sh.properties +19 -13
  85. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sk.properties +19 -13
  86. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sl.properties +19 -13
  87. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_sv.properties +19 -13
  88. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_th.properties +19 -13
  89. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_tr.properties +19 -13
  90. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_uk.properties +19 -13
  91. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_vi.properties +19 -13
  92. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_zh_CN.properties +19 -13
  93. package/src/sap/ui/integration/designtime/baseEditor/i18n/i18n_zh_TW.properties +19 -13
  94. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +48 -3
  95. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +2 -2
  96. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +4 -1
  97. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +4 -1
  98. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.fragment.xml +1 -1
  99. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +65 -17
  100. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.fragment.xml +1 -1
  101. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +17 -4
  102. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  103. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +4 -1
  104. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +10 -2
  105. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  106. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +10 -2
  107. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +11 -2
  108. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  109. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.fragment.xml +8 -2
  110. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +62 -35
  111. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +10 -2
  112. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  113. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +4 -1
  114. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +4 -1
  115. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +1 -1
  116. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  117. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  118. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  119. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +5 -4
  120. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -5
  121. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  122. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  123. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  124. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  125. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  126. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  127. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  128. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  129. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +1 -1
  130. package/src/sap/ui/integration/designtime/cardEditor/BASEditor.js +7 -1
  131. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  132. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  133. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +11 -1
  134. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +1 -1
  135. package/src/sap/ui/integration/designtime/editor/CardEditor.js +12 -10
  136. package/src/sap/ui/integration/designtime/editor/CardPreview.js +46 -3
  137. package/src/sap/ui/integration/designtime/editor/css/CardPreview.css +22 -1
  138. package/src/sap/ui/integration/editor/Editor.js +214 -108
  139. package/src/sap/ui/integration/editor/EditorResourceBundles.js +3 -3
  140. package/src/sap/ui/integration/editor/Extension.js +1 -1
  141. package/src/sap/ui/integration/editor/Manifest.js +2 -2
  142. package/src/sap/ui/integration/editor/Merger.js +6 -4
  143. package/src/sap/ui/integration/editor/Settings.js +48 -34
  144. package/src/sap/ui/integration/editor/css/Editor.css +6 -18
  145. package/src/sap/ui/integration/editor/fields/BaseField.js +26 -3
  146. package/src/sap/ui/integration/editor/fields/BooleanField.js +3 -1
  147. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  148. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  149. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  150. package/src/sap/ui/integration/editor/fields/IntegerField.js +4 -1
  151. package/src/sap/ui/integration/editor/fields/ListField.js +279 -87
  152. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  153. package/src/sap/ui/integration/editor/fields/StringField.js +67 -7
  154. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  155. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +3 -3
  156. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  157. package/src/sap/ui/integration/editor/languages.json +32 -32
  158. package/src/sap/ui/integration/library.js +22 -2
  159. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  160. package/src/sap/ui/integration/model/ObservableModel.js +2 -14
  161. package/src/sap/ui/integration/schemas/sap-card.json +344 -44
  162. package/src/sap/ui/integration/themes/base/AnalyticsCloudContent.less +4 -0
  163. package/src/sap/ui/integration/themes/base/CalendarContent.less +31 -2
  164. package/src/sap/ui/integration/themes/base/ListContentItem.less +102 -62
  165. package/src/sap/ui/integration/themes/base/Microchart.less +0 -1
  166. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  167. package/src/sap/ui/integration/util/BindingHelper.js +2 -2
  168. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  169. package/src/sap/ui/integration/util/CacheAndRequestDataProvider.js +58 -24
  170. package/src/sap/ui/integration/util/CardActions.js +1 -1
  171. package/src/sap/ui/integration/util/CardMerger.js +5 -3
  172. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  173. package/src/sap/ui/integration/util/ContentFactory.js +3 -7
  174. package/src/sap/ui/integration/util/CsrfTokenHandler.js +312 -0
  175. package/src/sap/ui/integration/util/DataProvider.js +13 -4
  176. package/src/sap/ui/integration/util/DataProviderFactory.js +59 -16
  177. package/src/sap/ui/integration/util/Destinations.js +1 -1
  178. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  179. package/src/sap/ui/integration/util/HeaderFactory.js +8 -7
  180. package/src/sap/ui/integration/util/JSONBindingHelper.js +4 -4
  181. package/src/sap/ui/integration/util/LoadingProvider.js +1 -1
  182. package/src/sap/ui/integration/util/Manifest.js +4 -3
  183. package/src/sap/ui/integration/util/RequestDataProvider.js +88 -50
  184. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  185. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  186. package/src/sap/ui/integration/util/Utils.js +41 -1
  187. package/src/sap/ui/integration/widgets/Card.js +178 -72
  188. package/ui5.yaml +289 -1
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  var RETRY_STATUS_CODES = [429, 503];
19
19
 
20
20
  var aModes = ["no-cors", "same-origin", "cors"];
21
- var aMethods = ["GET", "POST"];
21
+ var aMethods = ["GET", "POST", "HEAD"];
22
22
 
23
23
  /**
24
24
  * Constructor for a new <code>RequestDataProvider</code>.
@@ -31,11 +31,11 @@ sap.ui.define([
31
31
  * @extends sap.ui.integration.util.DataProvider
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.94.0
34
+ * @version 1.97.0
35
35
  *
36
36
  * @constructor
37
37
  * @private
38
- * @ui5-restricted Used in sap.ui.integration and in shell-toolkit
38
+ * @ui5-restricted sap.ui.integration, shell-toolkit
39
39
  * @since 1.65
40
40
  * @alias sap.ui.integration.util.RequestDataProvider
41
41
  */
@@ -63,42 +63,50 @@ sap.ui.define([
63
63
  DataProvider.prototype.destroy.apply(this, arguments);
64
64
  };
65
65
 
66
+ RequestDataProvider.prototype.getLastJQXHR = function () {
67
+ return this._lastJQXHR;
68
+ };
69
+
66
70
  /**
67
71
  * @override
68
72
  * @private
69
- * @ui5-restricted Used in sap.ui.integration and in shell-toolkit
73
+ * @ui5-restricted sap.ui.integration, shell-toolkit
70
74
  * @returns {Promise} A promise resolved when the data is available and rejected in case of an error.
71
75
  */
72
76
  RequestDataProvider.prototype.getData = function () {
73
- var oRequestConfig = this.getSettings().request;
77
+ var oRequestConfig = this.getSettings().request,
78
+ pRequestChain = Promise.resolve(oRequestConfig);
74
79
 
75
80
  if (this._oDestinations) {
76
- return this._oDestinations.process(oRequestConfig)
77
- .then(this._fetch.bind(this));
81
+ pRequestChain = this._oDestinations.process(oRequestConfig);
78
82
  }
79
83
 
80
- return this._fetch(oRequestConfig);
81
- };
84
+ if (this._oCsrfTokenHandler) {
85
+ pRequestChain = pRequestChain.then(function (oRequest) {
86
+ return this._oCsrfTokenHandler.resolveToken(oRequest);
87
+ }.bind(this));
88
+ }
82
89
 
83
- RequestDataProvider.prototype._isValidRequest = function (oRequest) {
90
+ pRequestChain = pRequestChain.then(this._fetch.bind(this));
84
91
 
85
- if (!oRequest) {
86
- return false;
92
+ if (this._oCsrfTokenHandler) {
93
+ pRequestChain = pRequestChain.catch(this._handleExpiredToken.bind(this));
87
94
  }
88
95
 
89
- if (aModes.indexOf(oRequest.mode) === -1) {
90
- return false;
91
- }
96
+ return pRequestChain;
97
+ };
92
98
 
93
- if (aMethods.indexOf(oRequest.method) === -1) {
94
- return false;
95
- }
99
+ RequestDataProvider.prototype._handleExpiredToken = function (oError) {
100
+ if (this._oCsrfTokenHandler.isExpiredToken(this.getLastJQXHR())) {
101
+ // csrf token has expired, reset the token and retry this whole request
102
+ this._oCsrfTokenHandler.resetTokenByRequest(this.getSettings().request);
96
103
 
97
- if (typeof oRequest.url !== "string") {
98
- return false;
104
+ return this.getData().catch(function (oError) {
105
+ throw oError;
106
+ });
99
107
  }
100
108
 
101
- return true;
109
+ throw oError;
102
110
  };
103
111
 
104
112
  RequestDataProvider.prototype._fetch = function (oRequestConfig) {
@@ -153,6 +161,10 @@ sap.ui.define([
153
161
  }
154
162
  };
155
163
 
164
+ if (!vData) {
165
+ delete oRequest.data;
166
+ }
167
+
156
168
  if (!this._isValidRequest(oRequest)) {
157
169
  Log.error(sMessage);
158
170
  return Promise.reject(sMessage);
@@ -160,11 +172,10 @@ sap.ui.define([
160
172
 
161
173
  return this._request(oRequest)
162
174
  .then(function (vResult) {
163
- var vData = vResult[0],
164
- jqXHR = vResult[1];
175
+ var vData = vResult[0];
165
176
 
166
177
  if (mBatchRequests) {
167
- return this._deserializeBatchResponse(mBatchRequests, vData, jqXHR);
178
+ return this._deserializeBatchResponse(mBatchRequests, vData);
168
179
  }
169
180
 
170
181
  return vData;
@@ -179,28 +190,35 @@ sap.ui.define([
179
190
  */
180
191
  RequestDataProvider.prototype._request = function (oRequest, bNoRetry) {
181
192
  return new Promise(function (resolve, reject) {
182
- jQuery.ajax(oRequest).done(function (vData, sTextStatus, jqXHR) {
183
- if (this.bIsDestroyed) {
184
- reject("RequestDataProvider is already destroyed before the response is received.");
185
- return;
186
- }
187
-
188
- resolve([vData, jqXHR]);
189
- }).fail(function (jqXHR, sTextStatus, sError) {
190
- var aError = [sError, jqXHR];
191
-
192
- if (this.bIsDestroyed) {
193
- reject("RequestDataProvider is already destroyed while error in the response occurred.");
194
- return;
195
- }
196
-
197
- if (bNoRetry) {
198
- reject(aError);
199
- return;
200
- }
201
-
202
- this._retryRequest(aError, oRequest).then(resolve, reject);
203
- }.bind(this));
193
+ jQuery.ajax(oRequest).done(
194
+ function (vData, sTextStatus, jqXHR) {
195
+ if (this.bIsDestroyed) {
196
+ reject("RequestDataProvider is already destroyed before the response is received.");
197
+ return;
198
+ }
199
+
200
+ this._lastJQXHR = jqXHR;
201
+
202
+ resolve([vData, jqXHR]);
203
+ }.bind(this)
204
+ ).fail(
205
+ function (jqXHR, sTextStatus, sError) {
206
+ var aError = [sError, jqXHR];
207
+
208
+ if (this.bIsDestroyed) {
209
+ reject("RequestDataProvider is already destroyed while error in the response occurred.");
210
+ return;
211
+ }
212
+
213
+ this._lastJQXHR = jqXHR;
214
+
215
+ if (bNoRetry) {
216
+ reject(aError);
217
+ return;
218
+ }
219
+
220
+ this._retryRequest(aError, oRequest).then(resolve, reject);
221
+ }.bind(this));
204
222
  }.bind(this));
205
223
  };
206
224
 
@@ -286,17 +304,37 @@ sap.ui.define([
286
304
  return false;
287
305
  };
288
306
 
307
+ RequestDataProvider.prototype._isValidRequest = function (oRequest) {
308
+
309
+ if (!oRequest) {
310
+ return false;
311
+ }
312
+
313
+ if (aModes.indexOf(oRequest.mode) === -1) {
314
+ return false;
315
+ }
316
+
317
+ if (aMethods.indexOf(oRequest.method) === -1) {
318
+ return false;
319
+ }
320
+
321
+ if (typeof oRequest.url !== "string") {
322
+ return false;
323
+ }
324
+
325
+ return true;
326
+ };
327
+
289
328
  /**
290
329
  * Deserializes the result of a batch (multipart/mixed) request.
291
330
  * @private
292
331
  * @param {map} mBatchRequests The requests which were send in batch. Order in the response must match.
293
332
  * @param {Object} sResponseBody The response to be deserialized.
294
- * @param {jqXHR} jqXHR The jQuery XHR which goes with the response.
295
333
  * @returns {Object} The deserialized response. Each object in the result will have a key matching the one in the request.
296
334
  */
297
- RequestDataProvider.prototype._deserializeBatchResponse = function (mBatchRequests, sResponseBody, jqXHR) {
335
+ RequestDataProvider.prototype._deserializeBatchResponse = function (mBatchRequests, sResponseBody) {
298
336
  return new Promise(function(resolve, reject) {
299
- var sContentType = jqXHR.getResponseHeader("Content-Type"),
337
+ var sContentType = this.getLastJQXHR().getResponseHeader("Content-Type"),
300
338
  aBatchResponses = ODataUtils.deserializeBatchResponse(sContentType, sResponseBody, false),
301
339
  aKeys = Object.keys(mBatchRequests),
302
340
  mResult = {};
@@ -321,7 +359,7 @@ sap.ui.define([
321
359
  });
322
360
 
323
361
  resolve(mResult);
324
- });
362
+ }.bind(this));
325
363
  };
326
364
 
327
365
  /**
@@ -17,7 +17,7 @@ sap.ui.define(["sap/ui/integration/util/DataProvider"], function (DataProvider)
17
17
  * @extends sap.ui.integration.util.DataProvider
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.94.0
20
+ * @version 1.97.0
21
21
  *
22
22
  * @constructor
23
23
  * @private
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.base.EventProvider
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.94.0
40
+ * @version 1.97.0
41
41
  *
42
42
  * @constructor
43
43
  * @param {Object} mServiceFactoryReferences A map with service descriptions.
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * Utility class helping with JSON strings and formatters.
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.94.0
20
+ * @version 1.97.0
21
21
  *
22
22
  * @private
23
23
  * @alias sap.ui.integration.util.Utils
@@ -132,5 +132,45 @@ sap.ui.define([
132
132
  return typeof sString == "string" && ["null", "false", "undefined", ""].indexOf(sString.trim()) > -1;
133
133
  };
134
134
 
135
+ Utils.setNestedPropertyValue = function (oObject, sPath, vValue) {
136
+ var aPaths = sPath.substring(1).split("/"),
137
+ sPathSegment;
138
+
139
+ for (var i = 0; i < aPaths.length - 1; i++) {
140
+ sPathSegment = aPaths[i];
141
+
142
+ // Prevent access to native properties
143
+ oObject = oObject.hasOwnProperty(sPathSegment) ? oObject[sPathSegment] : undefined;
144
+
145
+ // Only continue with lookup if the value is an object.
146
+ // Accessing properties of other types is not allowed!
147
+ if (oObject === null || typeof oObject !== "object") {
148
+ break;
149
+ }
150
+ }
151
+
152
+ oObject[aPaths[aPaths.length - 1]] = vValue;
153
+ };
154
+
155
+ Utils.getNestedPropertyValue = function (oObject, sPath) {
156
+ var aPaths = sPath.substring(1).split("/"),
157
+ sPathSegment;
158
+
159
+ for (var i = 0; i < aPaths.length; i++) {
160
+ sPathSegment = aPaths[i];
161
+
162
+ // Prevent access to native properties
163
+ oObject = oObject.hasOwnProperty(sPathSegment) ? oObject[sPathSegment] : undefined;
164
+
165
+ // Only continue with lookup if the value is an object.
166
+ // Accessing properties of other types is not allowed!
167
+ if (oObject === null || typeof oObject !== "object") {
168
+ break;
169
+ }
170
+ }
171
+
172
+ return oObject;
173
+ };
174
+
135
175
  return Utils;
136
176
  });