@openui5/sap.ui.core 1.71.46 → 1.71.48

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 (226) hide show
  1. package/LICENSE.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/util/restricted/_castArray.js +1 -1
  9. package/src/sap/base/util/restricted/_curry.js +1 -1
  10. package/src/sap/base/util/restricted/_debounce.js +1 -1
  11. package/src/sap/base/util/restricted/_intersection.js +1 -1
  12. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  13. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  14. package/src/sap/base/util/restricted/_max.js +1 -1
  15. package/src/sap/base/util/restricted/_merge.js +1 -1
  16. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  17. package/src/sap/base/util/restricted/_min.js +1 -1
  18. package/src/sap/base/util/restricted/_omit.js +1 -1
  19. package/src/sap/base/util/restricted/_pick.js +1 -1
  20. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  21. package/src/sap/base/util/restricted/_throttle.js +1 -1
  22. package/src/sap/base/util/restricted/_uniq.js +1 -1
  23. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  24. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  25. package/src/sap/ui/Device.js +3 -3
  26. package/src/sap/ui/Global.js +4 -4
  27. package/src/sap/ui/base/Event.js +1 -1
  28. package/src/sap/ui/base/EventProvider.js +1 -1
  29. package/src/sap/ui/base/Interface.js +1 -1
  30. package/src/sap/ui/base/ManagedObject.js +1 -1
  31. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  32. package/src/sap/ui/base/Metadata.js +1 -1
  33. package/src/sap/ui/base/Object.js +1 -1
  34. package/src/sap/ui/base/ObjectPool.js +1 -1
  35. package/src/sap/ui/core/.library +1 -1
  36. package/src/sap/ui/core/BusyIndicator.js +1 -1
  37. package/src/sap/ui/core/Component.js +1 -1
  38. package/src/sap/ui/core/ComponentContainer.js +1 -1
  39. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  40. package/src/sap/ui/core/ComponentSupport.js +1 -1
  41. package/src/sap/ui/core/Control.js +1 -1
  42. package/src/sap/ui/core/Core.js +1 -1
  43. package/src/sap/ui/core/CustomData.js +1 -1
  44. package/src/sap/ui/core/CustomizingConfiguration.js +1 -1
  45. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  46. package/src/sap/ui/core/Element.js +1 -1
  47. package/src/sap/ui/core/ElementMetadata.js +1 -1
  48. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  49. package/src/sap/ui/core/EventBus.js +1 -1
  50. package/src/sap/ui/core/Fragment.js +1 -1
  51. package/src/sap/ui/core/HTML.js +1 -1
  52. package/src/sap/ui/core/History.js +1 -1
  53. package/src/sap/ui/core/Icon.js +1 -1
  54. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  55. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  56. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  57. package/src/sap/ui/core/InvisibleText.js +1 -1
  58. package/src/sap/ui/core/Item.js +1 -1
  59. package/src/sap/ui/core/LabelEnablement.js +1 -1
  60. package/src/sap/ui/core/LayoutData.js +1 -1
  61. package/src/sap/ui/core/ListItem.js +1 -1
  62. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  63. package/src/sap/ui/core/Locale.js +1 -1
  64. package/src/sap/ui/core/LocaleData.js +1 -1
  65. package/src/sap/ui/core/Manifest.js +1 -1
  66. package/src/sap/ui/core/Message.js +1 -1
  67. package/src/sap/ui/core/Patcher.js +9 -4
  68. package/src/sap/ui/core/RenderManager.js +1 -1
  69. package/src/sap/ui/core/Renderer.js +1 -1
  70. package/src/sap/ui/core/ResizeHandler.js +1 -1
  71. package/src/sap/ui/core/ScrollBar.js +1 -1
  72. package/src/sap/ui/core/SeparatorItem.js +1 -1
  73. package/src/sap/ui/core/Title.js +1 -1
  74. package/src/sap/ui/core/TooltipBase.js +1 -1
  75. package/src/sap/ui/core/UIArea.js +1 -1
  76. package/src/sap/ui/core/UIComponent.js +1 -1
  77. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  78. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  79. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  80. package/src/sap/ui/core/XMLComposite.js +1 -1
  81. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  82. package/src/sap/ui/core/date/UniversalDate.js +2 -2
  83. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  84. package/src/sap/ui/core/delegate/ScrollEnablement.js +5 -2
  85. package/src/sap/ui/core/dnd/DragAndDrop.js +4 -2
  86. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  87. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  88. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  89. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  90. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  91. package/src/sap/ui/core/library.js +3 -3
  92. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  93. package/src/sap/ui/core/message/Message.js +1 -1
  94. package/src/sap/ui/core/message/MessageManager.js +1 -1
  95. package/src/sap/ui/core/message/MessageParser.js +1 -1
  96. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  97. package/src/sap/ui/core/messagebundle_fr.properties +31 -31
  98. package/src/sap/ui/core/mvc/Controller.js +5 -0
  99. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  100. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  101. package/src/sap/ui/core/mvc/JSView.js +1 -1
  102. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  103. package/src/sap/ui/core/mvc/View.js +1 -1
  104. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  105. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  106. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  107. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  108. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  109. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  110. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  111. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  112. package/src/sap/ui/core/service/Service.js +1 -1
  113. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  114. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  115. package/src/sap/ui/core/support/Plugin.js +1 -1
  116. package/src/sap/ui/core/support/Support.js +1 -1
  117. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  118. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  119. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  120. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  121. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  122. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  123. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  124. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  125. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  126. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  127. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  128. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  129. package/src/sap/ui/core/tmpl/Template.js +1 -1
  130. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  131. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  132. package/src/sap/ui/core/util/Export.js +1 -1
  133. package/src/sap/ui/core/util/ExportCell.js +1 -1
  134. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  135. package/src/sap/ui/core/util/ExportRow.js +1 -1
  136. package/src/sap/ui/core/util/ExportType.js +1 -1
  137. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  138. package/src/sap/ui/core/util/File.js +1 -1
  139. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  140. package/src/sap/ui/core/util/MockServer.js +1 -1
  141. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  142. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  143. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  144. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  145. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  146. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  147. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  148. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  149. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  150. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  151. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  152. package/src/sap/ui/debug/ControlTree.js +1 -1
  153. package/src/sap/ui/debug/DebugEnv.js +1 -1
  154. package/src/sap/ui/debug/PropertyList.js +1 -1
  155. package/src/sap/ui/model/ClientModel.js +1 -1
  156. package/src/sap/ui/model/CompositeDataState.js +1 -1
  157. package/src/sap/ui/model/CompositeType.js +1 -1
  158. package/src/sap/ui/model/DataState.js +1 -1
  159. package/src/sap/ui/model/MetaModel.js +1 -1
  160. package/src/sap/ui/model/Model.js +1 -1
  161. package/src/sap/ui/model/SelectionModel.js +1 -1
  162. package/src/sap/ui/model/SimpleType.js +1 -1
  163. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  164. package/src/sap/ui/model/Type.js +1 -1
  165. package/src/sap/ui/model/control/ControlModel.js +1 -1
  166. package/src/sap/ui/model/json/JSONModel.js +1 -1
  167. package/src/sap/ui/model/message/MessageModel.js +1 -1
  168. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  169. package/src/sap/ui/model/odata/ODataMessageParser.js +27 -6
  170. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  171. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  172. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  173. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +25 -32
  174. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  175. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  176. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  177. package/src/sap/ui/model/odata/type/Date.js +1 -1
  178. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  179. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  180. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  181. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  182. package/src/sap/ui/model/odata/type/Double.js +1 -1
  183. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  184. package/src/sap/ui/model/odata/type/Int.js +1 -1
  185. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  186. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  187. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  188. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  189. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  190. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  191. package/src/sap/ui/model/odata/type/Single.js +1 -1
  192. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  193. package/src/sap/ui/model/odata/type/String.js +1 -1
  194. package/src/sap/ui/model/odata/type/Time.js +1 -1
  195. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  196. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  197. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  198. package/src/sap/ui/model/odata/v2/ODataModel.js +48 -3
  199. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  200. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  201. package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
  202. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  203. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  204. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  205. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  206. package/src/sap/ui/model/type/Boolean.js +1 -1
  207. package/src/sap/ui/model/type/Currency.js +1 -1
  208. package/src/sap/ui/model/type/Date.js +1 -1
  209. package/src/sap/ui/model/type/DateInterval.js +1 -1
  210. package/src/sap/ui/model/type/DateTime.js +1 -1
  211. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  212. package/src/sap/ui/model/type/FileSize.js +1 -1
  213. package/src/sap/ui/model/type/Float.js +1 -1
  214. package/src/sap/ui/model/type/Integer.js +1 -1
  215. package/src/sap/ui/model/type/String.js +1 -1
  216. package/src/sap/ui/model/type/Time.js +1 -1
  217. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  218. package/src/sap/ui/model/type/Unit.js +1 -1
  219. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  220. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  221. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  222. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  223. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  224. package/src/sap/ui/thirdparty/URI.js +8 -2
  225. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  226. package/src/sap/ui/util/Storage.js +1 -1
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/Object'],
20
20
  * @extends sap.ui.base.Object
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.71.46
23
+ * @version 1.71.48
24
24
  *
