@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
@@ -0,0 +1,251 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides class sap.ui.core.Rendering
8
+ sap.ui.define([
9
+ "sap/base/Log",
10
+ "sap/ui/base/EventProvider",
11
+ "sap/ui/performance/trace/Interaction",
12
+ "sap/ui/performance/Measurement"
13
+ ], function(
14
+ Log,
15
+ EventProvider,
16
+ Interaction,
17
+ Measurement
18
+ ) {
19
+ "use strict";
20
+
21
+ /**
22
+ * A private logger instance used for 'debugRendering' logging.
23
+ *
24
+ * It can be activated by setting the URL parameter sap-ui-xx-debugRerendering to true.
25
+ * If activated, stack traces of invalidate() calls will be recorded and if new
26
+ * invalidations occur during rendering, they will be logged to the console together
27
+ * with the causing stack traces.
28
+ *
29
+ * @private
30
+ */
31
+ var oRenderLog = Log.getLogger("sap.ui.Rendering",
32
+ (
33
+ // Note that the sap-ui-config option still is expected in camel case.
34
+ // Lower case is only accepted here because of the config normalization which will be removed in future
35
+ (window["sap-ui-config"] && (window["sap-ui-config"]["xx-debugRendering"] || window["sap-ui-config"]["xx-debugrendering"]) )
36
+ || /sap-ui-xx-debug(R|-r)endering=(true|x|X)/.test(document.location.search)
37
+ ) ? Log.Level.DEBUG : Math.min(Log.Level.INFO, Log.getLevel())
38
+ );
39
+
40
+ var MAX_RENDERING_ITERATIONS = 20;
41
+
42
+ /**
43
+ * The ID of a timer that will execute the next rendering.
44
+ *
45
+ * A non-falsy value indicates that a timer exists already, or at least that no
46
+ * new timer needs to be created as. During the boot phase, this member is set
47
+ * to the special value <code>this</code> which is non-falsy and which should never
48
+ * represent a valid timer ID (no chance of misinterpretation).
49
+ */
50
+ var _sRerenderTimer = this; //eslint-disable-line consistent-this
51
+
52
+ var mUIAreas = {};
53
+
54
+ /**
55
+ * Tasks that are called just before the rendering starts.
56
+ * @private
57
+ */
58
+ var aPrerenderingTasks = [];
59
+
60
+ var _oEventProvider = new EventProvider();
61
+
62
+ var _bRendering = false;
63
+
64
+ function _renderPendingUIUpdates(sCaller) {
65
+ // start performance measurement
66
+ Measurement.start("renderPendingUIUpdates","Render pending UI updates in all UIAreas");
67
+
68
+ oRenderLog.debug("Render pending UI updates: start (" + (sCaller || "by timer" ) + ")");
69
+
70
+ var bUIUpdated = false,
71
+ bLooped = MAX_RENDERING_ITERATIONS > 0,
72
+ iLoopCount = 0;
73
+
74
+ _bRendering = true;
75
+
76
+ do {
77
+
78
+ if ( bLooped ) {
79
+ // try to detect long running ('endless') rendering loops
80
+ iLoopCount++;
81
+ // if we run another iteration despite the tracking mode, we complain ourselves
82
+ if ( iLoopCount > MAX_RENDERING_ITERATIONS ) {
83
+ _bRendering = false;
84
+ throw new Error("Rendering has been re-started too many times (" + iLoopCount + "). Add URL parameter sap-ui-xx-debugRendering=true for a detailed analysis.");
85
+ }
86
+
87
+ if ( iLoopCount > 1 ) {
88
+ oRenderLog.debug("Render pending UI updates: iteration " + iLoopCount);
89
+ }
90
+ }
91
+
92
+ // clear a pending timer so that the next call to re-render will create a new timer
93
+ if (_sRerenderTimer) {
94
+ if ( _sRerenderTimer !== this ) { // 'this' is used as a marker for a delayed initial rendering, no timer to cleanup then
95
+ clearTimeout(_sRerenderTimer); // explicitly stop the timer, as this call might be a synchronous call (applyChanges) while still a timer is running
96
+ }
97
+ _sRerenderTimer = undefined;
98
+ if (Rendering.aFnDone.length > 0) {
99
+ Rendering.aFnDone.pop()();
100
+ }
101
+ }
102
+
103
+ runPrerenderingTasks();
104
+
105
+ var mUIAreasSnapshot = mUIAreas;
106
+ mUIAreas = {};
107
+ for (var sId in mUIAreasSnapshot) {
108
+ bUIUpdated = mUIAreasSnapshot[sId].rerender() || bUIUpdated;
109
+ }
110
+
111
+ // eslint-disable-next-line no-unmodified-loop-condition
112
+ } while ( bLooped && _sRerenderTimer ); // iterate if there are new rendering tasks
113
+
114
+ _bRendering = false;
115
+
116
+ // TODO: Provide information on what actually was re-rendered...
117
+ if (bUIUpdated) {
118
+ Rendering.fireUIUpdated();
119
+ }
120
+
121
+ oRenderLog.debug("Render pending UI updates: finished");
122
+
123
+ // end performance measurement
124
+ Measurement.end("renderPendingUIUpdates");
125
+ }
126
+
127
+ var Rendering = {
128
+ // to protect against nested rendering we use an array of Steps instead of a single one
129
+ aFnDone: [],
130
+
131
+ /**
132
+ * Notify async Interaction step.
133
+ *
134
+ * @private
135
+ * @ui5-restricted sap.ui.core.Core
136
+ */
137
+ notifyInteractionStep: function () {
138
+ Rendering.aFnDone.push(Interaction.notifyAsyncStep());
139
+ },
140
+
141
+ /**
142
+ * Adds a task that is guaranteed to run once, just before the next rendering. A rendering
143
+ * request is not triggered.
144
+ *
145
+ * @param {function} fnPrerenderingTask
146
+ * A function that is called before the rendering
147
+ * @param {boolean} [bFirst=false]
148
+ * Whether the task should become the first one, not the last one
149
+ * @private
150
+ */
151
+ addPrerenderingTask: function (fnPrerenderingTask, bFirst) {
152
+ if (bFirst) {
153
+ aPrerenderingTasks.unshift(fnPrerenderingTask);
154
+ } else {
155
+ aPrerenderingTasks.push(fnPrerenderingTask);
156
+ }
157
+ },
158
+ /**
159
+ * Asks all UIAreas to execute any pending rendering tasks.
160
+ *
161
+ * The execution of rendering tasks might require multiple iterations
162
+ * until either no more rendering tasks are produced or until
163
+ * MAX_RENDERING_ITERATIONS are reached.
164
+ *
165
+ * With a value of MAX_RENDERING_ITERATIONS=0 the loop can be avoided
166
+ * and the remaining tasks are executed after another timeout.
167
+ *
168
+ * @param {string} sCaller The Caller id
169
+ * @private
170
+ */
171
+ renderPendingUIUpdates: function(sCaller, iTimeout) {
172
+ if (iTimeout !== undefined) {
173
+ _sRerenderTimer = setTimeout(_renderPendingUIUpdates.bind(null, sCaller), iTimeout);
174
+ } else {
175
+ Rendering.aFnDone.push(Interaction.notifyAsyncStep());
176
+ _renderPendingUIUpdates(sCaller);
177
+ }
178
+ },
179
+ /**
180
+ * Returns <code>true</code> if there are any pending rendering tasks or when
181
+ * such rendering tasks are currently being executed.
182
+ *
183
+ * @return {boolean} true if there are pending (or executing) rendering tasks.
184
+ * @private
185
+ */
186
+ getUIDirty: function() {
187
+ return !!(_sRerenderTimer || _bRendering);
188
+ },
189
+
190
+ /**
191
+ * @name sap.ui.core.Core#UIUpdated
192
+ * @event
193
+ * @private
194
+ * @function
195
+ */
196
+
197
+ attachUIUpdated: function(fnFunction, oListener) {
198
+ _oEventProvider.attachEvent("UIUpdated", fnFunction, oListener);
199
+ },
200
+
201
+ detachUIUpdated: function(fnFunction, oListener) {
202
+ _oEventProvider.detachEvent("UIUpdated", fnFunction, oListener);
203
+ },
204
+
205
+ fireUIUpdated: function(mParameters) {
206
+ _oEventProvider.fireEvent("UIUpdated", mParameters);
207
+ },
208
+
209
+ /**
210
+ * Returns the internal rendering Logger.
211
+ *
212
+ * @returns {sap.base.Log} The Rendering logger
213
+ * @private
214
+ */
215
+ getLogger: function() {
216
+ return oRenderLog;
217
+ },
218
+
219
+ /**
220
+ * Registers an invalidated UIArea for rerendering.
221
+ *
222
+ * @param {sap.ui.core.UIArea} oUIArea The invalidated UIArea
223
+ * @private
224
+ */
225
+ invalidateUIArea: function(oUIArea) {
226
+ mUIAreas[oUIArea.getId()] = oUIArea;
227
+ if ( !_sRerenderTimer ) {
228
+ // TODO: we should handle xx-waitForTheme here...
229
+ oRenderLog.debug("Registering timer for delayed re-rendering");
230
+ // start async interaction step
231
+ Rendering.aFnDone.push(Interaction.notifyAsyncStep());
232
+ Rendering.renderPendingUIUpdates('invalidated UIArea', 0); // decoupled for collecting several invalidations into one redraw
233
+ }
234
+ }
235
+ };
236
+
237
+ /**
238
+ * Runs all prerendering tasks and resets the list.
239
+ * @private
240
+ */
241
+ function runPrerenderingTasks() {
242
+ var aTasks = aPrerenderingTasks.slice();
243
+
244
+ aPrerenderingTasks = [];
245
+ aTasks.forEach(function (fnPrerenderingTask) {
246
+ fnPrerenderingTask();
247
+ });
248
+ }
249
+
250
+ return Rendering;
251
+ });
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @alias sap.ui.core.ResizeHandler
34
34
  * @extends sap.ui.base.Object
