@openui5/sap.ui.core 1.112.2 → 1.114.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 (400) hide show
  1. package/.dtsgenrc +102 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +10 -4
  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/jquery.sap.trace.js +14 -14
  10. package/src/sap/base/Log.js +92 -8
  11. package/src/sap/base/assert.js +1 -1
  12. package/src/sap/base/config/MemoryConfigurationProvider.js +22 -0
  13. package/src/sap/base/config.js +54 -0
  14. package/src/sap/base/security/URLWhitelist.js +1 -1
  15. package/src/sap/base/util/Deferred.js +3 -2
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +8 -3
  58. package/src/sap/ui/Global.js +4 -4
  59. package/src/sap/ui/base/BindingParser.js +79 -18
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/ExpressionParser.js +15 -5
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +16 -13
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +35 -35
  66. package/src/sap/ui/base/Metadata.js +23 -12
  67. package/src/sap/ui/base/Object.js +1 -1
  68. package/src/sap/ui/base/ObjectPool.js +1 -1
  69. package/src/sap/ui/core/.library +1 -1
  70. package/src/sap/ui/core/BusyIndicator.js +4 -4
  71. package/src/sap/ui/core/Component.js +10 -7
  72. package/src/sap/ui/core/ComponentContainer.js +1 -1
  73. package/src/sap/ui/core/ComponentMetadata.js +3 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +104 -45
  76. package/src/sap/ui/core/Control.js +23 -6
  77. package/src/sap/ui/core/Core.js +36 -15
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/CustomStyleClassSupport.js +5 -2
  80. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  81. package/src/sap/ui/core/Element.js +1 -1
  82. package/src/sap/ui/core/ElementMetadata.js +19 -4
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +4 -4
  85. package/src/sap/ui/core/Fragment.js +1 -1
  86. package/src/sap/ui/core/HTML.js +1 -1
  87. package/src/sap/ui/core/History.js +1 -1
  88. package/src/sap/ui/core/Icon.js +1 -1
  89. package/src/sap/ui/core/IconPool.js +17 -2
  90. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  91. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  92. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  93. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  94. package/src/sap/ui/core/InvisibleText.js +1 -1
  95. package/src/sap/ui/core/Item.js +1 -1
  96. package/src/sap/ui/core/LabelEnablement.js +10 -2
  97. package/src/sap/ui/core/LayoutData.js +1 -1
  98. package/src/sap/ui/core/Lib.js +28 -2
  99. package/src/sap/ui/core/ListItem.js +1 -1
  100. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  101. package/src/sap/ui/core/Locale.js +2 -2
  102. package/src/sap/ui/core/LocaleData.js +87 -19
  103. package/src/sap/ui/core/Manifest.js +5 -5
  104. package/src/sap/ui/core/Message.js +1 -1
  105. package/src/sap/ui/core/Popup.js +34 -36
  106. package/src/sap/ui/core/RenderManager.js +8 -2
  107. package/src/sap/ui/core/Renderer.js +1 -1
  108. package/src/sap/ui/core/Rendering.js +2 -3
  109. package/src/sap/ui/core/ResizeHandler.js +2 -2
  110. package/src/sap/ui/core/ScrollBar.js +1 -1
  111. package/src/sap/ui/core/SeparatorItem.js +1 -1
  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 +9 -2
  115. package/src/sap/ui/core/UIComponent.js +16 -13
  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/XMLTemplateProcessor.js +30 -6
  122. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  123. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  124. package/src/sap/ui/core/date/CalendarUtils.js +14 -26
  125. package/src/sap/ui/core/date/CalendarWeekNumbering.js +32 -0
  126. package/src/sap/ui/core/date/UI5Date.js +14 -8
  127. package/src/sap/ui/core/date/UniversalDate.js +15 -53
  128. package/src/sap/ui/core/date/UniversalDateUtils.js +4 -4
  129. package/src/sap/ui/core/date/_Calendars.js +1 -1
  130. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  131. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  133. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  135. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  136. package/src/sap/ui/core/format/DateFormat.js +166 -59
  137. package/src/sap/ui/core/format/NumberFormat.js +40 -5
  138. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  139. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  140. package/src/sap/ui/core/library.js +3 -3
  141. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  142. package/src/sap/ui/core/message/Message.js +1 -1
  143. package/src/sap/ui/core/message/MessageManager.js +1 -1
  144. package/src/sap/ui/core/message/MessageParser.js +1 -1
  145. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  146. package/src/sap/ui/core/messagebundle.properties +2 -0
  147. package/src/sap/ui/core/messagebundle_ar.properties +2 -1
  148. package/src/sap/ui/core/messagebundle_bg.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_cs.properties +2 -1
  151. package/src/sap/ui/core/messagebundle_cy.properties +2 -1
  152. package/src/sap/ui/core/messagebundle_da.properties +2 -1
  153. package/src/sap/ui/core/messagebundle_de.properties +2 -1
  154. package/src/sap/ui/core/messagebundle_el.properties +2 -1
  155. package/src/sap/ui/core/messagebundle_en.properties +2 -1
  156. package/src/sap/ui/core/messagebundle_en_GB.properties +2 -1
  157. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_es.properties +5 -4
  160. package/src/sap/ui/core/messagebundle_es_MX.properties +2 -1
  161. package/src/sap/ui/core/messagebundle_et.properties +2 -1
  162. package/src/sap/ui/core/messagebundle_fi.properties +2 -1
  163. package/src/sap/ui/core/messagebundle_fr.properties +2 -1
  164. package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -1
  165. package/src/sap/ui/core/messagebundle_hi.properties +2 -1
  166. package/src/sap/ui/core/messagebundle_hr.properties +2 -1
  167. package/src/sap/ui/core/messagebundle_hu.properties +2 -1
  168. package/src/sap/ui/core/messagebundle_id.properties +2 -1
  169. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  170. package/src/sap/ui/core/messagebundle_iw.properties +2 -1
  171. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_kk.properties +2 -1
  173. package/src/sap/ui/core/messagebundle_ko.properties +2 -1
  174. package/src/sap/ui/core/messagebundle_lt.properties +2 -1
  175. package/src/sap/ui/core/messagebundle_lv.properties +2 -1
  176. package/src/sap/ui/core/messagebundle_ms.properties +2 -1
  177. package/src/sap/ui/core/messagebundle_nl.properties +2 -1
  178. package/src/sap/ui/core/messagebundle_no.properties +2 -1
  179. package/src/sap/ui/core/messagebundle_pl.properties +2 -1
  180. package/src/sap/ui/core/messagebundle_pt.properties +2 -1
  181. package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -1
  182. package/src/sap/ui/core/messagebundle_ro.properties +2 -1
  183. package/src/sap/ui/core/messagebundle_ru.properties +3 -2
  184. package/src/sap/ui/core/messagebundle_sh.properties +2 -1
  185. package/src/sap/ui/core/messagebundle_sk.properties +2 -1
  186. package/src/sap/ui/core/messagebundle_sl.properties +2 -1
  187. package/src/sap/ui/core/messagebundle_sv.properties +2 -1
  188. package/src/sap/ui/core/messagebundle_th.properties +2 -1
  189. package/src/sap/ui/core/messagebundle_tr.properties +2 -1
  190. package/src/sap/ui/core/messagebundle_uk.properties +2 -1
  191. package/src/sap/ui/core/messagebundle_vi.properties +2 -1
  192. package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -1
  193. package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -1
  194. package/src/sap/ui/core/mvc/Controller.js +2 -3
  195. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  196. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  197. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  198. package/src/sap/ui/core/mvc/JSView.js +1 -1
  199. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  200. package/src/sap/ui/core/mvc/View.js +24 -17
  201. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  202. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  203. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  204. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  205. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  206. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  207. package/src/sap/ui/core/routing/Route.js +30 -22
  208. package/src/sap/ui/core/routing/Router.js +5 -3
  209. package/src/sap/ui/core/routing/Target.js +170 -3
  210. package/src/sap/ui/core/routing/Targets.js +5 -214
  211. package/src/sap/ui/core/routing/Views.js +1 -1
  212. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  213. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  214. package/src/sap/ui/core/service/Service.js +1 -1
  215. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  216. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  217. package/src/sap/ui/core/support/Plugin.js +1 -1
  218. package/src/sap/ui/core/support/Support.js +1 -1
  219. package/src/sap/ui/core/support/controls/InteractionTree.js +5 -3
  220. package/src/sap/ui/core/support/plugins/Breakpoint.js +2 -2
  221. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  222. package/src/sap/ui/core/support/plugins/Interaction.js +6 -4
  223. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  224. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  225. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  226. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  227. package/src/sap/ui/core/support/plugins/Trace.js +4 -3
  228. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  229. package/src/sap/ui/core/themes/base/base.less +4358 -78
  230. package/src/sap/ui/core/themes/base/global.less +114 -8
  231. package/src/sap/ui/core/themes/sap_hcb/global.less +114 -8
  232. package/src/sap/ui/core/theming/Parameters.js +10 -2
  233. package/src/sap/ui/core/theming/ThemeManager.js +16 -12
  234. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  235. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  236. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  237. package/src/sap/ui/core/tmpl/Template.js +1 -1
  238. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  239. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  240. package/src/sap/ui/core/util/Export.js +1 -1
  241. package/src/sap/ui/core/util/ExportCell.js +1 -1
  242. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  243. package/src/sap/ui/core/util/ExportRow.js +1 -1
  244. package/src/sap/ui/core/util/ExportType.js +1 -1
  245. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  246. package/src/sap/ui/core/util/File.js +1 -1
  247. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  248. package/src/sap/ui/core/util/MockServer.js +1 -1
  249. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  250. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  251. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  252. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  253. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  254. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  255. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  256. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  257. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  258. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  259. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  260. package/src/sap/ui/debug/ControlTree.js +1 -1
  261. package/src/sap/ui/debug/DebugEnv.js +1 -1
  262. package/src/sap/ui/debug/PropertyList.js +1 -1
  263. package/src/sap/ui/dom/includeScript.js +3 -3
  264. package/src/sap/ui/dom/includeStylesheet.js +3 -3
  265. package/src/sap/ui/events/ControlEvents.js +2 -2
  266. package/src/sap/ui/events/PseudoEvents.js +4 -2
  267. package/src/sap/ui/model/ClientModel.js +1 -1
  268. package/src/sap/ui/model/CompositeBinding.js +1 -1
  269. package/src/sap/ui/model/CompositeDataState.js +1 -1
  270. package/src/sap/ui/model/CompositeType.js +1 -1
  271. package/src/sap/ui/model/DataState.js +1 -1
  272. package/src/sap/ui/model/ManagedObjectBindingSupport.js +19 -2
  273. package/src/sap/ui/model/MetaModel.js +1 -1
  274. package/src/sap/ui/model/Model.js +1 -1
  275. package/src/sap/ui/model/SelectionModel.js +1 -1
  276. package/src/sap/ui/model/SimpleType.js +7 -3
  277. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  278. package/src/sap/ui/model/Type.js +1 -1
  279. package/src/sap/ui/model/base/ManagedObjectModel.js +12 -4
  280. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +2 -0
  281. package/src/sap/ui/model/json/JSONModel.js +1 -1
  282. package/src/sap/ui/model/message/MessageModel.js +1 -1
  283. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  285. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  286. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  287. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  288. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  289. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  290. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  291. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  292. package/src/sap/ui/model/odata/type/Date.js +67 -21
  293. package/src/sap/ui/model/odata/type/DateTime.js +51 -8
  294. package/src/sap/ui/model/odata/type/DateTimeBase.js +55 -26
  295. package/src/sap/ui/model/odata/type/DateTimeOffset.js +42 -1
  296. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +37 -21
  297. package/src/sap/ui/model/odata/type/Decimal.js +28 -33
  298. package/src/sap/ui/model/odata/type/Double.js +21 -26
  299. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int.js +15 -20
  301. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  302. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  303. package/src/sap/ui/model/odata/type/Int64.js +16 -21
  304. package/src/sap/ui/model/odata/type/ODataType.js +33 -6
  305. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  306. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  307. package/src/sap/ui/model/odata/type/Single.js +20 -25
  308. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  309. package/src/sap/ui/model/odata/type/String.js +1 -1
  310. package/src/sap/ui/model/odata/type/Time.js +91 -21
  311. package/src/sap/ui/model/odata/type/TimeOfDay.js +70 -24
  312. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  313. package/src/sap/ui/model/odata/v2/Context.js +72 -28
  314. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +5 -4
  315. package/src/sap/ui/model/odata/v2/ODataListBinding.js +29 -10
  316. package/src/sap/ui/model/odata/v2/ODataModel.js +92 -36
  317. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -1
  318. package/src/sap/ui/model/odata/v4/Context.js +36 -21
  319. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -21
  320. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +7 -25
  321. package/src/sap/ui/model/odata/v4/ODataListBinding.js +208 -74
  322. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  323. package/src/sap/ui/model/odata/v4/ODataModel.js +4 -3
  324. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +42 -28
  325. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  326. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +100 -21
  327. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  328. package/src/sap/ui/model/odata/v4/lib/_Cache.js +99 -64
  329. package/src/sap/ui/model/odata/v4/lib/_Helper.js +75 -2
  330. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -0
  331. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -0
  332. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  333. package/src/sap/ui/model/type/Boolean.js +1 -1
  334. package/src/sap/ui/model/type/Currency.js +1 -1
  335. package/src/sap/ui/model/type/Date.js +15 -1
  336. package/src/sap/ui/model/type/DateInterval.js +15 -1
  337. package/src/sap/ui/model/type/DateTime.js +1 -1
  338. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  339. package/src/sap/ui/model/type/FileSize.js +1 -1
  340. package/src/sap/ui/model/type/Float.js +1 -1
  341. package/src/sap/ui/model/type/Integer.js +1 -1
  342. package/src/sap/ui/model/type/String.js +1 -1
  343. package/src/sap/ui/model/type/Time.js +1 -1
  344. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  345. package/src/sap/ui/model/type/Unit.js +1 -1
  346. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  347. package/src/sap/ui/performance/Measurement.js +9 -9
  348. package/src/sap/ui/performance/trace/Interaction.js +50 -4
  349. package/src/sap/ui/performance/trace/initTraces.js +20 -14
  350. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +180 -0
  351. package/src/sap/ui/qunit/qunit-coverage.js +9 -4
  352. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  353. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  354. package/src/sap/ui/test/Opa.js +54 -21
  355. package/src/sap/ui/test/Opa5.js +181 -131
  356. package/src/sap/ui/test/OpaBuilder.js +106 -73
  357. package/src/sap/ui/test/OpaPlugin.js +27 -28
  358. package/src/sap/ui/test/PageObjectFactory.js +17 -7
  359. package/src/sap/ui/test/RecordReplay.js +7 -3
  360. package/src/sap/ui/test/_ParameterValidator.js +3 -3
  361. package/src/sap/ui/test/_UsageReport.js +3 -3
  362. package/src/sap/ui/test/_ValidationParameters.js +8 -10
  363. package/src/sap/ui/test/actions/Action.js +3 -3
  364. package/src/sap/ui/test/actions/EnterText.js +3 -2
  365. package/src/sap/ui/test/actions/Press.js +4 -4
  366. package/src/sap/ui/test/autowaiter/WaiterBase.js +5 -3
  367. package/src/sap/ui/test/autowaiter/_autoWaiter.js +6 -3
  368. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +3 -3
  369. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +3 -3
  370. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +73 -0
  371. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +2 -2
  372. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -4
  373. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +2 -2
  374. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +4 -4
  375. package/src/sap/ui/test/generic/TestBase.js +1 -1
  376. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +3 -1
  377. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +424 -423
  378. package/src/sap/ui/test/gherkin/StepDefinitions.js +160 -158
  379. package/src/sap/ui/test/gherkin/dataTableUtils.js +387 -385
  380. package/src/sap/ui/test/gherkin/opa5TestHarness.js +188 -189
  381. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +74 -71
  382. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +195 -193
  383. package/src/sap/ui/test/launchers/componentLauncher.js +11 -9
  384. package/src/sap/ui/test/launchers/iFrameLauncher.js +34 -20
  385. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  386. package/src/sap/ui/test/matchers/Interactable.js +2 -2
  387. package/src/sap/ui/test/matchers/LabelFor.js +2 -2
  388. package/src/sap/ui/test/matchers/MatcherFactory.js +10 -9
  389. package/src/sap/ui/test/matchers/Properties.js +5 -4
  390. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  391. package/src/sap/ui/test/matchers/matchers.js +35 -3
  392. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -2
  393. package/src/sap/ui/test/qunitPause.js +3 -2
  394. package/src/sap/ui/test/starter/_configureLoader.js +7 -5
  395. package/src/sap/ui/test/starter/_setupAndStart.js +113 -27
  396. package/src/sap/ui/test/starter/_utils.js +4 -1
  397. package/src/sap/ui/util/Mobile.js +8 -1
  398. package/src/sap/ui/util/Storage.js +1 -1
  399. package/src/ui5loader-autoconfig.js +661 -49
  400. package/src/ui5loader.js +18 -5
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.112.2
45
+ * @version 1.114.0
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -267,7 +267,7 @@ sap.ui.define([
267
267
  * <li> a <code>null</code> group ID is used with a context which is not
268
268
  * {@link #isKeepAlive kept alive},
269
269
  * <li> the context is already being deleted,
270
- * <li> the context's binding is a list binding with data aggregation,
270
+ * <li> the context's binding is a list binding with data aggregation.
271
271
  * </ul>
272
272
  *
273
273
  * @function
@@ -978,13 +978,15 @@ sap.ui.define([
978
978
  * @since 1.53.0
979
979
  */
980
980
  Context.prototype.hasPendingChanges = function () {
981
+ var that = this;
982
+
981
983
  return this.isTransient() && this.isInactive() !== true
982
984
  || this.oDeletePromise && this.oDeletePromise.isPending()
983
985
  || this.oBinding.hasPendingChangesForPath(this.sPath)
984
986
  || this.oModel.getDependentBindings(this).some(function (oDependentBinding) {
985
987
  return oDependentBinding.oCache
986
- ? oDependentBinding._hasPendingChanges(false, true)
987
- : oDependentBinding.hasPendingChangesInDependents(false, true);
988
+ ? oDependentBinding._hasPendingChanges(false, that.sPath)
989
+ : oDependentBinding.hasPendingChangesInDependents(false, that.sPath);
988
990
  })
989
991
  || this.oModel.withUnresolvedBindings("hasPendingChangesInCaches", this.sPath.slice(1));
990
992
  };
@@ -1663,9 +1665,6 @@ sap.ui.define([
1663
1665
  * context which is currently {@link #delete deleted} on the client, but not yet on the server,
1664
1666
  * this method cancels the deletion and restores the context.
1665
1667
  *
1666
- * Note: This is an experimental API. Currently only row contexts of an
1667
- * {@link sap.ui.model.odata.v4.ODataListBinding} are supported.
1668
- *
1669
1668
  * @returns {Promise}
1670
1669
  * A promise which is resolved without a defined result as soon as all changes in the context
1671
1670
  * and its current dependent bindings are canceled
@@ -1676,19 +1675,26 @@ sap.ui.define([
1676
1675
  * yet,
1677
1676
  * <li> this context is transient, but not inactive and therefore should rather be reset via
1678
1677
  * {@link #delete}.
1678
+ * <li> this context is a
1679
+ * {@link sap.ui.model.odata.v4.ODataListBinding#getHeaderContext header context}.
1680
+ * <li> this context is a
1681
+ * {@link sap.ui.model.odata.v4.ODataContextBinding#getParameterContext parameter context}.
1679
1682
  * </ul>
1680
1683
  *
1681
- * @experimental As of version 1.109.0
1682
1684
  * @public
1683
1685
  * @see #hasPendingChanges
1686
+ * @since 1.113.0
1684
1687
  */
1685
1688
  Context.prototype.resetChanges = function () {
1686
1689
  var aPromises = this.oDeletePromise
1687
1690
  ? [this.oDeletePromise.catch(function () { /*already handled in #delete*/ })]
1688
- : [];
1691
+ : [],
1692
+ that = this;
1689
1693
 
1690
- if (this.isTransient() && !this.isInactive()) {
1691
- throw new Error("Cannot reset a transient context: " + this);
1694
+ if (this.iIndex === iVIRTUAL || this.isTransient() && !this.isInactive()
1695
+ || this.oBinding.getHeaderContext && this === this.oBinding.getHeaderContext()
1696
+ || this.oBinding.getParameterContext && this === this.oBinding.getParameterContext()) {
1697
+ throw new Error("Cannot reset: " + this);
1692
1698
  }
1693
1699
 
1694
1700
  this.oBinding.checkSuspended();
@@ -1698,9 +1704,9 @@ sap.ui.define([
1698
1704
  }
1699
1705
  this.oModel.getDependentBindings(this).forEach(function (oDependentBinding) {
1700
1706
  if (oDependentBinding.oCache) {
1701
- aPromises.push(oDependentBinding._resetChanges(true));
1707
+ aPromises.push(oDependentBinding._resetChanges(that.sPath));
1702
1708
  } else {
1703
- oDependentBinding.resetChangesInDependents(aPromises, true);
1709
+ oDependentBinding.resetChangesInDependents(aPromises, that.sPath);
1704
1710
  oDependentBinding.resetInvalidDataState();
1705
1711
  }
1706
1712
  });
@@ -1765,13 +1771,15 @@ sap.ui.define([
1765
1771
  * <li> it is the header context,
1766
1772
  * <li> it is transient,
1767
1773
  * <li> it is deleted and <code>bKeepAlive</code> is <code>true</code>,
1774
+ * <li> it is not part of the list binding's collection, has
1775
+ * {@link #hasPendingChanges pending changes}, and shall not be kept alive anymore,
1768
1776
  * <li> it does not point to an entity,
1769
1777
  * <li> a key property of the entity has not been requested,
1770
1778
  * <li> the list binding is relative and does not use the <code>$$ownRequest</code>
1771
1779
  * parameter (see {@link sap.ui.model.odata.v4.ODataModel#bindList}),
1772
1780
  * <li> the list binding uses or inherits the <code>$$sharedRequest</code> parameter
1773
1781
  * (see {@link sap.ui.model.odata.v4.ODataModel#bindList}),
1774
- * <li> the list binding uses data aggregation
1782
+ * <li> the list binding uses data aggregation, but no recursive hierarchy
1775
1783
  * (see {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}),
1776
1784
  * <li> messages are requested, but the model does not use the <code>autoExpandSelect</code>
1777
1785
  * parameter.
@@ -1788,7 +1796,7 @@ sap.ui.define([
1788
1796
  throw new Error("Unsupported context " + this);
1789
1797
  }
1790
1798
  _Helper.getPredicateIndex(this.sPath);
1791
- this.oBinding.checkKeepAlive(this);
1799
+ this.oBinding.checkKeepAlive(this, bKeepAlive);
1792
1800
 
1793
1801
  if (bKeepAlive && bRequestMessages) {
1794
1802
  if (!this.oModel.bAutoExpandSelect) {
@@ -1974,16 +1982,23 @@ sap.ui.define([
1974
1982
  };
1975
1983
 
1976
1984
  /**
1977
- * Recursively updates all dependent bindings after a create. Does not wait, but reports an
1978
- * error if something went wrong.
1985
+ * Recursively updates all dependent bindings of a created context immediately after it has been
1986
+ * persisted. Reports an error if the update fails.
1987
+ *
1988
+ * @param {boolean} bSkipRefresh
1989
+ * Whether the application wants to skip the automatic refresh
1990
+ * @param {string} sGroupId
1991
+ * The group ID for missing properties requests
1979
1992
  *
1980
1993
  * @private
1981
1994
  * @see sap.ui.model.odata.v4.ODataListBinding#create
1982
1995
  */
1983
- Context.prototype.updateAfterCreate = function () {
1984
- SyncPromise.all(this.oModel.getDependentBindings(this).map(function (oDependentBinding) {
1985
- return oDependentBinding.updateAfterCreate();
1986
- })).catch(this.oModel.getReporter());
1996
+ Context.prototype.updateAfterCreate = function (bSkipRefresh, sGroupId) {
1997
+ SyncPromise.all(
1998
+ this.oModel.getDependentBindings(this).map(function (oDependentBinding) {
1999
+ return oDependentBinding.updateAfterCreate(bSkipRefresh, sGroupId);
2000
+ })
2001
+ ).catch(this.oModel.getReporter());
1987
2002
  };
1988
2003
 
1989
2004
  /**
@@ -60,22 +60,23 @@ sap.ui.define([
60
60
  * Returns <code>true</code> if this binding or its dependent bindings have changes.
61
61
  *
62
62
  * Note: This private function is needed in order to hide the additional parameter
63
- * <code>bIgnoreInactiveCaches</code> from the public API {@link #hasPendingChanges}.
63
+ * <code>sPathPrefix</code> from the public API {@link #hasPendingChanges}.
64
64
  *
65
65
  * @param {boolean} [bIgnoreKeptAlive]
66
66
  * Whether to ignore changes which will not be lost by certain APIs, see
67
67
  * {@link #hasPendingChanges}
68
- * @param {boolean} [bIgnoreInactiveCaches]
69
- * Whether to ignore changes in inactive caches
68
+ * @param {boolean} [sPathPrefix]
69
+ * If supplied, only caches having a resource path starting with <code>sPathPrefix</code> are
70
+ * checked
70
71
  * @returns {boolean}
71
72
  * <code>true</code> if the binding is resolved and has pending changes
72
73
  *
73
74
  * @private
74
75
  */
75
- ODataBinding.prototype._hasPendingChanges = function (bIgnoreKeptAlive, bIgnoreInactiveCaches) {
76
+ ODataBinding.prototype._hasPendingChanges = function (bIgnoreKeptAlive, sPathPrefix) {
76
77
  return this.isResolved()
77
78
  && (this.hasPendingChangesForPath("", bIgnoreKeptAlive)
78
- || this.hasPendingChangesInDependents(bIgnoreKeptAlive, bIgnoreInactiveCaches));
79
+ || this.hasPendingChangesInDependents(bIgnoreKeptAlive, sPathPrefix));
79
80
  };
80
81
 
81
82
  /**
@@ -83,10 +84,11 @@ sap.ui.define([
83
84
  * invalid user input.
84
85
  *
85
86
  * Note: This private function is needed in order to hide the additional parameter
86
- * <code>bIgnoreInactiveCaches</code> from the public API {@link #resetChanges}.
87
+ * <code>sPathPrefix</code> from the public API {@link #resetChanges}.
87
88
  *
88
- * @param {boolean} [bIgnoreInactiveCaches]
89
- * Whether to ignore changes in inactive caches
89
+ * @param {boolean} [sPathPrefix]
90
+ * If supplied, only caches having a resource path starting with <code>sPathPrefix</code> are
91
+ * reset
90
92
  * @returns {Promise}
91
93
  * A promise which is resolved without a defined result as soon as all changes in the binding
92
94
  * itself and all dependent bindings are canceled
@@ -96,12 +98,12 @@ sap.ui.define([
96
98
  *
97
99
  * @private
98
100
  */
99
- ODataBinding.prototype._resetChanges = function (bIgnoreInactiveCaches) {
101
+ ODataBinding.prototype._resetChanges = function (sPathPrefix) {
100
102
  var aPromises = [];
101
103
 
102
104
  this.checkSuspended();
103
105
  this.resetChangesForPath("", aPromises);
104
- this.resetChangesInDependents(aPromises, bIgnoreInactiveCaches);
106
+ this.resetChangesInDependents(aPromises, sPathPrefix);
105
107
  this.resetInvalidDataState();
106
108
 
107
109
  return Promise.all(aPromises).then(function () {});
@@ -222,8 +224,9 @@ sap.ui.define([
222
224
  "$$getKeepAliveContext requires $$ownRequest in a relative binding");
223
225
  }
224
226
  ["$$aggregation", "$$canonicalPath", "$$sharedRequest"]
225
- .forEach(function (sForbidden) {
226
- if (sForbidden in mParameters) {
227
+ .forEach(function (sForbidden, i) {
228
+ if (sForbidden in mParameters
229
+ && (i > 0 || _Helper.isDataAggregation(mParameters))) {
227
230
  throw new Error("Cannot combine $$getKeepAliveContext and "
228
231
  + sForbidden);
229
232
  }
@@ -265,6 +268,20 @@ sap.ui.define([
265
268
  }
266
269
  };
267
270
 
271
+ /**
272
+ * Throws an Error if the binding is {@link #isTransient transient}.
273
+ *
274
+ * @throws {Error} If the binding is transient
275
+ *
276
+ * @private
277
+ */
278
+ ODataBinding.prototype.checkTransient = function () {
279
+ if (this.isTransient()) {
280
+ throw new Error("Must not call method when the binding is part of a deep create: "
281
+ + this);
282
+ }
283
+ };
284
+
268
285
  /**
269
286
  * Calls {@link #checkUpdateInternal}.
270
287
  *
@@ -1015,8 +1032,9 @@ sap.ui.define([
1015
1032
  * @param {boolean} [bIgnoreKeptAlive]
1016
1033
  * Whether to ignore changes which will not be lost by APIs like sort or filter because they
1017
1034
  * relate to a deleted context or a context which is kept alive
1018
- * @param {boolean} [bIgnoreInactiveCaches]
1019
- * Whether to ignore changes in inactive caches
1035
+ * @param {boolean} [sPathPrefix]
1036
+ * If supplied, only caches having a resource path starting with <code>sPathPrefix</code> are
1037
+ * checked
1020
1038
  * @returns {boolean}
1021
1039
  * <code>true</code> if this binding has pending changes
1022
1040
  *
@@ -1348,14 +1366,20 @@ sap.ui.define([
1348
1366
  * @returns {Promise}
1349
1367
  * A promise which is resolved without a defined result as soon as all changes in the binding
1350
1368
  * itself and all dependent bindings are canceled (since 1.72.0)
1351
- * @throws {Error}
1352
- * If the binding's root binding is suspended or if there is a change of this binding which
1353
- * has been sent to the server and for which there is no response yet
1369
+ * @throws {Error} If
1370
+ * <ul>
1371
+ * <li> the binding's root binding is suspended,
1372
+ * <li> there is a change of this binding which has been sent to the server and for which
1373
+ * there is no response yet,
1374
+ * <li> the binding is {@link #isTransient transient} (part of a
1375
+ * {@link sap.ui.model.odata.v4.ODataListBinding#create deep create}).
1376
+ * </ul>
1354
1377
  *
1355
1378
  * @public
1356
1379
  * @since 1.40.1
1357
1380
  */
1358
1381
  ODataBinding.prototype.resetChanges = function () {
1382
+ this.checkTransient();
1359
1383
  return this._resetChanges();
1360
1384
  };
1361
1385
 
@@ -1384,8 +1408,9 @@ sap.ui.define([
1384
1408
  *
1385
1409
  * @param {sap.ui.base.SyncPromise[]} aPromises
1386
1410
  * List of promises which is extended for each call to {@link #resetChangesInDependents}.
1387
- * @param {boolean} [bIgnoreInactiveCaches]
1388
- * Whether to ignore changes in inactive caches
1411
+ * @param {boolean} [sPathPrefix]
1412
+ * If supplied, only caches having a resource path starting with <code>sPathPrefix</code> are
1413
+ * reset
1389
1414
  * @throws {Error}
1390
1415
  * If there is a change of this binding which has been sent to the server and for which there
1391
1416
  * is no response yet.
@@ -1435,9 +1460,13 @@ sap.ui.define([
1435
1460
  /**
1436
1461
  * Recursively updates all dependent bindings after a create.
1437
1462
  *
1438
- * @returns {sap.ui.base.SyncPromise}
1463
+ * @param {boolean} bSkipRefresh
1464
+ * Whether the application wants to skip the automatic refresh
1465
+ * @param {string} sGroupId
1466
+ * The group ID for missing properties requests
1467
+ * @returns {sap.ui.base.SyncPromise|undefined}
1439
1468
  * A promise that resolves when the update is finished and rejects with an error if something
1440
- * went wrong.
1469
+ * went wrong; or <code>undefined</code> if there is no need to wait
1441
1470
  *
1442
1471
  * @abstract
1443
1472
  * @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.112.2
77
+ * @version 1.114.0
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
@@ -99,25 +99,6 @@ sap.ui.define([
99
99
  constructor : constructor
100
100
  });
101
101
 
102
- /**
103
- * Returns the path for the return value context. Supports bound operations on an entity or a
104
- * collection.
105
- *
106
- * @param {string} sPath
107
- * The bindings's path; either a resolved model path or a resource path; for example:
108
- * "Artists(ArtistID='42',IsActiveEntity=true)/special.cases.EditAction(...)" or
109
- * "/Artists(ArtistID='42',IsActiveEntity=true)/special.cases.EditAction(...)" or
110
- * "Artists/special.cases.Create(...)" or "/Artists/special.cases.Create(...)"
111
- * @param {string} sResponsePredicate The key predicate of the response entity
112
- * @returns {string} The path for the return value context.
113
- */
114
- function getReturnValueContextPath(sPath, sResponsePredicate) {
115
- var sBoundParameterPath = sPath.slice(0, sPath.lastIndexOf("/")),
116
- i = sBoundParameterPath.indexOf("(");
117
-
118
- return (i < 0 ? sBoundParameterPath : sPath.slice(0, i)) + sResponsePredicate;
119
- }
120
-
121
102
  //*********************************************************************************************
122
103
  // ODataContextBinding
123
104
  //*********************************************************************************************
@@ -269,7 +250,7 @@ sap.ui.define([
269
250
  mParameters, fnGetEntity, bIgnoreETag, fnOnStrictHandlingFailed);
270
251
  }).then(function (oResponseEntity) {
271
252
  return fireChangeAndRefreshDependentBindings().then(function () {
272
- var sContextPredicate, oOldValue, sResponsePredicate, oResult;
253
+ var sContextPredicate, oOldValue, sResponsePredicate, sNewPath, oResult;
273
254
 
274
255
  if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
275
256
  oOldValue = that.oContext.getValue();
@@ -297,9 +278,10 @@ sap.ui.define([
297
278
  return oResult;
298
279
  }
299
280
 
281
+ sNewPath = _Helper.getReturnValueContextPath(sResolvedPath,
282
+ sResponsePredicate);
300
283
  that.oReturnValueContext = Context.createNewContext(that.oModel,
301
- that,
302
- getReturnValueContextPath(sResolvedPath, sResponsePredicate));
284
+ that, sNewPath);
303
285
  // set the resource path for late property requests
304
286
  that.oCache.setResourcePath(
305
287
  that.oReturnValueContext.getPath().slice(1));
@@ -594,7 +576,7 @@ sap.ui.define([
594
576
  function getOriginalResourcePath(oResponseEntity) {
595
577
  if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
596
578
  if (that.hasReturnValueContext()) {
597
- return getReturnValueContextPath(sOriginalResourcePath,
579
+ return _Helper.getReturnValueContextPath(sOriginalResourcePath,
598
580
  _Helper.getPrivateAnnotation(oResponseEntity, "predicate"));
599
581
  }
600
582
  if (_Helper.getPrivateAnnotation(vEntity, "predicate")
@@ -971,7 +953,7 @@ sap.ui.define([
971
953
  if (!this.oContext.getBinding) {
972
954
  throw new Error("Cannot replace this parent context: " + this.oContext);
973
955
  } // Note: parent context need not have a key predicate!
974
- this.oContext.getBinding().checkKeepAlive(this.oContext);
956
+ this.oContext.getBinding().checkKeepAlive(this.oContext, true);
975
957
  }
976
958
  } else if (bReplaceWithRVC) {
977
959
  throw new Error("Cannot replace when operation is not relative");