25
25
  * @public
26
26
  * @alias sap.ui.model.Type
@@ -32,7 +32,7 @@ sap.ui.define(['sap/ui/model/Model', './ControlPropertyBinding', "sap/ui/thirdpa
32
32
  * @extends sap.ui.model.Model
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.71.46
35
+ * @version 1.71.48
36
36
  *
37
37
  * @alias sap.ui.model.control.ControlModel
38
38
  * @private
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @extends sap.ui.model.ClientModel
53
53
  *
54
54
  * @author SAP SE
55
- * @version 1.71.46
55
+ * @version 1.71.48
56
56
  * @public
57
57
  * @alias sap.ui.model.json.JSONModel
58
58
  */
@@ -27,7 +27,7 @@ sap.ui.define(['sap/ui/model/BindingMode', 'sap/ui/model/ClientModel', 'sap/ui/m
27
27
  * @extends sap.ui.model.ClientModel
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.71.46
30
+ * @version 1.71.48
31
31
  *
32
32
  * @param {sap.ui.core.message.MessageManager} oMessageManager The MessageManager instance
33
33
  * @public
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  *
29
29
  * @author SAP SE
30
30
  * @version
31
- * 1.71.46
31
+ * 1.71.48
32
32
  *
33
33
  * @public
34
34
  * @deprecated As of version 1.66, please use {@link sap.ui.model.odata.v2.ODataAnnotations} instead.
@@ -71,17 +71,24 @@ var mSeverityMap = {
71
71
  */
72
72
 
73
73
  /**
74
- * OData implementation of the sap.ui.core.message.MessageParser class. Parses message responses from the back-end.
74
+ * OData implementation of the sap.ui.core.message.MessageParser class. Parses message responses
75
+ * from the back end.
76
+ *
77
+ * @param {string} sServiceUrl
78
+ * Base URI of the service used for the calculation of message targets
79
+ * @param {sap.ui.model.odata.ODataMetadata} oMetadata
80
+ * The ODataMetadata object
81
+ * @param {boolean} bPersistTechnicalMessages
82
+ * Whether technical messages should always be treated as persistent, since 1.83.0
75
83
  *
76
84
  * @class
77
- * @classdesc
78
- * OData implementation of the sap.ui.core.message.MessageParser class. Parses message responses from the back-end.
85
+ * OData implementation of the sap.ui.core.message.MessageParser class. Parses message responses
86
+ * from the back end.
79
87
  * @extends sap.ui.core.message.MessageParser
80
88
  *
81
89
  * @author SAP SE
82
- * @version 1.71.46
90
+ * @version 1.71.48
83
91
  * @public
84
- * @abstract
85
92
  * @alias sap.ui.model.odata.ODataMessageParser
86
93
  */
87
94
  var ODataMessageParser = MessageParser.extend("sap.ui.model.odata.ODataMessageParser", {
@@ -89,13 +96,14 @@ var ODataMessageParser = MessageParser.extend("sap.ui.model.odata.ODataMessagePa
89
96
  publicMethods: [ "parse", "setProcessor", "getHeaderField", "setHeaderField" ]
90
97
  },
91
98
 
92
- constructor: function(sServiceUrl, oMetadata) {
99
+ constructor: function(sServiceUrl, oMetadata, bPersistTechnicalMessages) {
93
100
  MessageParser.apply(this);
94
101
  this._serviceUrl = getRelativeServerUrl(this._parseUrl(sServiceUrl).url);
95
102
  this._metadata = oMetadata;
96
103
  this._processor = null;
97
104
  this._headerField = "sap-message"; // Default header field
98
105
  this._lastMessages = [];
106
+ this._bPersistTechnicalMessages = bPersistTechnicalMessages;
99
107
  }
100
108
  });
101
109
 
@@ -369,6 +377,8 @@ ODataMessageParser.prototype._createMessage = function(oMessageObject, mRequestI
369
377
  bPersistent = true;
370
378
  } else if (oMessageObject.transition) {
371
379
  bPersistent = true;
380
+ } else if (bIsTechnical && this._bPersistTechnicalMessages) {
381
+ bPersistent = true;
372
382
  }
373
383
 
374
384
  if (bPersistent && bIsTechnical) {
@@ -841,6 +851,17 @@ ODataMessageParser.prototype._outputMesages = function(aMessages) {
841
851
  }
842
852
  };
843
853
 
854
+ /**
855
+ * Sets whether technical messages should always be treated as persistent.
856
+ *
857
+ * @param {boolean} bPersistTechnicalMessages
858
+ * Whether technical messages should always be treated as persistent
859
+ * @private
860
+ */
861
+ ODataMessageParser.prototype._setPersistTechnicalMessages = function (bPersistTechnicalMessages) {
862
+ this._bPersistTechnicalMessages = bPersistTechnicalMessages;
863
+ };
864
+
844
865
  ///////////////////////////////////////// Hidden Functions /////////////////////////////////////////
845
866
 
846
867
 
@@ -219,7 +219,7 @@ sap.ui.define([
219
219
  * {@link #loaded loaded} has been resolved!
220
220
  *
221
221
  * @author SAP SE
222
- * @version 1.71.46
222
+ * @version 1.71.48
223
223
  * @alias sap.ui.model.odata.ODataMetaModel
224
224
  * @extends sap.ui.model.MetaModel
225
225
  * @public
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * Implementation to access OData metadata
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.71.46
39
+ * @version 1.71.48
40
40
  *
41
41
  * @public
42
42
  * @alias sap.ui.model.odata.ODataMetadata
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  *
93
93
  *
94
94
  * @author SAP SE
95
- * @version 1.71.46
95
+ * @version 1.71.48
96
96
  *
97
97
  * @public
98
98
  * @deprecated As of version 1.48, please use {@link sap.ui.model.odata.v2.ODataModel} instead.
@@ -4077,21 +4077,12 @@ sap.ui.define([
4077
4077
  * 2. none of its ancestor it's collapsed.
4078
4078
  */
4079
4079
  ODataTreeBindingFlat.prototype._calcIndexDelta = function (iEndServerIndex) {
4080
- // collect all collapsed server indices and magnitude as a look-up table
4081
- // serverIndex + magnitude form a range for which we can check if there is a containment situation
4082
- var mCollapsedServerIndices = {};
4083
- this._aCollapsed.forEach(function (oNode) {
4084
- // only regard nodes with a server-index and not initially collapsed
4085
- if (oNode.serverIndex >= 0 && oNode.serverIndex < iEndServerIndex && !oNode.isDeepOne && !oNode.initiallyCollapsed) {
4086
- mCollapsedServerIndices[oNode.serverIndex] = oNode.magnitude;
4087
- }
4088
- });
4080
+ var i, bIgnore, aManuallyCollapsedServerIndexNodes,
4081
+ iCollapsedDelta = 0,
4082
+ iExpandedDelta = 0,
4083
+ iLastCollapsedIndex = 0;
4089
4084
 
4090
- // collapsed delta
4091
- var iLastCollapsedIndex = 0;
4092
- var iCollapsedDelta = 0;
4093
-
4094
- for (var i = 0; i < this._aCollapsed.length; i++) {
4085
+ for (i = 0; i < this._aCollapsed.length; i++) {
4095
4086
  var oCollapsedNode = this._aCollapsed[i];
4096
4087
 
4097
4088
  if (this._getRelatedServerIndex(oCollapsedNode) >= iEndServerIndex) {
@@ -4111,26 +4102,26 @@ sap.ui.define([
4111
4102
  }
4112
4103
  }
4113
4104
 
4114
- // expanded delta
4115
- var iExpandedDelta = 0;
4116
-
4117
- var fnInCollapsedRange = function (oNode) {
4118
- var bIgnore = false;
4119
- var iContainingIndexToCheck = oNode.serverIndex || oNode.containingServerIndex;
4120
- for (var j in mCollapsedServerIndices) {
4121
- // if the expanded node is inside a collapsed range -> ignore it
4122
- if (iContainingIndexToCheck > j && iContainingIndexToCheck < j + mCollapsedServerIndices[j]) {
4123
- bIgnore = true;
4124
- break;
4125
- }
4126
- }
4127
- return bIgnore;
4105
+ // filter all collapsed nodes for server-index nodes that are not initially collapsed
4106
+ aManuallyCollapsedServerIndexNodes = this._aCollapsed.filter(function (oNode) {
4107
+ return oNode.serverIndex >= 0 && oNode.serverIndex < iEndServerIndex
4108
+ && !oNode.isDeepOne && !oNode.initiallyCollapsed;
4109
+ });
4110
+
4111
+ // Checks if the given expanded node is a child node of any of the manually collapsed
4112
+ // server-index nodes
4113
+ var fnInCollapsedRange = function (iExpandedNodeIndex) {
4114
+ return aManuallyCollapsedServerIndexNodes.some(function (oNode) {
4115
+ return iExpandedNodeIndex > oNode.serverIndex
4116
+ && iExpandedNodeIndex < oNode.serverIndex + oNode.magnitude;
4117
+ });
4128
4118
  };
4129
4119
 
4130
4120
  for (i = 0; i < this._aExpanded.length; i++) {
4131
- var oExpandedNode = this._aExpanded[i];
4121
+ var oExpandedNode = this._aExpanded[i],
4122
+ iExpandedNodeIndex = this._getRelatedServerIndex(oExpandedNode);
4132
4123
 
4133
- if (this._getRelatedServerIndex(oExpandedNode) >= iEndServerIndex) {
4124
+ if (iExpandedNodeIndex >= iEndServerIndex) {
4134
4125
  break;
4135
4126
  }
4136
4127
 
@@ -4147,7 +4138,9 @@ sap.ui.define([
4147
4138
  oParent = oParent.parent;
4148
4139
  }
4149
4140
 
4150
- var bIgnore = fnInCollapsedRange(oExpandedNode);
4141
+ // if oExpandedNode is a child of a collapsed node it is not visible on the UI and
4142
+ // can be ignored for the expanded delta
4143
+ bIgnore = fnInCollapsedRange(iExpandedNodeIndex);
4151
4144
 
4152
4145
  // if not then regard the children for the expanded delta
4153
4146
  if (!bYep && !bIgnore) {
@@ -4156,7 +4149,7 @@ sap.ui.define([
4156
4149
 
4157
4150
  } else if (oExpandedNode.initiallyCollapsed) {
4158
4151
  // see if the node on the last auto-expand level is contained in a sub-tree of a collapsed server-indexed node
4159
- var bIgnore = fnInCollapsedRange(oExpandedNode);
4152
+ bIgnore = fnInCollapsedRange(iExpandedNodeIndex);
4160
4153
  if (!bIgnore) {
4161
4154
  // still we have to check for a
4162
4155
  iExpandedDelta += oExpandedNode.children.length;
@@ -87,7 +87,7 @@ sap.ui.define([
87
87
  * @extends sap.ui.model.odata.type.ODataType
88
88
  *
89
89
  * @author SAP SE
90
- * @version 1.71.46
90
+ * @version 1.71.48
91
91
  *
92
92
  * @alias sap.ui.model.odata.type.Boolean
93
93
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.71.46
27
+ * @version 1.71.48
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Byte
30
30
  * @param {object} [oFormatOptions]
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.model.type.Currency
46
46
  * @public
47
47
  * @since 1.63.0
48
- * @version 1.71.46
48
+ * @version 1.71.48
49
49
  *
50
50
  * @borrows sap.ui.model.odata.type.UnitMixin#getInterface as #getInterface
51
51
  * @borrows sap.ui.model.odata.type.UnitMixin#validateValue as #validateValue
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @extends sap.ui.model.odata.type.ODataType
107
107
  *
108
108
  * @author SAP SE
109
- * @version 1.71.46
109
+ * @version 1.71.48
110
110
  *
111
111
  * @alias sap.ui.model.odata.type.Date
112
112
  * @param {object} [oFormatOptions]
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.model.odata.type.DateTimeBase
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.71.46
62
+ * @version 1.71.48
63
63
  *
64
64
  * @alias sap.ui.model.odata.type.DateTime
65
65
  * @param {object} [oFormatOptions]
@@ -132,7 +132,7 @@ sap.ui.define([
132
132
  * @extends sap.ui.model.odata.type.ODataType
133
133
  * @public
134
134
  * @since 1.27.0
135
- * @version 1.71.46
135
+ * @version 1.71.48
136
136
  */
137
137
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
138
138
  constructor : function (oFormatOptions, oConstraints) {
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.model.odata.type.DateTimeBase
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.71.46
31
+ * @version 1.71.48
32
32
  *
33
33
  * @alias sap.ui.model.odata.type.DateTimeOffset
34
34
  * @param {object} [oFormatOptions]
@@ -194,7 +194,7 @@ sap.ui.define([
194
194
  * @extends sap.ui.model.odata.type.ODataType
195
195
  *
196
196
  * @author SAP SE
197
- * @version 1.71.46
197
+ * @version 1.71.48
198
198
  *
199
199
  * @alias sap.ui.model.odata.type.Decimal
200
200
  * @param {object} [oFormatOptions]
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.odata.type.ODataType
93
93
  *
94
94
  * @author SAP SE
95
- * @version 1.71.46
95
+ * @version 1.71.48
96
96
  *
97
97
  * @alias sap.ui.model.odata.type.Double
98
98
  * @param {object} [oFormatOptions]
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @extends sap.ui.model.odata.type.ODataType
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.71.46
65
+ * @version 1.71.48
66
66
  *
67
67
  * @alias sap.ui.model.odata.type.Guid
68
68
  * @param {object} [oFormatOptions]
@@ -80,7 +80,7 @@ sap.ui.define([
80
80
  * @extends sap.ui.model.odata.type.ODataType
81
81
  *
82
82
  * @author SAP SE
83
- * @version 1.71.46
83
+ * @version 1.71.48
84
84
  *
85
85
  * @abstract
86
86
  * @alias sap.ui.model.odata.type.Int
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.71.46
27
+ * @version 1.71.48
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int16
30
30
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.71.46
27
+ * @version 1.71.48
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int32
30
30
  * @param {object} [oFormatOptions]
@@ -137,7 +137,7 @@ sap.ui.define([
137
137
  * @extends sap.ui.model.odata.type.ODataType
138
138
  *
139
139
  * @author SAP SE
140
- * @version 1.71.46
140
+ * @version 1.71.48
141
141
  *
142
142
  * @alias sap.ui.model.odata.type.Int64
143
143
  * @param {object} [oFormatOptions]
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.model.SimpleType
116
116
  *
117
117
  * @author SAP SE
118
- * @version 1.71.46
118
+ * @version 1.71.48
119
119
  *
120
120
  * @abstract
121
121
  * @alias sap.ui.model.odata.type.ODataType
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.model.odata.type.ODataType
31
31
  * @public
32
32
  * @since 1.37.0
33
- * @version 1.71.46
33
+ * @version 1.71.48
34
34
  */
35
35
  var Raw = ODataType.extend("sap.ui.model.odata.type.Raw", {
36
36
  constructor : function (oFormatOptions, oConstraints) {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.71.46
27
+ * @version 1.71.48
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.odata.type.ODataType
93
93
  *
94
94
  * @author SAP SE
95
- * @version 1.71.46
95
+ * @version 1.71.48
96
96
  *
97
97
  * @alias sap.ui.model.odata.type.Single
98
98
  * @param {object} [oFormatOptions]
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.model.odata.type.ODataType
61
61
  * @public
62
62
  * @since 1.51.0
63
- * @version 1.71.46
63
+ * @version 1.71.48
64
64
  */
65
65
  var Stream = ODataType.extend("sap.ui.model.odata.type.Stream", {
66
66
  constructor : function (oFormatOptions, oConstraints) {
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @extends sap.ui.model.odata.type.ODataType
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.71.46
87
+ * @version 1.71.48
88
88
  *
89
89
  * @alias sap.ui.model.odata.type.String
90
90
  * @param {object} [oFormatOptions]
@@ -154,7 +154,7 @@ sap.ui.define([
154
154
  * @extends sap.ui.model.odata.type.ODataType
155
155
  *
156
156
  * @author SAP SE
157
- * @version 1.71.46
157
+ * @version 1.71.48
158
158
  *
159
159
  * @alias sap.ui.model.odata.type.Time
160
160
  * @param {object} [oFormatOptions]
@@ -110,7 +110,7 @@ sap.ui.define([
110
110
  * @extends sap.ui.model.odata.type.ODataType
111
111
  * @public
112
112
  * @since 1.37.0
113
- * @version 1.71.46
113
+ * @version 1.71.48
114
114
  */
115
115
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
116
116
  constructor : function (oFormatOptions, oConstraints) {
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.type.Unit
48
48
  * @public
49
49
  * @since 1.63.0
50
- * @version 1.71.46
50
+ * @version 1.71.48
51
51
  *
52
52
  * @borrows sap.ui.model.odata.type.UnitMixin#getInterface as #getInterface
53
53
  * @borrows sap.ui.model.odata.type.UnitMixin#validateValue as #validateValue
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @author SAP SE
35
35
  * @version
36
- * 1.71.46
36
+ * 1.71.48
37
37
  *
38
38
  * @public
39
39
  * @since 1.37.0
@@ -125,6 +125,8 @@ sap.ui.define([
125
125
  * Sets the default binding mode for the model
126
126
  * @param {sap.ui.model.odata.CountMode} [mParameters.defaultCountMode=Request]
127
127
  * Sets the default count mode for the model
128
+ * @param {boolean} [mParameters.persistTechnicalMessages]
129
+ * Whether technical messages should always be treated as persistent
128
130
  * @param {boolean} [mParameters.preliminaryContext=false]
129
131
  * Whether a preliminary Context will be created/used by a binding
130
132
  * @param {sap.ui.model.odata.OperationMode} [mParameters.defaultOperationMode=Default]
@@ -173,7 +175,7 @@ sap.ui.define([
173
175
  * // will use the respective authentication token
174
176
  *
175
177
  * @author SAP SE
176
- * @version 1.71.46
178
+ * @version 1.71.48
177
179
  *
178
180
  * @public
179
181
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -213,6 +215,7 @@ sap.ui.define([
213
215
  sWarmupUrl,
214
216
  bCanonicalRequests,
215
217
  bTokenHandlingForGet,
218
+ bPersistTechnicalMessages,
216
219
  that = this;
217
220
 
218
221
  if (typeof (sServiceUrl) === "object") {
@@ -249,6 +252,7 @@ sap.ui.define([
249
252
  sWarmupUrl = mParameters.warmupUrl;
250
253
  bCanonicalRequests = mParameters.canonicalRequests;
251
254
  bTokenHandlingForGet = mParameters.tokenHandlingForGet;
255
+ bPersistTechnicalMessages = mParameters.persistTechnicalMessages;
252
256
  }
253
257
 
254
258
  /* Path cache to avoid multiple expensive resolve operations
@@ -303,6 +307,8 @@ sap.ui.define([
303
307
  this.aBindableResponseHeaders = aBindableResponseHeaders ? aBindableResponseHeaders : null;
304
308
  this.bPreliminaryContext = bPreliminaryContext || false;
305
309
  this.mMetadataUrlParams = mMetadataUrlParams || {};
310
+ this.bPersistTechnicalMessages = bPersistTechnicalMessages === undefined
311
+ ? undefined : !!bPersistTechnicalMessages;
306
312
 
307
313
  if (oMessageParser) {
308
314
  oMessageParser.setProcessor(this);
@@ -5525,7 +5531,7 @@ sap.ui.define([
5525
5531
  bFunction = oOriginalEntry.__metadata.created && oOriginalEntry.__metadata.created.functionImport;
5526
5532
 
5527
5533
  // Update property value on change object
5528
- oChangeObject[sPropertyPath] = oValue;
5534
+ oChangeObject[sPropertyPath] = isPlainObject(oValue) ? merge({}, oValue) : oValue;
5529
5535
 
5530
5536
  // If property is key property of ReferentialConstraint, also update the corresponding
5531
5537
  // navigation property
@@ -6377,7 +6383,8 @@ sap.ui.define([
6377
6383
  ODataModel.prototype._parseResponse = function(oResponse, oRequest, mGetEntities, mChangeEntities) {
6378
6384
  try {
6379
6385
  if (!this.oMessageParser) {
6380
- this.oMessageParser = new ODataMessageParser(this.sServiceUrl, this.oMetadata);
6386
+ this.oMessageParser = new ODataMessageParser(this.sServiceUrl, this.oMetadata,
6387
+ !!this.bPersistTechnicalMessages);
6381
6388
  this.oMessageParser.setProcessor(this);
6382
6389
  }
6383
6390
  // Parse response and delegate messages to the set message parser
@@ -6901,5 +6908,43 @@ sap.ui.define([
6901
6908
  }
6902
6909
  };
6903
6910
 
6911
+ /**
6912
+ * Gets the flag whether technical messages should always be treated as persistent.
6913
+ *
6914
+ * @returns {boolean} Whether technical messages should always be treated as persistent
6915
+ *
6916
+ * @private
6917
+ * @ui5-restricted sap.suite.ui.generic.template
6918
+ */
6919
+ ODataModel.prototype.getPersistTechnicalMessages = function () {
6920
+ return this.bPersistTechnicalMessages;
6921
+ };
6922
+
6923
+ /**
6924
+ * Sets the flag whether technical messages should always be treated as persistent. Works only
6925
+ * with {@link class sap.ui.model.odata.ODataMessageParser}.
6926
+ *
6927
+ * @param {boolean} bPersistTechnicalMessages
6928
+ * Whether technical messages should always be treated as persistent
6929
+ *
6930
+ * @private
6931
+ * @ui5-restricted sap.suite.ui.generic.template
6932
+ */
6933
+ ODataModel.prototype.setPersistTechnicalMessages = function (bPersistTechnicalMessages) {
6934
+ bPersistTechnicalMessages = !!bPersistTechnicalMessages;
6935
+ if (this.bPersistTechnicalMessages === bPersistTechnicalMessages) {
6936
+ return;
6937
+ }
6938
+ if (this.bPersistTechnicalMessages !== undefined) {
6939
+ Log.warning("The flag whether technical messages should always be treated as persistent"
6940
+ + " has been overwritten to " + bPersistTechnicalMessages, undefined,
6941
+ "sap.ui.model.odata.v2.ODataModel");
6942
+ }
6943
+ this.bPersistTechnicalMessages = bPersistTechnicalMessages;
6944
+ if (this.oMessageParser) {
6945
+ this.oMessageParser._setPersistTechnicalMessages(bPersistTechnicalMessages);
6946
+ }
6947
+ };
6948
+
6904
6949
  return ODataModel;
6905
6950
  });
@@ -96,7 +96,7 @@ sap.ui.define([
96
96
  * @hideconstructor
97
97
  * @public
98
98
  * @since 1.39.0
99
- * @version 1.71.46
99
+ * @version 1.71.48
100
100
  */
101
101
  var Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
102
102
  constructor : function (oModel, oBinding, sPath, iIndex, oCreatePromise,
@@ -107,7 +107,7 @@ sap.ui.define([
107
107
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
108
108
  * @public
109
109
  * @since 1.37.0
110
- * @version 1.71.46
110
+ * @version 1.71.48
111
111
  *
112
112
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
113
113
  * @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
75
75
  * @public
76
76
  * @since 1.37.0
77
- * @version 1.71.46
77
+ * @version 1.71.48
78
78
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#isInitial as #isInitial
@@ -639,7 +639,7 @@ sap.ui.define([
639
639
  * @hideconstructor
640
640
  * @public
641
641
  * @since 1.37.0
642
- * @version 1.71.46
642
+ * @version 1.71.48
643
643
  */
644
644
  var ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
645
645
  /*
@@ -189,7 +189,7 @@ sap.ui.define([
189
189
  * @extends sap.ui.model.Model
190
190
  * @public
191
191
  * @since 1.37.0
192
- * @version 1.71.46
192
+ * @version 1.71.48
193
193
  */
194
194
  var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
195
195
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @mixes sap.ui.model.odata.v4.ODataBinding
57
57
  * @public
58
58
  * @since 1.37.0
59
- * @version 1.71.46
59
+ * @version 1.71.48
60
60
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
61
61
  * @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#isInitial as #isInitial