@openui5/sap.ui.core 1.96.21 → 1.96.22

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 (246) 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/hyphenation/Hyphenation.js +1 -1
  111. package/src/sap/ui/core/library.js +3 -3
  112. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  113. package/src/sap/ui/core/message/Message.js +1 -1
  114. package/src/sap/ui/core/message/MessageManager.js +1 -1
  115. package/src/sap/ui/core/message/MessageParser.js +1 -1
  116. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  117. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  118. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  119. package/src/sap/ui/core/mvc/JSView.js +1 -1
  120. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  121. package/src/sap/ui/core/mvc/View.js +1 -1
  122. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  123. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  124. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  125. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  126. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  127. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  128. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  129. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  130. package/src/sap/ui/core/service/Service.js +1 -1
  131. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  132. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  133. package/src/sap/ui/core/support/Plugin.js +1 -1
  134. package/src/sap/ui/core/support/Support.js +1 -1
  135. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  136. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  137. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  138. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  139. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  140. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  141. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  142. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  143. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  144. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  145. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  146. package/src/sap/ui/core/tmpl/Template.js +1 -1
  147. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  148. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  149. package/src/sap/ui/core/util/Export.js +1 -1
  150. package/src/sap/ui/core/util/ExportCell.js +1 -1
  151. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  152. package/src/sap/ui/core/util/ExportRow.js +1 -1
  153. package/src/sap/ui/core/util/ExportType.js +1 -1
  154. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  155. package/src/sap/ui/core/util/File.js +1 -1
  156. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  157. package/src/sap/ui/core/util/MockServer.js +1 -1
  158. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  159. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  160. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  161. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  162. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  163. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  164. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  165. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  166. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  167. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  168. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  169. package/src/sap/ui/debug/ControlTree.js +1 -1
  170. package/src/sap/ui/debug/DebugEnv.js +1 -1
  171. package/src/sap/ui/debug/PropertyList.js +1 -1
  172. package/src/sap/ui/model/ClientModel.js +1 -1
  173. package/src/sap/ui/model/CompositeDataState.js +1 -1
  174. package/src/sap/ui/model/CompositeType.js +1 -1
  175. package/src/sap/ui/model/DataState.js +1 -1
  176. package/src/sap/ui/model/MetaModel.js +1 -1
  177. package/src/sap/ui/model/Model.js +1 -1
  178. package/src/sap/ui/model/SelectionModel.js +1 -1
  179. package/src/sap/ui/model/SimpleType.js +1 -1
  180. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  181. package/src/sap/ui/model/Type.js +1 -1
  182. package/src/sap/ui/model/json/JSONModel.js +1 -1
  183. package/src/sap/ui/model/message/MessageModel.js +1 -1
  184. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  185. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  186. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  187. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  188. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  189. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  190. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  191. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  192. package/src/sap/ui/model/odata/type/Date.js +1 -1
  193. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  194. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  195. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  196. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  197. package/src/sap/ui/model/odata/type/Double.js +1 -1
  198. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  199. package/src/sap/ui/model/odata/type/Int.js +1 -1
  200. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  201. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  202. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  203. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  204. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  205. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  206. package/src/sap/ui/model/odata/type/Single.js +1 -1
  207. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  208. package/src/sap/ui/model/odata/type/String.js +1 -1
  209. package/src/sap/ui/model/odata/type/Time.js +1 -1
  210. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  211. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  212. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  213. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  214. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  215. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  216. package/src/sap/ui/model/odata/v4/Context.js +3 -3
  217. package/src/sap/ui/model/odata/v4/ODataBinding.js +67 -39
  218. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -3
  219. package/src/sap/ui/model/odata/v4/ODataListBinding.js +6 -5
  220. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +10 -11
  221. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  222. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +67 -32
  223. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -5
  224. package/src/sap/ui/model/odata/v4/lib/_Cache.js +3 -4
  225. package/src/sap/ui/model/odata/v4/lib/_Helper.js +5 -1
  226. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
  227. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
  228. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  229. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  230. package/src/sap/ui/model/type/Boolean.js +1 -1
  231. package/src/sap/ui/model/type/Currency.js +1 -1
  232. package/src/sap/ui/model/type/Date.js +1 -1
  233. package/src/sap/ui/model/type/DateInterval.js +1 -1
  234. package/src/sap/ui/model/type/DateTime.js +1 -1
  235. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  236. package/src/sap/ui/model/type/FileSize.js +1 -1
  237. package/src/sap/ui/model/type/Float.js +1 -1
  238. package/src/sap/ui/model/type/Integer.js +1 -1
  239. package/src/sap/ui/model/type/String.js +1 -1
  240. package/src/sap/ui/model/type/Time.js +1 -1
  241. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  242. package/src/sap/ui/model/type/Unit.js +1 -1
  243. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  244. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  245. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  246. package/src/sap/ui/util/Storage.js +1 -1
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @extends sap.ui.model.ClientModel
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.96.21
47
+ * @version 1.96.22
48
48
  * @public
