@openui5/sap.ui.core 1.112.0 → 1.113.0

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 (327) hide show
  1. package/.dtsgenrc +16 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +7 -7
  9. package/src/sap/base/security/URLWhitelist.js +1 -1
  10. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  11. package/src/sap/base/util/restricted/_castArray.js +1 -1
  12. package/src/sap/base/util/restricted/_compact.js +1 -1
  13. package/src/sap/base/util/restricted/_curry.js +1 -1
  14. package/src/sap/base/util/restricted/_debounce.js +1 -1
  15. package/src/sap/base/util/restricted/_difference.js +1 -1
  16. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  18. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  21. package/src/sap/base/util/restricted/_flatten.js +1 -1
  22. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_intersection.js +1 -1
  25. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  27. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isNil.js +1 -1
  30. package/src/sap/base/util/restricted/_max.js +1 -1
  31. package/src/sap/base/util/restricted/_merge.js +1 -1
  32. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  33. package/src/sap/base/util/restricted/_min.js +1 -1
  34. package/src/sap/base/util/restricted/_omit.js +1 -1
  35. package/src/sap/base/util/restricted/_pick.js +1 -1
  36. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  37. package/src/sap/base/util/restricted/_throttle.js +1 -1
  38. package/src/sap/base/util/restricted/_toArray.js +1 -1
  39. package/src/sap/base/util/restricted/_union.js +1 -1
  40. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  41. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  42. package/src/sap/base/util/restricted/_uniq.js +1 -1
  43. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  45. package/src/sap/base/util/restricted/_without.js +1 -1
  46. package/src/sap/base/util/restricted/_xor.js +1 -1
  47. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  48. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  49. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  51. package/src/sap/ui/Device.js +3 -3
  52. package/src/sap/ui/Global.js +4 -4
  53. package/src/sap/ui/base/Event.js +1 -1
  54. package/src/sap/ui/base/EventProvider.js +1 -1
  55. package/src/sap/ui/base/ExpressionParser.js +15 -5
  56. package/src/sap/ui/base/Interface.js +1 -1
  57. package/src/sap/ui/base/ManagedObject.js +4 -2
  58. package/src/sap/ui/base/ManagedObjectMetadata.js +10 -12
  59. package/src/sap/ui/base/Metadata.js +23 -12
  60. package/src/sap/ui/base/Object.js +1 -1
  61. package/src/sap/ui/base/ObjectPool.js +1 -1
  62. package/src/sap/ui/core/.library +1 -1
  63. package/src/sap/ui/core/BusyIndicator.js +1 -1
  64. package/src/sap/ui/core/Component.js +8 -5
  65. package/src/sap/ui/core/ComponentContainer.js +1 -1
  66. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  67. package/src/sap/ui/core/ComponentSupport.js +1 -1
  68. package/src/sap/ui/core/Configuration.js +58 -9
  69. package/src/sap/ui/core/Control.js +22 -5
  70. package/src/sap/ui/core/Core.js +1 -1
  71. package/src/sap/ui/core/CustomData.js +1 -1
  72. package/src/sap/ui/core/CustomStyleClassSupport.js +5 -2
  73. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  74. package/src/sap/ui/core/Element.js +1 -1
  75. package/src/sap/ui/core/ElementMetadata.js +3 -2
  76. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  77. package/src/sap/ui/core/EventBus.js +1 -1
  78. package/src/sap/ui/core/Fragment.js +1 -1
  79. package/src/sap/ui/core/HTML.js +1 -1
  80. package/src/sap/ui/core/History.js +1 -1
  81. package/src/sap/ui/core/Icon.js +1 -1
  82. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  83. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  84. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  85. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  86. package/src/sap/ui/core/InvisibleText.js +1 -1
  87. package/src/sap/ui/core/Item.js +1 -1
  88. package/src/sap/ui/core/LabelEnablement.js +10 -2
  89. package/src/sap/ui/core/LayoutData.js +1 -1
  90. package/src/sap/ui/core/Lib.js +1 -1
  91. package/src/sap/ui/core/ListItem.js +1 -1
  92. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  93. package/src/sap/ui/core/Locale.js +2 -2
  94. package/src/sap/ui/core/LocaleData.js +87 -19
  95. package/src/sap/ui/core/Manifest.js +4 -4
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/Popup.js +19 -27
  98. package/src/sap/ui/core/RenderManager.js +7 -1
  99. package/src/sap/ui/core/Renderer.js +1 -1
  100. package/src/sap/ui/core/ResizeHandler.js +1 -1
  101. package/src/sap/ui/core/ScrollBar.js +1 -1
  102. package/src/sap/ui/core/SeparatorItem.js +1 -1
  103. package/src/sap/ui/core/Title.js +1 -1
  104. package/src/sap/ui/core/TooltipBase.js +1 -1
  105. package/src/sap/ui/core/UIArea.js +1 -1
  106. package/src/sap/ui/core/UIComponent.js +3 -2
  107. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  108. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  109. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  110. package/src/sap/ui/core/XMLComposite.js +1 -1
  111. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  112. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  113. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  114. package/src/sap/ui/core/date/CalendarUtils.js +14 -26
  115. package/src/sap/ui/core/date/CalendarWeekNumbering.js +32 -0
  116. package/src/sap/ui/core/date/UI5Date.js +1 -1
  117. package/src/sap/ui/core/date/UniversalDateUtils.js +4 -4
  118. package/src/sap/ui/core/date/_Calendars.js +1 -1
  119. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  120. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  121. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  123. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  125. package/src/sap/ui/core/format/DateFormat.js +103 -30
  126. package/src/sap/ui/core/format/NumberFormat.js +40 -5
  127. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  128. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  129. package/src/sap/ui/core/library.js +3 -3
  130. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  131. package/src/sap/ui/core/message/Message.js +1 -1
  132. package/src/sap/ui/core/message/MessageManager.js +1 -1
  133. package/src/sap/ui/core/message/MessageParser.js +1 -1
  134. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  135. package/src/sap/ui/core/messagebundle_ar.properties +1 -1
  136. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  137. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  138. package/src/sap/ui/core/messagebundle_da.properties +1 -1
  139. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  140. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_en.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_es.properties +4 -4
  144. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  145. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_fi.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_hi.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_hr.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_hu.properties +1 -1
  152. package/src/sap/ui/core/messagebundle_id.properties +1 -1
  153. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  154. package/src/sap/ui/core/messagebundle_iw.properties +1 -1
  155. package/src/sap/ui/core/messagebundle_kk.properties +1 -1
  156. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  157. package/src/sap/ui/core/messagebundle_lv.properties +1 -1
  158. package/src/sap/ui/core/messagebundle_nl.properties +1 -1
  159. package/src/sap/ui/core/messagebundle_no.properties +1 -1
  160. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  161. package/src/sap/ui/core/messagebundle_pt.properties +1 -1
  162. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  163. package/src/sap/ui/core/messagebundle_ro.properties +1 -1
  164. package/src/sap/ui/core/messagebundle_ru.properties +1 -1
  165. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  166. package/src/sap/ui/core/messagebundle_sk.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_sl.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_sv.properties +1 -1
  169. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  170. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_uk.properties +1 -1
  172. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  173. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
  174. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
  175. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  176. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  177. package/src/sap/ui/core/mvc/JSView.js +1 -1
  178. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  179. package/src/sap/ui/core/mvc/View.js +3 -3
  180. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  181. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  182. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  183. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  184. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  185. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  186. package/src/sap/ui/core/routing/Target.js +1 -1
  187. package/src/sap/ui/core/routing/Targets.js +1 -1
  188. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  189. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  190. package/src/sap/ui/core/service/Service.js +1 -1
  191. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  192. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  193. package/src/sap/ui/core/support/Plugin.js +1 -1
  194. package/src/sap/ui/core/support/Support.js +1 -1
  195. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  196. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  197. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  198. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  199. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  200. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  201. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  202. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  203. package/src/sap/ui/core/themes/base/base.less +3256 -19
  204. package/src/sap/ui/core/theming/ThemeManager.js +6 -3
  205. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  206. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  207. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  208. package/src/sap/ui/core/tmpl/Template.js +1 -1
  209. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  210. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  211. package/src/sap/ui/core/util/Export.js +1 -1
  212. package/src/sap/ui/core/util/ExportCell.js +1 -1
  213. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  214. package/src/sap/ui/core/util/ExportRow.js +1 -1
  215. package/src/sap/ui/core/util/ExportType.js +1 -1
  216. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  217. package/src/sap/ui/core/util/File.js +1 -1
  218. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  219. package/src/sap/ui/core/util/MockServer.js +1 -1
  220. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  221. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  222. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  223. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  224. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  225. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  226. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  227. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  228. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  229. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  230. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  231. package/src/sap/ui/debug/ControlTree.js +1 -1
  232. package/src/sap/ui/debug/DebugEnv.js +1 -1
  233. package/src/sap/ui/debug/PropertyList.js +1 -1
  234. package/src/sap/ui/model/ClientModel.js +1 -1
  235. package/src/sap/ui/model/CompositeBinding.js +1 -1
  236. package/src/sap/ui/model/CompositeDataState.js +1 -1
  237. package/src/sap/ui/model/CompositeType.js +1 -1
  238. package/src/sap/ui/model/DataState.js +1 -1
  239. package/src/sap/ui/model/MetaModel.js +1 -1
  240. package/src/sap/ui/model/Model.js +1 -1
  241. package/src/sap/ui/model/SelectionModel.js +1 -1
  242. package/src/sap/ui/model/SimpleType.js +7 -3
  243. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  244. package/src/sap/ui/model/Type.js +1 -1
  245. package/src/sap/ui/model/json/JSONModel.js +1 -1
  246. package/src/sap/ui/model/message/MessageModel.js +1 -1
  247. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  248. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  249. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  250. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  251. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  252. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  253. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  254. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  255. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  256. package/src/sap/ui/model/odata/type/Date.js +19 -1
  257. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  258. package/src/sap/ui/model/odata/type/DateTimeBase.js +36 -1
  259. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  260. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +4 -1
  261. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  262. package/src/sap/ui/model/odata/type/Double.js +1 -1
  263. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  264. package/src/sap/ui/model/odata/type/Int.js +1 -1
  265. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  266. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  267. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  268. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  269. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  270. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  271. package/src/sap/ui/model/odata/type/Single.js +1 -1
  272. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  273. package/src/sap/ui/model/odata/type/String.js +1 -1
  274. package/src/sap/ui/model/odata/type/Time.js +32 -1
  275. package/src/sap/ui/model/odata/type/TimeOfDay.js +19 -1
  276. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  277. package/src/sap/ui/model/odata/v2/Context.js +72 -28
  278. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +5 -4
  279. package/src/sap/ui/model/odata/v2/ODataListBinding.js +29 -10
  280. package/src/sap/ui/model/odata/v2/ODataModel.js +29 -17
  281. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -1
  282. package/src/sap/ui/model/odata/v4/Context.js +33 -20
  283. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -21
  284. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  285. package/src/sap/ui/model/odata/v4/ODataListBinding.js +167 -65
  286. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  287. package/src/sap/ui/model/odata/v4/ODataModel.js +4 -3
  288. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +35 -25
  289. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  290. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +87 -18
  291. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  292. package/src/sap/ui/model/odata/v4/lib/_Cache.js +99 -64
  293. package/src/sap/ui/model/odata/v4/lib/_Helper.js +57 -2
  294. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -0
  295. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  296. package/src/sap/ui/model/type/Boolean.js +1 -1
  297. package/src/sap/ui/model/type/Currency.js +1 -1
  298. package/src/sap/ui/model/type/Date.js +1 -1
  299. package/src/sap/ui/model/type/DateInterval.js +1 -1
  300. package/src/sap/ui/model/type/DateTime.js +1 -1
  301. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  302. package/src/sap/ui/model/type/FileSize.js +1 -1
  303. package/src/sap/ui/model/type/Float.js +1 -1
  304. package/src/sap/ui/model/type/Integer.js +1 -1
  305. package/src/sap/ui/model/type/String.js +1 -1
  306. package/src/sap/ui/model/type/Time.js +1 -1
  307. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  308. package/src/sap/ui/model/type/Unit.js +1 -1
  309. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  310. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +180 -0
  311. package/src/sap/ui/qunit/qunit-coverage.js +9 -4
  312. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  313. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  314. package/src/sap/ui/test/Opa.js +54 -21
  315. package/src/sap/ui/test/Opa5.js +181 -131
  316. package/src/sap/ui/test/OpaBuilder.js +106 -73
  317. package/src/sap/ui/test/OpaPlugin.js +8 -3
  318. package/src/sap/ui/test/RecordReplay.js +7 -3
  319. package/src/sap/ui/test/actions/EnterText.js +3 -2
  320. package/src/sap/ui/test/generic/TestBase.js +1 -1
  321. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +3 -1
  322. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -2
  323. package/src/sap/ui/test/starter/_configureLoader.js +7 -5
  324. package/src/sap/ui/test/starter/_setupAndStart.js +113 -27
  325. package/src/sap/ui/test/starter/_utils.js +4 -1
  326. package/src/sap/ui/util/Storage.js +1 -1
  327. package/src/ui5loader-autoconfig.js +3 -1
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.model.odata.type.ODataType
116
116
  * @public
