@openui5/sap.ui.core 1.140.0 → 1.141.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 (304) hide show
  1. package/THIRDPARTY.txt +2 -2
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/Event.js +1 -1
  9. package/src/sap/base/Eventing.js +1 -1
  10. package/src/sap/base/config.js +1 -1
  11. package/src/sap/base/i18n/Formatting.js +1 -1
  12. package/src/sap/base/i18n/LanguageTag.js +9 -9
  13. package/src/sap/base/i18n/Localization.js +2 -2
  14. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  15. package/src/sap/base/security/encodeURL.js +1 -1
  16. package/src/sap/base/util/resolveReference.js +3 -1
  17. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  18. package/src/sap/base/util/restricted/_castArray.js +1 -1
  19. package/src/sap/base/util/restricted/_compact.js +1 -1
  20. package/src/sap/base/util/restricted/_curry.js +1 -1
  21. package/src/sap/base/util/restricted/_debounce.js +1 -1
  22. package/src/sap/base/util/restricted/_difference.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_flatten.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  31. package/src/sap/base/util/restricted/_intersection.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isNil.js +1 -1
  37. package/src/sap/base/util/restricted/_max.js +1 -1
  38. package/src/sap/base/util/restricted/_merge.js +1 -1
  39. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  40. package/src/sap/base/util/restricted/_min.js +1 -1
  41. package/src/sap/base/util/restricted/_omit.js +1 -1
  42. package/src/sap/base/util/restricted/_pick.js +1 -1
  43. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  44. package/src/sap/base/util/restricted/_throttle.js +1 -1
  45. package/src/sap/base/util/restricted/_toArray.js +1 -1
  46. package/src/sap/base/util/restricted/_union.js +1 -1
  47. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  48. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  49. package/src/sap/base/util/restricted/_uniq.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  52. package/src/sap/base/util/restricted/_without.js +1 -1
  53. package/src/sap/base/util/restricted/_xor.js +1 -1
  54. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  55. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  58. package/src/sap/ui/Device.js +3 -3
  59. package/src/sap/ui/Global.js +3 -3
  60. package/src/sap/ui/base/BindingParser.js +21 -4
  61. package/src/sap/ui/base/DataType.js +1 -1
  62. package/src/sap/ui/base/Event.js +1 -1
  63. package/src/sap/ui/base/EventProvider.js +1 -1
  64. package/src/sap/ui/base/ExpressionParser.js +5 -1
  65. package/src/sap/ui/base/Interface.js +1 -1
  66. package/src/sap/ui/base/ManagedObject.js +1 -1
  67. package/src/sap/ui/base/ManagedObjectMetadata.js +3 -3
  68. package/src/sap/ui/base/Metadata.js +1 -1
  69. package/src/sap/ui/base/Object.js +1 -1
  70. package/src/sap/ui/base/ObjectPool.js +1 -1
  71. package/src/sap/ui/base/SyncPromise.js +3 -2
  72. package/src/sap/ui/core/.library +2 -2
  73. package/src/sap/ui/core/BusyIndicator.js +1 -1
  74. package/src/sap/ui/core/Component.js +1 -1
  75. package/src/sap/ui/core/ComponentContainer.js +2 -2
  76. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  77. package/src/sap/ui/core/ComponentSupport.js +3 -3
  78. package/src/sap/ui/core/Configuration.js +4 -4
  79. package/src/sap/ui/core/Control.js +1 -1
  80. package/src/sap/ui/core/Core.js +2 -2
  81. package/src/sap/ui/core/CustomData.js +1 -1
  82. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  83. package/src/sap/ui/core/Element.js +3 -3
  84. package/src/sap/ui/core/ElementMetadata.js +1 -1
  85. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  86. package/src/sap/ui/core/EventBus.js +1 -1
  87. package/src/sap/ui/core/Fragment.js +1 -1
  88. package/src/sap/ui/core/HTML.js +1 -1
  89. package/src/sap/ui/core/History.js +1 -1
  90. package/src/sap/ui/core/Icon.js +1 -1
  91. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  92. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  93. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  94. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  95. package/src/sap/ui/core/InvisibleText.js +1 -1
  96. package/src/sap/ui/core/Item.js +1 -1
  97. package/src/sap/ui/core/LabelEnablement.js +1 -1
  98. package/src/sap/ui/core/LayoutData.js +1 -1
  99. package/src/sap/ui/core/Lib.js +41 -38
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +7 -7
  103. package/src/sap/ui/core/LocaleData.js +7 -4
  104. package/src/sap/ui/core/Manifest.js +1 -1
  105. package/src/sap/ui/core/Message.js +1 -1
  106. package/src/sap/ui/core/RenderManager.js +1 -1
  107. package/src/sap/ui/core/Renderer.js +1 -1
  108. package/src/sap/ui/core/ResizeHandler.js +1 -1
  109. package/src/sap/ui/core/ScrollBar.js +1 -1
  110. package/src/sap/ui/core/SeparatorItem.js +1 -1
  111. package/src/sap/ui/core/Theming.js +22 -18
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +1 -1
  115. package/src/sap/ui/core/UIComponent.js +16 -7
  116. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/_IconRegistry.js +19 -39
  122. package/src/sap/ui/core/date/UI5Date.js +1 -1
  123. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  124. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  126. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  128. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  129. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  130. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  131. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  132. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  133. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  134. package/src/sap/ui/core/library.js +3 -3
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +1 -1
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/messagebundle_pt.properties +2 -2
  141. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  142. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  143. package/src/sap/ui/core/mvc/JSView.js +1 -1
  144. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  145. package/src/sap/ui/core/mvc/View.js +2 -2
  146. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  147. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  148. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  149. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  150. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  151. package/src/sap/ui/core/routing/History.js +14 -5
  152. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  153. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  154. package/src/sap/ui/core/service/Service.js +1 -1
  155. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  156. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  157. package/src/sap/ui/core/support/Plugin.js +1 -1
  158. package/src/sap/ui/core/support/Support.js +1 -1
  159. package/src/sap/ui/core/support/ViewInfo.css +12 -12
  160. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  161. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  162. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  163. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  164. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  165. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  167. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  168. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -3
  169. package/src/sap/ui/core/support/trace/E2eTraceLib.js +13 -7
  170. package/src/sap/ui/core/themes/base/BrowserScrollbar.less +0 -28
  171. package/src/sap/ui/core/themes/base/ScrollBar.less +4 -0
  172. package/src/sap/ui/core/themes/base/base.less +66 -17
  173. package/src/sap/ui/core/themes/base/global.less +5 -0
  174. package/src/sap/ui/core/themes/base/skeleton.less +7 -3
  175. package/src/sap/ui/core/themes/sap_hcb/LocalBusyIndicator.less +4 -0
  176. package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +4 -0
  177. package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +4 -0
  178. package/src/sap/ui/core/theming/Parameters.js +24 -11
  179. package/src/sap/ui/core/theming/ThemeManager.js +4 -3
  180. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  181. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  182. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  183. package/src/sap/ui/core/tmpl/Template.js +1 -1
  184. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  185. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  186. package/src/sap/ui/core/util/DraftEnabledMockServer.js +47 -43
  187. package/src/sap/ui/core/util/Export.js +1 -1
  188. package/src/sap/ui/core/util/ExportCell.js +1 -1
  189. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  190. package/src/sap/ui/core/util/ExportRow.js +1 -1
  191. package/src/sap/ui/core/util/ExportType.js +1 -1
  192. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  193. package/src/sap/ui/core/util/File.js +1 -1
  194. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  195. package/src/sap/ui/core/util/MockServer.js +1 -1
  196. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  197. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  198. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  199. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  200. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  201. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  202. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  203. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  204. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  205. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  206. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  207. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  208. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  209. package/src/sap/ui/debug/ControlTree.js +1 -1
  210. package/src/sap/ui/debug/DebugEnv.js +1 -1
  211. package/src/sap/ui/debug/PropertyList.js +1 -1
  212. package/src/sap/ui/events/F6Navigation.js +11 -3
  213. package/src/sap/ui/model/ClientModel.js +1 -1
  214. package/src/sap/ui/model/CompositeDataState.js +1 -1
  215. package/src/sap/ui/model/CompositeType.js +1 -1
  216. package/src/sap/ui/model/DataState.js +1 -1
  217. package/src/sap/ui/model/MetaModel.js +1 -1
  218. package/src/sap/ui/model/Model.js +1 -1
  219. package/src/sap/ui/model/SelectionModel.js +1 -1
  220. package/src/sap/ui/model/SimpleType.js +1 -1
  221. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  222. package/src/sap/ui/model/Type.js +1 -1
  223. package/src/sap/ui/model/json/JSONModel.js +1 -1
  224. package/src/sap/ui/model/message/MessageModel.js +1 -1
  225. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  226. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  227. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  228. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  229. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  230. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  231. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +25 -73
  232. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  233. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  234. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  235. package/src/sap/ui/model/odata/type/Date.js +1 -1
  236. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  237. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  238. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  239. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  240. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  241. package/src/sap/ui/model/odata/type/Double.js +1 -1
  242. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  243. package/src/sap/ui/model/odata/type/Int.js +1 -1
  244. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  245. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  246. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  247. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  248. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  249. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  250. package/src/sap/ui/model/odata/type/Single.js +1 -1
  251. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  252. package/src/sap/ui/model/odata/type/String.js +1 -1
  253. package/src/sap/ui/model/odata/type/Time.js +1 -1
  254. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  255. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  256. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  257. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  258. package/src/sap/ui/model/odata/v2/ODataModel.js +23 -9
  259. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -11
  260. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +11 -7
  261. package/src/sap/ui/model/odata/v4/Context.js +27 -27
  262. package/src/sap/ui/model/odata/v4/ODataBinding.js +44 -28
  263. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +16 -15
  264. package/src/sap/ui/model/odata/v4/ODataListBinding.js +35 -23
  265. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +47 -34
  266. package/src/sap/ui/model/odata/v4/ODataModel.js +40 -24
  267. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +19 -15
  268. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +3 -3
  269. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +14 -14
  270. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +57 -17
  271. package/src/sap/ui/model/odata/v4/lib/_Batch.js +10 -7
  272. package/src/sap/ui/model/odata/v4/lib/_Cache.js +57 -65
  273. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  274. package/src/sap/ui/model/odata/v4/lib/_Helper.js +3 -3
  275. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +35 -4
  276. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +13 -10
  277. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  278. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  279. package/src/sap/ui/model/type/Boolean.js +1 -1
  280. package/src/sap/ui/model/type/Currency.js +1 -1
  281. package/src/sap/ui/model/type/Date.js +1 -1
  282. package/src/sap/ui/model/type/DateInterval.js +1 -1
  283. package/src/sap/ui/model/type/DateTime.js +1 -1
  284. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  285. package/src/sap/ui/model/type/FileSize.js +1 -1
  286. package/src/sap/ui/model/type/Float.js +1 -1
  287. package/src/sap/ui/model/type/Integer.js +1 -1
  288. package/src/sap/ui/model/type/String.js +1 -1
  289. package/src/sap/ui/model/type/Time.js +1 -1
  290. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  291. package/src/sap/ui/model/type/Unit.js +1 -1
  292. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  293. package/src/sap/ui/performance/XHRInterceptor.js +14 -9
  294. package/src/sap/ui/performance/trace/FESR.js +4 -11
  295. package/src/sap/ui/performance/trace/Passport.js +3 -10
  296. package/src/sap/ui/performance/trace/_InteractionImpl.js +4 -10
  297. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  298. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  299. package/src/sap/ui/test/generic/TestBase.js +1 -1
  300. package/src/sap/ui/test/gherkin/dataTableUtils.js +2 -2
  301. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +8 -2
  302. package/src/sap/ui/util/Storage.js +1 -1
  303. package/src/sap/ui/util/isCrossOriginURL.js +1 -1
  304. package/src/ui5loader.js +1 -1
