@openui5/sap.ui.core 1.105.1 → 1.107.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 (351) hide show
  1. package/.reuse/dep5 +20 -17
  2. package/THIRDPARTY.txt +31 -21
  3. package/package.json +1 -1
  4. package/src/jquery.sap.dom.js +10 -10
  5. package/src/jquery.sap.global.js +24 -216
  6. package/src/jquery.sap.history.js +1 -1
  7. package/src/jquery.sap.properties.js +2 -2
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +4 -4
  11. package/src/jquery.sap.ui.js +5 -7
  12. package/src/sap/base/i18n/ResourceBundle.js +7 -11
  13. package/src/sap/base/util/LoaderExtensions.js +6 -6
  14. package/src/sap/base/util/ObjectPath.js +1 -1
  15. package/src/sap/base/util/Properties.js +1 -1
  16. package/src/sap/base/util/fetch.js +8 -10
  17. package/src/sap/base/util/mixedFetch.js +1 -1
  18. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  19. package/src/sap/base/util/restricted/_castArray.js +1 -1
  20. package/src/sap/base/util/restricted/_compact.js +1 -1
  21. package/src/sap/base/util/restricted/_curry.js +1 -1
  22. package/src/sap/base/util/restricted/_debounce.js +1 -1
  23. package/src/sap/base/util/restricted/_difference.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_flatten.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_intersection.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  37. package/src/sap/base/util/restricted/_isNil.js +1 -1
  38. package/src/sap/base/util/restricted/_max.js +1 -1
  39. package/src/sap/base/util/restricted/_merge.js +1 -1
  40. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  41. package/src/sap/base/util/restricted/_min.js +1 -1
  42. package/src/sap/base/util/restricted/_omit.js +1 -1
  43. package/src/sap/base/util/restricted/_pick.js +1 -1
  44. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  45. package/src/sap/base/util/restricted/_throttle.js +1 -1
  46. package/src/sap/base/util/restricted/_toArray.js +1 -1
  47. package/src/sap/base/util/restricted/_union.js +1 -1
  48. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  49. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  50. package/src/sap/base/util/restricted/_uniq.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  53. package/src/sap/base/util/restricted/_without.js +1 -1
  54. package/src/sap/base/util/restricted/_xor.js +1 -1
  55. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  56. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  59. package/src/sap/base/util/syncFetch.js +9 -16
  60. package/src/sap/ui/Device.js +3 -3
  61. package/src/sap/ui/Global.js +7 -14
  62. package/src/sap/ui/VersionInfo.js +57 -54
  63. package/src/sap/ui/base/BindingInfo.js +198 -0
  64. package/src/sap/ui/base/DataType.js +5 -5
  65. package/src/sap/ui/base/Event.js +2 -2
  66. package/src/sap/ui/base/EventProvider.js +2 -2
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +209 -979
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
  70. package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
  71. package/src/sap/ui/base/Metadata.js +1 -1
  72. package/src/sap/ui/base/Object.js +1 -1
  73. package/src/sap/ui/base/ObjectPool.js +1 -1
  74. package/src/sap/ui/core/.library +13 -9
  75. package/src/sap/ui/core/AppCacheBuster.js +3 -4
  76. package/src/sap/ui/core/BusyIndicator.js +1 -1
  77. package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
  78. package/src/sap/ui/core/CalendarType.js +0 -1
  79. package/src/sap/ui/core/Component.js +16 -14
  80. package/src/sap/ui/core/ComponentContainer.js +6 -5
  81. package/src/sap/ui/core/ComponentMetadata.js +5 -12
  82. package/src/sap/ui/core/ComponentSupport.js +1 -1
  83. package/src/sap/ui/core/Configuration.js +525 -336
  84. package/src/sap/ui/core/Control.js +7 -7
  85. package/src/sap/ui/core/Core.js +102 -422
  86. package/src/sap/ui/core/CustomData.js +1 -1
  87. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  88. package/src/sap/ui/core/Element.js +65 -9
  89. package/src/sap/ui/core/ElementMetadata.js +1 -1
  90. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  91. package/src/sap/ui/core/EventBus.js +1 -1
  92. package/src/sap/ui/core/FocusHandler.js +79 -9
  93. package/src/sap/ui/core/Fragment.js +1 -1
  94. package/src/sap/ui/core/HTML.js +1 -2
  95. package/src/sap/ui/core/History.js +1 -1
  96. package/src/sap/ui/core/Icon.js +1 -2
  97. package/src/sap/ui/core/IconPool.js +8 -8
  98. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  99. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  100. package/src/sap/ui/core/InvisibleMessage.js +1 -2
  101. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  102. package/src/sap/ui/core/InvisibleText.js +5 -5
  103. package/src/sap/ui/core/Item.js +1 -2
  104. package/src/sap/ui/core/LabelEnablement.js +1 -1
  105. package/src/sap/ui/core/LayoutData.js +1 -2
  106. package/src/sap/ui/core/ListItem.js +1 -2
  107. package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
  108. package/src/sap/ui/core/Locale.js +1 -1
  109. package/src/sap/ui/core/LocaleData.js +15 -13
  110. package/src/sap/ui/core/Manifest.js +8 -6
  111. package/src/sap/ui/core/Message.js +4 -6
  112. package/src/sap/ui/core/Popup.js +63 -6
  113. package/src/sap/ui/core/RenderManager.js +13 -5
  114. package/src/sap/ui/core/Renderer.js +5 -4
  115. package/src/sap/ui/core/Rendering.js +251 -0
  116. package/src/sap/ui/core/ResizeHandler.js +7 -7
  117. package/src/sap/ui/core/ScrollBar.js +6 -9
  118. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  119. package/src/sap/ui/core/SeparatorItem.js +1 -2
  120. package/src/sap/ui/core/Title.js +1 -2
  121. package/src/sap/ui/core/TooltipBase.js +12 -14
  122. package/src/sap/ui/core/UIArea.js +396 -129
  123. package/src/sap/ui/core/UIComponent.js +3 -4
  124. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  125. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  126. package/src/sap/ui/core/VariantLayoutData.js +1 -2
  127. package/src/sap/ui/core/XMLComposite.js +2 -2
  128. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  129. package/src/sap/ui/core/XMLTemplateProcessor.js +12 -10
  130. package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
  131. package/src/sap/ui/core/cache/CacheManager.js +9 -8
  132. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
  133. package/src/sap/ui/core/cldr/es_BO.json +3 -3
  134. package/src/sap/ui/core/cldr/es_CL.json +3 -3
  135. package/src/sap/ui/core/cldr/es_MX.json +3 -3
  136. package/src/sap/ui/core/cldr/es_PE.json +3 -3
  137. package/src/sap/ui/core/cldr/es_UY.json +3 -3
  138. package/src/sap/ui/core/cldr/es_VE.json +2 -2
  139. package/src/sap/ui/core/date/Islamic.js +4 -4
  140. package/src/sap/ui/core/date/UniversalDate.js +8 -8
  141. package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
  142. package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
  143. package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
  144. package/src/sap/ui/core/dnd/DragAndDrop.js +14 -9
  145. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  146. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
  147. package/src/sap/ui/core/dnd/DragInfo.js +1 -2
  148. package/src/sap/ui/core/dnd/DropInfo.js +1 -2
  149. package/src/sap/ui/core/format/DateFormat.js +14 -7
  150. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
  151. package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
  152. package/src/sap/ui/core/format/ListFormat.js +4 -3
  153. package/src/sap/ui/core/format/NumberFormat.js +7 -6
  154. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  155. package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
  156. package/src/sap/ui/core/library.js +3 -55
  157. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  158. package/src/sap/ui/core/message/Message.js +1 -1
  159. package/src/sap/ui/core/message/MessageManager.js +13 -23
  160. package/src/sap/ui/core/message/MessageParser.js +1 -1
  161. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  162. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  163. package/src/sap/ui/core/mvc/Controller.js +8 -3
  164. package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
  165. package/src/sap/ui/core/mvc/HTMLView.js +1 -2
  166. package/src/sap/ui/core/mvc/JSONView.js +1 -2
  167. package/src/sap/ui/core/mvc/JSView.js +2 -3
  168. package/src/sap/ui/core/mvc/TemplateView.js +1 -2
  169. package/src/sap/ui/core/mvc/View.js +21 -20
  170. package/src/sap/ui/core/mvc/ViewType.js +0 -1
  171. package/src/sap/ui/core/mvc/XMLView.js +18 -18
  172. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  173. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  174. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  175. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  176. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  177. package/src/sap/ui/core/routing/Router.js +1 -1
  178. package/src/sap/ui/core/routing/async/Target.js +4 -3
  179. package/src/sap/ui/core/rules/App.support.js +11 -13
  180. package/src/sap/ui/core/rules/Config.support.js +19 -17
  181. package/src/sap/ui/core/rules/CoreHelper.support.js +4 -4
  182. package/src/sap/ui/core/rules/Model.support.js +8 -8
  183. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  184. package/src/sap/ui/core/rules/Theming.support.js +8 -8
  185. package/src/sap/ui/core/rules/View.support.js +9 -9
  186. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
  187. package/src/sap/ui/core/search/SearchProvider.js +1 -3
  188. package/src/sap/ui/core/service/Service.js +1 -1
  189. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  190. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  191. package/src/sap/ui/core/support/Hotkeys.js +2 -3
  192. package/src/sap/ui/core/support/Plugin.js +1 -1
  193. package/src/sap/ui/core/support/Support.js +1 -1
  194. package/src/sap/ui/core/support/ToolsAPI.js +11 -13
  195. package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
  196. package/src/sap/ui/core/support/plugins/Debugging.js +3 -3
  197. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  198. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  199. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  200. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  201. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  202. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  203. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  204. package/src/sap/ui/core/support/support.html +1 -1
  205. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +10 -8
  206. package/src/sap/ui/core/theming/Parameters.js +8 -15
  207. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
  208. package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
  209. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  210. package/src/sap/ui/core/tmpl/Template.js +6 -5
  211. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
  212. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  213. package/src/sap/ui/core/util/Export.js +1 -1
  214. package/src/sap/ui/core/util/ExportCell.js +1 -1
  215. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  216. package/src/sap/ui/core/util/ExportRow.js +1 -1
  217. package/src/sap/ui/core/util/ExportType.js +1 -1
  218. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  219. package/src/sap/ui/core/util/File.js +1 -1
  220. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  221. package/src/sap/ui/core/util/MockServer.js +48 -72
  222. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  223. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
  224. package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
  225. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -1
  226. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  227. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  228. package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
  229. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  230. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  231. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  232. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  233. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  234. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  235. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  236. package/src/sap/ui/debug/ControlTree.js +3 -3
  237. package/src/sap/ui/debug/DebugEnv.js +4 -4
  238. package/src/sap/ui/debug/PropertyList.css +1 -31
  239. package/src/sap/ui/debug/PropertyList.js +6 -250
  240. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  241. package/src/sap/ui/dom/jquery/control.js +1 -0
  242. package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
  243. package/src/sap/ui/model/ClientModel.js +1 -1
  244. package/src/sap/ui/model/ClientTreeBinding.js +3 -1
  245. package/src/sap/ui/model/CompositeDataState.js +1 -1
  246. package/src/sap/ui/model/CompositeType.js +1 -1
  247. package/src/sap/ui/model/Context.js +3 -0
  248. package/src/sap/ui/model/ContextBinding.js +1 -1
  249. package/src/sap/ui/model/DataState.js +2 -2
  250. package/src/sap/ui/model/ListBinding.js +2 -2
  251. package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
  252. package/src/sap/ui/model/MetaModel.js +1 -1
  253. package/src/sap/ui/model/Model.js +16 -5
  254. package/src/sap/ui/model/SelectionModel.js +1 -1
  255. package/src/sap/ui/model/SimpleType.js +2 -2
  256. package/src/sap/ui/model/Sorter.js +24 -19
  257. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  258. package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
  259. package/src/sap/ui/model/Type.js +1 -1
  260. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  261. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
  262. package/src/sap/ui/model/json/JSONModel.js +9 -7
  263. package/src/sap/ui/model/message/MessageModel.js +1 -1
  264. package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
  265. package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
  266. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  267. package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
  268. package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
  269. package/src/sap/ui/model/odata/ODataModel.js +6 -5
  270. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
  271. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  272. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  273. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  274. package/src/sap/ui/model/odata/type/Date.js +1 -1
  275. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  276. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  277. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  278. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  279. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  280. package/src/sap/ui/model/odata/type/Double.js +1 -1
  281. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  282. package/src/sap/ui/model/odata/type/Int.js +1 -1
  283. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  284. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  285. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  286. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  287. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  288. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  289. package/src/sap/ui/model/odata/type/Single.js +1 -1
  290. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  291. package/src/sap/ui/model/odata/type/String.js +1 -1
  292. package/src/sap/ui/model/odata/type/Time.js +1 -1
  293. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  294. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  295. package/src/sap/ui/model/odata/v2/Context.js +5 -5
  296. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
  297. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +25 -16
  298. package/src/sap/ui/model/odata/v2/ODataListBinding.js +46 -28
  299. package/src/sap/ui/model/odata/v2/ODataModel.js +97 -39
  300. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
  301. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
  302. package/src/sap/ui/model/odata/v4/Context.js +109 -71
  303. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -7
  304. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +88 -68
  305. package/src/sap/ui/model/odata/v4/ODataListBinding.js +116 -81
  306. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +23 -20
  307. package/src/sap/ui/model/odata/v4/ODataModel.js +350 -88
  308. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +35 -9
  309. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +15 -9
  310. package/src/sap/ui/model/odata/v4/ODataUtils.js +8 -5
  311. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +45 -33
  312. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +40 -6
  313. package/src/sap/ui/model/odata/v4/lib/_Cache.js +135 -81
  314. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
  315. package/src/sap/ui/model/odata/v4/lib/_Helper.js +179 -36
  316. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
  317. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +26 -7
  318. package/src/sap/ui/model/resource/ResourceModel.js +8 -7
  319. package/src/sap/ui/model/type/Boolean.js +1 -1
  320. package/src/sap/ui/model/type/Currency.js +2 -2
  321. package/src/sap/ui/model/type/Date.js +1 -1
  322. package/src/sap/ui/model/type/DateInterval.js +1 -1
  323. package/src/sap/ui/model/type/DateTime.js +1 -1
  324. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  325. package/src/sap/ui/model/type/FileSize.js +1 -1
  326. package/src/sap/ui/model/type/Float.js +1 -1
  327. package/src/sap/ui/model/type/Integer.js +1 -1
  328. package/src/sap/ui/model/type/String.js +2 -2
  329. package/src/sap/ui/model/type/Time.js +1 -1
  330. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  331. package/src/sap/ui/model/type/Unit.js +5 -4
  332. package/src/sap/ui/model/xml/XMLModel.js +8 -6
  333. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  334. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  335. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  336. package/src/sap/ui/test/Opa.js +7 -5
  337. package/src/sap/ui/test/Opa5.js +9 -15
  338. package/src/sap/ui/test/OpaBuilder.js +1 -1
  339. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  340. package/src/sap/ui/test/TestUtils.js +83 -1
  341. package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
  342. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
  343. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
  344. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
  345. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
  346. package/src/sap/ui/test/autowaiter/_utils.js +13 -1
  347. package/src/sap/ui/test/generic/TestBase.js +1 -1
  348. package/src/sap/ui/test/matchers/Ancestor.js +1 -0
  349. package/src/sap/ui/test/matchers/Descendant.js +1 -0
  350. package/src/sap/ui/test/matchers/Sibling.js +1 -0
  351. package/src/sap/ui/util/Storage.js +1 -1