49
49
  * @alias sap.ui.model.json.JSONModel
50
50
  */
@@ -29,7 +29,7 @@ sap.ui.define(['sap/ui/model/BindingMode', 'sap/ui/model/ClientModel', 'sap/ui/m
29
29
  * @extends sap.ui.model.ClientModel
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.96.21
32
+ * @version 1.96.22
33
33
  *
34
34
  * @param {sap.ui.core.message.MessageManager} oMessageManager The MessageManager instance
35
35
  * @public
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  *
26
26
  * @author SAP SE
27
27
  * @version
28
- * 1.96.21
28
+ * 1.96.22
29
29
  *
30
30
  * @public
31
31
  * @deprecated As of version 1.66, please use {@link sap.ui.model.odata.v2.ODataAnnotations} instead.
@@ -84,7 +84,7 @@ var sClassName = "sap.ui.model.odata.ODataMessageParser",
84
84
  * @extends sap.ui.core.message.MessageParser
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.96.21
87
+ * @version 1.96.22
88
88
  * @public
89
89
  * @alias sap.ui.model.odata.ODataMessageParser
90
90
  */
@@ -209,7 +209,7 @@ sap.ui.define([
209
209
  * {@link #loaded loaded} has been resolved!
210
210
  *
211
211
  * @author SAP SE
212
- * @version 1.96.21
212
+ * @version 1.96.22
213
213
  * @alias sap.ui.model.odata.ODataMetaModel
214
214
  * @extends sap.ui.model.MetaModel
215
215
  * @public
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * Implementation to access OData metadata
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.96.21
47
+ * @version 1.96.22
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.model.odata.ODataMetadata
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  *
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.96.21
79
+ * @version 1.96.22
80
80
  *
81
81
  * @public
82
82
  * @deprecated As of version 1.48, please use {@link sap.ui.model.odata.v2.ODataModel} instead.
@@ -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.96.21
90
+ * @version 1.96.22
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.96.21
27
+ * @version 1.96.22
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Byte
30
30
  * @param {object} [oFormatOptions]
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @extends sap.ui.model.type.Currency
62
62
  * @public
63
63
  * @since 1.63.0
64
- * @version 1.96.21
64
+ * @version 1.96.22
65
65
  */
66
66
  var Currency = BaseCurrency.extend("sap.ui.model.odata.type.Currency", {
67
67
  constructor : function (oFormatOptions, oConstraints) {
@@ -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.96.21
109
+ * @version 1.96.22
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.96.21
62
+ * @version 1.96.22
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.96.21
135
+ * @version 1.96.22
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.96.21
31
+ * @version 1.96.22
32
32
  *
33
33
  * @alias sap.ui.model.odata.type.DateTimeOffset
34
34
  * @param {object} [oFormatOptions]
@@ -197,7 +197,7 @@ sap.ui.define([
197
197
  * @extends sap.ui.model.odata.type.ODataType
198
198
  *
199
199
  * @author SAP SE
200
- * @version 1.96.21
200
+ * @version 1.96.22
201
201
  *
202
202
  * @alias sap.ui.model.odata.type.Decimal
203
203
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.21
98
+ * @version 1.96.22
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Double
101
101
  * @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.96.21
65
+ * @version 1.96.22
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.96.21
83
+ * @version 1.96.22
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.96.21
27
+ * @version 1.96.22
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.96.21
27
+ * @version 1.96.22
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.96.21
140
+ * @version 1.96.22
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.96.21
118
+ * @version 1.96.22
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.96.21
33
+ * @version 1.96.22
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.96.21
27
+ * @version 1.96.22
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.21
98
+ * @version 1.96.22
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Single
101
101
  * @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.96.21
63
+ * @version 1.96.22
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.96.21
87
+ * @version 1.96.22
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.96.21
157
+ * @version 1.96.22
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.96.21
113
+ * @version 1.96.22
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.96.21
66
+ * @version 1.96.22
67
67
  */
68
68
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
69
69
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @hideconstructor
53
53
  * @public
54
54
  * @since 1.93.0
55
- * @version 1.96.21
55
+ * @version 1.96.22
56
56
  */
57
57
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
58
58
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise) {
@@ -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.96.21
38
+ * @version 1.96.22
39
39
  *
40
40
  * @public
41
41
  * @since 1.37.0
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * This model is not prepared to be inherited from.
202
202
  *
203
203
  * @author SAP SE
204
- * @version 1.96.21
204
+ * @version 1.96.22
205
205
  *
206
206
  * @public
207
207
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.TreeBinding
93
93
  * @hideconstructor
94
94
  * @public
95
- * @version 1.96.21
95
+ * @version 1.96.22
96
96
  */
97
97
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
98
98
 
@@ -98,7 +98,7 @@ sap.ui.define([
98
98
  * @hideconstructor
99
99
  * @public
100
100
  * @since 1.39.0
101
- * @version 1.96.21
101
+ * @version 1.96.22
102
102
  */
103
103
  var Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
104
104
  constructor : function (oModel, oBinding, sPath, iIndex, oCreatePromise, iGeneration) {
@@ -977,7 +977,7 @@ sap.ui.define([
977
977
  this.oBinding.checkSuspended();
978
978
 
979
979
  return Promise.all(aPaths.map(function (sPath) {
980
- return that.oBinding.fetchIfChildCanUseCache(that, sPath, SyncPromise.resolve({}))
980
+ return that.oBinding.fetchIfChildCanUseCache(that, sPath, undefined, true)
981
981
  .then(function (sReducedPath) {
982
982
  if (sReducedPath) {
983
983
  return fetchPrimitiveValue(that, sReducedPath, bExternalFormat);
@@ -1376,7 +1376,7 @@ sap.ui.define([
1376
1376
  if (!sMessagesPath) {
1377
1377
  throw new Error("Missing @com.sap.vocabularies.Common.v1.Messages");
1378
1378
  }
1379
- this.oBinding.fetchIfChildCanUseCache(this, sMessagesPath, {})
1379
+ this.oBinding.fetchIfChildCanUseCache(this, sMessagesPath, undefined, true)
1380
1380
  .then(function (sReducedPath) {
1381
1381
  return that.fetchValue(sReducedPath);
1382
1382
  })
@@ -364,17 +364,17 @@ sap.ui.define([
364
364
  };
365
365
 
366
366
  /**
367
- * Hook method for {@link #fetchQueryOptionsForOwnCache} to determine the query options for this
368
- * binding.
367
+ * Hook method for {@link #fetchOrGetQueryOptionsForOwnCache} to determine the query options for
368
+ * this binding.
369
369
  *
370
370
  * @param {sap.ui.model.Context} [oContext]
371
371
  * The context instance to be used for a relative binding
372
- * @returns {sap.ui.base.SyncPromise}
373
- * A promise resolving with the binding's query options
372
+ * @returns {object|undefined|sap.ui.base.SyncPromise}
373
+ * The binding's query options (if any) or a promise resolving with them
374
374
  *
375
375
  * @abstract
376
376
  * @function
377
- * @name sap.ui.model.odata.v4.ODataBinding#doFetchQueryOptions
377
+ * @name sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
378
378
  * @private
379
379
  */
380
380
 
@@ -430,7 +430,7 @@ sap.ui.define([
430
430
  }
431
431
 
432
432
  aPromises = [
433
- this.fetchQueryOptionsForOwnCache(oContext, bIgnoreParentCache),
433
+ this.fetchOrGetQueryOptionsForOwnCache(oContext, bIgnoreParentCache),
434
434
  this.oModel.oRequestor.ready()
435
435
  ];
436
436
  this.mCacheQueryOptions = undefined;
@@ -476,60 +476,88 @@ sap.ui.define([
476
476
  * @param {boolean} [bIgnoreParentCache]
477
477
  * Whether the query options of the parent cache shall be ignored and own query options are
478
478
  * determined (see {@link #fetchCache})
479
- * @returns {sap.ui.base.SyncPromise}
480
- * A promise resolving with an object having two properties:
479
+ * @returns {object|sap.ui.base.SyncPromise}
480
+ * An object having two properties (or a promise resolving with it):
481
481
  * {object} mQueryOptions - The query options to create the cache for this binding or
482
482
  * <code>undefined</code> if no cache is to be created
483
483
  * {string} sReducedPath - The binding's absolute, reduced path in the cache hierarchy
484
484
  *
485
485
  * @private
486
486
  */
487
- ODataBinding.prototype.fetchQueryOptionsForOwnCache = function (oContext, bIgnoreParentCache) {
487
+ ODataBinding.prototype.fetchOrGetQueryOptionsForOwnCache = function (oContext,
488
+ bIgnoreParentCache) {
488
489
  var bHasNonSystemQueryOptions,
489
- oQueryOptionsPromise,
490
+ vQueryOptions, // {object|undefined|sap.ui.base.SyncPromise}
490
491
  sResolvedPath = this.oModel.resolve(this.sPath, oContext),
491
492
  that = this;
492
493
 
493
494
  /*
494
- * Wraps the given query options (promise) and adds sResolvedPath so that it can be returned
495
- * by fetchQueryOptionsForOwnCache.
495
+ * Wraps the given query options and adds sReducedPath to create a result for
496
+ * #fetchOrGetQueryOptionsForOwnCache.
496
497
  *
497
- * @param {object|sap.ui.base.SyncPromise} vQueryOptions
498
- * The query options (promise)
498
+ * @param {object} [mQueryOptions]
499
+ * Map of query options, or <code>undefined</code>
500
+ * @param {boolean} [bDropEmptyObject]
501
+ * Whether an empty query options object should be replaced by <code>undefined</code>
499
502
  * @param {string} [sReducedPath=sResolvedPath]
500
503
  * The reduced path
501
- * @returns {sap.ui.base.SyncPromise}
502
- * A promise to be returned by fetchQueryOptionsForOwnCache
504
+ * @returns {object}
505
+ * A result for #fetchOrGetQueryOptionsForOwnCache
503
506
  */
504
- function wrapQueryOptions(vQueryOptions, sReducedPath) {
505
- return SyncPromise.resolve(vQueryOptions).then(function (mQueryOptions) {
506
- return {
507
- mQueryOptions : mQueryOptions,
508
- sReducedPath : sReducedPath || sResolvedPath
509
- };
510
- });
507
+ function _wrapQueryOptions(mQueryOptions, bDropEmptyObject, sReducedPath) {
508
+ if (bDropEmptyObject && mQueryOptions && _Helper.isEmptyObject(mQueryOptions)) {
509
+ mQueryOptions = undefined;
510
+ }
511
+ return {
512
+ mQueryOptions : mQueryOptions,
513
+ sReducedPath : sReducedPath || sResolvedPath
514
+ };
515
+ }
516
+
517
+ /*
518
+ * Waits for <code>vQueryOptions</code> (if needed) and then creates a result for
519
+ * #fetchOrGetQueryOptionsForOwnCache.
520
+ *
521
+ * @param {boolean} [bDropEmptyObject]
522
+ * Whether an empty query options object should be replaced by <code>undefined</code>
523
+ * @param {string} [sReducedPath=sResolvedPath]
524
+ * The reduced path
525
+ * @returns {object|sap.ui.base.SyncPromise}
526
+ * A result for #fetchOrGetQueryOptionsForOwnCache
527
+ */
528
+ function wrapQueryOptions(bDropEmptyObject, sReducedPath) {
529
+ if (vQueryOptions instanceof SyncPromise) {
530
+ if (!vQueryOptions.isFulfilled()) {
531
+ return vQueryOptions.then(function (mQueryOptions) {
532
+ return _wrapQueryOptions(mQueryOptions, bDropEmptyObject, sReducedPath);
533
+ });
534
+ }
535
+ vQueryOptions = vQueryOptions.getResult();
536
+ }
537
+
538
+ return _wrapQueryOptions(vQueryOptions, bDropEmptyObject, sReducedPath);
511
539
  }
512
540
 
513
541
  if (this.oOperation // operation binding manages its cache on its own
514
542
  || this.bRelative && !oContext // unresolved binding
515
543
  || this.isMeta()) {
516
- return wrapQueryOptions(undefined);
544
+ return _wrapQueryOptions();
517
545
  }
518
546
 
519
547
  // auto-$expand/$select and binding is a parent binding, so that it needs to wait until all
520
548
  // its child bindings know via the corresponding promise in this.aChildCanUseCachePromises
521
549
  // if they can use the parent binding's cache
522
550
  // With $$aggregation, no auto-$expand/$select is needed
523
- oQueryOptionsPromise = this.doFetchQueryOptions(oContext);
551
+ vQueryOptions = this.doFetchOrGetQueryOptions(oContext);
524
552
  if (this.oModel.bAutoExpandSelect && this.aChildCanUseCachePromises
525
- && !(this.mParameters && this.mParameters.$$aggregation)) {
553
+ && !this.mParameters.$$aggregation) {
526
554
  // For auto-$expand/$select, wait for query options of dependent bindings:
527
555
  // Promise.resolve() ensures all dependent bindings are created and have sent their
528
556
  // query options promise to this binding via fetchIfChildCanUseCache.
529
557
  // The aggregated query options of this binding and its dependent bindings are available
530
558
  // in that.mAggregatedQueryOptions once all these promises are fulfilled.
531
- oQueryOptionsPromise = SyncPromise.all([
532
- oQueryOptionsPromise,
559
+ vQueryOptions = SyncPromise.all([
560
+ vQueryOptions,
533
561
  Promise.resolve().then(function () {
534
562
  return SyncPromise.all(that.aChildCanUseCachePromises);
535
563
  })
@@ -543,7 +571,7 @@ sap.ui.define([
543
571
  // parent cache is ignored or (quasi-)absolute binding
544
572
  if (bIgnoreParentCache || !this.bRelative || !oContext.fetchValue) {
545
573
  // the binding shall create its own cache
546
- return wrapQueryOptions(oQueryOptionsPromise);
574
+ return wrapQueryOptions();
547
575
  }
548
576
 
549
577
  // auto-$expand/$select: Use parent binding's cache if possible
@@ -553,27 +581,27 @@ sap.ui.define([
553
581
  return sKey[0] !== "$" || sKey[1] === "$";
554
582
  });
555
583
  if (bHasNonSystemQueryOptions) {
556
- return wrapQueryOptions(oQueryOptionsPromise);
584
+ return wrapQueryOptions();
557
585
  }
558
586
  return oContext.getBinding()
559
- .fetchIfChildCanUseCache(oContext, that.sPath, oQueryOptionsPromise)
587
+ .fetchIfChildCanUseCache(oContext, that.sPath, vQueryOptions,
588
+ !this.mParameters) // duck typing for property binding
560
589
  .then(function (sReducedPath) {
561
- return wrapQueryOptions(sReducedPath ? undefined : oQueryOptionsPromise,
562
- sReducedPath);
590
+ if (sReducedPath) {
591
+ vQueryOptions = undefined;
592
+ }
593
+ return wrapQueryOptions(false, sReducedPath);
563
594
  });
564
595
  }
565
596
 
566
597
  // relative list or context binding with parameters which are not query options
567
598
  // (such as $$groupId)
568
- if (this.mParameters && Object.keys(this.mParameters).length) {
569
- return wrapQueryOptions(oQueryOptionsPromise);
599
+ if (this.mParameters && !_Helper.isEmptyObject(this.mParameters)) {
600
+ return wrapQueryOptions();
570
601
  }
571
602
 
572
603
  // relative binding which may have query options from UI5 filter or sorter objects
573
- return oQueryOptionsPromise.then(function (mQueryOptions) {
574
- return wrapQueryOptions(
575
- Object.keys(mQueryOptions).length ? mQueryOptions : undefined);
576
- });
604
+ return wrapQueryOptions(true);
577
605
  };
578
606
 
579
607
  /**
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
107
107
  * @public
108
108
  * @since 1.37.0
109
- * @version 1.96.21
109
+ * @version 1.96.22
110
110
  *
111
111
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
112
112
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -751,9 +751,9 @@ sap.ui.define([
751
751
 
752
752
  /**
753
753
  * @override
754
- * @see sap.ui.model.odata.v4.ODataBinding#doFetchQueryOptions
754
+ * @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
755
755
  */
756
- ODataContextBinding.prototype.doFetchQueryOptions = function (oContext) {
756
+ ODataContextBinding.prototype.doFetchOrGetQueryOptions = function (oContext) {
757
757
  return this.fetchResolvedQueryOptions(oContext);
758
758
  };
759
759
 
@@ -1417,6 +1417,7 @@ sap.ui.define([
1417
1417
  if (bParentHasChanges || sResumeChangeReason) {
1418
1418
  this.mAggregatedQueryOptions = {};
1419
1419
  this.bAggregatedQueryOptionsInitial = true;
1420
+ this.mCanUseCachePromiseByChildPath = {};
1420
1421
  this.removeCachesAndMessages("");
1421
1422
  this.fetchCache(this.oContext);
1422
1423
  }
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
77
77
  * @public
78
78
  * @since 1.37.0
79
- * @version 1.96.21
79
+ * @version 1.96.22
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
81
81
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
82
82
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -380,7 +380,7 @@ sap.ui.define([
380
380
  sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
381
381
  }
382
382
  this.mQueryOptions = this.oModel.buildQueryOptions(mParameters, true);
383
- this.oQueryOptionsPromise = undefined; // @see #doFetchQueryOptions
383
+ this.oQueryOptionsPromise = undefined; // @see #doFetchOrGetQueryOptions
384
384
  this.mParameters = mParameters; // store mParameters at binding after validation
385
385
  if (sApply) {
386
386
  this.mQueryOptions.$apply = sApply;
@@ -1040,9 +1040,9 @@ sap.ui.define([
1040
1040
 
1041
1041
  /**
1042
1042
  * @override
1043
- * @see sap.ui.model.odata.v4.ODataBinding#doFetchQueryOptions
1043
+ * @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
1044
1044
  */
1045
- ODataListBinding.prototype.doFetchQueryOptions = function (oContext) {
1045
+ ODataListBinding.prototype.doFetchOrGetQueryOptions = function (oContext) {
1046
1046
  // Note: an absolute binding needs no parent context :-)
1047
1047
  var sMetaPath = oContext && _Helper.getMetaPath(oContext.getPath()),
1048
1048
  that = this;
@@ -2212,7 +2212,7 @@ sap.ui.define([
2212
2212
  ODataListBinding.prototype.inheritQueryOptions = function (mQueryOptions, oContext) {
2213
2213
  var mInheritedQueryOptions;
2214
2214
 
2215
- if (!Object.keys(this.mParameters).length) {
2215
+ if (_Helper.isEmptyObject(this.mParameters)) {
2216
2216
  // mix-in inherited static query options
2217
2217
  mInheritedQueryOptions = this.getQueryOptionsForPath("", oContext);
2218
2218
  if (mQueryOptions.$orderby && mInheritedQueryOptions.$orderby) {
@@ -3092,6 +3092,7 @@ sap.ui.define([
3092
3092
  }
3093
3093
  if (this.bHasPathReductionToParent && this.oModel.bAutoExpandSelect
3094
3094
  && !this.mParameters.$$aggregation) {
3095
+ this.mCanUseCachePromiseByChildPath = {};
3095
3096
  this.sChangeReason = "AddVirtualContext"; // JIRA: CPOUI5ODATAV4-848
3096
3097
  }
3097
3098
  if (oContext.getBinding