@openui5/sap.ui.core 1.106.0 → 1.107.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/jquery.sap.ui.js +5 -7
  8. package/src/sap/base/util/LoaderExtensions.js +6 -6
  9. package/src/sap/base/util/fetch.js +3 -0
  10. package/src/sap/base/util/mixedFetch.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +3 -3
  53. package/src/sap/ui/Global.js +4 -4
  54. package/src/sap/ui/base/DataType.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +1 -1
  65. package/src/sap/ui/core/AppCacheBuster.js +3 -4
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
  68. package/src/sap/ui/core/CalendarType.js +0 -1
  69. package/src/sap/ui/core/Component.js +12 -10
  70. package/src/sap/ui/core/ComponentContainer.js +6 -5
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +1 -1
  74. package/src/sap/ui/core/Control.js +7 -7
  75. package/src/sap/ui/core/Core.js +31 -304
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +6 -6
  79. package/src/sap/ui/core/ElementMetadata.js +1 -1
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +1 -1
  82. package/src/sap/ui/core/FocusHandler.js +50 -2
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +1 -2
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -2
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -2
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +5 -5
  92. package/src/sap/ui/core/Item.js +1 -2
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -2
  95. package/src/sap/ui/core/ListItem.js +1 -2
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +11 -9
  99. package/src/sap/ui/core/Manifest.js +8 -6
  100. package/src/sap/ui/core/Message.js +4 -6
  101. package/src/sap/ui/core/Popup.js +62 -5
  102. package/src/sap/ui/core/RenderManager.js +7 -5
  103. package/src/sap/ui/core/Renderer.js +5 -4
  104. package/src/sap/ui/core/Rendering.js +251 -0
  105. package/src/sap/ui/core/ResizeHandler.js +1 -1
  106. package/src/sap/ui/core/ScrollBar.js +6 -9
  107. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  108. package/src/sap/ui/core/SeparatorItem.js +1 -2
  109. package/src/sap/ui/core/Title.js +1 -2
  110. package/src/sap/ui/core/TooltipBase.js +1 -2
  111. package/src/sap/ui/core/UIArea.js +389 -121
  112. package/src/sap/ui/core/UIComponent.js +1 -2
  113. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  114. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  115. package/src/sap/ui/core/VariantLayoutData.js +1 -2
  116. package/src/sap/ui/core/XMLComposite.js +1 -1
  117. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  118. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -3
  119. package/src/sap/ui/core/cache/CacheManager.js +7 -6
  120. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
  121. package/src/sap/ui/core/date/Islamic.js +4 -4
  122. package/src/sap/ui/core/date/UniversalDate.js +8 -8
  123. package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
  124. package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
  125. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  126. package/src/sap/ui/core/dnd/DragAndDrop.js +4 -3
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
  129. package/src/sap/ui/core/dnd/DragInfo.js +1 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -2
  131. package/src/sap/ui/core/format/DateFormat.js +9 -7
  132. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
  133. package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
  134. package/src/sap/ui/core/format/ListFormat.js +4 -3
  135. package/src/sap/ui/core/format/NumberFormat.js +6 -5
  136. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  137. package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
  138. package/src/sap/ui/core/library.js +3 -55
  139. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  140. package/src/sap/ui/core/message/Message.js +1 -1
  141. package/src/sap/ui/core/message/MessageManager.js +13 -23
  142. package/src/sap/ui/core/message/MessageParser.js +1 -1
  143. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  144. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  145. package/src/sap/ui/core/mvc/Controller.js +3 -3
  146. package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
  147. package/src/sap/ui/core/mvc/HTMLView.js +1 -2
  148. package/src/sap/ui/core/mvc/JSONView.js +1 -2
  149. package/src/sap/ui/core/mvc/JSView.js +1 -2
  150. package/src/sap/ui/core/mvc/TemplateView.js +1 -2
  151. package/src/sap/ui/core/mvc/View.js +21 -20
  152. package/src/sap/ui/core/mvc/ViewType.js +0 -1
  153. package/src/sap/ui/core/mvc/XMLView.js +18 -18
  154. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  155. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  157. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  158. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  159. package/src/sap/ui/core/routing/async/Target.js +4 -3
  160. package/src/sap/ui/core/rules/Config.support.js +6 -4
  161. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  162. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
  163. package/src/sap/ui/core/search/SearchProvider.js +1 -3
  164. package/src/sap/ui/core/service/Service.js +1 -1
  165. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  166. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  167. package/src/sap/ui/core/support/Plugin.js +1 -1
  168. package/src/sap/ui/core/support/Support.js +1 -1
  169. package/src/sap/ui/core/support/ToolsAPI.js +11 -13
  170. package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
  171. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  172. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  173. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  174. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  175. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  176. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  177. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  178. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +7 -5
  179. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
  180. package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
  181. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  182. package/src/sap/ui/core/tmpl/Template.js +1 -2
  183. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
  184. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  185. package/src/sap/ui/core/util/Export.js +1 -1
  186. package/src/sap/ui/core/util/ExportCell.js +1 -1
  187. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  188. package/src/sap/ui/core/util/ExportRow.js +1 -1
  189. package/src/sap/ui/core/util/ExportType.js +1 -1
  190. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  191. package/src/sap/ui/core/util/File.js +1 -1
  192. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  193. package/src/sap/ui/core/util/MockServer.js +4 -2
  194. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  195. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  196. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  197. package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
  198. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  199. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  200. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  201. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  202. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  203. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  204. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  205. package/src/sap/ui/debug/ControlTree.js +3 -3
  206. package/src/sap/ui/debug/DebugEnv.js +4 -4
  207. package/src/sap/ui/debug/PropertyList.js +1 -1
  208. package/src/sap/ui/model/ClientModel.js +1 -1
  209. package/src/sap/ui/model/ClientTreeBinding.js +3 -1
  210. package/src/sap/ui/model/CompositeDataState.js +1 -1
  211. package/src/sap/ui/model/CompositeType.js +1 -1
  212. package/src/sap/ui/model/DataState.js +1 -1
  213. package/src/sap/ui/model/MetaModel.js +1 -1
  214. package/src/sap/ui/model/Model.js +1 -1
  215. package/src/sap/ui/model/SelectionModel.js +1 -1
  216. package/src/sap/ui/model/SimpleType.js +1 -1
  217. package/src/sap/ui/model/Sorter.js +22 -17
  218. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  219. package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
  220. package/src/sap/ui/model/Type.js +1 -1
  221. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  222. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
  223. package/src/sap/ui/model/json/JSONModel.js +8 -6
  224. package/src/sap/ui/model/message/MessageModel.js +1 -1
  225. package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
  226. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  227. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  228. package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
  229. package/src/sap/ui/model/odata/ODataModel.js +6 -5
  230. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
  231. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  232. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  233. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  234. package/src/sap/ui/model/odata/type/Date.js +1 -1
  235. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  236. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  237. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  238. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  239. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  240. package/src/sap/ui/model/odata/type/Double.js +1 -1
  241. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  242. package/src/sap/ui/model/odata/type/Int.js +1 -1
  243. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  244. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  245. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  246. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  247. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  248. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  249. package/src/sap/ui/model/odata/type/Single.js +1 -1
  250. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  251. package/src/sap/ui/model/odata/type/String.js +1 -1
  252. package/src/sap/ui/model/odata/type/Time.js +1 -1
  253. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  254. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  255. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  256. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
  257. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +24 -15
  258. package/src/sap/ui/model/odata/v2/ODataListBinding.js +45 -27
  259. package/src/sap/ui/model/odata/v2/ODataModel.js +94 -36
  260. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
  261. package/src/sap/ui/model/odata/v4/Context.js +23 -19
  262. package/src/sap/ui/model/odata/v4/ODataBinding.js +7 -3
  263. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -3
  264. package/src/sap/ui/model/odata/v4/ODataListBinding.js +121 -57
  265. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -11
  266. package/src/sap/ui/model/odata/v4/ODataModel.js +111 -69
  267. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +12 -4
  268. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  269. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  270. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +41 -29
  271. package/src/sap/ui/model/odata/v4/lib/_Cache.js +59 -20
  272. package/src/sap/ui/model/odata/v4/lib/_Helper.js +135 -4
  273. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +21 -7
  274. package/src/sap/ui/model/resource/ResourceModel.js +7 -6
  275. package/src/sap/ui/model/type/Boolean.js +1 -1
  276. package/src/sap/ui/model/type/Currency.js +1 -1
  277. package/src/sap/ui/model/type/Date.js +1 -1
  278. package/src/sap/ui/model/type/DateInterval.js +1 -1
  279. package/src/sap/ui/model/type/DateTime.js +1 -1
  280. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  281. package/src/sap/ui/model/type/FileSize.js +1 -1
  282. package/src/sap/ui/model/type/Float.js +1 -1
  283. package/src/sap/ui/model/type/Integer.js +1 -1
  284. package/src/sap/ui/model/type/String.js +1 -1
  285. package/src/sap/ui/model/type/Time.js +1 -1
  286. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  287. package/src/sap/ui/model/type/Unit.js +5 -4
  288. package/src/sap/ui/model/xml/XMLModel.js +8 -6
  289. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  290. package/src/sap/ui/qunit/QUnitUtils.js +2 -1
  291. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  292. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  293. package/src/sap/ui/test/Opa.js +7 -5
  294. package/src/sap/ui/test/Opa5.js +9 -15
  295. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  296. package/src/sap/ui/test/TestUtils.js +83 -1
  297. package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
  298. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
  299. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
  300. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
  301. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
  302. package/src/sap/ui/test/autowaiter/_utils.js +13 -1
  303. package/src/sap/ui/test/generic/TestBase.js +1 -1
  304. package/src/sap/ui/test/matchers/Ancestor.js +1 -0
  305. package/src/sap/ui/test/matchers/Descendant.js +1 -0
  306. package/src/sap/ui/test/matchers/Sibling.js +1 -0
  307. package/src/sap/ui/util/Storage.js +1 -1