@@ -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.105.1
77
+ * @version 1.107.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
@@ -346,39 +346,43 @@ sap.ui.define([
346
346
 
347
347
  if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
348
348
  oOldValue = that.oContext.getValue();
349
+ // Note: sContextPredicate missing e.g. when collection-bound
349
350
  sContextPredicate = oOldValue
350
351
  && _Helper.getPrivateAnnotation(oOldValue, "predicate");
351
352
  sResponsePredicate = _Helper.getPrivateAnnotation(
352
353
  oResponseEntity, "predicate");
353
- if (sContextPredicate === sResponsePredicate) {
354
- // this is synchronous, because the entity to be patched is available in
355
- // the context (we already read its predicate)
356
- that.oContext.patch(oResponseEntity);
357
- }
358
- }
359
-
360
- if (that.hasReturnValueContext(oOperationMetadata)) {
361
- if (that.oReturnValueContext) {
362
- that.oReturnValueContext.destroy();
363
- }
364
-
365
- if (bReplaceWithRVC) {
366
- that.oCache = null;
367
- that.oCachePromise = SyncPromise.resolve(null);
368
- oResult = that.oContext.getBinding().doReplaceWith(that.oContext,
369
- oResponseEntity, sResponsePredicate);
370
- oResult.setNewGeneration();
371
354
 
372
- return oResult;
355
+ if (sResponsePredicate) {
356
+ if (sContextPredicate === sResponsePredicate) {
357
+ // this is sync, because the entity to be patched is available in
358
+ // the context (we already read its predicate)
359
+ that.oContext.patch(oResponseEntity);
360
+ }
361
+ if (that.hasReturnValueContext()) {
362
+ if (bReplaceWithRVC) {
363
+ that.oCache = null;
364
+ that.oCachePromise = SyncPromise.resolve(null);
365
+ oResult = that.oContext.getBinding()
366
+ .doReplaceWith(that.oContext, oResponseEntity,
367
+ sResponsePredicate);
368
+ oResult.setNewGeneration();
369
+
370
+ return oResult;
371
+ }
372
+
373
+ that.oReturnValueContext = Context.createNewContext(that.oModel,
374
+ that,
375
+ getReturnValueContextPath(sResolvedPath, sResponsePredicate));
376
+ // set the resource path for late property requests
377
+ that.oCache.setResourcePath(
378
+ that.oReturnValueContext.getPath().slice(1));
379
+
380
+ return that.oReturnValueContext;
381
+ }
373
382
  }
383
+ }
374
384
 
375
- that.oReturnValueContext = Context.createNewContext(that.oModel,
376
- that, getReturnValueContextPath(sResolvedPath, sResponsePredicate));
377
- // set the resource path for late property requests
378
- that.oCache.setResourcePath(that.oReturnValueContext.getPath().slice(1));
379
-
380
- return that.oReturnValueContext;
381
- } else if (bReplaceWithRVC) {
385
+ if (bReplaceWithRVC) {
382
386
  throw new Error("Cannot replace w/o return value context");
383
387
  }
384
388
  });