117
117
  * @since 1.27.0
118
- * @version 1.112.0
118
+ * @version 1.113.0
119
119
  */
120
120
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
121
121
  constructor : function (oFormatOptions, oConstraints) {
@@ -129,6 +129,41 @@ sap.ui.define([
129
129
  }
130
130
  });
131
131
 
132
+ /**
133
+ * Returns a date object for a given model value.
134
+ *
135
+ * @param {Date|module:sap/ui/core/date/UI5Date|string|null} vModelValue
136
+ * The model value of this type. Can be retrieved via this type's <code>getModelValue</code> function.
137
+ * @returns {Date|module:sap/ui/core/date/UI5Date|null}
138
+ * An instance of <code>Date</code> for which the local getters <code>getDate()</code>, <code>getMonth()</code>,
139
+ * <code>getFullYear()</code>, <code>getHours()</code>, <code>getMinutes()</code>, <code>getSeconds()</code>, and
140
+ * <code>getMilliseconds()</code> can be used to get the corresponding day, month, year, hours, minutes, seconds,
141
+ * and milliseconds of the given model value
142
+ *
143
+ * @since 1.113.0
144
+ * @private
145
+ * @ui5-restricted sap.fe, sap.suite.ui.generic.template, sap.ui.comp, sap.ui.generic
146
+ */
147
+ DateTimeBase.prototype.getDateValue = function (vModelValue) {
148
+ var oResult;
149
+
150
+ if (!vModelValue) {
151
+ return null;
152
+ }
153
+
154
+ oResult = UI5Date.getInstance(vModelValue);
155
+ if (isDateOnly(this)) {
156
+ oResult.setFullYear(oResult.getUTCFullYear(), oResult.getUTCMonth(), oResult.getUTCDate());
157
+ oResult.setHours(0, 0, 0, 0);
158
+ } else if (this.oFormatOptions && this.oFormatOptions.UTC) {
159
+ oResult.setFullYear(oResult.getUTCFullYear(), oResult.getUTCMonth(), oResult.getUTCDate());
160
+ oResult.setHours(oResult.getUTCHours(), oResult.getUTCMinutes(),
161
+ oResult.getUTCSeconds(), oResult.getUTCMilliseconds());
162
+ }
163
+
164
+ return oResult;
165
+ };
166
+
132
167
  /**
133
168
  * Formats the given value to the given target type.
134
169
  *
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.model.odata.type.DateTimeBase
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.112.0
32
+ * @version 1.113.0
33
33
  *
34
34
  * @alias sap.ui.model.odata.type.DateTimeOffset
35
35
  * @param {object} [oFormatOptions]
@@ -56,11 +56,14 @@ sap.ui.define([
56
56
  * part. For this, the timestamp part has to be provided in the UTC time zone. When using this
57
57
  * type with the {@link sap.ui.model.odata.v2.ODataModel}, you need to set the parameter
58
58
  * <code>useUndefinedIfUnresolved</code> for both parts.
59
+ *
60
+ * For more information and some examples how to use this class, see
61
+ * {@link topic:6c9e61dc157a40c19460660ece8368bc Dates, Times, Timestamps, and Time Zones}.
59
62
  * @extends sap.ui.model.CompositeType
60
63
  * @public
61
64
  * @see {sap.ui.model.odata.v2.ODataModel#bindProperty}
62
65
  * @since 1.99.0
63
- * @version 1.112.0
66
+ * @version 1.113.0
64
67
  */
