@openui5/sap.ui.core 1.106.0 → 1.107.1

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 (307) 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/jquery.sap.ui.js +5 -7
  8. package/src/sap/base/util/LoaderExtensions.js +6 -6
  9. package/src/sap/base/util/fetch.js +3 -0
  10. package/src/sap/base/util/mixedFetch.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +3 -3
  53. package/src/sap/ui/Global.js +4 -4
  54. package/src/sap/ui/base/DataType.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +1 -1
  65. package/src/sap/ui/core/AppCacheBuster.js +3 -4
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
  68. package/src/sap/ui/core/CalendarType.js +0 -1
  69. package/src/sap/ui/core/Component.js +12 -10
  70. package/src/sap/ui/core/ComponentContainer.js +6 -5
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +1 -1
  74. package/src/sap/ui/core/Control.js +7 -7
  75. package/src/sap/ui/core/Core.js +31 -304
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +6 -6
  79. package/src/sap/ui/core/ElementMetadata.js +1 -1
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +1 -1
  82. package/src/sap/ui/core/FocusHandler.js +50 -2
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +1 -2
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -2
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -2
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +5 -5
  92. package/src/sap/ui/core/Item.js +1 -2
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -2
  95. package/src/sap/ui/core/ListItem.js +1 -2
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +11 -9
  99. package/src/sap/ui/core/Manifest.js +8 -6
  100. package/src/sap/ui/core/Message.js +4 -6
  101. package/src/sap/ui/core/Popup.js +62 -5
  102. package/src/sap/ui/core/RenderManager.js +7 -5
  103. package/src/sap/ui/core/Renderer.js +5 -4
  104. package/src/sap/ui/core/Rendering.js +251 -0
  105. package/src/sap/ui/core/ResizeHandler.js +1 -1
  106. package/src/sap/ui/core/ScrollBar.js +6 -9
  107. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  108. package/src/sap/ui/core/SeparatorItem.js +1 -2
  109. package/src/sap/ui/core/Title.js +1 -2
  110. package/src/sap/ui/core/TooltipBase.js +1 -2
  111. package/src/sap/ui/core/UIArea.js +389 -121
  112. package/src/sap/ui/core/UIComponent.js +1 -2
  113. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  114. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  115. package/src/sap/ui/core/VariantLayoutData.js +1 -2
  116. package/src/sap/ui/core/XMLComposite.js +1 -1
  117. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  118. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -3
  119. package/src/sap/ui/core/cache/CacheManager.js +7 -6
  120. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
  121. package/src/sap/ui/core/date/Islamic.js +4 -4
  122. package/src/sap/ui/core/date/UniversalDate.js +8 -8
  123. package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
  124. package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
  125. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  126. package/src/sap/ui/core/dnd/DragAndDrop.js +4 -3
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
  129. package/src/sap/ui/core/dnd/DragInfo.js +1 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -2
  131. package/src/sap/ui/core/format/DateFormat.js +9 -7
  132. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
  133. package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
  134. package/src/sap/ui/core/format/ListFormat.js +4 -3
  135. package/src/sap/ui/core/format/NumberFormat.js +6 -5
  136. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  137. package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
  138. package/src/sap/ui/core/library.js +3 -55
  139. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  140. package/src/sap/ui/core/message/Message.js +1 -1
  141. package/src/sap/ui/core/message/MessageManager.js +13 -23
  142. package/src/sap/ui/core/message/MessageParser.js +1 -1
  143. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  144. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  145. package/src/sap/ui/core/mvc/Controller.js +3 -3
  146. package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
  147. package/src/sap/ui/core/mvc/HTMLView.js +1 -2
  148. package/src/sap/ui/core/mvc/JSONView.js +1 -2
  149. package/src/sap/ui/core/mvc/JSView.js +1 -2
  150. package/src/sap/ui/core/mvc/TemplateView.js +1 -2
  151. package/src/sap/ui/core/mvc/View.js +21 -20
  152. package/src/sap/ui/core/mvc/ViewType.js +0 -1
  153. package/src/sap/ui/core/mvc/XMLView.js +18 -18
  154. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  155. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  157. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  158. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  159. package/src/sap/ui/core/routing/async/Target.js +4 -3
  160. package/src/sap/ui/core/rules/Config.support.js +6 -4
  161. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  162. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
  163. package/src/sap/ui/core/search/SearchProvider.js +1 -3
  164. package/src/sap/ui/core/service/Service.js +1 -1
  165. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  166. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  167. package/src/sap/ui/core/support/Plugin.js +1 -1
  168. package/src/sap/ui/core/support/Support.js +1 -1
  169. package/src/sap/ui/core/support/ToolsAPI.js +11 -13
  170. package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
  171. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  172. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  173. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  174. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  175. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  176. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  177. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  178. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +7 -5
  179. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
  180. package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
  181. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  182. package/src/sap/ui/core/tmpl/Template.js +1 -2
  183. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
  184. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  185. package/src/sap/ui/core/util/Export.js +1 -1
  186. package/src/sap/ui/core/util/ExportCell.js +1 -1
  187. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  188. package/src/sap/ui/core/util/ExportRow.js +1 -1
  189. package/src/sap/ui/core/util/ExportType.js +1 -1
  190. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  191. package/src/sap/ui/core/util/File.js +1 -1
  192. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  193. package/src/sap/ui/core/util/MockServer.js +4 -2
  194. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  195. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  196. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  197. package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
  198. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  199. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  200. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  201. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  202. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  203. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  204. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  205. package/src/sap/ui/debug/ControlTree.js +3 -3
  206. package/src/sap/ui/debug/DebugEnv.js +4 -4
  207. package/src/sap/ui/debug/PropertyList.js +1 -1
  208. package/src/sap/ui/model/ClientModel.js +1 -1
  209. package/src/sap/ui/model/ClientTreeBinding.js +3 -1
  210. package/src/sap/ui/model/CompositeDataState.js +1 -1
  211. package/src/sap/ui/model/CompositeType.js +1 -1
  212. package/src/sap/ui/model/DataState.js +1 -1
  213. package/src/sap/ui/model/MetaModel.js +1 -1
  214. package/src/sap/ui/model/Model.js +1 -1
  215. package/src/sap/ui/model/SelectionModel.js +1 -1
  216. package/src/sap/ui/model/SimpleType.js +1 -1
  217. package/src/sap/ui/model/Sorter.js +22 -17
  218. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  219. package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
  220. package/src/sap/ui/model/Type.js +1 -1
  221. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  222. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
  223. package/src/sap/ui/model/json/JSONModel.js +8 -6
  224. package/src/sap/ui/model/message/MessageModel.js +1 -1
  225. package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
  226. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  227. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  228. package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
  229. package/src/sap/ui/model/odata/ODataModel.js +6 -5
  230. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
  231. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  232. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  233. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  234. package/src/sap/ui/model/odata/type/Date.js +1 -1
  235. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  236. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  237. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  238. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  239. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  240. package/src/sap/ui/model/odata/type/Double.js +1 -1
  241. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  242. package/src/sap/ui/model/odata/type/Int.js +1 -1
  243. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  244. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  245. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  246. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  247. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  248. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  249. package/src/sap/ui/model/odata/type/Single.js +1 -1
  250. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  251. package/src/sap/ui/model/odata/type/String.js +1 -1
  252. package/src/sap/ui/model/odata/type/Time.js +1 -1
  253. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  254. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  255. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  256. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
  257. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +24 -15
  258. package/src/sap/ui/model/odata/v2/ODataListBinding.js +45 -27
  259. package/src/sap/ui/model/odata/v2/ODataModel.js +94 -36
  260. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
  261. package/src/sap/ui/model/odata/v4/Context.js +23 -19
  262. package/src/sap/ui/model/odata/v4/ODataBinding.js +7 -3
  263. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -3
  264. package/src/sap/ui/model/odata/v4/ODataListBinding.js +121 -57
  265. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -11
  266. package/src/sap/ui/model/odata/v4/ODataModel.js +111 -69
  267. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +12 -4
  268. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  269. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  270. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +41 -29
  271. package/src/sap/ui/model/odata/v4/lib/_Cache.js +59 -20
  272. package/src/sap/ui/model/odata/v4/lib/_Helper.js +135 -4
  273. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +21 -7
  274. package/src/sap/ui/model/resource/ResourceModel.js +7 -6
  275. package/src/sap/ui/model/type/Boolean.js +1 -1
  276. package/src/sap/ui/model/type/Currency.js +1 -1
  277. package/src/sap/ui/model/type/Date.js +1 -1
  278. package/src/sap/ui/model/type/DateInterval.js +1 -1
  279. package/src/sap/ui/model/type/DateTime.js +1 -1
  280. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  281. package/src/sap/ui/model/type/FileSize.js +1 -1
  282. package/src/sap/ui/model/type/Float.js +1 -1
  283. package/src/sap/ui/model/type/Integer.js +1 -1
  284. package/src/sap/ui/model/type/String.js +1 -1
  285. package/src/sap/ui/model/type/Time.js +1 -1
  286. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  287. package/src/sap/ui/model/type/Unit.js +5 -4
  288. package/src/sap/ui/model/xml/XMLModel.js +8 -6
  289. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  290. package/src/sap/ui/qunit/QUnitUtils.js +2 -1
  291. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  292. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  293. package/src/sap/ui/test/Opa.js +7 -5
  294. package/src/sap/ui/test/Opa5.js +9 -15
  295. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  296. package/src/sap/ui/test/TestUtils.js +83 -1
  297. package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
  298. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
  299. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
  300. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
  301. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
  302. package/src/sap/ui/test/autowaiter/_utils.js +13 -1
  303. package/src/sap/ui/test/generic/TestBase.js +1 -1
  304. package/src/sap/ui/test/matchers/Ancestor.js +1 -0
  305. package/src/sap/ui/test/matchers/Descendant.js +1 -0
  306. package/src/sap/ui/test/matchers/Sibling.js +1 -0
  307. package/src/sap/ui/util/Storage.js +1 -1