@@ -6,18 +6,23 @@
6
6
 
7
7
  // Provides class sap.ui.core.FocusHandler
8
8
  sap.ui.define([
9
+ "../base/EventProvider",
9
10
  "../base/Object",
10
11
  "sap/base/Log",
11
12
  "sap/ui/thirdparty/jquery",
12
13
  "sap/ui/dom/_ready"
13
14
  ],
14
- function(BaseObject, Log, jQuery, _ready) {
15
+ function(EventProvider, BaseObject, Log, jQuery, _ready) {
15
16
  "use strict";
16
17
 
17
18
  // Element, Core module references, lazily probed when needed
18
19
  var Element;
19
20
  var Core;
20
21
 
22
+ var oFocusInfoEventProvider = new EventProvider();
23
+ var FOCUS_INFO_EVENT = "focusInfo";
24
+ var oEventData = {};
25
+
21
26
  /**
22
27
  * Constructs an instance of an sap.ui.core.FocusHandler.
23
28
  * Keeps track of the focused element.
@@ -154,6 +159,36 @@ sap.ui.define([
154
159
  }
155
160
  };
156
161
 
162
+ /**
163
+ * Adds the given function as an extender of the focus info. The given function will be called within the
164
+ * <code>restoreFocus</code> function before the focus info is forwarded to the corresponding control.
165
+ *
166
+ * @see sap.ui.core.FocusHandler#restoreFocus
167
+ * @param {function} fnFunction The function that will be called to extend the focus info
168
+ * @param {object} oListener An object which is set as "this" context when callin the "fnFunction"
169
+ * @return {sap.ui.core.FocusHandler} The object itself to allow function chaining
170
+ * @private
171
+ */
172
+ FocusHandler.prototype.addFocusInfoExtender = function(fnFunction, oListener) {
173
+ oFocusInfoEventProvider.attachEvent(FOCUS_INFO_EVENT, oEventData, fnFunction, oListener);
174
+ return this;
175
+ };
176
+
177
+ /**
178
+ * Removes the given function from being an extender of the focus info.
179
+ *
180
+ * @param {function} fnFunction The function that will be removed
181
+ * @param {object} oListener An object which is set as "this" context when callin the "fnFunction". Only when
182
+ * the same "oListener" is given as the one that is used to call <code>addFocusInfoExtender</code>, the function
183
+ * can be removed correctly.
184
+ * @return {sap.ui.core.FocusHandler} The object itself to allow function chaining
185
+ * @private
186
+ */
187
+ FocusHandler.prototype.removeFocusInfoExtender = function(fnFunction, oListener) {
188
+ oFocusInfoEventProvider.detachEvent(FOCUS_INFO_EVENT, fnFunction, oListener);
189
+ return this;
190
+ };
191
+
157
192
  /**
158
193
  * Restores the focus to the last known focused control or to the given focusInfo, if possible.
159
194
  *
@@ -182,7 +217,20 @@ sap.ui.define([
182
217
  this.oLastFocusedControlInfo = oInfo;
183
218
  // Do not store dom patch info in the last focused control info
184
219
  delete this.oLastFocusedControlInfo.patching;
185
- oControl.applyFocusInfo(oInfo.info);
220
+
221
+ // expose focus info into the oEventData which is forwarded to the focus info extender
222
+ oEventData.info = oInfo.info;
223
+ oFocusInfoEventProvider.fireEvent(FOCUS_INFO_EVENT, {
224
+ domRef: oControl.getDomRef()
225
+ });
226
+
227
+ oControl.applyFocusInfo(oEventData.info);
228
+
229
+ // oEventData is given to the event handler as event data, thus we can't assign it with a new empty
230
+ // object. We need to clear it by deleting all of its own properties
231
+ Object.keys(oEventData).forEach(function(sKey) {
232
+ delete oEventData[sKey];
233
+ });
186
234
  } else {
187
235
  Log.debug("Apply focus info of control " + oInfo.id + " not possible", null, "sap.ui.core.FocusHandler");
188
236
  }
@@ -60,7 +60,7 @@ function(
60
60
  * @class
61
61
  * @extends sap.ui.base.ManagedObject
62
62
  * @author SAP SE
63
- * @version 1.106.0
63
+ * @version 1.107.1
64
64
  * @public
65
65
  * @alias sap.ui.core.Fragment
66
66
  */
@@ -44,11 +44,10 @@ sap.ui.define([
44
44
  * @extends sap.ui.core.Control
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.106.0
47
+ * @version 1.107.1
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.core.HTML
51
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
52
51
  */
53
52
  var HTML = Control.extend("sap.ui.core.HTML", /** @lends sap.ui.core.HTML.prototype */ {
54
53
  metadata : {
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/ui/util/Storage"],
22
22
  *
23
23
  * @extends sap.ui.base.Object
24
24
  * @author SAP SE
25
- * @version 1.106.0
25
+ * @version 1.107.1
26
26
  * @alias sap.ui.core.History
27
27
  * @protected
28
28
  */
@@ -73,12 +73,11 @@ sap.ui.define([
73
73
  * @implements sap.ui.core.IFormContent
74
74
  *
75
75
  * @author SAP SE
76
- * @version 1.106.0
76
+ * @version 1.107.1
77
77
  *
78
78
  * @public
79
79
  * @since 1.11.1
80
80
  * @alias sap.ui.core.Icon
81
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
82
81
  */
83
82
  var Icon = Control.extend("sap.ui.core.Icon", /** @lends sap.ui.core.Icon.prototype */ {
84
83
  metadata : {
@@ -16,7 +16,7 @@ sap.ui.define(['./library'],
16
16
  * Helper functionality for indication color support.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.106.0
19
+ * @version 1.107.1
20
20
  * @public
21
21
  * @namespace sap.ui.core.IndicationColorSupport
22
22
  * @since 1.66
@@ -23,7 +23,7 @@ sap.ui.define(['../base/Object', './EventBus', "sap/base/assert"],
23
23
  *
24
24
  * @extends sap.ui.base.Object
25
25
  * @author SAP SE
26
- * @version 1.106.0
26
+ * @version 1.107.1
27
27
  * @public
28
28
  * @since 1.11.0
29
29
  * @alias sap.ui.core.IntervalTrigger
@@ -32,12 +32,11 @@ function (coreLibrary, ManagedObject, Log) {
32
32
  * @extends sap.ui.base.ManagedObject
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.106.0
35
+ * @version 1.107.1
36
36
  * @hideconstructor
37
37
  * @public
38
38
  * @since 1.78
39
39
  * @alias sap.ui.core.InvisibleMessage
40
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
41
40
  */
42
41
 
43
42
  var InvisibleMessage = ManagedObject.extend("sap.ui.core.InvisibleMessage", /** @lends sap.ui.core.InvisibleMessage.prototype */ {
@@ -12,7 +12,7 @@ sap.ui.define([], function() {
12
12
  * Provides the default renderer for the controls that have set their <code>visible</code> property to <code>false</code>.
13
13
  *
14
14
  * @author SAP SE
15
- * @version 1.106.0
15
+ * @version 1.107.1
16
16
  * @alias module:sap/ui/core/InvisibleRenderer
17
17
  * @since 1.66.0
18
18
  * @protected
@@ -6,11 +6,12 @@
6
6
 
7
7
  // Provides control sap.ui.core.InvisibleText.
8
8
  sap.ui.define([
9
- "./Control",
10
9
  "sap/base/Log",
11
10
  "sap/base/security/encodeXML",
11
+ "./Configuration",
12
+ "./Control",
12
13
  "./library" // ensure loading of CSS
13
- ], function(Control, Log, encodeXML) {
14
+ ], function(Log, encodeXML, Configuration, Control) {
14
15
  "use strict";
15
16
 
16
17
 
@@ -29,12 +30,11 @@ sap.ui.define([
29
30
  * @extends sap.ui.core.Control
30
31
  *
31
32
  * @author SAP SE
32
- * @version 1.106.0
33
+ * @version 1.107.1
33
34
  *
34
35
  * @public
35
36
  * @since 1.27.0
36
37
  * @alias sap.ui.core.InvisibleText
37
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
38
38
  */
39
39
  var InvisibleText = Control.extend("sap.ui.core.InvisibleText", /** @lends sap.ui.core.InvisibleText.prototype */ {
40
40
  metadata : {
@@ -180,7 +180,7 @@ sap.ui.define([
180
180
  InvisibleText.getStaticId = function(sLibrary, sTextKey) {
181
181
  var sTextId = "", sKey, oBundle, oText;
182
182
 
183
- if ( sap.ui.getCore().getConfiguration().getAccessibility() && sTextKey ) {
183
+ if ( Configuration.getAccessibility() && sTextKey ) {
184
184
  // Note: identify by lib and text key, not by text to avoid conflicts after a language change
185
185
  sKey = sLibrary + "|" + sTextKey;
186
186
  sTextId = mTextIds[sKey];
@@ -24,11 +24,10 @@ sap.ui.define(['./Element', './library'],
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.106.0
27
+ * @version 1.107.1
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.Item
31
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
32
31
  */
33
32
  var Item = Element.extend("sap.ui.core.Item", /** @lends sap.ui.core.Item.prototype */ { metadata : {
34
33
 
@@ -136,7 +136,7 @@ sap.ui.define(['../base/ManagedObject', "sap/base/assert"],
136
136
  * @see sap.ui.core.LabelEnablement#enrich
137
137
  *
138
138
  * @author SAP SE
139
- * @version 1.106.0
139
+ * @version 1.107.1
140
140
  * @protected
141
141
  * @alias sap.ui.core.LabelEnablement
142
142
  * @namespace
@@ -23,11 +23,10 @@ sap.ui.define(['./Element', "sap/ui/thirdparty/jquery", './library'],
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.106.0
26
+ * @version 1.107.1
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.LayoutData
30
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
31
30
  */
32
31
  var LayoutData = Element.extend("sap.ui.core.LayoutData", /** @lends sap.ui.core.LayoutData.prototype */ { metadata : {
33
32
 
@@ -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.106.0
26
+ * @version 1.107.1
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.ListItem
30
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
31
30
  */
32
31
  var ListItem = Item.extend("sap.ui.core.ListItem", /** @lends sap.ui.core.ListItem.prototype */ { metadata : {
33
32
 
@@ -32,14 +32,13 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.106.0
35
+ * @version 1.107.1
36
36
  *
37
37
  * @public
38
38
  * @since 1.11.0
39
39
  * @deprecated Since version 1.14.2.
40
40
  * The LocalBusyIndicator Control is not needed anymore by the new implementation of the LBI. Hence, it is not used anymore.
41
41
  * @alias sap.ui.core.LocalBusyIndicator
42
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
43
42
  */
44
43
  var LocalBusyIndicator = Control.extend("sap.ui.core.LocalBusyIndicator", /** @lends sap.ui.core.LocalBusyIndicator.prototype */ {
45
44
  metadata : {
@@ -38,7 +38,7 @@ sap.ui.define(['sap/ui/base/Object', 'sap/base/assert', './CalendarType'],
38
38
  *
39
39
  * @extends sap.ui.base.Object
40
40
  * @author SAP SE
41
- * @version 1.106.0
41
+ * @version 1.107.1
42
42
  * @public
43
43
  * @alias sap.ui.core.Locale
44
44
  */
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  //Provides the locale object sap.ui.core.LocaleData
8
- sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', './Locale', 'sap/base/assert', 'sap/base/util/LoaderExtensions'],
9
- function(extend, BaseObject, CalendarType, Locale, assert, LoaderExtensions) {
8
+ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', './Locale', 'sap/base/assert', 'sap/base/util/LoaderExtensions', "sap/ui/core/Configuration"],
9
+ function(extend, BaseObject, CalendarType, Locale, assert, LoaderExtensions, Configuration) {
10
10
  "use strict";
11
11
 
12
12
  /**
@@ -18,7 +18,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
18
18
  *
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.106.0
21
+ * @version 1.107.1
22
22
  * @public
23
23
  * @alias sap.ui.core.LocaleData
24
24
  */
@@ -157,7 +157,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
157
157
  },
158
158
 
159
159
  /**
160
- * Get stand alone month names in width "narrow", "abbreviated" or "wide".
160
+ * Get standalone month names in width "narrow", "abbreviated" or "wide".
161
161
  *
162
162
  * @param {string} sWidth the required width for the month names
163
163
  * @param {sap.ui.core.CalendarType} [sCalendarType] the type of calendar. If it's not set, it falls back to the calendar type either set in configuration or calculated from locale.
@@ -183,7 +183,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
183
183
  },
184
184
 
185
185
  /**
186
- * Get stand alone day names in width "narrow", "abbreviated" or "wide".
186
+ * Get standalone day names in width "narrow", "abbreviated" or "wide".
187
187
  *
188
188
  * @param {string} sWidth the required width for the day names
189
189
  * @param {sap.ui.core.CalendarType} [sCalendarType] the type of calendar. If it's not set, it falls back to the calendar type either set in configuration or calculated from locale.
@@ -209,7 +209,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
209
209
  },
210
210
 
211
211
  /**
212
- * Get stand alone quarter names in width "narrow", "abbreviated" or "wide".
212
+ * Get standalone quarter names in width "narrow", "abbreviated" or "wide".
213
213
  *
214
214
  * @param {string} sWidth the required width for the quarter names
215
215
  * @param {sap.ui.core.CalendarType} [sCalendarType] the type of calendar. If it's not set, it falls back to the calendar type either set in configuration or calculated from locale.
@@ -746,7 +746,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
746
746
  }
747
747
  }
748
748
  }
749
- // if neither symbol or group matched, add it to the missing tokens and add distance
749
+ // if neither symbol nor group matched, add it to the missing tokens and add distance
750
750
  aMissingTokens.push(oToken);
751
751
  iDistance += 50 - i;
752
752
  }
@@ -1590,6 +1590,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
1590
1590
  *
1591
1591
  * Call:
1592
1592
  * <code>getUnitFromMapping("my")</code> would result in <code>"my-custom-unit"</code>
1593
+ * @param {string} sMapping mapping identifier
1593
1594
  * @return {string} unit from the mapping
1594
1595
  * @public
1595
1596
  * @since 1.54
@@ -2074,11 +2075,12 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
2074
2075
  * from the configuration, in case sCalendarType is undefined.
2075
2076
  *
2076
2077
  * @param {sap.ui.core.CalendarType} sCalendarType the type defined in {@link sap.ui.core.CalendarType}.
2078
+ * @returns {string} calendar name
2077
2079
  * @private
2078
2080
  */
2079
2081
  function getCLDRCalendarName(sCalendarType) {
2080
2082
  if (!sCalendarType) {
2081
- sCalendarType = sap.ui.getCore().getConfiguration().getCalendarType();
2083
+ sCalendarType = Configuration.getCalendarType();
2082
2084
  }
2083
2085
  return "ca-" + sCalendarType.toLowerCase();
2084
2086
  }
@@ -2214,7 +2216,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
2214
2216
  var CustomLocaleData = LocaleData.extend("sap.ui.core.CustomLocaleData", {
2215
2217
  constructor: function(oLocale) {
2216
2218
  LocaleData.apply(this, arguments);
2217
- this.mCustomData = sap.ui.getCore().getConfiguration().getFormatSettings().getCustomLocaleData();
2219
+ this.mCustomData = Configuration.getFormatSettings().getCustomLocaleData();
2218
2220
  },
2219
2221
 
2220
2222
  /**
@@ -16,7 +16,8 @@ sap.ui.define([
16
16
  'sap/base/util/uid',
17
17
  'sap/base/util/merge',
18
18
  'sap/base/util/isPlainObject',
19
- 'sap/base/util/LoaderExtensions'
19
+ 'sap/base/util/LoaderExtensions',
20
+ 'sap/ui/core/Configuration'
20
21
  ],
21
22
  function(
22
23
  BaseObject,
@@ -29,7 +30,8 @@ sap.ui.define([
29
30
  uid,
30
31
  merge,
31
32
  isPlainObject,
32
- LoaderExtensions
33
+ LoaderExtensions,
34
+ Configuration
33
35
  ) {
34
36
  "use strict";
35
37
 
@@ -137,7 +139,7 @@ sap.ui.define([
137
139
  * @class The Manifest class.
138
140
  * @extends sap.ui.base.Object
139
141
  * @author SAP SE
140
- * @version 1.106.0
142
+ * @version 1.107.1
141
143
  * @alias sap.ui.core.Manifest
142
144
  * @since 1.33.0
143
145
  */
@@ -377,7 +379,7 @@ sap.ui.define([
377
379
  var sMinUI5Version = this.getEntry("/sap.ui5/dependencies/minUI5Version");
378
380
  if (sMinUI5Version &&
379
381
  Log.isLoggable(Log.Level.WARNING) &&
380
- sap.ui.getCore().getConfiguration().getDebug()) {
382
+ Configuration.getDebug()) {
381
383
  VersionInfo.load().then(function(oVersionInfo) {
382
384
  var oMinVersion = getVersionWithoutSuffix(sMinUI5Version);
383
385
  var oVersion = getVersionWithoutSuffix(oVersionInfo && oVersionInfo.version);
@@ -852,7 +854,7 @@ sap.ui.define([
852
854
  var oManifestUrl = new URI(sManifestUrl);
853
855
  ["sap-language", "sap-client"].forEach(function(sName) {
854
856
  if (!oManifestUrl.hasQuery(sName)) {
855
- var sValue = sap.ui.getCore().getConfiguration().getSAPParam(sName);
857
+ var sValue = Configuration.getSAPParam(sName);
856
858
  if (sValue) {
857
859
  oManifestUrl.addQuery(sName, sValue);
858
860
  }
@@ -874,7 +876,7 @@ sap.ui.define([
874
876
  dataType: "json",
875
877
  async: typeof bAsync !== "undefined" ? bAsync : false,
876
878
  headers: {
877
- "Accept-Language": sap.ui.getCore().getConfiguration().getLanguageTag()
879
+ "Accept-Language": Configuration.getLanguageTag()
878
880
  },
879
881
  failOnError: typeof bFailOnError !== "undefined" ? bFailOnError : true
880
882
  });
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  // Provides control sap.ui.core.Message.
8
- sap.ui.define(['./Element', './library', "sap/base/Log"],
9
- function(Element, library, Log) {
8
+ sap.ui.define(['./Element', './library', "sap/base/Log", "sap/ui/core/Configuration"],
9
+ function(Element, library, Log, Configuration) {
10
10
  "use strict";
11
11
 
12
12
  // shortcut
@@ -26,11 +26,10 @@ sap.ui.define(['./Element', './library', "sap/base/Log"],
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.106.0
29
+ * @version 1.107.1
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.Message
33
- * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
34
33
  */
35
34
  var Message = Element.extend("sap.ui.core.Message", /** @lends sap.ui.core.Message.prototype */ { metadata : {
36
35
 
@@ -72,10 +71,9 @@ sap.ui.define(['./Element', './library', "sap/base/Log"],
72
71
  * @param {string} [sSize="16x16"] Only the values "16x16" or "32x32" are allowed. Otherwise the default value is used.
73
72
  * @return {sap.ui.core.URI} URI of the default icon.
74
73
  * @public
75
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
76
74
  */
77
75
  Message.prototype.getDefaultIcon = function(sSize) {
78
- var sModulePath = sap.ui.require.toUrl("sap/ui/core/themes/" + sap.ui.getCore().getConfiguration().getTheme());
76
+ var sModulePath = sap.ui.require.toUrl("sap/ui/core/themes/" + Configuration.getTheme());
79
77
 
80
78
  var sImagesPath = sModulePath + "/img/message/";
81
79
  if (sSize && sSize == "32x32") {
@@ -9,13 +9,15 @@
9
9
  // Provides helper class sap.ui.core.Popup
10
10
  sap.ui.define([
11
11
  'sap/ui/Device',
12
+ 'sap/ui/base/Event',
12
13
  'sap/ui/base/ManagedObject',
13
14
  'sap/ui/base/Object',
14
15
  'sap/ui/base/ObjectPool',
15
16
  './Control',
17
+ './Element',
18
+ './FocusHandler',
16
19
  './IntervalTrigger',
17
20
  './RenderManager',
18
- './Element',
19
21
  './ResizeHandler',
20
22
  './library',
21
23
  "sap/base/assert",
@@ -29,18 +31,21 @@ sap.ui.define([
29
31
  "sap/ui/events/F6Navigation",
30
32
  "sap/ui/events/isMouseEventDelayed",
31
33
  "sap/ui/base/EventProvider",
34
+ "sap/ui/core/Configuration",
32
35
  "sap/ui/dom/jquery/control", // jQuery Plugin "control"
33
36
  "sap/ui/dom/jquery/Focusable", // jQuery Plugin "firstFocusableDomRef"
34
37
  "sap/ui/dom/jquery/rect" // jQuery Plugin "rect"
35
38
  ], function(
36
39
  Device,
40
+ Event,
37
41
  ManagedObject,
38
42
  BaseObject,
39
43
  ObjectPool,
40
44
  Control,
45
+ Element,
46
+ FocusHandler,
41
47
  IntervalTrigger,
42
48
  RenderManager,
43
- Element,
44
49
  ResizeHandler,
45
50
  library,
46
51
  assert,
@@ -53,7 +58,8 @@ sap.ui.define([
53
58
  jQuery,
54
59
  F6Navigation,
55
60
  isMouseEventDelayed,
56
- EventProvider
61
+ EventProvider,
62
+ Configuration
57
63
  //control
58
64
  //Focusable
59
65
  //rect
@@ -266,6 +272,7 @@ sap.ui.define([
266
272
  this._mEvents["sap.ui.core.Popup.onFocusEvent-" + this._popupUID] = this.onFocusEvent;
267
273
  this._mEvents["sap.ui.core.Popup.increaseZIndex-" + this._popupUID] = this._increaseMyZIndex;
268
274
  this._mEvents["sap.ui.core.Popup.contains-" + this._popupUID] = this._containsEventBusWrapper;
275
+ this._mEvents["sap.ui.core.Popup.extendFocusInfo-" + this._popupUID] = this._extendFocusInfoEventBusWrapper;
269
276
 
270
277
  if (oContent) {
271
278
  this.setContent(oContent);
@@ -1752,7 +1759,7 @@ sap.ui.define([
1752
1759
  * @private
1753
1760
  */
1754
1761
  Popup.prototype._applyPosition = function(oPosition) {
1755
- var bRtl = sap.ui.getCore().getConfiguration().getRTL();
1762
+ var bRtl = Configuration.getRTL();
1756
1763
  var $Ref = this._$();
1757
1764
 
1758
1765
  if ($Ref.length) {
@@ -2731,6 +2738,46 @@ sap.ui.define([
2731
2738
  }
2732
2739
  }
2733
2740
 
2741
+ Popup.prototype._extendFocusInfo = function(oEvent, oEventData) {
2742
+ var bExtended = false,
2743
+ sEventPrefix = "sap.ui.core.Popup.extendFocusInfo-",
2744
+ oData;
2745
+
2746
+ if (oEvent instanceof Event) {
2747
+ // the call is from event provider
2748
+ oData = {
2749
+ info: oEventData.info,
2750
+ element: oEvent.getParameter("domRef")
2751
+ };
2752
+ } else {
2753
+ // the call is from the event bus
2754
+ oData = oEvent;
2755
+ }
2756
+
2757
+ var oContent = this.getContent();
2758
+ var oContentDom = (oContent instanceof Element) ? oContent.getDomRef() : oContent;
2759
+
2760
+ if (oContentDom && oContentDom.contains(oData.element)) {
2761
+ oData.info.preventScroll = true;
2762
+ bExtended = true;
2763
+ } else {
2764
+ var aChildPopups = this.getChildPopups();
2765
+ bExtended = aChildPopups.some(function(sChildID) {
2766
+ var sEventId = sEventPrefix + sChildID;
2767
+ sap.ui.getCore().getEventBus().publish("sap.ui", sEventId, oData);
2768
+
2769
+ return oData.extended;
2770
+ });
2771
+ }
2772
+
2773
+ return bExtended;
2774
+ };
2775
+
2776
+ // Wrapper of _contains method for the event bus
2777
+ Popup.prototype._extendFocusInfoEventBusWrapper = function(sChannel, sEvent, oData) {
2778
+ oData.contains = this._extendFocusInfo(oData);
2779
+ };
2780
+
2734
2781
  /**
2735
2782
  * @private
2736
2783
  */
@@ -2767,6 +2814,11 @@ sap.ui.define([
2767
2814
  "visibility": "visible"
2768
2815
  }).show();
2769
2816
 
2817
+ if (!this.isInPopup(this._oLastPosition.of)) {
2818
+ this._bFocusExtenderAdded = true;
2819
+ FocusHandler.addFocusInfoExtender(this._extendFocusInfo, this);
2820
+ }
2821
+
2770
2822
  if (Popup.blStack.length === 1) {
2771
2823
  _fireBlockLayerStateChange({
2772
2824
  visible: true,
@@ -2786,10 +2838,14 @@ sap.ui.define([
2786
2838
  disconnectBlockLayerAndWithin(oWithinDOMRef);
2787
2839
 
2788
2840
  if ($BlockRef.length) {
2841
+ if (this._bFocusExtenderAdded) {
2842
+ this._bFocusExtenderAdded = false;
2843
+ FocusHandler.removeFocusInfoExtender(this._extendFocusInfo, this);
2844
+ }
2845
+
2789
2846
  // if there are more z-indices this means there are more dialogs stacked
2790
2847
  // up. So redisplay the block layer (with new z-index) under the new
2791
2848
  // current dialog which should be displayed.
2792
-
2793
2849
  if (Popup.blStack.length > 1) {
2794
2850
  Popup.blStack = Popup.blStack.filter(function(oPopupInfo) {
2795
2851
  return oPopupInfo.popup !== that;
@@ -2809,6 +2865,7 @@ sap.ui.define([
2809
2865
  oBlockLayerDomRef.style.visibility = "hidden";
2810
2866
  oBlockLayerDomRef.style.display = "none";
2811
2867
 
2868
+
2812
2869
  _fireBlockLayerStateChange({
2813
2870
  visible: false,
2814
2871
  zIndex: oLastPopupInfo.zIndex
@@ -20,7 +20,8 @@ sap.ui.define([
20
20
  "sap/base/util/extend",
21
21
  "./InvisibleRenderer",
22
22
  "./Patcher",
23
- "./FocusHandler"
23
+ "./FocusHandler",
24
+ "sap/ui/core/Configuration"
24
25
  ], function(
25
26
  LabelEnablement,
26
27
  BaseObject,
@@ -36,7 +37,8 @@ sap.ui.define([
36
37
  extend,
37
38
  InvisibleRenderer,
38
39
  Patcher,
39
- FocusHandler
40
+ FocusHandler,
41
+ Configuration
40
42
  ) {
41
43
 
42
44
  "use strict";
@@ -184,7 +186,7 @@ sap.ui.define([
184
186
  *
185
187
  * @extends Object
186
188
  * @author SAP SE
187
- * @version 1.106.0
189
+ * @version 1.107.1
188
190
  * @alias sap.ui.core.RenderManager
189
191
  * @public
190
192
  */
@@ -1621,7 +1623,7 @@ sap.ui.define([
1621
1623
  * @deprecated Since 1.92. Instead, use the {@link sap.ui.core.Core#getConfiguration} API.
1622
1624
  */
1623
1625
  RenderManager.prototype.getConfiguration = function() {
1624
- return sap.ui.getCore().getConfiguration();
1626
+ return Configuration;
1625
1627
  };
1626
1628
 
1627
1629
  /**
@@ -1756,7 +1758,7 @@ sap.ui.define([
1756
1758
  * @deprecated Since 1.92. Instead use {@link sap.ui.core.RenderManager#accessibilityState} of the {@link sap.ui.core.RenderManager Semantic Rendering API}.
1757
1759
  */
1758
1760
  RenderManager.prototype.writeAccessibilityState = function(oElement, mProps) {
1759
- if (!sap.ui.getCore().getConfiguration().getAccessibility()) {
1761
+ if (!Configuration.getAccessibility()) {
1760
1762
  return this;
1761
1763
  }
1762
1764