@openui5/sap.ui.core 1.102.1 → 1.102.2

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 (245) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  8. package/src/sap/base/util/restricted/_castArray.js +1 -1
  9. package/src/sap/base/util/restricted/_compact.js +1 -1
  10. package/src/sap/base/util/restricted/_curry.js +1 -1
  11. package/src/sap/base/util/restricted/_debounce.js +1 -1
  12. package/src/sap/base/util/restricted/_difference.js +1 -1
  13. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  14. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  15. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  16. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  17. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  18. package/src/sap/base/util/restricted/_flatten.js +1 -1
  19. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  20. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  21. package/src/sap/base/util/restricted/_intersection.js +1 -1
  22. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  23. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  24. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  25. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  26. package/src/sap/base/util/restricted/_isNil.js +1 -1
  27. package/src/sap/base/util/restricted/_max.js +1 -1
  28. package/src/sap/base/util/restricted/_merge.js +1 -1
  29. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  30. package/src/sap/base/util/restricted/_min.js +1 -1
  31. package/src/sap/base/util/restricted/_omit.js +1 -1
  32. package/src/sap/base/util/restricted/_pick.js +1 -1
  33. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  34. package/src/sap/base/util/restricted/_throttle.js +1 -1
  35. package/src/sap/base/util/restricted/_toArray.js +1 -1
  36. package/src/sap/base/util/restricted/_union.js +1 -1
  37. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  38. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  39. package/src/sap/base/util/restricted/_uniq.js +1 -1
  40. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  41. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  42. package/src/sap/base/util/restricted/_without.js +1 -1
  43. package/src/sap/base/util/restricted/_xor.js +1 -1
  44. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  45. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  46. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  47. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  48. package/src/sap/ui/Device.js +3 -3
  49. package/src/sap/ui/Global.js +4 -4
  50. package/src/sap/ui/base/Event.js +1 -1
  51. package/src/sap/ui/base/EventProvider.js +1 -1
  52. package/src/sap/ui/base/Interface.js +1 -1
  53. package/src/sap/ui/base/ManagedObject.js +1 -1
  54. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  55. package/src/sap/ui/base/Metadata.js +1 -1
  56. package/src/sap/ui/base/Object.js +1 -1
  57. package/src/sap/ui/base/ObjectPool.js +1 -1
  58. package/src/sap/ui/core/.library +1 -1
  59. package/src/sap/ui/core/BusyIndicator.js +1 -1
  60. package/src/sap/ui/core/Component.js +1 -1
  61. package/src/sap/ui/core/ComponentContainer.js +1 -1
  62. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  63. package/src/sap/ui/core/ComponentSupport.js +1 -1
  64. package/src/sap/ui/core/Control.js +1 -1
  65. package/src/sap/ui/core/Core.js +1 -1
  66. package/src/sap/ui/core/CustomData.js +1 -1
  67. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  68. package/src/sap/ui/core/Element.js +1 -1
  69. package/src/sap/ui/core/ElementMetadata.js +1 -1
  70. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  71. package/src/sap/ui/core/EventBus.js +1 -1
  72. package/src/sap/ui/core/Fragment.js +1 -1
  73. package/src/sap/ui/core/HTML.js +1 -1
  74. package/src/sap/ui/core/History.js +1 -1
  75. package/src/sap/ui/core/Icon.js +1 -1
  76. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  77. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  78. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  79. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  80. package/src/sap/ui/core/InvisibleText.js +1 -1
  81. package/src/sap/ui/core/Item.js +1 -1
  82. package/src/sap/ui/core/LabelEnablement.js +1 -1
  83. package/src/sap/ui/core/LayoutData.js +1 -1
  84. package/src/sap/ui/core/ListItem.js +1 -1
  85. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  86. package/src/sap/ui/core/Locale.js +1 -1
  87. package/src/sap/ui/core/LocaleData.js +1 -1
  88. package/src/sap/ui/core/Manifest.js +1 -1
  89. package/src/sap/ui/core/Message.js +1 -1
  90. package/src/sap/ui/core/RenderManager.js +1 -1
  91. package/src/sap/ui/core/Renderer.js +1 -1
  92. package/src/sap/ui/core/ResizeHandler.js +1 -1
  93. package/src/sap/ui/core/ScrollBar.js +1 -1
  94. package/src/sap/ui/core/SeparatorItem.js +1 -1
  95. package/src/sap/ui/core/Title.js +1 -1
  96. package/src/sap/ui/core/TooltipBase.js +1 -1
  97. package/src/sap/ui/core/UIArea.js +1 -1
  98. package/src/sap/ui/core/UIComponent.js +1 -1
  99. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  100. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  101. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  102. package/src/sap/ui/core/XMLComposite.js +1 -1
  103. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  104. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  105. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  106. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  107. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  108. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  109. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  110. package/src/sap/ui/core/format/NumberFormat.js +91 -25
  111. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  112. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  113. package/src/sap/ui/core/library.js +3 -3
  114. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  115. package/src/sap/ui/core/message/Message.js +1 -1
  116. package/src/sap/ui/core/message/MessageManager.js +1 -1
  117. package/src/sap/ui/core/message/MessageParser.js +1 -1
  118. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  119. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  120. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  121. package/src/sap/ui/core/mvc/JSView.js +1 -1
  122. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  123. package/src/sap/ui/core/mvc/View.js +1 -1
  124. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  125. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  126. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  127. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  128. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  129. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  130. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  131. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  132. package/src/sap/ui/core/service/Service.js +1 -1
  133. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  134. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  135. package/src/sap/ui/core/support/Plugin.js +1 -1
  136. package/src/sap/ui/core/support/Support.js +1 -1
  137. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  138. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  139. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  140. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  141. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  142. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  143. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  144. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  145. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  146. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  147. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  148. package/src/sap/ui/core/tmpl/Template.js +1 -1
  149. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  150. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  151. package/src/sap/ui/core/util/Export.js +1 -1
  152. package/src/sap/ui/core/util/ExportCell.js +1 -1
  153. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  154. package/src/sap/ui/core/util/ExportRow.js +1 -1
  155. package/src/sap/ui/core/util/ExportType.js +1 -1
  156. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  157. package/src/sap/ui/core/util/File.js +1 -1
  158. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  159. package/src/sap/ui/core/util/MockServer.js +1 -1
  160. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  161. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  162. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  163. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  164. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  165. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  166. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  167. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  168. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  169. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  170. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  171. package/src/sap/ui/debug/ControlTree.js +1 -1
  172. package/src/sap/ui/debug/DebugEnv.js +1 -1
  173. package/src/sap/ui/debug/PropertyList.js +1 -1
  174. package/src/sap/ui/model/ClientModel.js +1 -1
  175. package/src/sap/ui/model/CompositeDataState.js +1 -1
  176. package/src/sap/ui/model/CompositeType.js +1 -1
  177. package/src/sap/ui/model/DataState.js +1 -1
  178. package/src/sap/ui/model/MetaModel.js +1 -1
  179. package/src/sap/ui/model/Model.js +1 -1
  180. package/src/sap/ui/model/SelectionModel.js +1 -1
  181. package/src/sap/ui/model/SimpleType.js +1 -1
  182. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  183. package/src/sap/ui/model/Type.js +1 -1
  184. package/src/sap/ui/model/json/JSONModel.js +1 -1
  185. package/src/sap/ui/model/message/MessageModel.js +1 -1
  186. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  187. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  188. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  189. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  190. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  191. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  192. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  193. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  194. package/src/sap/ui/model/odata/type/Date.js +1 -1
  195. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  196. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  197. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  198. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  199. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  200. package/src/sap/ui/model/odata/type/Double.js +1 -1
  201. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  202. package/src/sap/ui/model/odata/type/Int.js +1 -1
  203. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  204. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  205. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  206. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  207. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  208. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  209. package/src/sap/ui/model/odata/type/Single.js +1 -1
  210. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  211. package/src/sap/ui/model/odata/type/String.js +1 -1
  212. package/src/sap/ui/model/odata/type/Time.js +1 -1
  213. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  214. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  215. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  216. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  217. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  218. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  219. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  220. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  221. package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
  222. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  223. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  224. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  225. package/src/sap/ui/model/odata/v4/lib/_Cache.js +49 -9
  226. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +3 -1
  227. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  228. package/src/sap/ui/model/type/Boolean.js +1 -1
  229. package/src/sap/ui/model/type/Currency.js +1 -1
  230. package/src/sap/ui/model/type/Date.js +1 -1
  231. package/src/sap/ui/model/type/DateInterval.js +1 -1
  232. package/src/sap/ui/model/type/DateTime.js +1 -1
  233. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  234. package/src/sap/ui/model/type/FileSize.js +1 -1
  235. package/src/sap/ui/model/type/Float.js +1 -1
  236. package/src/sap/ui/model/type/Integer.js +1 -1
  237. package/src/sap/ui/model/type/String.js +1 -1
  238. package/src/sap/ui/model/type/Time.js +1 -1
  239. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  240. package/src/sap/ui/model/type/Unit.js +1 -1
  241. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  242. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  243. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  244. package/src/sap/ui/test/generic/TestBase.js +1 -1
  245. package/src/sap/ui/util/Storage.js +1 -1