65
68
  var DateTimeWithTimezone = CompositeType.extend("sap.ui.model.odata.type.DateTimeWithTimezone",
66
69
  {
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * @extends sap.ui.model.odata.type.ODataType
202
202
  *
203
203
  * @author SAP SE
204
- * @version 1.112.0
204
+ * @version 1.113.0
205
205
  *
206
206
  * @alias sap.ui.model.odata.type.Decimal
207
207
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.112.0
98
+ * @version 1.113.0
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Double
101
101
  * @param {object} [oFormatOptions]
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @extends sap.ui.model.odata.type.ODataType
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.112.0
65
+ * @version 1.113.0
66
66
  *
67
67
  * @alias sap.ui.model.odata.type.Guid
68
68
  * @param {object} [oFormatOptions]
@@ -80,7 +80,7 @@ sap.ui.define([
80
80
  * @extends sap.ui.model.odata.type.ODataType
81
81
  *
82
82
  * @author SAP SE
83
- * @version 1.112.0
83
+ * @version 1.113.0
84
84
  *
85
85
  * @abstract
86
86
  * @alias sap.ui.model.odata.type.Int
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.112.0
27
+ * @version 1.113.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int16
30
30
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.112.0
27
+ * @version 1.113.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int32
30
30
  * @param {object} [oFormatOptions]
@@ -137,7 +137,7 @@ sap.ui.define([
137
137
  * @extends sap.ui.model.odata.type.ODataType
138
138
  *
139
139
  * @author SAP SE
140
- * @version 1.112.0
140
+ * @version 1.113.0
141
141
  *
142
142
  * @alias sap.ui.model.odata.type.Int64
143
143
  * @param {object} [oFormatOptions]
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.model.SimpleType
116
116
  *
117
117
  * @author SAP SE
118
- * @version 1.112.0
118
+ * @version 1.113.0
119
119
  *
120
120
  * @abstract
121
121
  * @alias sap.ui.model.odata.type.ODataType
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.model.odata.type.ODataType
31
31
  * @public
32
32
  * @since 1.37.0
33
- * @version 1.112.0
33
+ * @version 1.113.0
34
34
  */
35
35
  var Raw = ODataType.extend("sap.ui.model.odata.type.Raw", {
36
36
  constructor : function (oFormatOptions, oConstraints) {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.112.0
27
+ * @version 1.113.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.112.0
98
+ * @version 1.113.0
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Single
101
101
  * @param {object} [oFormatOptions]
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.model.odata.type.ODataType
61
61
  * @public
62
62
  * @since 1.51.0
63
- * @version 1.112.0
63
+ * @version 1.113.0
64
64
  */
65
65
  var Stream = ODataType.extend("sap.ui.model.odata.type.Stream", {
66
66
  constructor : function (oFormatOptions, oConstraints) {
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @extends sap.ui.model.odata.type.ODataType
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.112.0
87
+ * @version 1.113.0
88
88
  *
89
89
  * @alias sap.ui.model.odata.type.String
90
90
  * @param {object} [oFormatOptions]
@@ -156,7 +156,7 @@ sap.ui.define([
156
156
  * @extends sap.ui.model.odata.type.ODataType
157
157
  *
158
158
  * @author SAP SE
159
- * @version 1.112.0
159
+ * @version 1.113.0
160
160
  *
161
161
  * @alias sap.ui.model.odata.type.Time
162
162
  * @param {object} [oFormatOptions]
@@ -213,6 +213,37 @@ sap.ui.define([
213
213
  }
214
214
  };
215
215
 
216
+ /**
217
+ * Returns a date object for a given model value.
218
+ *
219
+ * @param {object|null} oModelValue
220
+ * The model value of this type. Can be retrieved via {@link sap.ui.model.odata.type.Time#getModelValue}.
221
+ * @param {int} oModelValue.ms
222
+ * The time in milliseconds, ranging from 0 (1970-01-01T00:00:00.000Z) to 86399999 (1970-01-01T23:59:59.999Z)
223
+ * @returns {Date|module:sap/ui/core/date/UI5Date|null}
224
+ * An instance of <code>Date</code> for which the local getters <code>getHours()</code>,
225
+ * <code>getMinutes()</code>, <code>getSeconds()</code>, and <code>getMilliseconds()</code> can be used to get the
226
+ * corresponding hours, minutes, seconds, and milliseconds of the given model value
227
+ *
228
+ * @since 1.113.0
229
+ * @private
230
+ * @ui5-restricted sap.fe, sap.suite.ui.generic.template, sap.ui.comp, sap.ui.generic
231
+ */
232
+ Time.prototype.getDateValue = function (oModelValue) {
233
+ var oResult;
234
+
235
+ if (!oModelValue) {
236
+ return null;
237
+ }
238
+
239
+ oResult = UI5Date.getInstance(oModelValue.ms);
240
+ oResult.setFullYear(1970, 0, 1);
241
+ oResult.setHours(oResult.getUTCHours(), oResult.getUTCMinutes(), oResult.getUTCSeconds(),
242
+ oResult.getUTCMilliseconds());
243
+
244
+ return oResult;
245
+ };
246
+
216
247
  /**
217
248
  * Returns a formatter that converts between the model format and a Javascript Date. It has two
218
249
  * methods: <code>format</code> takes a Date and returns an object as described in
@@ -111,7 +111,7 @@ sap.ui.define([
111
111
  * @extends sap.ui.model.odata.type.ODataType
112
112
  * @public
113
113
  * @since 1.37.0
114
- * @version 1.112.0
114
+ * @version 1.113.0
115
115
  */
116
116
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
117
117
  constructor : function (oFormatOptions, oConstraints) {
@@ -197,6 +197,24 @@ sap.ui.define([
197
197
  }
198
198
  };
199
199
 
200
+ /**
201
+ * Returns a date object for a given model value.
202
+ *
203
+ * @param {string|null} sModelValue
204
+ * The model value of this type. Can be retrieved via {@link sap.ui.model.odata.type.TimeOfDay#getModelValue}.
205
+ * @returns {Date|module:sap/ui/core/date/UI5Date|null}
206
+ * An instance of <code>Date</code> for which the local getters <code>getHours()</code>,
207
+ * <code>getMinutes()</code>, <code>getSeconds()</code>, and <code>getMilliseconds()</code> can be used to get the
208
+ * corresponding hours, minutes, seconds, and milliseconds of the given model value
209
+ *
210
+ * @since 1.113.0
211
+ * @private
212
+ * @ui5-restricted sap.fe, sap.suite.ui.generic.template, sap.ui.comp, sap.ui.generic
213
+ */
214
+ TimeOfDay.prototype.getDateValue = function (sModelValue) {
215
+ return sModelValue ? UI5Date.getInstance("1970-01-01T" + sModelValue) : null;
216
+ };
217
+
200
218
  /**
201
219
  * Returns a formatter that converts between the model format and a Javascript Date. It has two
202
220
  * methods: <code>format</code> takes a Date and returns a date as a String in the format
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  * @extends sap.ui.model.type.Unit
67
67
  * @public
68
68
  * @since 1.63.0
69
- * @version 1.112.0
69
+ * @version 1.113.0
70
70
  */
71
71
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
72
72
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @hideconstructor
65
65
  * @public
66
66
  * @since 1.93.0
67
- * @version 1.112.0
67
+ * @version 1.113.0
68
68
  */
69
69
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
70
70
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive,
@@ -95,6 +95,12 @@ sap.ui.define([
95
95
  this.bUpdated = false;
96
96
  // whether the context is inactive
97
97
  this.bInactive = !!bInactive;
98
+ // the function to start activation of this context (which may be prevented by apps)
99
+ this.fnStartActivation = undefined;
100
+ // the promise on activation start of this context
101
+ this.oStartActivationPromise = bInactive
102
+ ? new SyncPromise(function (resolve) { that.fnStartActivation = resolve; })
103
+ : SyncPromise.resolve();
98
104
  // the function to activate this context
99
105
  this.fnActivate = undefined;
100
106
  // the promise on activation of this context
@@ -108,18 +114,6 @@ sap.ui.define([
108
114
  }
109
115
  });
110
116
 
111
- /**
112
- * Activates this context.
113
- *
114
- * @private
115
- */
116
- Context.prototype.activate = function () {
117
- this.bInactive = false;
118
- if (this.fnActivate) {
119
- this.fnActivate();
120
- }
121
- };
122
-
123
117
  /**
124
118
  * Adds the given transient context as sub-context to this transient context under the given
125
119
  * navigation property.
@@ -140,6 +134,17 @@ sap.ui.define([
140
134
  }
141
135
  };
142
136
 
137
+ /**
138
+ * Cancels activation of this inactive context. A new activation promise is created.
139
+ *
140
+ * @private
141
+ */
142
+ Context.prototype.cancelActivation = function () {
143
+ var that = this;
144
+
145
+ this.oStartActivationPromise = new SyncPromise(function (resolve) { that.fnStartActivation = resolve; });
146
+ };
147
+
143
148
  /**
144
149
  * Returns a promise on the creation state of this context if it has been created via
145
150
  * {@link sap.ui.model.odata.v2.ODataModel#createEntry} or
@@ -187,7 +192,11 @@ sap.ui.define([
187
192
  };
188
193
 
189
194
  /**
190
- * Deletes the OData entity this context points to.
195
+ * Deletes the OData entity this context points to. Persisted contexts are only removed from the UI after their
196
+ * successful deletion in the back end. In this case, the <code>Promise</code> returned by this method is only
197
+ * resolved when the back-end request has been successful.
198
+ * <b>Example:</b> A persisted entry in a table control is deleted by this method. It remains visible on the UI and
199
+ * only disappears upon successful deletion in the back end.
191
200
  * <b>Note:</b> The context must not be used anymore after successful deletion.
192
201
  *
193
202
  * @param {object} [mParameters]
@@ -256,7 +265,7 @@ sap.ui.define([
256
265
  * Returns the promise which resolves with <code>undefined</code> on activation of this context
257
266
  * or if this context is already active; the promise never rejects.
258
267
  *
259
- * @return {sap.ui.base.SyncPromise} The promise on activation of this context
268
+ * @returns {sap.ui.base.SyncPromise} The promise on activation of this context
260
269
  *
261
270
  * @private
262
271
  */
@@ -264,11 +273,35 @@ sap.ui.define([
264
273
  return this.oActivatedPromise;
265
274
  };
266
275
 
276
+ /**
277
+ * Returns the promise which resolves with <code>undefined</code> when activation of this context is started
278
+ * or if this context is already active; the promise never rejects.
279
+ *
280
+ * @returns {sap.ui.base.SyncPromise} The promise on activation start of this context
281
+ *
282
+ * @private
283
+ */
284
+ Context.prototype.fetchActivationStarted = function () {
285
+ return this.oStartActivationPromise;
286
+ };
287
+
288
+ /**
289
+ * Finishes activation of this context.
290
+ *
291
+ * @private
292
+ */
293
+ Context.prototype.finishActivation = function () {
294
+ this.bInactive = false;
295
+ if (this.fnActivate) {
296
+ this.fnActivate();
297
+ }
298
+ };
299
+
267
300
  /**
268
301
  * Gets the absolute deep path including all intermediate paths of the binding hierarchy. This
269
302
  * path is used to compute the full target of messages.
270
303
  *
271
- * @return {string} The deep path
304
+ * @returns {string} The deep path
272
305
  * @private
273
306
  */
274
307
  Context.prototype.getDeepPath = function () {
@@ -350,7 +383,7 @@ sap.ui.define([
350
383
  * Whether this context has changed, which means it has been updated or a refresh of dependent
351
384
  * bindings needs to be enforced.
352
385
  *
353
- * @return {boolean} Whether this context has changed
386
+ * @returns {boolean} Whether this context has changed
354
387
  * @private
355
388
  * @see sap.ui.model.odata.v2.Context#isUpdated
356
389
  * @see sap.ui.model.odata.v2.Context#isRefreshForced
@@ -362,7 +395,7 @@ sap.ui.define([
362
395
  /**
363
396
  * Returns whether this context has at least one sub-context.
364
397
  *
365
- * @return {boolean} Whether this context has at least one sub-context
398
+ * @returns {boolean} Whether this context has at least one sub-context
366
399
  *
367
400
  * @private
368
401
  */
@@ -373,7 +406,7 @@ sap.ui.define([
373
406
  /**
374
407
  * Returns whether this context has a transient parent context.
375
408
  *
376
- * @return {boolean} Whether this context has a transient parent context
409
+ * @returns {boolean} Whether this context has a transient parent context
377
410
  *
378
411
  * @private
379
412
  */
@@ -382,13 +415,12 @@ sap.ui.define([
382
415
  };
383
416
 
384
417
  /**
385
- * Returns whether this context is inactive. An inactive context will only be sent to the
386
- * server after the first property update. From then on it behaves like any other created
387
- * context. The result of this function can also be accessed via the
388
- * "@$ui5.context.isInactive" instance annotation at the entity, see
389
- * {@link sap.ui.model.odata.v2.ODataModel#getProperty} for details.
418
+ * Returns whether this context is inactive. An inactive context will not be sent to the
419
+ * server until it is activated. From then on it behaves like any other created context.
420
+ * The result of this function can also be accessed via the "@$ui5.context.isInactive" instance
421
+ * annotation at the entity, see {@link sap.ui.model.odata.v2.ODataModel#getProperty} for details.
390
422
  *
391
- * @return {boolean} Whether this context is inactive
423
+ * @returns {boolean} Whether this context is inactive
392
424
  *
393
425
  * @public
394
426
  * @see sap.ui.model.odata.v2.ODataListBinding#create
@@ -404,7 +436,7 @@ sap.ui.define([
404
436
  * if no data has been loaded for the context's entity. This can be used by dependent bindings
405
437
  * to send their requests in parallel to the request of the context binding.
406
438
  *
407
- * @return {boolean} Whether this context is preliminary
439
+ * @returns {boolean} Whether this context is preliminary
408
440
  * @private
409
441
  * @ui5-restricted sap.suite.ui.generic
410
442
  */
@@ -416,7 +448,7 @@ sap.ui.define([
416
448
  * Whether dependent bindings of this context need to be refreshed, when the context is
417
449
  * propagated.
418
450
  *
419
- * @return {boolean} Whether dependent bindings need to be refreshed
451
+ * @returns {boolean} Whether dependent bindings need to be refreshed
420
452
  * @private
421
453
  */
422
454
  Context.prototype.isRefreshForced = function () {
@@ -456,7 +488,7 @@ sap.ui.define([
456
488
  * Whether this context was updated. For example the path changed from a preliminary path to the
457
489
  * canonical one.
458
490
  *
459
- * @return {boolean} Whether the context is updated
491
+ * @returns {boolean} Whether the context is updated
460
492
  * @private
461
493
  */
462
494
  Context.prototype.isUpdated = function () {
@@ -555,5 +587,17 @@ sap.ui.define([
555
587
  this.bUpdated = bUpdated;
556
588
  };
557
589
 
590
+ /**
591
+ * Starts activation of this inactive context. The promise returned by {@link #fetchActivationStarted}
592
+ * is resolved.
593
+ *
594
+ * @private
595
+ */
596
+ Context.prototype.startActivation = function () {
597
+ if (this.fnStartActivation) {
598
+ this.fnStartActivation();
599
+ }
600
+ };
601
+
558
602
  return Context;
559
603
  });
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @class Annotation loader for OData V2 services
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.112.0
39
+ * @version 1.113.0
40
40
  *
41
41
  * @public
42
42
  * @since 1.37.0
@@ -412,9 +412,10 @@ sap.ui.define([
412
412
  * Parameters of the <code>loaded</code> event.
413
413
  *
414
414
  * @typedef {object} sap.ui.model.odata.v2.ODataAnnotations.loadedParameters
415
- * @property {sap.ui.model.odata.v2.ODataAnnotations.Source[]|Error[]|any} result An array of results and Errors
416
- * (@see sap.ui.model.v2.ODataAnnotations#success and @see sap.ui.model.v2.ODataAnnotations#error) that
417
- * occurred while loading a group of annotations
415
+ * @property {sap.ui.model.odata.v2.ODataAnnotations.Source[]|Error[]|any} result
416
+ * An array of results and Errors (see {@link sap.ui.model.v2.ODataAnnotations#success}
417
+ * and {@link sap.ui.model.v2.ODataAnnotations#error}) that occurred while loading
418
+ * a group of annotations
418
419
  * @public
419
420
  */
420
421
 
@@ -178,10 +178,14 @@ sap.ui.define([
178
178
 
179
179
  /**
180
180
  * The 'createActivate' event is fired when a property is changed on a context in an 'inactive'
181
- * state (see {@link #create}). The context then changes its state to 'transient'.
181
+ * state (see {@link #create}). The context then changes its state to 'transient'. Since
182
+ * 1.113.0, this default behavior can be prevented by calling
183
+ * {@link sap.ui.base.Event#preventDefault}. The context will then remain in the 'inactive'
184
+ * state.
182
185
  *
183
186
  * @param {sap.ui.base.Event} oEvent The event object
184
- * @param {sap.ui.model.odata.v2.ODataListBinding} oEvent.getSource() This binding
187
+ * @param {sap.ui.model.odata.v2.ODataListBinding} oEvent.getSource This binding
188
+ * @param {sap.ui.model.odata.v2.Context} oEvent.getParameters.context The affected context
185
189
  *
186
190
  * @event sap.ui.model.odata.v2.ODataListBinding#createActivate
187
191
  * @public
@@ -1990,9 +1994,7 @@ sap.ui.define([
1990
1994
  oCreatedContextsCache.addContext(oCreatedContext, sResolvedPath,
1991
1995
  this.sCreatedEntitiesKey, bAtEnd);
1992
1996
  if (mCreateParameters.inactive) {
1993
- oCreatedContext.fetchActivated().then(function () {
1994
- that.fireEvent("createActivate");
1995
- });
1997
+ oCreatedContext.fetchActivationStarted().then(that.fireCreateActivate.bind(that, oCreatedContext));
1996
1998
  }
1997
1999
  this._fireChange({reason : ChangeReason.Add});
1998
2000
 
@@ -2228,8 +2230,8 @@ sap.ui.define([
2228
2230
  };
2229
2231
 
2230
2232
  /**
2231
- * Assigns the "createActivate"-event to all already exisiting inactive contexts which are
2232
- * belonging to this binding.
2233
+ * Assigns the "createActivate"-event to all already existing inactive contexts which belong to
2234
+ * this binding.
2233
2235
  *
2234
2236
  * @private
2235
2237
  */
@@ -2238,12 +2240,29 @@ sap.ui.define([
2238
2240
 
2239
2241
  this._getCreatedContexts().forEach(function (oContext) {
2240
2242
  if (oContext.isInactive()) {
2241
- oContext.fetchActivated().then(function () {
2242
- that.fireEvent("createActivate");
2243
- });
2243
+ oContext.fetchActivationStarted().then(that.fireCreateActivate.bind(that, oContext));
2244
2244
  }
2245
2245
  });
2246
2246
  };
2247
2247
 
2248
+ /**
2249
+ * Fires the 'createActivate' event and deactivates the given context in case the application's event handler
2250
+ * calls <code>preventDefault</code> on the event.
2251
+ *
2252
+ * @param {sap.ui.model.odata.v2.Context} oContext
2253
+ * The context which is activated
2254
+ *
2255
+ * @private
2256
+ */
2257
+ ODataListBinding.prototype.fireCreateActivate = function (oContext) {
2258
+ if (this.fireEvent("createActivate", {context : oContext}, /*bAllowPreventDefault*/true)) {
2259
+ oContext.finishActivation();
2260
+ this._fireChange({reason : ChangeReason.Change});
2261
+ } else {
2262
+ oContext.cancelActivation();
2263
+ oContext.fetchActivationStarted().then(this.fireCreateActivate.bind(this, oContext));
2264
+ }
2265
+ };
2266
+
2248
2267
  return ODataListBinding;
2249
2268
  });