@@ -35,43 +35,61 @@ sap.ui.define([
35
35
 
36
36
  /**
37
37
  * @class
38
- * List binding implementation for OData format.
39
- *
40
- * @param {sap.ui.model.odata.v2.ODataModel} oModel Model that this list binding belongs to
41
- * @param {string} sPath Path into the model data, relative to the given <code>oContext</code>
42
- * @param {sap.ui.model.Context} oContext Context that the <code>sPath</code> is based on
43
- * @param {sap.ui.model.Sorter|sap.ui.model.Sorter[]} [aSorters] Initial sort order, can be either a sorter or an array of sorters
44
- * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [aFilters] Predefined filters, can be either a filter or an array of filters
45
- * @param {object} [mParameters] A map which contains additional parameters for the binding
46
- * @param {string} [mParameters.batchGroupId] Sets the batch group ID to be used for requests originating from this binding
47
- * @param {sap.ui.model.odata.CountMode} [mParameters.countMode] Defines the count mode of this binding;
48
- * if not specified, the default count mode of the <code>oModel</code> is applied
38
+ * List binding for an OData V2 model.
39
+ *
40
+ * @param {sap.ui.model.odata.v2.ODataModel} oModel The OData V2 model
41
+ * @param {string} sPath The binding path in the model
42
+ * @param {sap.ui.model.Context} [oContext]
43
+ * The context which is required as base for a relative path.
44
+ * @param {sap.ui.model.Sorter|sap.ui.model.Sorter[]} [aSorters]
45
+ * Initial sort order, can be either a sorter or an array of sorters.
46
+ * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [aFilters]
47
+ * Predefined filters, can be either a filter or an array of filters.
48
+ * @param {object} [mParameters] A map which contains additional parameters for the binding.
49
+ * @param {sap.ui.model.odata.CountMode} [mParameters.countMode]
50
+ * Defines the count mode of the binding; if not specified, the default count mode of the
51
+ * <code>oModel</code> is applied.
49
52
  * @param {string} [mParameters.createdEntitiesKey=""]
50
- * A key used in combination with the resolved path of this binding to identify the entities
51
- * created by this binding's {@link #create} method.
53
+ * A key used in combination with the resolved path of the binding to identify the entities
54
+ * created by the binding's {@link #create} method.
52
55
  *
53
56
  * <b>Note:</b> Different controls or control aggregation bindings to the same collection must
54
57
  * have different <code>createdEntitiesKey</code> values.
55
- * @param {Object<string,string>} [mParameters.custom] An optional map of custom query parameters. Custom parameters must not start with <code>$</code>
56
- * @param {string} [mParameters.expand] Value for the OData <code>$expand</code> query parameter which is included in the request
57
- * @param {boolean} [mParameters.faultTolerant] Turns on the fault tolerance mode, data is not reset if a back-end request returns an error
58
- * @param {sap.ui.model.odata.OperationMode} [mParameters.operationMode] Defines the operation mode of this binding
59
- * @param {string} [mParameters.select] Value for the OData <code>$select</code> query parameter which is included in the request
60
- * @param {int} [mParameters.threshold]
61
- * Deprecated since 1.102.0, as {@link sap.ui.model.odata.OperationMode.Auto} is deprecated;
62
- * the threshold that defines how many entries should be fetched at least by the binding if
63
- * <code>operationMode</code> is set to <code>Auto</code>
58
+ * @param {Object<string,string>} [mParameters.custom]
59
+ * An optional map of custom query parameters. Custom parameters must not start with
60
+ * <code>$</code>.
61
+ * @param {string} [mParameters.expand]
62
+ * Value for the OData <code>$expand</code> query option parameter which is included in the
63
+ * data request after URL encoding of the given value.
64
+ * @param {boolean} [mParameters.faultTolerant]
65
+ * Turns on the fault tolerance mode, data is not reset if a back-end request returns an
66
+ * error.
67
+ * @param {string} [mParameters.groupId]
68
+ * The group id to be used for requests originating from the binding
69
+ * @param {sap.ui.model.odata.OperationMode} [mParameters.operationMode]
70
+ * The operation mode of the binding
71
+ * @param {string} [mParameters.select]
72
+ * Value for the OData <code>$select</code> query option parameter which is included in the
73
+ * data request after URL encoding of the given value.
64
74
  * @param {boolean} [mParameters.transitionMessagesOnly]
65
- * Whether this list binding only requests transition messages from the back end. If messages
75
+ * Whether the list binding only requests transition messages from the back end. If messages
66
76
  * for entities of this collection need to be updated, use
67
- * {@link sap.ui.model.odata.v2.ODataModel#read} on the parent entity corresponding to this
68
- * list binding's context with the parameter <code>updateAggregatedMessages</code> set to
77
+ * {@link sap.ui.model.odata.v2.ODataModel#read} on the parent entity corresponding to the
78
+ * list binding's context, with the parameter <code>updateAggregatedMessages</code> set to
69
79
  * <code>true</code>.
70
80
  * @param {boolean} [mParameters.usePreliminaryContext]
71
- * Whether a preliminary context will be used. When set to <code>true</code>, the model can
81
+ * Whether a preliminary context is used. When set to <code>true</code>, the model can
72
82
  * bundle the OData calls for dependent bindings into fewer $batch requests. For more
73
83
  * information, see
74
- * {@link topic:6c47b2b39db9404582994070ec3d57a2#loio62149734b5c24507868e722fe87a75db Optimizing Dependent Bindings}
84
+ * {@link topic:6c47b2b39db9404582994070ec3d57a2#loio62149734b5c24507868e722fe87a75db
85
+ * Optimizing Dependent Bindings}.
86
+ * @param {string} [mParameters.batchGroupId]
87
+ * <b>Deprecated</b>, use <code>groupId</code> instead. Sets the batch group id to be used for
88
+ * requests originating from the binding.
89
+ * @param {int} [mParameters.threshold]
90
+ * Deprecated since 1.102.0, as {@link sap.ui.model.odata.OperationMode.Auto} is deprecated;
91
+ * the threshold that defines how many entries should be fetched at least by the binding if
92
+ * <code>operationMode</code> is set to <code>Auto</code>.
75
93
  * @public
76
94
  * @alias sap.ui.model.odata.v2.ODataListBinding
77
95
  * @extends sap.ui.model.ListBinding
@@ -33,6 +33,7 @@ sap.ui.define([
33
33
  "sap/base/util/uid",
34
34
  "sap/base/util/UriParameters",
35
35
  "sap/ui/base/SyncPromise",
36
+ "sap/ui/core/Configuration",
36
37
  "sap/ui/core/library",
37
38
  "sap/ui/core/message/Message",
38
39
  "sap/ui/core/message/MessageParser",
@@ -55,10 +56,10 @@ sap.ui.define([
55
56
  "sap/ui/util/isCrossOriginURL"
56
57
  ], function(_CreatedContextsCache, Context, ODataAnnotations, ODataContextBinding, ODataListBinding,
57
58
  ODataTreeBinding, assert, Log, encodeURL, deepEqual, deepExtend, each, extend,
58
- isEmptyObject, isPlainObject, merge, uid, UriParameters, SyncPromise, coreLibrary, Message,
59
- MessageParser, _Helper, BindingMode, BaseContext, FilterProcessor, Model, CountMode,
60
- MessageScope, ODataMetadata, ODataMetaModel, ODataMessageParser, ODataPropertyBinding,
61
- ODataUtils, OperationMode, UpdateMethod, OData, URI, isCrossOriginURL
59
+ isEmptyObject, isPlainObject, merge, uid, UriParameters, SyncPromise, Configuration,
60
+ coreLibrary, Message, MessageParser, _Helper, BindingMode, BaseContext, FilterProcessor,
61
+ Model, CountMode, MessageScope, ODataMetadata, ODataMetaModel, ODataMessageParser,
62
+ ODataPropertyBinding, ODataUtils, OperationMode, UpdateMethod, OData, URI, isCrossOriginURL
62
63
  ) {
63
64
 
64
65
  "use strict";
@@ -203,7 +204,7 @@ sap.ui.define([
203
204
  * This model is not prepared to be inherited from.
204
205
  *
205
206
  * @author SAP SE
206
- * @version 1.106.0
207
+ * @version 1.107.1
207
208
  *
208
209
  * @public
209
210
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -386,7 +387,7 @@ sap.ui.define([
386
387
  this.sUser = sUser;
387
388
  this.sPassword = sPassword;
388
389
 
389
- if (sap.ui.getCore().getConfiguration().getStatistics()) {
390
+ if (Configuration.getStatisticsEnabled()) {
390
391
  // add statistics parameter to every request (supported only on Gateway servers)
391
392
  this.aUrlParams.push("sap-statistics=true");
392
393
  }
@@ -486,7 +487,7 @@ sap.ui.define([
486
487
  this.securityTokenAvailable();
487
488
  }
488
489
  }
489
- this.oHeaders["Accept-Language"] = sap.ui.getCore().getConfiguration().getLanguageTag();
490
+ this.oHeaders["Accept-Language"] = Configuration.getLanguageTag();
490
491
 
491
492
  // set version to 2.0 because 1.0 does not support e.g. skip/top, inlinecount...
492
493
  // states the version of the Open Data Protocol used by the client to generate the request.
@@ -1997,31 +1998,59 @@ sap.ui.define([
1997
1998
  /**
1998
1999
  * Creates a new list binding for this model.
1999
2000
  *
2000
- * @param {string} sPath Binding path, either absolute or relative to a given <code>oContext</code>
2001
- * @param {sap.ui.model.Context} [oContext] Binding context referring to this model
2002
- * @param {sap.ui.model.Sorter|sap.ui.model.Sorter[]} [aSorters] Initial sort order, can be either a sorter or an array of sorters
2003
- * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [aFilters] Predefined filters, can be either a filter or an array of filters
2004
- * @param {object} [mParameters] Map which contains additional parameters for the binding
2005
- * @param {string} [mParameters.expand] Value for the OData <code>$expand</code> query parameter which should be included in the request
2006
- * @param {string} [mParameters.select] Value for the OData <code>$select</code> query parameter which should be included in the request
2007
- * @param {Object<string,string>} [mParameters.custom] Optional map of custom query parameters (name/value pairs); names of custom parameters must not start with <code>$</code>
2008
- * @param {sap.ui.model.odata.CountMode} [mParameters.countMode] Count mode for this binding;
2009
- * if not specified, the default count mode for this model is used
2001
+ * @param {string} sPath The binding path in the model
2002
+ * @param {sap.ui.model.Context} [oContext]
2003
+ * The context which is required as base for a relative path.
2004
+ * @param {sap.ui.model.Sorter|sap.ui.model.Sorter[]} [aSorters]
2005
+ * Initial sort order, can be either a sorter or an array of sorters.
2006
+ * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [aFilters]
2007
+ * Predefined filters, can be either a filter or an array of filters.
2008
+ * @param {object} [mParameters] A map which contains additional parameters for the binding.
2009
+ * @param {sap.ui.model.odata.CountMode} [mParameters.countMode]
2010
+ * Defines the count mode of the binding; if not specified, the default count mode of the
2011
+ * <code>oModel</code> is applied.
2010
2012
  * @param {string} [mParameters.createdEntitiesKey=""]
2011
2013
  * A key used in combination with the resolved path of the binding to identify the entities
2012
- * created via the binding's {@link #create} method.
2014
+ * created by the binding's {@link #create} method.
2013
2015
  *
2014
2016
  * <b>Note:</b> Different controls or control aggregation bindings to the same collection must
2015
2017
  * have different <code>createdEntitiesKey</code> values.
2016
- * @param {sap.ui.model.odata.OperationMode} [mParameters.operationMode] Operation mode for this binding;
2017
- * if not specified, the default operation mode of this model is used
2018
- * @param {boolean} [mParameters.faultTolerant] Turns on the fault tolerance mode, data is not reset if a backend request returns an error
2019
- * @param {string} [mParameters.batchGroupId] Sets the batch group ID to be used for requests originating from this binding
2018
+ * @param {Object<string,string>} [mParameters.custom]
2019
+ * An optional map of custom query parameters. Custom parameters must not start with
2020
+ * <code>$</code>.
2021
+ * @param {string} [mParameters.expand]
2022
+ * Value for the OData <code>$expand</code> query option parameter which is included in the
2023
+ * data request after URL encoding of the given value.
2024
+ * @param {boolean} [mParameters.faultTolerant]
2025
+ * Turns on the fault tolerance mode, data is not reset if a back-end request returns an
2026
+ * error.
2027
+ * @param {string} [mParameters.groupId]
2028
+ * The group id to be used for requests originating from the binding
2029
+ * @param {sap.ui.model.odata.OperationMode} [mParameters.operationMode]
2030
+ * The operation mode of the binding
2031
+ * @param {string} [mParameters.select]
2032
+ * Value for the OData <code>$select</code> query option parameter which is included in the
2033
+ * data request after URL encoding of the given value.
2034
+ * @param {boolean} [mParameters.transitionMessagesOnly]
2035
+ * Whether the list binding only requests transition messages from the back end. If messages
2036
+ * for entities of this collection need to be updated, use
2037
+ * {@link sap.ui.model.odata.v2.ODataModel#read} on the parent entity corresponding to the
2038
+ * list binding's context, with the parameter <code>updateAggregatedMessages</code> set to
2039
+ * <code>true</code>.
2040
+ * @param {boolean} [mParameters.usePreliminaryContext]
2041
+ * Whether a preliminary context is used. When set to <code>true</code>, the model can
2042
+ * bundle the OData calls for dependent bindings into fewer $batch requests. For more
2043
+ * information, see
2044
+ * {@link topic:6c47b2b39db9404582994070ec3d57a2#loio62149734b5c24507868e722fe87a75db
2045
+ * Optimizing Dependent Bindings}.
2046
+ * @param {string} [mParameters.batchGroupId]
2047
+ * <b>Deprecated</b>, use <code>groupId</code> instead. Sets the batch group id to be used for
2048
+ * requests originating from the binding.
2020
2049
  * @param {int} [mParameters.threshold]
2021
2050
  * Deprecated since 1.102.0, as {@link sap.ui.model.odata.OperationMode.Auto} is deprecated;
2022
2051
  * the threshold that defines how many entries should be fetched at least by the binding if
2023
- * <code>operationMode</code> is set to <code>Auto</code>
2024
- * @returns {sap.ui.model.ListBinding} The new list binding
2052
+ * <code>operationMode</code> is set to <code>Auto</code>.
2053
+ * @returns {sap.ui.model.odata.v2.ODataListBinding} The new list binding
2025
2054
  * @see sap.ui.model.Model.prototype.bindList
2026
2055
  * @public
2027
2056
  */
@@ -2169,7 +2198,7 @@ sap.ui.define([
2169
2198
  * @returns {sap.ui.model.odata.v2.ODataTreeBinding}
2170
2199
  * The new tree binding
2171
2200
  * @public
2172
- * @see {@link https://wiki.scn.sap.com/wiki/display/EmTech/SAP+Annotations+for+OData+Version+2.0
2201
+ * @see {@link http://www.sap.com/protocols/SAPData
2173
2202
  * "SAP Annotations for OData Version 2.0" Specification}
2174
2203
  */
2175
2204
  ODataModel.prototype.bindTree = function(sPath, oContext, vFilters, mParameters, vSorters) {
@@ -2650,13 +2679,35 @@ sap.ui.define([
2650
2679
  };
2651
2680
 
2652
2681
  /**
2653
- * Creates new context binding for this model.
2682
+ * Creates a context binding for this model.
2654
2683
  *
2684
+ * @param {string} sPath The binding path in the model
2685
+ * @param {sap.ui.model.Context} [oContext]
2686
+ * The context which is required as base for a relative path.
2687
+ * @param {object} [mParameters] A map which contains additional parameters for the binding.
2688
+ * @param {boolean} [mParameters.createPreliminaryContext]
2689
+ * Whether a preliminary context is created
2690
+ * @param {Object<string,string>} [mParameters.custom]
2691
+ * An optional map of custom query parameters. Custom parameters must not start with
2692
+ * <code>$</code>.
2693
+ * @param {string} [mParameters.expand]
2694
+ * Value for the OData <code>$expand</code> query option parameter which is included in the
2695
+ * request after URL encoding of the given value.
2696
+ * @param {string} [mParameters.groupId]
2697
+ * The group id to be used for requests originating from the binding
2698
+ * @param {string} [mParameters.select]
2699
+ * Value for the OData <code>$select</code> query option parameter which is included in the
2700
+ * request after URL encoding of the given value.
2701
+ * @param {boolean} [mParameters.usePreliminaryContext]
2702
+ * Whether a preliminary context is used. When set to <code>true</code>, the model can bundle
2703
+ * the OData calls for dependent bindings into fewer $batch requests. For more information,
2704
+ * see {@link topic:6c47b2b39db9404582994070ec3d57a2#loio62149734b5c24507868e722fe87a75db
2705
+ * Optimizing Dependent Bindings}.
2706
+ * @param {string} [mParameters.batchGroupId]
2707
+ * <b>Deprecated</b>, use <code>groupId</code> instead. Sets the batch group id to be used for
2708
+ * requests originating from the binding.
2709
+ * @returns {sap.ui.model.odata.v2.ODataContextBinding} The new context binding
2655
2710
  * @see sap.ui.model.Model.prototype.bindContext
2656
- * @param {string} sPath Resolved path
2657
- * @param {sap.ui.model.Context} oContext Context object
2658
- * @param {Object<string,any>} [mParameters] Map of parameters
2659
- * @returns {sap.ui.model.ContextBinding} The new context binding
2660
2711
  * @public
2661
2712
  */
2662
2713
  ODataModel.prototype.bindContext = function(sPath, oContext, mParameters) {
@@ -7220,16 +7271,21 @@ sap.ui.define([
7220
7271
  };
7221
7272
 
7222
7273
  /**
7223
- * @returns {boolean} bRefreshAfterChange Whether to automatically refresh after changes
7274
+ * Whether all affected bindings are refreshed after a change operation.
7275
+ *
7276
+ * This flag can be overruled on request level by providing the <code>refreshAfterChange</code>
7277
+ * parameter to the corresponding function (for example {@link #update}).
7278
+ *
7279
+ * @returns {boolean} Whether to automatically refresh after changes
7224
7280
  * @public
7225
7281
  * @since 1.46.0
7226
7282
  */
7227
- ODataModel.prototype.getRefreshAfterChange = function() {
7283
+ ODataModel.prototype.getRefreshAfterChange = function () {
7228
7284
  return this.bRefreshAfterChange;
7229
7285
  };
7230
7286
 
7231
7287
  /**
7232
- * Defines whether all bindings are updated after a change operation.
7288
+ * Defines whether all affected bindings are refreshed after a change operation.
7233
7289
  *
7234
7290
  * This flag can be overruled on request level by providing the <code>refreshAfterChange</code>
7235
7291
  * parameter to the corresponding function (for example {@link #update}).
@@ -7238,7 +7294,7 @@ sap.ui.define([
7238
7294
  * @public
7239
7295
  * @since 1.16.3
7240
7296
  */
7241
- ODataModel.prototype.setRefreshAfterChange = function(bRefreshAfterChange) {
7297
+ ODataModel.prototype.setRefreshAfterChange = function (bRefreshAfterChange) {
7242
7298
  this.bRefreshAfterChange = bRefreshAfterChange;
7243
7299
  };
7244
7300
 
@@ -7407,9 +7463,11 @@ sap.ui.define([
7407
7463
  };
7408
7464
 
7409
7465
  /**
7410
- * Setting request groups as deferred.
7466
+ * Setting request groups as deferred. <b>Note:</b> This will overwrite existing deferred
7467
+ * groups, including the default group "changes".
7411
7468
  *
7412
- * Requests that belong to a deferred group will be sent by explicitly calling {@link #submitChanges}.
7469
+ * Requests that belong to a deferred group will be sent by explicitly calling
7470
+ * {@link #submitChanges}.
7413
7471
  *
7414
7472
  * @param {array} aGroupIds Array of group IDs that should be set as deferred
7415
7473
  * @public
@@ -94,7 +94,7 @@ sap.ui.define([
94
94
  * @extends sap.ui.model.TreeBinding
95
95
  * @hideconstructor
96
96
  * @public
97
- * @version 1.106.0
97
+ * @version 1.107.1
98
98
  */
99
99
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
100
100
 
@@ -2559,7 +2559,7 @@ sap.ui.define([
2559
2559
  *
2560
2560
  * See the API documentation for the function {@link sap.ui.model.odata.v2.ODataTreeBinding#createEntry createEntry}.
2561
2561
  *
2562
- * This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
2562
+ * This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
2563
2563
  * See the constructor documentation for more details.
2564
2564
  *
2565
2565
  * @function
@@ -2575,7 +2575,7 @@ sap.ui.define([
2575
2575
  *
2576
2576
  * Calling <code>removeContext</code> for a given context implicitly removes the complete subtree underneath it.
2577
2577
  *
2578
- * This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
2578
+ * This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
2579
2579
  * See the constructor documentation for more details.
2580
2580
  *
2581
2581
  * @function
@@ -2592,7 +2592,7 @@ sap.ui.define([
2592
2592
  * The available API is the same as for the v2.ODataModel.
2593
2593
  * See the API documentation here: {@link sap.ui.model.odata.v2.ODataModel#createEntry createEntry}.
2594
2594
  *
2595
- * This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
2595
+ * This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
2596
2596
  * See the constructor documentation for more details.
2597
2597
  *
2598
2598
  * @function
@@ -2608,7 +2608,7 @@ sap.ui.define([
2608
2608
  * The available API is the same as for the v2.ODataModel.
2609
2609
  * See the API documentation here: {@link sap.ui.model.odata.v2.ODataModel#submitChanges submitChanges}.
2610
2610
  *
2611
- * This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
2611
+ * This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
2612
2612
  * See the Constructor documentation for more details.
2613
2613
  *
2614
2614
  * @function
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.106.0
45
+ * @version 1.107.1
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -281,7 +281,8 @@ sap.ui.define([
281
281
  * immediately, even if {@link sap.ui.model.odata.v4.SubmitMode.API} is used, and the request is
282
282
  * only sent later when {@link sap.ui.model.odata.v4.ODataModel#submitBatch} is called. As long
283
283
  * as the context is deleted on the client, but not yet on the server, {@link #isDeleted}
284
- * returns <code>true</code>.
284
+ * returns <code>true</code>. The context must not be used, e.g. as a binding context, while
285
+ * {@link #isDeleted} returns <code>true</code>.
285
286
  *
286
287
  * Since 1.105 such a pending deletion is a pending change. It causes
287
288
  * <code>hasPendingChanges</code> to return <code>true</code> for the context, the binding
@@ -333,13 +334,13 @@ sap.ui.define([
333
334
  *
334
335
  * @function
335
336
  * @public
336
- * @see {#hasPendingChanges}
337
- * @see {sap.ui.model.odata.v4.ODataContextBinding#hasPendingChanges}
338
- * @see {sap.ui.model.odata.v4.ODataListBinding#hasPendingChanges}
339
- * @see {sap.ui.model.odata.v4.ODataModel#hasPendingChanges}
340
- * @see {sap.ui.model.odata.v4.ODataContextBinding#resetChanges}
341
- * @see {sap.ui.model.odata.v4.ODataListBinding#resetChanges}
342
- * @see {sap.ui.model.odata.v4.ODataModel#resetChanges}
337
+ * @see #hasPendingChanges
338
+ * @see sap.ui.model.odata.v4.ODataContextBinding#hasPendingChanges
339
+ * @see sap.ui.model.odata.v4.ODataListBinding#hasPendingChanges
340
+ * @see sap.ui.model.odata.v4.ODataModel#hasPendingChanges
341
+ * @see sap.ui.model.odata.v4.ODataContextBinding#resetChanges
342
+ * @see sap.ui.model.odata.v4.ODataListBinding#resetChanges
343
+ * @see sap.ui.model.odata.v4.ODataModel#resetChanges
343
344
  * @since 1.41.0
344
345
  */
345
346
  Context.prototype.delete = function (sGroupId, bDoNotRequestCount/*, bRejectIfNotFound*/) {
@@ -361,7 +362,7 @@ sap.ui.define([
361
362
  if (sGroupId === null) {
362
363
  bDoNotRequestCount = true;
363
364
  } else {
364
- oModel.checkGroupId(sGroupId);
365
+ _Helper.checkGroupId(sGroupId);
365
366
  oGroupLock = this.oBinding.lockGroup(sGroupId, true, true);
366
367
  }
367
368
 
@@ -432,6 +433,8 @@ sap.ui.define([
432
433
  * @param {boolean} [bSkipRetry]
433
434
  * Whether to skip retries of failed PATCH requests and instead fail accordingly, but still
434
435
  * fire "patchSent" and "patchCompleted" events
436
+ * @param {boolean} [bUpdating]
437
+ * Whether the given property will not be overwritten by a creation POST(+GET) response
435
438
  * @returns {sap.ui.base.SyncPromise}
436
439
  * A promise which is resolved without a result in case of success, or rejected with an
437
440
  * instance of <code>Error</code> in case of failure, for example if the annotation belongs to
@@ -440,7 +443,7 @@ sap.ui.define([
440
443
  *
441
444
  * @private
442
445
  */
443
- Context.prototype.doSetProperty = function (sPath, vValue, oGroupLock, bSkipRetry) {
446
+ Context.prototype.doSetProperty = function (sPath, vValue, oGroupLock, bSkipRetry, bUpdating) {
444
447
  var oModel = this.oModel,
445
448
  oMetaModel = oModel.getMetaModel(),
446
449
  oPromise,
@@ -459,7 +462,7 @@ sap.ui.define([
459
462
  if (oPromise instanceof Promise) {
460
463
  oGroupLock.unlock();
461
464
  oGroupLock = oGroupLock.getUnlockedCopy();
462
- this.doSetProperty(sPath, vValue, null, true) // early UI update
465
+ this.doSetProperty(sPath, vValue, null, true, true) // early UI update
463
466
  .catch(this.oModel.getReporter());
464
467
 
465
468
  return oPromise.then(function (bSuccess) {
@@ -520,7 +523,8 @@ sap.ui.define([
520
523
  }
521
524
 
522
525
  if (!oGroupLock) {
523
- return oCache.setProperty(oResult.propertyPath, vValue, sEntityPath);
526
+ return oCache.setProperty(oResult.propertyPath, vValue, sEntityPath,
527
+ bUpdating);
524
528
  }
525
529
 
526
530
  if (that.isInactive()) {
@@ -1240,7 +1244,7 @@ sap.ui.define([
1240
1244
  Context.prototype.requestRefresh = function (sGroupId, bAllowRemoval) {
1241
1245
  var oPromise;
1242
1246
 
1243
- this.oModel.checkGroupId(sGroupId);
1247
+ _Helper.checkGroupId(sGroupId);
1244
1248
  this.oBinding.checkSuspended();
1245
1249
  if (this.hasPendingChanges()) {
1246
1250
  throw new Error("Cannot refresh entity due to pending changes: " + this);
@@ -1394,7 +1398,7 @@ sap.ui.define([
1394
1398
  }
1395
1399
 
1396
1400
  this.oBinding.checkSuspended();
1397
- this.oModel.checkGroupId(sGroupId);
1401
+ _Helper.checkGroupId(sGroupId);
1398
1402
  if (this.isTransient()) {
1399
1403
  throw new Error("Unsupported context: " + this);
1400
1404
  }
@@ -1613,7 +1617,7 @@ sap.ui.define([
1613
1617
  if (this.isTransient()) {
1614
1618
  throw new Error("Unsupported transient context " + this);
1615
1619
  }
1616
- this.oModel.getPredicateIndex(this.sPath);
1620
+ _Helper.getPredicateIndex(this.sPath);
1617
1621
  this.oBinding.checkKeepAlive(this);
1618
1622
 
1619
1623
  if (bKeepAlive && bRequestMessages) {
@@ -1699,7 +1703,7 @@ sap.ui.define([
1699
1703
  throw new Error("Not a primitive value");
1700
1704
  }
1701
1705
  if (sGroupId !== null) {
1702
- this.oModel.checkGroupId(sGroupId);
1706
+ _Helper.checkGroupId(sGroupId);
1703
1707
  oGroupLock = this.oBinding.lockGroup(sGroupId, true, true);
1704
1708
  }
1705
1709
 
@@ -1715,11 +1719,11 @@ sap.ui.define([
1715
1719
  };
1716
1720
 
1717
1721
  /**
1718
- * Returns a string representation of this object including the {@link #getPath binding path),
1722
+ * Returns a string representation of this object including the {@link #getPath binding path},
1719
1723
  * {@link #getIndex index}, and state (see also "Context states" of
1720
1724
  * {@link topic:c9723f8265f644af91c0ed941e114d46 Creating an Entity}).
1721
1725
  *
1722
- * @return {string} A string description of this binding
1726
+ * @returns {string} A string description of this binding
1723
1727
  *
1724
1728
  * @public
1725
1729
  * @see #destroy
@@ -136,7 +136,7 @@ sap.ui.define([
136
136
  break;
137
137
  case "$$groupId":
138
138
  case "$$updateGroupId":
139
- that.oModel.checkGroupId(vValue, false,
139
+ _Helper.checkGroupId(vValue, false,
140
140
  "Unsupported value for binding parameter '" + sKey + "': ");
141
141
  break;
142
142
  case "$$ignoreMessages":
@@ -313,6 +313,7 @@ sap.ui.define([
313
313
  undefined, sGroupId, oOldCache);
314
314
  }
315
315
  if (oOldCache && oOldCache !== oCache) {
316
+ oOldCache.deregisterChangeListener("", this);
316
317
  oOldCache.setActive(false);
317
318
  }
318
319
  if (this.mLateQueryOptions) {
@@ -330,9 +331,12 @@ sap.ui.define([
330
331
  * @since 1.66
331
332
  */
332
333
  ODataBinding.prototype.destroy = function () {
334
+ var that = this;
335
+
333
336
  this.mCacheByResourcePath = undefined;
334
337
  this.oCachePromise.then(function (oOldCache) {
335
338
  if (oOldCache) {
339
+ oOldCache.deregisterChangeListener("", that);
336
340
  oOldCache.setActive(false);
337
341
  }
338
342
  }, function () {});
@@ -1022,7 +1026,7 @@ sap.ui.define([
1022
1026
  * The group lock
1023
1027
  *
1024
1028
  * @private
1025
- * @see {sap.ui.model.odata.v4.ODataModel#lockGroup}
1029
+ * @see sap.ui.model.odata.v4.ODataModel#lockGroup
1026
1030
  */
1027
1031
  ODataBinding.prototype.lockGroup = function (sGroupId, bLocked, bModifying, fnCancel) {
1028
1032
  sGroupId = sGroupId || (bModifying ? this.getUpdateGroupId() : this.getGroupId());
@@ -1231,7 +1235,7 @@ sap.ui.define([
1231
1235
  if (this.hasPendingChanges(true)) {
1232
1236
  throw new Error("Cannot refresh due to pending changes");
1233
1237
  }
1234
- this.oModel.checkGroupId(sGroupId);
1238
+ _Helper.checkGroupId(sGroupId);
1235
1239
 
1236
1240
  // The actual refresh is specific to the binding and is implemented in each binding class.
1237
1241
  return Promise.resolve(this.refreshInternal("", sGroupId, true)).then(function () {
@@ -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.106.0
77
+ * @version 1.107.1
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
@@ -954,7 +954,7 @@ sap.ui.define([
954
954
  var sResolvedPath = this.getResolvedPath();
955
955
 
956
956
  this.checkSuspended();
957
- this.oModel.checkGroupId(sGroupId);
957
+ _Helper.checkGroupId(sGroupId);
958
958
  if (!this.oOperation) {
959
959
  throw new Error("The binding must be deferred: " + this.sPath);
960
960
  }
@@ -1482,7 +1482,7 @@ sap.ui.define([
1482
1482
  * cancellations.
1483
1483
  *
1484
1484
  * @param {Promise} oPromise - A promise
1485
- * @return {Promise} A promise including an error handler
1485
+ * @returns {Promise} A promise including an error handler
1486
1486
  */
1487
1487
  function reportError(oPromise) {
1488
1488
  return oPromise.catch(function (oError) {