35
35
  * @author SAP SE
36
- * @version 1.105.1
36
+ * @version 1.107.0
37
37
  * @public
38
38
  */
39
39
 
@@ -98,7 +98,7 @@ sap.ui.define([
98
98
  *
99
99
  * @param {Element|sap.ui.core.Control} oRef the DOM reference or a control
100
100
  * @param {function} fHandler the event handler function
101
- * @return {string} Registration-ID for later detaching.
101
+ * @returns {string} Registration-ID for later detaching.
102
102
  * @private
103
103
  */
104
104
  ResizeHandler.prototype.attachListener = function(oRef, fHandler){
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  * @param {function} fHandler
228
228
  * The event handler which should be called whenever the size of the given reference is changed.
229
229
  * The event object is passed as first argument to the event handler. See the description of this function for more details about the available parameters of this event.
230
- * @return {string}
230
+ * @returns {string|null}
231
231
  * A registration ID which can be used for deregistering the event handler, see {@link sap.ui.core.ResizeHandler.deregister}.
232
232
  * If the UI5 framework is not yet initialized <code>null</code> is returned.
233
233
  * @public
@@ -265,7 +265,7 @@ sap.ui.define([
265
265
  /**
266
266
  * Suspends indefinitely the execution of ResizeHandler listeners for the given DOM reference and its children
267
267
  * @param {Element} oDomRef the DOM reference to suspend
268
- * @return {boolean} Whether the <code>oDomRef</code> was successfully marked as suspended
268
+ * @returns {boolean} Whether the <code>oDomRef</code> was successfully marked as suspended
269
269
  * @private
270
270
  */
271
271
  ResizeHandler.suspend = function(oDomRef) {
@@ -285,7 +285,7 @@ sap.ui.define([
285
285
  /**
286
286
  * Resumes the execution of ResizeHandler listeners for the given DOM reference
287
287
  * @param {Element} oDomRef the DOM reference to resume
288
- * @return {boolean} Whether resume for <code>oDomRef</code> was successful
288
+ * @returns {boolean} Whether resume for <code>oDomRef</code> was successful
289
289
  * @private
290
290
  */
291
291
  ResizeHandler.resume = function(oDomRef) {
@@ -316,7 +316,7 @@ sap.ui.define([
316
316
  * Checks if the given DOM reference is a child (or exact match) of a DOM area that is suspended from observation for size changes.
317
317
  * This instance method is an internal shortcut.
318
318
  * @param {Element} oDomRef the DOM reference
319
- * @return {boolean} Whether the <code>oDomRef</code> is suspended
319
+ * @returns {boolean} Whether the <code>oDomRef</code> is suspended
320
320
  * @private
321
321
  */
322
322
  ResizeHandler.prototype._isSuspended = function(oDomRef) {
@@ -338,7 +338,7 @@ sap.ui.define([
338
338
  * @param {function} [fnCallback] a callback function to be called once the DOM node is resumed which was found to be the primary
339
339
  * reason for oDomRef to be suspended. Note that isSuspended() may still be true when other DOM nodes are still suspended.
340
340
  * Also note that each isSuspended() call registers the callback, but only if it was not found to be already registered.
341
- * @return {boolean} Whether the <code>oDomRef</code> is suspended
341
+ * @returns {boolean} Whether the <code>oDomRef</code> is suspended
342
342
  * @private
343
343
  */
344
344
  ResizeHandler.isSuspended = function(oDomRef, fnCallback) {
@@ -13,7 +13,8 @@ sap.ui.define([
13
13
  "sap/ui/performance/trace/Interaction",
14
14
  "sap/base/Log",
15
15
  "sap/ui/events/jquery/EventSimulation",
16
- "sap/ui/thirdparty/jquery"
16
+ "sap/ui/thirdparty/jquery",
17
+ "sap/ui/core/Configuration"
17
18
  ],
18
19
  function(
19
20
  Device,
@@ -23,7 +24,8 @@ sap.ui.define([
23
24
  Interaction,
24
25
  Log,
25
26
  EventSimulation,
26
- jQuery
27
+ jQuery,
28
+ Configuration
27
29
  ) {
28
30
  "use strict";
29
31
 
@@ -42,12 +44,11 @@ sap.ui.define([
42
44
  * The ScrollBar control can be used for virtual scrolling of a certain area.
43
45
  * This means: to simulate a very large scrollable area when technically the area is small and the control takes care of displaying the respective part only. E.g. a Table control can take care of only rendering the currently visible rows and use this ScrollBar control to make the user think he actually scrolls through a long list.
44
46
  * @extends sap.ui.core.Control
45
- * @version 1.105.1
47
+ * @version 1.107.0
46
48
  *
47
49
  * @public
48
50
  * @deprecated as of version 1.56
49
51
  * @alias sap.ui.core.ScrollBar
50
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
51
52
  */
52
53
  var ScrollBar = Control.extend("sap.ui.core.ScrollBar", /** @lends sap.ui.core.ScrollBar.prototype */ {
53
54
  metadata : {
@@ -146,7 +147,7 @@ sap.ui.define([
146
147
  this._bScrollPosIsChecked = false;
147
148
 
148
149
  // RTL mode
149
- this._bRTL = sap.ui.getCore().getConfiguration().getRTL();
150
+ this._bRTL = Configuration.getRTL();
150
151
 
151
152
  // suppress scroll event
152
153
  this._bSuppressScroll = false;
@@ -523,7 +524,6 @@ sap.ui.define([
523
524
  * @param {string} oOwnerDomRef
524
525
  * Dom ref of the Control that uses the scrollbar
525
526
  * @public
526
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
527
527
  */
528
528
  ScrollBar.prototype.unbind = function (oOwnerDomRef) {
529
529
  if (oOwnerDomRef) {
@@ -547,7 +547,6 @@ sap.ui.define([
547
547
  * @param {string} oOwnerDomRef
548
548
  * Dom ref of the control that uses the scrollbar
549
549
  * @public
550
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
551
550
  */
552
551
  ScrollBar.prototype.bind = function (oOwnerDomRef) {
553
552
  if (oOwnerDomRef) {
@@ -581,7 +580,6 @@ sap.ui.define([
581
580
  * Page Up is used to scroll one page back.
582
581
  *
583
582
  * @public
584
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
585
583
  */
586
584
  ScrollBar.prototype.pageUp = function() {
587
585
  // call on scroll
@@ -592,7 +590,6 @@ sap.ui.define([
592
590
  * Page Down is used to scroll one page forward.
593
591
  *
594
592
  * @public
595
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
596
593
  */
597
594
  ScrollBar.prototype.pageDown = function() {
598
595
  // call on scroll
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  // A renderer for the ScrollBar control
8
- sap.ui.define(['sap/ui/Device', "sap/ui/dom/getScrollbarSize"],
9
- function(Device, getScrollbarSize) {
8
+ sap.ui.define(['sap/ui/Device', "sap/ui/dom/getScrollbarSize", "sap/ui/core/Configuration"],
9
+ function(Device, getScrollbarSize, Configuration) {
10
10
  "use strict";
11
11
 
12
12
 
@@ -27,7 +27,7 @@ sap.ui.define(['sap/ui/Device', "sap/ui/dom/getScrollbarSize"],
27
27
  * @param {sap.ui.core.ScrollBar} oControl Object representation of the control that should be rendered
28
28
  */
29
29
  ScrollBarRenderer.render = function(oRM, oScrollBar){
30
- var bRTL = sap.ui.getCore().getConfiguration().getRTL();
30
+ var bRTL = Configuration.getRTL();
31
31
 
32
32
  oRM.openStart("div", oScrollBar);
33
33
  oRM.class("sapUiScrollBar");
@@ -23,11 +23,10 @@ sap.ui.define(['./Item', './library'],
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.105.1
26
+ * @version 1.107.0
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.SeparatorItem
30
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
31
30
  */
32
31
  var SeparatorItem = Item.extend("sap.ui.core.SeparatorItem", /** @lends sap.ui.core.SeparatorItem.prototype */ { metadata : {
33
32
 
@@ -25,12 +25,11 @@ sap.ui.define(['./Element', './library'],
25
25
  * @extends sap.ui.core.Element
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.105.1
28
+ * @version 1.107.0
29
29
  *
30
30
  * @public
31
31
  * @since 1.16.0
32
32
  * @alias sap.ui.core.Title
33
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
34
33
  */
35
34
  var Title = Element.extend("sap.ui.core.Title", /** @lends sap.ui.core.Title.prototype */ { metadata : {
36
35
 
@@ -7,14 +7,13 @@
7
7
  // Provides control sap.ui.core.TooltipBase.
8
8
  sap.ui.define([
9
9
  './Control',
10
+ './Element',
10
11
  './Popup',
11
12
  './library',
12
13
  "sap/ui/events/KeyCodes",
13
- "sap/ui/thirdparty/jquery",
14
- // jQuery Plugin "control"
15
- "sap/ui/dom/jquery/control"
14
+ "sap/ui/thirdparty/jquery"
16
15
  ],
17
- function(Control, Popup, library, KeyCodes, jQuery) {
16
+ function(Control, Element, Popup, library, KeyCodes, jQuery) {
18
17
  "use strict";
19
18
 
20
19
 
@@ -31,11 +30,10 @@ sap.ui.define([
31
30
  * @class
32
31
  * Abstract class that can be extended in order to implement any extended tooltip. For example, RichTooltip Control is based on it. It provides the opening/closing behavior and the main "text" property.
33
32
  * @extends sap.ui.core.Control
34
- * @version 1.105.1
33
+ * @version 1.107.0
35
34
  *
36
35
  * @public
37
36
  * @alias sap.ui.core.TooltipBase
38
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
39
37
  */
40
38
  var TooltipBase = Control.extend("sap.ui.core.TooltipBase", /** @lends sap.ui.core.TooltipBase.prototype */ {
41
39
  metadata : {
@@ -124,7 +122,7 @@ sap.ui.define([
124
122
  */
125
123
  TooltipBase.prototype.onfocusin = function(oEvent) {
126
124
 
127
- var oSC = jQuery(oEvent.target).control(0);
125
+ var oSC = Element.closestTo(oEvent.target);
128
126
  if (oSC != null) {
129
127
  var oDomRef = oSC.getFocusDomRef();
130
128
  this.sStoredTooltip = null;
@@ -156,7 +154,7 @@ sap.ui.define([
156
154
  * @private
157
155
  */
158
156
  TooltipBase.prototype.onfocusout = function(oEvent) {
159
- var oSC = jQuery(oEvent.target).control(0);
157
+ var oSC = Element.closestTo(oEvent.target);
160
158
  if (oSC != null) {
161
159
 
162
160
  var oDomRef = oSC.getFocusDomRef();
@@ -204,10 +202,10 @@ sap.ui.define([
204
202
  */
205
203
  TooltipBase.prototype.onmouseover = function(oEvent) {
206
204
 
207
- var oEventSource = jQuery(oEvent.target).control(0), // The Element or Control that initiated the event.
208
- oCurrentElement = jQuery(oEvent.currentTarget).control(0), // The current Element or Control within the event bubbling phase.
209
- oLeftElement = jQuery(oEvent.relatedTarget).control(0); // Indicates the element being exited.
210
- // Log.debug("MOUSE OVER " + oEventSource + " " + jQuery(oEvent.currentTarget).control(0) + " " + this._currentControl.getId());
205
+ var oEventSource = Element.closestTo(oEvent.target), // The Element or Control that initiated the event.
206
+ oCurrentElement = Element.closestTo(oEvent.currentTarget), // The current Element or Control within the event bubbling phase.
207
+ oLeftElement = Element.closestTo(oEvent.relatedTarget); // Indicates the element being exited.
208
+ // Log.debug("MOUSE OVER " + oEventSource + " " + Element.closestTo(oEvent.currentTarget) + " " + this._currentControl.getId());
211
209
 
212
210
  if (!oEventSource) {
213
211
  return;
@@ -278,7 +276,7 @@ sap.ui.define([
278
276
  * @private
279
277
  */
280
278
  TooltipBase.prototype.onmouseout = function(oEvent) {
281
- // Log.debug("MOUSE OUT " + jQuery(oEvent.target).control(0) + " "+ jQuery(oEvent.currentTarget).control(0) );
279
+ // Log.debug("MOUSE OUT " + Element.closestTo(oEvent.target) + " " + Element.closestTo(oEvent.currentTarget) );
282
280
  if (TooltipBase.sOpenTimeout) {
283
281
  clearTimeout(TooltipBase.sOpenTimeout);
284
282
  TooltipBase.sOpenTimeout = undefined;
@@ -444,7 +442,7 @@ sap.ui.define([
444
442
  if (oEvent.ctrlKey && oEvent.which == KeyCodes.I) {
445
443
  // The Element or Control that initiated the event.
446
444
 
447
- var oEventSource = jQuery(oEvent.target).control(0);
445
+ var oEventSource = Element.closestTo(oEvent.target);
448
446
  if (oEventSource != null) {
449
447
  // If the current control is the event source or event source does not have a standard tooltip
450
448
  if (this._currentControl === oEventSource || !this.isStandardTooltip(oEventSource.getTooltip())) {