@@ -215,7 +215,7 @@ sap.ui.define([
215
215
  + sForbidden);
216
216
  }
217
217
  });
218
- // falls through
218
+ // fall through
219
219
  case "$$canonicalPath":
220
220
  case "$$clearSelectionOnFilter":
221
221
  case "$$noPatch":
@@ -242,14 +242,16 @@ sap.ui.define([
242
242
  * one. The error has the property <code>canceled : true</code>
243
243
  *
244
244
  * @param {sap.ui.model.odata.v4.lib._Cache} oExpectedCache - The expected cache
245
+ * @param {number} [iResetCount] - The cache's expected reset count
245
246
  * @throws {Error} If the current cache is not the expected one
246
247
  *
247
248
  * @private
248
249
  */
249
- ODataBinding.prototype.checkSameCache = function (oExpectedCache) {
250
+ ODataBinding.prototype.checkSameCache = function (oExpectedCache, iResetCount) {
250
251
  var oError;
251
252
 
252
- if (this.oCache !== oExpectedCache) {
253
+ if (this.oCache !== oExpectedCache
254
+ || iResetCount !== undefined && this.oCache.iResetCount !== iResetCount) {
253
255
  oError = new Error(this + " is ignoring response from inactive cache: "
254
256
  + oExpectedCache);
255
257
  oError.canceled = true;
@@ -318,7 +320,7 @@ sap.ui.define([
318
320
  *
319
321
  * @param {boolean} [bForceUpdate]
320
322
  * Whether the change event is fired in any case (only allowed for property bindings)
321
- * @returns {sap.ui.base.SyncPromise}
323
+ * @returns {sap.ui.base.SyncPromise<void>}
322
324
  * A promise which is resolved without a defined result when the check is finished, or
323
325
  * rejected in case of an error
324
326
  * @throws {Error} If called with illegal parameters
@@ -456,7 +458,7 @@ sap.ui.define([
456
458
  *
457
459
  * @param {sap.ui.model.Context} [oContext]
458
460
  * The context instance to be used for a relative binding
459
- * @returns {object|undefined|sap.ui.base.SyncPromise}
461
+ * @returns {object|undefined|sap.ui.base.SyncPromise<object|undefined>}
460
462
  * The binding's query options (if any) or a promise resolving with them
461
463
  *
462
464
  * @abstract
@@ -490,14 +492,20 @@ sap.ui.define([
490
492
  * The group ID; mandatory if <code>bSideEffectsRefresh</code> is set
491
493
  * @param {boolean} [bSideEffectsRefresh]
492
494
  * Whether to perform a side-effects refresh
493
- * @throws {Error}
494
- * If auto-$expand/$select is still running and query options shall be kept (this case is just
495
- * not yet implemented and should not be needed)
495
+ * @param {boolean} [bSync]
496
+ * Whether to create and set the cache synchronously; <code>bKeepQueryOptions</code> must be
497
+ * <code>true</code>
498
+ * @throws {Error} If
499
+ * <ul>
500
+ * <li> auto-$expand/$select is still running and query options shall be kept (this case is
501
+ * just not yet implemented and should not be needed),
502
+ * <li> bSync is set but bKeepQueryOptions is not.
503
+ * </ul>
496
504
  *
497
505
  * @private
498
506
  */
499
507
  ODataBinding.prototype.fetchCache = function (oContext, bIgnoreParentCache, bKeepQueryOptions,
500
- sGroupId, bSideEffectsRefresh) {
508
+ sGroupId, bSideEffectsRefresh, bSync) {
501
509
  var oCache = this.oCache,
502
510
  oCallToken = {
503
511
  // propagate old cache from first call of fetchCache to the latest call
@@ -517,11 +525,15 @@ sap.ui.define([
517
525
  return;
518
526
  }
519
527
 
528
+ if (bSync && !bKeepQueryOptions) {
529
+ throw new Error("Unsupported bSync w/o bKeepQueryOptions");
530
+ }
531
+
520
532
  this.oCache = undefined;
521
533
  this.oFetchCacheCallToken = oCallToken;
522
534
  if (bKeepQueryOptions) {
523
- // asynchronously re-create an equivalent cache, but skip auto-$expand/$select
524
- this.oCachePromise = SyncPromise.resolve(Promise.resolve()).then(function () {
535
+ // re-create an equivalent cache, but skip auto-$expand/$select
536
+ this.oCachePromise = SyncPromise.resolve(bSync || Promise.resolve()).then(function () {
525
537
  return that.createAndSetCache(that.mCacheQueryOptions, oCache.getResourcePath(),
526
538
  oContext, sGroupId, bSideEffectsRefresh, oCache);
527
539
  });
@@ -588,7 +600,7 @@ sap.ui.define([
588
600
  * @param {boolean} [bIgnoreParentCache]
589
601
  * Whether the query options of the parent cache shall be ignored and own query options are
590
602
  * determined (see {@link #fetchCache})
591
- * @returns {object|sap.ui.base.SyncPromise}
603
+ * @returns {object|sap.ui.base.SyncPromise<object>}
592
604
  * An object having two properties (or a promise resolving with it):
593
605
  * {object} mQueryOptions - The query options to create the cache for this binding or
594
606
  * <code>undefined</code> if no cache is to be created
@@ -599,7 +611,7 @@ sap.ui.define([
599
611
  ODataBinding.prototype.fetchOrGetQueryOptionsForOwnCache = function (oContext,
600
612
  bIgnoreParentCache) {
601
613
  var bHasNonSystemQueryOptions,
602
- vQueryOptions, // {object|undefined|sap.ui.base.SyncPromise}
614
+ vQueryOptions, // {object|undefined|sap.ui.base.SyncPromise<object|undefined>}
603
615
  sResolvedPath = this.oModel.resolve(this.sPath, oContext),
604
616
  that = this;
605
617
 
@@ -634,7 +646,7 @@ sap.ui.define([
634
646
  * Whether an empty query options object should be replaced by <code>undefined</code>
635
647
  * @param {string} [sReducedPath=sResolvedPath]
636
648
  * The reduced path
637
- * @returns {object|sap.ui.base.SyncPromise}
649
+ * @returns {object|sap.ui.base.SyncPromise<object>}
638
650
  * A result for #fetchOrGetQueryOptionsForOwnCache
639
651
  */
640
652
  function wrapQueryOptions(bDropEmptyObject, sReducedPath) {
@@ -725,9 +737,9 @@ sap.ui.define([
725
737
  *
726
738
  * @param {sap.ui.model.Context|sap.ui.model.odata.v4.Context} [oContext=this.oContext]
727
739
  * A context; if omitted, the binding's context is used
728
- * @returns {sap.ui.base.SyncPromise} A promise resolving with the resource path or
729
- * <code>undefined</code> for an unresolved binding. If computation of the canonical path
730
- * fails, the promise is rejected.
740
+ * @returns {sap.ui.base.SyncPromise<string|undefined>}
741
+ * A promise resolving with the resource path or <code>undefined</code> for an unresolved
742
+ * binding. If computation of the canonical path fails, the promise is rejected.
731
743
  *
732
744
  * @private
733
745
  */
@@ -893,7 +905,7 @@ sap.ui.define([
893
905
  /**
894
906
  * Returns a promise which resolves as soon as this binding is resumed.
895
907
  *
896
- * @returns {sap.ui.base.SyncPromise|undefined}
908
+ * @returns {sap.ui.base.SyncPromise<void>|undefined}
897
909
  * This binding's current promise for {@link sap.ui.model.odata.v4.ODataParentBinding#resume},
898
910
  * or <code>undefined</code> in case it is not currently suspended.
899
911
  *
@@ -931,7 +943,7 @@ sap.ui.define([
931
943
  /**
932
944
  * Returns a promise which resolves as soon as this binding's root binding is resumed.
933
945
  *
934
- * @returns {sap.ui.base.SyncPromise}
946
+ * @returns {sap.ui.base.SyncPromise<void>}
935
947
  * The root binding's current promise for {@link #resume}, or
936
948
  * <code>SyncPromise.resolve()</code> in case we have no root binding or it is not currently
937
949
  * suspended.
@@ -1203,7 +1215,7 @@ sap.ui.define([
1203
1215
  * Returns a sync promise that is resolved when this binding is ready to be used (that is, when
1204
1216
  * its cache has been determined).
1205
1217
  *
1206
- * @returns {sap.ui.base.SyncPromise}
1218
+ * @returns {sap.ui.base.SyncPromise<void>}
1207
1219
  * A sync promise that is resolved without a defined result when this binding is ready
1208
1220
  *
1209
1221
  * @private
@@ -1287,7 +1299,11 @@ sap.ui.define([
1287
1299
  * If <code>true</code>, a property binding is expected to check for updates
1288
1300
  * @param {boolean} [bKeepCacheOnError]
1289
1301
  * If <code>true</code>, the binding data remains unchanged if the refresh fails
1290
- * @returns {sap.ui.base.SyncPromise}
1302
+ * @param {boolean} [bSync]
1303
+ * If <code>true</code>, the cache is created synchronously; cannot be combined with the
1304
+ * ODataModel's <code>sharedRequests</code> constructor parameter or with the
1305
+ * ODataListBinding's <code>$$sharedRequest</code> binding parameter
1306
+ * @returns {sap.ui.base.SyncPromise<void>}
1291
1307
  * A promise which is resolved without a defined result when the refresh is finished, or
1292
1308
  * rejected when the refresh fails; the promise is resolved immediately on a suspended binding
1293
1309
  * @throws {Error}
@@ -1358,7 +1374,7 @@ sap.ui.define([
1358
1374
  * The effective group ID
1359
1375
  * @param {string[]} aAbsolutePaths
1360
1376
  * The absolute paths to request side effects for
1361
- * @returns {sap.ui.base.SyncPromise|undefined}
1377
+ * @returns {sap.ui.base.SyncPromise<void>|undefined}
1362
1378
  * A promise which is resolved without a defined result, or rejected with an error if loading
1363
1379
  * of side effects fails, or <code>undefined</code> if there is nothing to do
1364
1380
  *
@@ -1453,7 +1469,7 @@ sap.ui.define([
1453
1469
  *
1454
1470
  * @param {string} sPath
1455
1471
  * The path (absolute or relative to this binding)
1456
- * @param {sap.ui.base.SyncPromise[]} aPromises
1472
+ * @param {Array<sap.ui.base.SyncPromise<void>>} aPromises
1457
1473
  * List of promises which is extended for each call to {@link #resetChangesForPath}
1458
1474
  * @throws {Error}
1459
1475
  * If there is a change of this binding which has been sent to the server and for which there
@@ -1470,7 +1486,7 @@ sap.ui.define([
1470
1486
  /**
1471
1487
  * Resets pending changes in all dependent bindings.
1472
1488
  *
1473
- * @param {sap.ui.base.SyncPromise[]} aPromises
1489
+ * @param {Array<sap.ui.base.SyncPromise<void>>} aPromises
1474
1490
  * List of promises which is extended for each call to {@link #resetChangesInDependents}.
1475
1491
  * @param {boolean} [sPathPrefix]
1476
1492
  * If supplied, only caches having a resource path starting with <code>sPathPrefix</code> are
@@ -1541,7 +1557,7 @@ sap.ui.define([
1541
1557
  * Whether the application wants to skip the automatic refresh
1542
1558
  * @param {string} sGroupId
1543
1559
  * The group ID for missing properties requests
1544
- * @returns {sap.ui.base.SyncPromise|undefined}
1560
+ * @returns {sap.ui.base.SyncPromise<void>|undefined}
1545
1561
  * A promise which is resolved without a defined result when the update is finished, or
1546
1562
  * rejected with an error if something went wrong; or <code>undefined</code> if there is no
1547
1563
  * need to wait
@@ -1592,9 +1608,9 @@ sap.ui.define([
1592
1608
  * @param {boolean} [bSync] Whether to use the synchronously available cache
1593
1609
  * @param {boolean} [bWithOrWithoutCache] Whether to call the processor even without a cache
1594
1610
  * (currently implemented for operation bindings only)
1595
- * @returns {sap.ui.base.SyncPromise} A sync promise that is resolved with either the result of
1596
- * the processor or <code>undefined</code> if there is no cache for this binding, or if the
1597
- * cache determination is not yet completed
1611
+ * @returns {sap.ui.base.SyncPromise<any>} A sync promise that is resolved with either the
1612
+ * result of the processor or <code>undefined</code> if there is no cache for this binding, or
1613
+ * if the cache determination is not yet completed
1598
1614
  *
1599
1615
  * @private
1600
1616
  */
@@ -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.140.0
77
+ * @version 1.141.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
@@ -225,7 +225,7 @@ sap.ui.define([
225
225
 
226
226
  /*
227
227
  * Fires a "change" event and refreshes dependent bindings.
228
- * @returns {sap.ui.base.SyncPromise} A promise resolving when the refresh is finished
228
+ * @returns {sap.ui.base.SyncPromise<void>} A promise resolving when the refresh is finished
229
229
  */
230
230
  function fireChangeAndRefreshDependentBindings() {
231
231
  that._fireChange({reason : ChangeReason.Change});
@@ -428,7 +428,7 @@ sap.ui.define([
428
428
  * If a back-end request fails, the 'dataReceived' event provides an <code>Error</code> in the
429
429
  * 'error' event parameter.
430
430
  *
431
- * Since 1.106 this event is bubbled up to the model, unless a listener calls
431
+ * Since 1.106, this event is bubbled up to the model, unless a listener calls
432
432
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
433
433
  *
434
434
  * @param {sap.ui.base.Event} oEvent
@@ -456,7 +456,7 @@ sap.ui.define([
456
456
  * fired: Whatever should happen in the event handler attached to that event, can instead be
457
457
  * done before calling {@link #invoke}.
458
458
  *
459
- * Since 1.106 this event is bubbled up to the model, unless a listener calls
459
+ * Since 1.106, this event is bubbled up to the model, unless a listener calls
460
460
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
461
461
  *
462
462
  * @param {sap.ui.base.Event} oEvent
@@ -563,7 +563,7 @@ sap.ui.define([
563
563
  * actions only
564
564
  * @param {function} [fnOnStrictHandlingFailed]
565
565
  * Callback for strict handling; supported for actions only
566
- * @returns {sap.ui.base.SyncPromise}
566
+ * @returns {sap.ui.base.SyncPromise<any>}
567
567
  * The request promise
568
568
  * @throws {Error} If
569
569
  * <ul>
@@ -879,7 +879,7 @@ sap.ui.define([
879
879
  * A property binding which registers itself as listener at the cache
880
880
  * @param {boolean} [bCached]
881
881
  * Whether to return cached values only and not initiate a request
882
- * @returns {sap.ui.base.SyncPromise}
882
+ * @returns {sap.ui.base.SyncPromise<any>}
883
883
  * A promise on the outcome of the cache's <code>fetchValue</code> call; it is rejected in
884
884
  * case cached values are asked for, but not found, or if the cache is no longer the active
885
885
  * cache when the response arrives
@@ -1358,12 +1358,13 @@ sap.ui.define([
1358
1358
  * context only. Such a message can only be connected to a corresponding control if the
1359
1359
  * control's property bindings use the return value context as binding context.
1360
1360
  * <br>
1361
- * A return value context may also be provided if the parent context's path contains a maximum
1362
- * of one navigation property. In addition to the existing preconditions for a return value
1363
- * context, the metadata has to specify a partner attribute for the navigation property and
1364
- * the partner relationship has to be bi-directional. Also the navigation property binding has
1365
- * to be available in the entity set of the first segment in the parent context's path
1366
- * (@experimental as of version 1.119.0).
1361
+ * Since 1.141.0, a return value context may also be provided if the parent context's path
1362
+ * contains a maximum of one navigation property. In addition to the existing preconditions
1363
+ * for a return value context, the metadata has to specify a partner attribute for the
1364
+ * navigation property and the partner relationship has to be bi-directional. Also a
1365
+ * navigation property binding has to be available for the entity set of the first segment in
1366
+ * the parent context's path. <b>Note:</b> Ensure your service implementation returns all
1367
+ * selected key properties; otherwise, no return value context is provided.
1367
1368
  * @throws {Error} If
1368
1369
  * <ul>
1369
1370
  * <li> the binding's root binding is suspended,
@@ -1501,7 +1502,7 @@ sap.ui.define([
1501
1502
  /**
1502
1503
  * Returns a sync promise that tells whether we are ready to inherit $expand/$select.
1503
1504
  *
1504
- * @returns {sap.ui.base.SyncPromise}
1505
+ * @returns {sap.ui.base.SyncPromise<void>}
1505
1506
  * A sync promise that resolves without a defined result as soon as we are ready to inherit
1506
1507
  * $expand/$select
1507
1508
  *
@@ -1525,7 +1526,7 @@ sap.ui.define([
1525
1526
  * If <code>true</code>, a property binding is expected to check for updates
1526
1527
  * @param {boolean} [bKeepCacheOnError]
1527
1528
  * If <code>true</code>, the binding data remains unchanged if the refresh fails
1528
- * @returns {sap.ui.base.SyncPromise}
1529
+ * @returns {sap.ui.base.SyncPromise<void>}
1529
1530
  * A promise resolving when all dependent bindings are refreshed; it is rejected
1530
1531
  * when the refresh fails; the promise is resolved immediately on a suspended binding
1531
1532
  * @throws {Error}
@@ -1636,7 +1637,7 @@ sap.ui.define([
1636
1637
  * The group ID for the refresh
1637
1638
  * @param {boolean} [bKeepCacheOnError]
1638
1639
  * If <code>true</code>, the binding data remains unchanged if the refresh fails
1639
- * @returns {sap.ui.base.SyncPromise}
1640
+ * @returns {sap.ui.base.SyncPromise<void>}
1640
1641
  * A promise which is resolved without a defined result when the refresh is finished and if
1641
1642
  * the context is this binding's return value context; <code>null</code> otherwise
1642
1643
  *
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
61
61
  * @public
62
62
  * @since 1.37.0
63
- * @version 1.140.0
63
+ * @version 1.141.1
64
64
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
65
65
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
66
66
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -448,7 +448,7 @@ sap.ui.define([
448
448
  * If a back-end request fails, the 'dataReceived' event provides an <code>Error</code> in the
449
449
  * 'error' event parameter.
450
450
  *
451
- * Since 1.106 this event is bubbled up to the model, unless a listener calls
451
+ * Since 1.106, this event is bubbled up to the model, unless a listener calls
452
452
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
453
453
  *
454
454
  * @param {sap.ui.base.Event} oEvent
@@ -474,7 +474,7 @@ sap.ui.define([
474
474
  * for example to switch on a busy indicator. Registered event handlers are called without
475
475
  * parameters.
476
476
  *
477
- * Since 1.106 this event is bubbled up to the model, unless a listener calls
477
+ * Since 1.106, this event is bubbled up to the model, unless a listener calls
478
478
  * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
479
479
  *
480
480
  * @param {sap.ui.base.Event} oEvent
@@ -839,12 +839,16 @@ sap.ui.define([
839
839
  * {@link sap.ui.model.odata.v4.Context#requestSideEffects} in the same $batch to refresh the
840
840
  * complete collection containing the newly created entity.
841
841
  *
842
- * Since 1.115.0 it is possible to create nested entities in a collection-valued navigation
842
+ * Since 1.115.0, it is possible to create nested entities in a collection-valued navigation
843
843
  * property together with the entity (so-called "deep create"), for example a list of items for
844
844
  * an order. For this purpose, bind the list relative to a transient context. Calling this
845
845
  * method then adds a transient entity to the parent's navigation property, which is sent with
846
846
  * the payload of the parent entity. Such a nested context cannot be inactive.
847
847
  *
848
+ * <b>Caution:</b> Only a single list must be bound to the same collection-valued navigation
849
+ * property relative to a transient context. Created data cannot be shared between list
850
+ * bindings.
851
+ *
848
852
  * <b>Note:</b> After a successful creation of the main entity the context returned for a
849
853
  * nested entity is no longer valid. Do not use the
850
854
  * {@link sap.ui.model.odata.v4.Context#created created} promise of such a context! New contexts
@@ -854,7 +858,7 @@ sap.ui.define([
854
858
  * of <code>Error</code>, even if the deep create succeeds. This error always has the property
855
859
  * <code>canceled</code> with the value <code>true</code>.
856
860
  *
857
- * Since 1.118.0 deep create also supports single-valued navigation properties; no API call is
861
+ * Since 1.118.0, deep create also supports single-valued navigation properties; no API call is
858
862
  * required in this case. Simply bind properties of the related entity relative to a transient
859
863
  * context. An update to the property adds it to the POST request of the parent entity, and by
860
864
  * this the create becomes deep.
@@ -908,7 +912,7 @@ sap.ui.define([
908
912
  * on the client and requests only data that is missing.
909
913
  * @param {boolean} [bAtEnd]
910
914
  * Whether the entity is inserted at the end of the list. Supported since 1.66.0.
911
- * Since 1.99.0 the first insertion determines the overall position of created contexts
915
+ * Since 1.99.0, the first insertion determines the overall position of created contexts
912
916
  * within the binding's context list. Every succeeding insertion is relative to the created
913
917
  * contexts within this list.
914
918
  * @param {boolean} [bInactive]
@@ -1102,7 +1106,8 @@ sap.ui.define([
1102
1106
  if (bRefresh) {
1103
1107
  oCreatePromise = SyncPromise.all([
1104
1108
  oCreatePromise,
1105
- this.requestSideEffects(sGroupId, [""])
1109
+ // sGroupId is set -> side-effects refresh
1110
+ this.refreshInternal("", sGroupId, false, true, true)
1106
1111
  ]);
1107
1112
  }
1108
1113
 
@@ -1144,6 +1149,8 @@ sap.ui.define([
1144
1149
  * @returns {boolean}
1145
1150
  * <code>true</code>, if contexts have been created or dropped or <code>isLengthFinal</code>
1146
1151
  * has changed
1152
+ * @throws {Error}
1153
+ * If a created context from a foreign binding is about to be reused
1147
1154
  *
1148
1155
  * @private
1149
1156
  */
@@ -1200,6 +1207,9 @@ sap.ui.define([
1200
1207
  // created persisted contexts can be restored from their data, for example in
1201
1208
  // case of Recursive Hierarchy maintenance
1202
1209
  oContext = _Helper.getPrivateAnnotation(aResults[i], "context");
1210
+ if (oContext.getBinding() !== this) {
1211
+ throw new Error("Cannot share created data between list bindings");
1212
+ }
1203
1213
  oContext.iIndex = i$skipIndex;
1204
1214
  // oContext.checkUpdate(); // Note: no changes expected here
1205
1215
  sContextPath = oContext.getPath();
@@ -1728,7 +1738,7 @@ sap.ui.define([
1728
1738
  * used to expand all levels
1729
1739
  * @param {boolean} [bSilent]
1730
1740
  * Whether no ("change") events should be fired
1731
- * @returns {sap.ui.base.SyncPromise}
1741
+ * @returns {sap.ui.base.SyncPromise<void>}
1732
1742
  * A promise that is resolved when the expand is successful and rejected when it fails
1733
1743
  * @throws {Error}
1734
1744
  * If the binding's root binding is suspended, if the given context is not part of a
@@ -1794,7 +1804,7 @@ sap.ui.define([
1794
1804
  * @param {function} [fnDataRequested]
1795
1805
  * The function is called just before a back-end request is sent.
1796
1806
  * If no back-end request is needed, the function is not called.
1797
- * @returns {sap.ui.base.SyncPromise|Promise}
1807
+ * @returns {sap.ui.base.SyncPromise<boolean>|Promise<boolean>}
1798
1808
  * A promise that resolves with a boolean indicating whether the binding's contexts have been
1799
1809
  * modified; it rejects when iStart or iLength are negative, or when the request fails, or
1800
1810
  * if this binding is already destroyed when the response arrives
@@ -1858,7 +1868,7 @@ sap.ui.define([
1858
1868
  * @param {function} [fnDataRequested]
1859
1869
  * The function is called just before a back-end request is sent.
1860
1870
  * If no back-end request is needed, the function is not called.
1861
- * @returns {sap.ui.base.SyncPromise}
1871
+ * @returns {sap.ui.base.SyncPromise<object>}
1862
1872
  * A promise to be resolved with the requested range as described in _Cache#read or with
1863
1873
  * <code>undefined</code> if the context changed before reading; it is rejected to discard a
1864
1874
  * response because the cache is no longer active, in this case the error has the property
@@ -1891,7 +1901,8 @@ sap.ui.define([
1891
1901
  return oCache.read(iIndex, iLength, iMaximumPrefetchSize, oGroupLock,
1892
1902
  fnDataRequested, undefined, that.fireSeparateReceived.bind(that)
1893
1903
  ).then(function (oResult) {
1894
- oResult.$checkStillValid = that.checkSameCache.bind(that, oCache);
1904
+ oResult.$checkStillValid
1905
+ = that.checkSameCache.bind(that, oCache, oResult["@$ui5.resetCount"]);
1895
1906
 
1896
1907
  return oResult;
1897
1908
  });
@@ -1967,7 +1978,7 @@ sap.ui.define([
1967
1978
  * that the cache promise is already created when the events are fired.
1968
1979
  * @param {string} sStaticFilter
1969
1980
  * The static filter value
1970
- * @returns {sap.ui.base.SyncPromise}
1981
+ * @returns {sap.ui.base.SyncPromise<Array<string|undefined>>}
1971
1982
  * A promise which resolves with an array that consists of three filters where each can be
1972
1983
  * <code>undefined</code>. The first one has to be applied after data aggregation. The second
1973
1984
  * one can simply be applied before data aggregation (which improves performance) because it
@@ -2046,8 +2057,8 @@ sap.ui.define([
2046
2057
  * @param {object} mLambdaVariableToPath The map from lambda variable to full path
2047
2058
  * @param {boolean} [bWithinAnd] Whether the embedding filter is an 'and'
2048
2059
  * @param {boolean} bThese - Whether the special syntax "$these/aggregate(...)" is needed
2049
- * @returns {sap.ui.base.SyncPromise} A promise which resolves with the $filter value or
2050
- * rejects with an error if the filter value uses an unknown operator
2060
+ * @returns {sap.ui.base.SyncPromise<string>} A promise which resolves with the $filter
2061
+ * value or rejects with an error if the filter value uses an unknown operator
2051
2062
  */
2052
2063
  function fetchFilter(oFilter, mLambdaVariableToPath, bWithinAnd, bThese) {
2053
2064
  var sResolvedPath;
@@ -2175,7 +2186,8 @@ sap.ui.define([
2175
2186
  * @param {boolean} [bAllowRequest]
2176
2187
  * Whether it is allowed to send a GET request to fetch the parent node's data
2177
2188
  * @returns {sap.ui.model.odata.v4.Context|null|undefined|
2178
- * Promise<sap.ui.model.odata.v4.Context>|sap.ui.base.SyncPromise}
2189
+ * Promise<sap.ui.model.odata.v4.Context>|
2190
+ * sap.ui.base.SyncPromise<sap.ui.model.odata.v4.Context>}
2179
2191
  * <ul>
2180
2192
  * <li> The parent node if already known,
2181
2193
  * <li> <code>null</code> if the given node is a root node and thus has no parent,
@@ -2309,7 +2321,7 @@ sap.ui.define([
2309
2321
  * A property binding which registers itself as listener at the cache
2310
2322
  * @param {boolean} [bCached]
2311
2323
  * Whether to return cached values only and not initiate a request
2312
- * @returns {sap.ui.base.SyncPromise}
2324
+ * @returns {sap.ui.base.SyncPromise<any>}
2313
2325
  * A promise on the outcome of the cache's <code>fetchValue</code> call; it is rejected in
2314
2326
  * case cached values are asked for, but not found
2315
2327
  *
@@ -3160,8 +3172,8 @@ sap.ui.define([
3160
3172
 
3161
3173
  /**
3162
3174
  * Calls {@link sap.ui.model.odata.v4.Context#setKeepAlive} at the context for the given path
3163
- * and returns it. Since 1.100.0 the function always returns such a context. If none exists yet,
3164
- * it is created without data and a request for its entity is sent.
3175
+ * and returns it. Since 1.100.0, the function always returns such a context. If none exists
3176
+ * yet, it is created without data and a request for its entity is sent.
3165
3177
  *
3166
3178
  * @param {string} sPath
3167
3179
  * The path of the context to be kept alive
@@ -3938,7 +3950,7 @@ sap.ui.define([
3938
3950
  * @see sap.ui.model.odata.v4.ODataBinding#refreshInternal
3939
3951
  */
3940
3952
  ODataListBinding.prototype.refreshInternal = function (sResourcePathPrefix, sGroupId,
3941
- _bCheckUpdate, bKeepCacheOnError) {
3953
+ _bCheckUpdate, bKeepCacheOnError, bSync) {
3942
3954
  var that = this;
3943
3955
 
3944
3956
  // calls refreshInternal on all given bindings and returns an array of promises
@@ -3955,7 +3967,7 @@ sap.ui.define([
3955
3967
  // another update request in createContexts, when the context for the row is
3956
3968
  // reused.
3957
3969
  return oBinding.refreshInternal(sResourcePathPrefix, sGroupId, false,
3958
- bKeepCacheOnError);
3970
+ bKeepCacheOnError, bSync);
3959
3971
  });
3960
3972
  }
3961
3973
 
@@ -3986,7 +3998,7 @@ sap.ui.define([
3986
3998
  oCache.reset([]);
3987
3999
  } else {
3988
4000
  that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true,
3989
- sGroupId, bKeepCacheOnError);
4001
+ sGroupId, bKeepCacheOnError, bSync);
3990
4002
  oKeptElementsPromise = that.refreshKeptElements(sGroupId,
3991
4003
  /*bIgnorePendingChanges*/ bKeepCacheOnError);
3992
4004
  if (that.iCurrentEnd > 0) {
@@ -4050,7 +4062,7 @@ sap.ui.define([
4050
4062
  * The effective group ID
4051
4063
  * @param {boolean} bIgnorePendingChanges
4052
4064
  * Whether kept elements are refreshed although there are pending changes.
4053
- * @returns {sap.ui.base.SyncPromise}
4065
+ * @returns {sap.ui.base.SyncPromise<void>}
4054
4066
  * A promise which is resolved without a defined result, or rejected with an error if the
4055
4067
  * refresh fails.
4056
4068
  *
@@ -4098,7 +4110,7 @@ sap.ui.define([
4098
4110
  * (since 1.129.0) no dataRequested/dataReceived events are fired in the first place
4099
4111
  * @param {boolean} [bWithMessages]
4100
4112
  * Whether the "@com.sap.vocabularies.Common.v1.Messages" path is treated specially
4101
- * @returns {sap.ui.base.SyncPromise}
4113
+ * @returns {sap.ui.base.SyncPromise<void>}
4102
4114
  * A promise which resolves without a defined value when the entity is updated in the cache,
4103
4115
  * or rejects if the refresh failed.
4104
4116
  * @throws {Error}