@@ -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.102.1
87
+ * @version 1.102.2
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.102.1
157
+ * @version 1.102.2
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.102.1
113
+ * @version 1.102.2
114
114
  */
115
115
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
116
116
  constructor : function (oFormatOptions, oConstraints) {
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.model.type.Unit
64
64
  * @public
65
65
  * @since 1.63.0
66
- * @version 1.102.1
66
+ * @version 1.102.2
67
67
  */
68
68
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
69
69
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @hideconstructor
61
61
  * @public
62
62
  * @since 1.93.0
63
- * @version 1.102.1
63
+ * @version 1.102.2
64
64
  */
65
65
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
66
66
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive) {
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @class Annotation loader for OData V2 services
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.102.1
38
+ * @version 1.102.2
39
39
  *
40
40
  * @public
41
41
  * @since 1.37.0
@@ -203,7 +203,7 @@ sap.ui.define([
203
203
  * This model is not prepared to be inherited from.
204
204
  *
205
205
  * @author SAP SE
206
- * @version 1.102.1
206
+ * @version 1.102.2
207
207
  *
208
208
  * @public
209
209
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @extends sap.ui.model.TreeBinding
95
95
  * @hideconstructor
96
96
  * @public
97
- * @version 1.102.1
97
+ * @version 1.102.2
98
98
  */
99
99
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
100
100
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.102.1
45
+ * @version 1.102.2
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -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.102.1
77
+ * @version 1.102.2
78
78
  *
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
59
59
  * @public
60
60
  * @since 1.37.0
61
- * @version 1.102.1
61
+ * @version 1.102.2
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
64
64
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -157,7 +157,7 @@ sap.ui.define([
157
157
  * @hideconstructor
158
158
  * @public
159
159
  * @since 1.37.0
160
- * @version 1.102.1
160
+ * @version 1.102.2
161
161
  */
162
162
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
163
163
  constructor : constructor
@@ -214,7 +214,7 @@ sap.ui.define([
214
214
  * @extends sap.ui.model.Model
215
215
  * @public
216
216
  * @since 1.37.0
217
- * @version 1.102.1
217
+ * @version 1.102.2
218
218
  */
219
219
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
220
220
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @mixes sap.ui.model.odata.v4.ODataBinding
43
43
  * @public
44
44
  * @since 1.37.0
45
- * @version 1.102.1
45
+ * @version 1.102.2
46
46
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
47
47
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
48
48
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -113,6 +113,7 @@ sap.ui.define([
113
113
  // they are always "newer"
114
114
  this.iInactiveSince = Infinity;
115
115
  this.mPatchRequests = {}; // map from path to an array of (PATCH) promises
116
+ this.mEditUrl2PatchPromise = {}; // map from edit URL to a PATCH promise for retry
116
117
  // a promise with attached properties $count, $resolve existing while DELETEs or POSTs are
117
118
  // being sent
118
119
  this.oPendingRequestsPromise = null;
@@ -1710,10 +1711,11 @@ sap.ui.define([
1710
1711
  return oPromise.then(function (oEntity) {
1711
1712
  var sFullPath = _Helper.buildPath(sEntityPath, sPropertyPath),
1712
1713
  sGroupId = oGroupLock.getGroupId(),
1713
- vOldValue,
1714
+ oOldData,
1714
1715
  oPatchPromise,
1715
1716
  oPostBody,
1716
1717
  sParkedGroup,
1718
+ bSkip,
1717
1719
  sTransientGroup,
1718
1720
  sUnitOrCurrencyValue,
1719
1721
  oUpdateData = _Cache.makeUpdateData(aPropertyPath, vValue);
@@ -1725,8 +1727,29 @@ sap.ui.define([
1725
1727
  function onCancel() {
1726
1728
  _Helper.removeByPath(that.mPatchRequests, sFullPath, oPatchPromise);
1727
1729
  // write the previous value into the cache
1728
- _Helper.updateExisting(that.mChangeListeners, sEntityPath, oEntity,
1729
- _Cache.makeUpdateData(aPropertyPath, vOldValue));
1730
+ _Helper.updateExisting(that.mChangeListeners, sEntityPath, oEntity, oOldData);
1731
+ }
1732
+
1733
+ /*
1734
+ * Callback to merge the entity's old data into its one remaining PATCH. If
1735
+ * no old data from another PATCH is supplied, the PATCH is skipped and returns its
1736
+ * old data. Otherwise the given old data from the skipped patch is merged into the
1737
+ * surviving PATCH's own old data.
1738
+ *
1739
+ * @param {object} [oOtherOldData]
1740
+ * Either another PATCH's old data which is to be merged into this one or
1741
+ * <code>undefined</code> if this PATCH is the skipped one and has to return its own
1742
+ * old data.
1743
+ * @returns {object}
1744
+ * This PATCH's old data which is to be merged into another one or
1745
+ * <code>undefined</code> if this is the surviving PATCH.
1746
+ */
1747
+ function mergePatchRequests(oOtherOldData) {
1748
+ if (arguments.length === 0) {
1749
+ bSkip = true;
1750
+ return oOldData; // my PATCH was merged
1751
+ }
1752
+ _Helper.updateNonExisting(oOldData, oOtherOldData);
1730
1753
  }
1731
1754
 
1732
1755
  function patch(oPatchGroupLock, bAtFront) {
@@ -1749,7 +1772,8 @@ sap.ui.define([
1749
1772
  oPatchPromise = that.oRequestor.request("PATCH", sEditUrl, oPatchGroupLock,
1750
1773
  mHeaders, oUpdateData, onSubmit, onCancel, /*sMetaPath*/undefined,
1751
1774
  _Helper.buildPath(that.getOriginalResourcePath(oEntity), sEntityPath),
1752
- bAtFront);
1775
+ bAtFront, /*mQueryOptions*/ undefined, /*vOwner*/ undefined,
1776
+ mergePatchRequests);
1753
1777
  oPatchPromise.$isKeepAlive = fnIsKeepAlive;
1754
1778
  _Helper.addByPath(that.mPatchRequests, sFullPath, oPatchPromise);
1755
1779
  return SyncPromise.all([
@@ -1759,6 +1783,10 @@ sap.ui.define([
1759
1783
  var oPatchResult = aResult[0];
1760
1784
 
1761
1785
  _Helper.removeByPath(that.mPatchRequests, sFullPath, oPatchPromise);
1786
+ if (bSkip) {
1787
+ // if a PATCH is skipped, because it is merged into another, nothing to do!
1788
+ return;
1789
+ }
1762
1790
  if (!bPatchWithoutSideEffects) {
1763
1791
  // visit response to report the messages
1764
1792
  that.visitResponse(oPatchResult, aResult[1],
@@ -1782,11 +1810,19 @@ sap.ui.define([
1782
1810
  if (oError.canceled) {
1783
1811
  throw oError;
1784
1812
  }
1813
+ oRequestLock.unlock();
1814
+ oRequestLock = undefined;
1815
+
1816
+ fnErrorCallback(oError);
1817
+ if (bSkip) {
1818
+ // Note: this PATCH is already merged into another
1819
+ // --> return the corresponding PATCH promise
1820
+ return that.mEditUrl2PatchPromise[sEditUrl];
1821
+ }
1785
1822
 
1786
1823
  // Note: We arrive here only for the PATCH which was really sent to the server.
1787
1824
  // The other ones which have been merged are still pending on this one!
1788
1825
  // In the end, they will either succeed or be canceled.
1789
- fnErrorCallback(oError);
1790
1826
  switch (that.oRequestor.getGroupSubmitMode(sGroupId)) {
1791
1827
  case "API":
1792
1828
  break;
@@ -1801,14 +1837,16 @@ sap.ui.define([
1801
1837
  default:
1802
1838
  throw oError; // no retry, just give up
1803
1839
  }
1804
- oRequestLock.unlock();
1805
- oRequestLock = undefined;
1806
1840
 
1807
- return patch(that.oRequestor.lockGroup(sRetryGroupId, that, true, true), true);
1841
+ that.mEditUrl2PatchPromise[sEditUrl]
1842
+ = patch(that.oRequestor.lockGroup(sRetryGroupId, that, true, true), true);
1843
+
1844
+ return that.mEditUrl2PatchPromise[sEditUrl];
1808
1845
  }).finally(function () {
1809
1846
  if (oRequestLock) {
1810
1847
  oRequestLock.unlock();
1811
1848
  }
1849
+ delete that.mEditUrl2PatchPromise[sEditUrl];
1812
1850
  });
1813
1851
  }
1814
1852
 
@@ -1832,7 +1870,9 @@ sap.ui.define([
1832
1870
  }
1833
1871
  }
1834
1872
  // remember the old value
1835
- vOldValue = _Helper.drillDown(oEntity, aPropertyPath);
1873
+ oOldData
1874
+ = _Cache.makeUpdateData(aPropertyPath, _Helper.drillDown(oEntity, aPropertyPath));
1875
+
1836
1876
  oPostBody = _Helper.getPrivateAnnotation(oEntity, "postBody");
1837
1877
  if (oPostBody) {
1838
1878
  // change listeners are informed later
@@ -550,6 +550,8 @@ sap.ui.define([
550
550
  && oCandidate.headers["If-Match"] === oChange.headers["If-Match"]) {
551
551
  _Helper.merge(oCandidate.body, oChange.body);
552
552
  oChange.$resolve(oCandidate.$promise);
553
+ oCandidate.$mergeRequests(oChange.$mergeRequests());
554
+
553
555
  return true;
554
556
  }
555
557
  });
@@ -1715,7 +1717,7 @@ sap.ui.define([
1715
1717
  * @param {any} [vOwner]
1716
1718
  * An additional precondition for the merging of GET requests: the owner must be identical.
1717
1719
  * @param {function(string[]):string[]} [fnMergeRequests]
1718
- * Function which is called during merging of GET requests. If a merged request has a
1720
+ * Function which is called during merging of GET or PATCH requests. If a merged request has a
1719
1721
  * function given, this function will be called and its return value is
1720
1722
  * given to the one remaining request's function as a parameter.
1721
1723
  * @returns {Promise}
@@ -228,7 +228,7 @@ sap.ui.define([
228
228
  *
229
229
  * @extends sap.ui.model.Model
230
230
  * @public
231
- * @version 1.102.1
231
+ * @version 1.102.2
232
232
  */
233
233
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
234
234
 
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.1
22
+ * @version 1.102.2
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.model.CompositeType
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.102.1
35
+ * @version 1.102.2
36
36
  *
37
37
  * @public
38
38
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.102.1
29
+ * @version 1.102.2
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.model.CompositeType
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.102.1
36
+ * @version 1.102.2
37
37
  *
38
38
  * @public
39
39
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.1
22
+ * @version 1.102.2
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.1
22
+ * @version 1.102.2
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.102.1
27
+ * @version 1.102.2
28
28
  *
29
29
  * @public
30
30
  * @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.102.1
29
+ * @version 1.102.2
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.102.1
29
+ * @version 1.102.2
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.102.1
27
+ * @version 1.102.2
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.1
22
+ * @version 1.102.2
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.102.1
22
+ * @version 1.102.2
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  *
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.102.1
50
+ * @version 1.102.2
51
51
  *
52
52
  * @public
53
53
  * @param {object} [oFormatOptions]
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.102.1
50
+ * @version 1.102.2
51
51
  *
52
52
  * @param {object} oData either the URL where to load the XML from or an XML
53
53
  * @public
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.102.1
56
+ * @version 1.102.2
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -27,7 +27,7 @@ sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core'
27
27
  * @namespace
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.102.1
30
+ * @version 1.102.2
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.base.Object
25
25
  * @abstract
26
26
  * @author SAP SE
27
- * @version 1.102.1
27
+ * @version 1.102.2
28
28
  * @since 1.100
29
29
  */
30
30
  return BaseObject.extend("sap.ui.test.generic.TestBase", {
@@ -250,7 +250,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
250
250
  *
251
251
  * @enum {string}
252
252
  * @public
253
- * @version 1.102.1
253
+ * @version 1.102.2
254
254
  */
255
255
  Storage.Type = {
256
256
  /**