@@ -396,10 +400,6 @@ sap.ui.define([
396
400
  });
397
401
  }).catch(function (oError) {
398
402
  oGroupLock.unlock(true);
399
- if (that.oReturnValueContext) {
400
- that.oReturnValueContext.destroy();
401
- that.oReturnValueContext = null;
402
- }
403
403
  that.oModel.reportError("Failed to execute " + sResolvedPath, sClassName, oError);
404
404
  throw oError;
405
405
  });
@@ -500,7 +500,12 @@ sap.ui.define([
500
500
  * If a back-end request fails, the 'dataReceived' event provides an <code>Error</code> in the
501
501
  * 'error' event parameter.
502
502
  *
503
+ * Since 1.106 this event is bubbled up to the model, unless a listener calls
504
+ * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
505
+ *
503
506
  * @param {sap.ui.base.Event} oEvent
507
+ * @param {function} oEvent.cancelBubble
508
+ * A callback function to prevent that the event is bubbled up to the model
504
509
  * @param {object} oEvent.getParameters()
505
510
  * @param {object} [oEvent.getParameters().data]
506
511
  * An empty data object if a back-end request succeeds
@@ -509,6 +514,7 @@ sap.ui.define([
509
514
  *
510
515
  * @event sap.ui.model.odata.v4.ODataContextBinding#dataReceived
511
516
  * @public
517
+ * @see sap.ui.model.odata.v4.ODataModel#event:dataReceived
512
518
  * @since 1.37.0
513
519
  */
514
520
 
@@ -520,10 +526,16 @@ sap.ui.define([
520
526
  * fired: Whatever should happen in the event handler attached to that event, can instead be
521
527
  * done before calling {@link #execute}.
522
528
  *
529
+ * Since 1.106 this event is bubbled up to the model, unless a listener calls
530
+ * {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
531
+ *
523
532
  * @param {sap.ui.base.Event} oEvent
533
+ * @param {function} oEvent.cancelBubble
534
+ * A callback function to prevent that the event is bubbled up to the model
524
535
  *
525
536
  * @event sap.ui.model.odata.v4.ODataContextBinding#dataRequested
526
537
  * @public
538
+ * @see sap.ui.model.odata.v4.ODataModel#event:dataRequested
527
539
  * @since 1.37.0
528
540
  */
529
541
 
@@ -653,15 +665,16 @@ sap.ui.define([
653
665
  * @returns {string} The original resource path
654
666
  */
655
667
  function getOriginalResourcePath(oResponseEntity) {
656
- if (that.hasReturnValueContext(oOperationMetadata)) {
657
- return getReturnValueContextPath(sOriginalResourcePath,
658
- _Helper.getPrivateAnnotation(oResponseEntity, "predicate"));
659
- }
660
- if (that.isReturnValueLikeBindingParameter(oOperationMetadata)
661
- && _Helper.getPrivateAnnotation(vEntity, "predicate")
662
- === _Helper.getPrivateAnnotation(oResponseEntity, "predicate")) {
663
- // return value is *same* as binding parameter: attach messages to the latter
664
- return sOriginalResourcePath.slice(0, sOriginalResourcePath.lastIndexOf("/"));
668
+ if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
669
+ if (that.hasReturnValueContext()) {
670
+ return getReturnValueContextPath(sOriginalResourcePath,
671
+ _Helper.getPrivateAnnotation(oResponseEntity, "predicate"));
672
+ }
673
+ if (_Helper.getPrivateAnnotation(vEntity, "predicate")
674
+ === _Helper.getPrivateAnnotation(oResponseEntity, "predicate")) {
675
+ // return value is *same* as binding parameter: attach messages to the latter
676
+ return sOriginalResourcePath.slice(0, sOriginalResourcePath.lastIndexOf("/"));
677
+ }
665
678
  }
666
679
 
667
680
  return sOriginalResourcePath;
@@ -720,6 +733,10 @@ sap.ui.define([
720
733
  throw new Error("Unsupported parameters for navigation property");
721
734
  }
722
735
 
736
+ if (that.oReturnValueContext) {
737
+ that.oReturnValueContext.destroy();
738
+ that.oReturnValueContext = null;
739
+ }
723
740
  this.oOperation.bAction = bAction;
724
741
  this.oOperation.mRefreshParameters = mParameters;
725
742
  mParameters = Object.assign({}, mParameters);
@@ -872,16 +889,17 @@ sap.ui.define([
872
889
  * @param {boolean} [bReplaceWithRVC]
873
890
  * Whether this operation binding's parent context, which must belong to a list binding, is
874
891
  * replaced with the operation's return value context (see below) and that list context is
875
- * returned instead. The list context may be a newly created context or an existing context.
892
+ * returned instead. That list context may be a newly created context or an existing context.
876
893
  * A newly created context has the same <code>keepAlive</code> attribute and
877
894
  * <code>fnOnBeforeDestroy</code> function as the parent context, see
878
895
  * {@link sap.ui.model.odata.v4.Context#setKeepAlive}; <code>fnOnBeforeDestroy</code> will be
879
896
  * called with the new context instance as the only argument in this case. An existing context
880
897
  * does not change its <code>keepAlive</code> attribute. In any case, the resulting context
881
- * takes the place (index, position) of the parent context
882
- * {@link sap.ui.model.odata.v4.Context#getIndex}. If the parent context has requested
883
- * messages when it was kept alive, they will be inherited if the $$inheritExpandSelect
884
- * binding parameter is set to <code>true</code>. Since 1.97.0.
898
+ * takes the place (index, position) of the parent context (see
899
+ * {@link sap.ui.model.odata.v4.Context#getIndex}), which need not be in the collection
900
+ * currently if it is {@link sap.ui.model.odata.v4.Context#isKeepAlive kept alive}. If the
901
+ * parent context has requested messages when it was kept alive, they will be inherited if the
902
+ * $$inheritExpandSelect binding parameter is set to <code>true</code>. Since 1.97.0.
885
903
  * @returns {Promise}
886
904
  * A promise that is resolved without data or with a return value context when the operation
887
905
  * call succeeded, or rejected with an <code>Error</code> instance <code>oError</code> in case
@@ -904,7 +922,8 @@ sap.ui.define([
904
922
  * operation response. It is created only if the operation is bound and has a single entity
905
923
  * return value from the same entity set as the operation's binding parameter and has a
906
924
  * parent context which is a {@link sap.ui.model.odata.v4.Context} and points to an entity
907
- * from an entity set.<br>
925
+ * from an entity set. It is destroyed the next time this operation binding is executed again!
926
+ * <br>
908
927
  * If a return value context is created, it must be used instead of
909
928
  * <code>this.getBoundContext()</code>. All bound messages will be related to the return value
910
929
  * context only. Such a message can only be connected to a corresponding control if the
@@ -935,7 +954,7 @@ sap.ui.define([
935
954
  var sResolvedPath = this.getResolvedPath();
936
955
 
937
956
  this.checkSuspended();
938
- this.oModel.checkGroupId(sGroupId);
957
+ _Helper.checkGroupId(sGroupId);
939
958
  if (!this.oOperation) {
940
959
  throw new Error("The binding must be deferred: " + this.sPath);
941
960
  }
@@ -953,7 +972,7 @@ sap.ui.define([
953
972
  if (bReplaceWithRVC) {
954
973
  if (!this.oContext.getBinding) {
955
974
  throw new Error("Cannot replace this parent context: " + this.oContext);
956
- }
975
+ } // Note: parent context need not have a key predicate!
957
976
  this.oContext.getBinding().checkKeepAlive(this.oContext);
958
977
  }
959
978
  } else if (bReplaceWithRVC) {
@@ -999,7 +1018,8 @@ sap.ui.define([
999
1018
  throw oError;
1000
1019
  }
1001
1020
  return oCachePromise.then(function (oCache) {
1002
- var bDataRequested = false,
1021
+ var bPreventBubbling,
1022
+ bDataRequested = false,
1003
1023
  oGroupLock,
1004
1024
  sResolvedPath = that.getResolvedPath(),
1005
1025
  sRelativePath = oCache || that.oOperation
@@ -1034,11 +1054,12 @@ sap.ui.define([
1034
1054
  oGroupLock = that.oReadGroupLock || that.lockGroup();
1035
1055
  that.oReadGroupLock = undefined;
1036
1056
  }
1057
+ bPreventBubbling = that.isRefreshWithoutBubbling();
1037
1058
 
1038
1059
  return that.resolveRefreshPromise(
1039
1060
  oCache.fetchValue(oGroupLock, sRelativePath, function () {
1040
1061
  bDataRequested = true;
1041
- that.fireDataRequested();
1062
+ that.fireDataRequested(bPreventBubbling);
1042
1063
  }, oListener)
1043
1064
  ).then(function (vValue) {
1044
1065
  that.assertSameCache(oCache);
@@ -1046,7 +1067,7 @@ sap.ui.define([
1046
1067
  return vValue;
1047
1068
  }).then(function (vValue) {
1048
1069
  if (bDataRequested) {
1049
- that.fireDataReceived({data : {}});
1070
+ that.fireDataReceived({data : {}}, bPreventBubbling);
1050
1071
  }
1051
1072
  return vValue;
1052
1073
  }, function (oError) {
@@ -1054,7 +1075,8 @@ sap.ui.define([
1054
1075
  if (bDataRequested) {
1055
1076
  that.oModel.reportError("Failed to read path " + sResolvedPath, sClassName,
1056
1077
  oError);
1057
- that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError});
1078
+ that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError},
1079
+ bPreventBubbling);
1058
1080
  }
1059
1081
  throw oError;
1060
1082
  });
@@ -1205,19 +1227,15 @@ sap.ui.define([
1205
1227
  * (a) a V4 parent context which
1206
1228
  * (b) points to an entity from an entity set w/o navigation properties.
1207
1229
  *
1208
- * @param {object} oMetadata The operation metadata
1230
+ * BEWARE: It is the caller's duty to check 1. through 4.(a) via
1231
+ * {@link #isReturnValueLikeBindingParameter}!
1232
+ *
1209
1233
  * @returns {boolean} Whether a return value context is created
1210
1234
  *
1211
1235
  * @private
1212
1236
  */
1213
- ODataContextBinding.prototype.hasReturnValueContext = function (oMetadata) {
1214
- var aMetaSegments;
1215
-
1216
- if (!this.isReturnValueLikeBindingParameter(oMetadata)) {
1217
- return false;
1218
- }
1219
-
1220
- aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
1237
+ ODataContextBinding.prototype.hasReturnValueContext = function () {
1238
+ var aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
1221
1239
 
1222
1240
  // case 4b
1223
1241
  return aMetaSegments.length === 3
@@ -1259,6 +1277,7 @@ sap.ui.define([
1259
1277
  * @returns {boolean} Whether operation's return value is like its binding parameter
1260
1278
  *
1261
1279
  * @private
1280
+ * @see #hasReturnValueContext
1262
1281
  */
1263
1282
  ODataContextBinding.prototype.isReturnValueLikeBindingParameter = function (oMetadata) {
1264
1283
  var oParentMetaData, sParentMetaPath;
@@ -1365,7 +1384,9 @@ sap.ui.define([
1365
1384
  bKeepCacheOnError ? sGroupId : undefined);
1366
1385
  // Do not fire a change event, or else ManagedObject destroys and recreates the
1367
1386
  // binding hierarchy causing a flood of events.
1368
- oPromise = bHasChangeListeners ? that.createRefreshPromise() : undefined;
1387
+ oPromise = bHasChangeListeners
1388
+ ? that.createRefreshPromise(/*bPreventBubbling*/bKeepCacheOnError)
1389
+ : undefined;
1369
1390
  if (bKeepCacheOnError && oPromise) {
1370
1391
  oPromise = oPromise.catch(function (oError) {
1371
1392
  return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
@@ -1461,7 +1482,7 @@ sap.ui.define([
1461
1482
  * cancellations.
1462
1483
  *
1463
1484
  * @param {Promise} oPromise - A promise
1464
- * @return {Promise} A promise including an error handler
1485
+ * @returns {Promise} A promise including an error handler
1465
1486
  */
1466
1487
  function reportError(oPromise) {
1467
1488
  return oPromise.catch(function (oError) {
@@ -1497,10 +1518,9 @@ sap.ui.define([
1497
1518
  /**
1498
1519
  * Returns a promise on the value for the given path relative to this binding. The function
1499
1520
  * allows access to the complete data the binding points to (if <code>sPath</code> is "") or
1500
- * any part thereof. The data is a JSON structure as described in
1501
- * <a
1502
- * href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html">
1503
- * "OData JSON Format Version 4.0"</a>.
1521
+ * any part thereof. The data is a JSON structure as described in <a href=
1522
+ * "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
1523
+ * >"OData JSON Format Version 4.0"</a>.
1504
1524
  * Note that the function clones the result. Modify values via
1505
1525
  * {@link sap.ui.model.odata.v4.Context#setProperty}.
1506
1526
  *
@@ -1509,7 +1529,7 @@ sap.ui.define([
1509
1529
  *
1510
1530
  * @param {string} [sPath=""]
1511
1531
  * A path relative to this context binding
1512
- * @returns {Promise}
1532
+ * @returns {Promise<any|undefined>}
1513
1533
  * A promise on the requested value; in case there is no bound context this promise resolves
1514
1534
  * with <code>undefined</code>
1515
1535
  * @throws {Error}