@openui5/sap.ui.core 1.102.7 → 1.102.8

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 (248) 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/sap/base/util/restricted/_CancelablePromise.js +1 -1
  8. package/src/sap/base/util/restricted/_castArray.js +1 -1
  9. package/src/sap/base/util/restricted/_compact.js +1 -1
  10. package/src/sap/base/util/restricted/_curry.js +1 -1
  11. package/src/sap/base/util/restricted/_debounce.js +1 -1
  12. package/src/sap/base/util/restricted/_difference.js +1 -1
  13. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  14. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  15. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  16. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  17. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  18. package/src/sap/base/util/restricted/_flatten.js +1 -1
  19. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  20. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  21. package/src/sap/base/util/restricted/_intersection.js +1 -1
  22. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  23. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  24. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  25. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  26. package/src/sap/base/util/restricted/_isNil.js +1 -1
  27. package/src/sap/base/util/restricted/_max.js +1 -1
  28. package/src/sap/base/util/restricted/_merge.js +1 -1
  29. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  30. package/src/sap/base/util/restricted/_min.js +1 -1
  31. package/src/sap/base/util/restricted/_omit.js +1 -1
  32. package/src/sap/base/util/restricted/_pick.js +1 -1
  33. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  34. package/src/sap/base/util/restricted/_throttle.js +1 -1
  35. package/src/sap/base/util/restricted/_toArray.js +1 -1
  36. package/src/sap/base/util/restricted/_union.js +1 -1
  37. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  38. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  39. package/src/sap/base/util/restricted/_uniq.js +1 -1
  40. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  41. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  42. package/src/sap/base/util/restricted/_without.js +1 -1
  43. package/src/sap/base/util/restricted/_xor.js +1 -1
  44. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  45. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  46. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  47. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  48. package/src/sap/ui/Device.js +3 -3
  49. package/src/sap/ui/Global.js +4 -4
  50. package/src/sap/ui/base/Event.js +1 -1
  51. package/src/sap/ui/base/EventProvider.js +1 -1
  52. package/src/sap/ui/base/Interface.js +1 -1
  53. package/src/sap/ui/base/ManagedObject.js +1 -1
  54. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  55. package/src/sap/ui/base/Metadata.js +1 -1
  56. package/src/sap/ui/base/Object.js +1 -1
  57. package/src/sap/ui/base/ObjectPool.js +1 -1
  58. package/src/sap/ui/core/.library +1 -1
  59. package/src/sap/ui/core/BusyIndicator.js +1 -1
  60. package/src/sap/ui/core/Component.js +1 -1
  61. package/src/sap/ui/core/ComponentContainer.js +1 -1
  62. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  63. package/src/sap/ui/core/ComponentSupport.js +1 -1
  64. package/src/sap/ui/core/Control.js +1 -1
  65. package/src/sap/ui/core/Core.js +1 -1
  66. package/src/sap/ui/core/CustomData.js +1 -1
  67. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  68. package/src/sap/ui/core/Element.js +1 -1
  69. package/src/sap/ui/core/ElementMetadata.js +1 -1
  70. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  71. package/src/sap/ui/core/EventBus.js +1 -1
  72. package/src/sap/ui/core/FocusHandler.js +51 -6
  73. package/src/sap/ui/core/Fragment.js +1 -1
  74. package/src/sap/ui/core/HTML.js +1 -1
  75. package/src/sap/ui/core/History.js +1 -1
  76. package/src/sap/ui/core/Icon.js +1 -1
  77. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  78. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  79. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  80. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  81. package/src/sap/ui/core/InvisibleText.js +1 -1
  82. package/src/sap/ui/core/Item.js +1 -1
  83. package/src/sap/ui/core/LabelEnablement.js +1 -1
  84. package/src/sap/ui/core/LayoutData.js +1 -1
  85. package/src/sap/ui/core/ListItem.js +1 -1
  86. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  87. package/src/sap/ui/core/Locale.js +1 -1
  88. package/src/sap/ui/core/LocaleData.js +1 -1
  89. package/src/sap/ui/core/Manifest.js +1 -1
  90. package/src/sap/ui/core/Message.js +1 -1
  91. package/src/sap/ui/core/Popup.js +60 -5
  92. package/src/sap/ui/core/RenderManager.js +1 -1
  93. package/src/sap/ui/core/Renderer.js +1 -1
  94. package/src/sap/ui/core/ResizeHandler.js +1 -1
  95. package/src/sap/ui/core/ScrollBar.js +1 -1
  96. package/src/sap/ui/core/SeparatorItem.js +1 -1
  97. package/src/sap/ui/core/Title.js +1 -1
  98. package/src/sap/ui/core/TooltipBase.js +1 -1
  99. package/src/sap/ui/core/UIArea.js +1 -1
  100. package/src/sap/ui/core/UIComponent.js +1 -1
  101. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  102. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  103. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  104. package/src/sap/ui/core/XMLComposite.js +1 -1
  105. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  106. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  107. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  108. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  109. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  110. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  111. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  112. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  113. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  114. package/src/sap/ui/core/library.js +3 -3
  115. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  116. package/src/sap/ui/core/message/Message.js +1 -1
  117. package/src/sap/ui/core/message/MessageManager.js +1 -1
  118. package/src/sap/ui/core/message/MessageParser.js +1 -1
  119. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  120. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  121. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  122. package/src/sap/ui/core/mvc/JSView.js +1 -1
  123. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  124. package/src/sap/ui/core/mvc/View.js +1 -1
  125. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  126. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  127. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  128. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  129. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  130. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  131. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  132. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  133. package/src/sap/ui/core/service/Service.js +1 -1
  134. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  135. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  136. package/src/sap/ui/core/support/Plugin.js +1 -1
  137. package/src/sap/ui/core/support/Support.js +1 -1
  138. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  139. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  140. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  141. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  142. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  143. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  144. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  145. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  146. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  147. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  148. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  149. package/src/sap/ui/core/tmpl/Template.js +1 -1
  150. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  151. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  152. package/src/sap/ui/core/util/Export.js +1 -1
  153. package/src/sap/ui/core/util/ExportCell.js +1 -1
  154. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  155. package/src/sap/ui/core/util/ExportRow.js +1 -1
  156. package/src/sap/ui/core/util/ExportType.js +1 -1
  157. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  158. package/src/sap/ui/core/util/File.js +1 -1
  159. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  160. package/src/sap/ui/core/util/MockServer.js +1 -1
  161. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  162. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  163. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  164. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  165. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  166. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  167. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  168. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  169. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  170. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  171. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  172. package/src/sap/ui/debug/ControlTree.js +1 -1
  173. package/src/sap/ui/debug/DebugEnv.js +1 -1
  174. package/src/sap/ui/debug/PropertyList.js +1 -1
  175. package/src/sap/ui/model/ClientModel.js +1 -1
  176. package/src/sap/ui/model/CompositeDataState.js +1 -1
  177. package/src/sap/ui/model/CompositeType.js +1 -1
  178. package/src/sap/ui/model/DataState.js +1 -1
  179. package/src/sap/ui/model/MetaModel.js +1 -1
  180. package/src/sap/ui/model/Model.js +1 -1
  181. package/src/sap/ui/model/SelectionModel.js +1 -1
  182. package/src/sap/ui/model/SimpleType.js +1 -1
  183. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  184. package/src/sap/ui/model/Type.js +1 -1
  185. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  186. package/src/sap/ui/model/json/JSONModel.js +1 -1
  187. package/src/sap/ui/model/message/MessageModel.js +1 -1
  188. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  189. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  190. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  191. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  192. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  193. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  194. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  195. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  196. package/src/sap/ui/model/odata/type/Date.js +1 -1
  197. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  198. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  199. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  200. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  201. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  202. package/src/sap/ui/model/odata/type/Double.js +1 -1
  203. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  204. package/src/sap/ui/model/odata/type/Int.js +1 -1
  205. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  206. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  207. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  208. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  209. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  210. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  211. package/src/sap/ui/model/odata/type/Single.js +1 -1
  212. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  213. package/src/sap/ui/model/odata/type/String.js +1 -1
  214. package/src/sap/ui/model/odata/type/Time.js +1 -1
  215. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  216. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  217. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  218. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  219. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  220. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  221. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  222. package/src/sap/ui/model/odata/v4/ODataBinding.js +4 -0
  223. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  224. package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -39
  225. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +10 -10
  226. package/src/sap/ui/model/odata/v4/ODataModel.js +6 -5
  227. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  228. package/src/sap/ui/model/odata/v4/lib/_Cache.js +11 -6
  229. package/src/sap/ui/model/odata/v4/lib/_Helper.js +17 -0
  230. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  231. package/src/sap/ui/model/type/Boolean.js +1 -1
  232. package/src/sap/ui/model/type/Currency.js +1 -1
  233. package/src/sap/ui/model/type/Date.js +1 -1
  234. package/src/sap/ui/model/type/DateInterval.js +1 -1
  235. package/src/sap/ui/model/type/DateTime.js +1 -1
  236. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  237. package/src/sap/ui/model/type/FileSize.js +1 -1
  238. package/src/sap/ui/model/type/Float.js +1 -1
  239. package/src/sap/ui/model/type/Integer.js +1 -1
  240. package/src/sap/ui/model/type/String.js +1 -1
  241. package/src/sap/ui/model/type/Time.js +1 -1
  242. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  243. package/src/sap/ui/model/type/Unit.js +1 -1
  244. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  245. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  246. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  247. package/src/sap/ui/test/generic/TestBase.js +1 -1
  248. package/src/sap/ui/util/Storage.js +1 -1
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * Provides methods to show or hide a waiting animation covering the whole
39
39
  * page and blocking user interaction.
40
40
  * @namespace
41
- * @version 1.102.7
41
+ * @version 1.102.8
42
42
  * @public
43
43
  * @alias sap.ui.core.BusyIndicator
44
44
  */
@@ -244,7 +244,7 @@ sap.ui.define([
244
244
  * @extends sap.ui.base.ManagedObject
245
245
  * @abstract
246
246
  * @author SAP SE
247
- * @version 1.102.7
247
+ * @version 1.102.8
248
248
  * @alias sap.ui.core.Component
249
249
  * @since 1.9.2
250
250
  */
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * See also {@link module:sap/ui/core/ComponentSupport}.
60
60
  *
61
61
  * @extends sap.ui.core.Control
62
- * @version 1.102.7
62
+ * @version 1.102.8
63
63
  *
64
64
  * @public
65
65
  * @alias sap.ui.core.ComponentContainer
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @public
37
37
  * @class
38
38
  * @author SAP SE
39
- * @version 1.102.7
39
+ * @version 1.102.8
40
40
  * @since 1.9.2
41
41
  * @alias sap.ui.core.ComponentMetadata
42
42
  * @extends sap.ui.base.ManagedObjectMetadata
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  * @author SAP SE
98
98
  * @public
99
99
  * @since 1.58.0
100
- * @version 1.102.7
100
+ * @version 1.102.8
101
101
  * @namespace
102
102
  * @alias module:sap/ui/core/ComponentSupport
103
103
  */
@@ -77,7 +77,7 @@ sap.ui.define([
77
77
  * @extends sap.ui.core.Element
78
78
  * @abstract
79
79
  * @author SAP SE
80
- * @version 1.102.7
80
+ * @version 1.102.8
81
81
  * @alias sap.ui.core.Control
82
82
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
83
83
  */
@@ -210,7 +210,7 @@ sap.ui.define([
210
210
  * @extends sap.ui.base.Object
211
211
  * @final
212
212
  * @author SAP SE
213
- * @version 1.102.7
213
+ * @version 1.102.8
214
214
  * @alias sap.ui.core.Core
215
215
  * @public
216
216
  * @hideconstructor
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * in the documentation.
25
25
  *
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.102.7
27
+ * @version 1.102.8
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.CustomData
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @class Static class for enabling declarative UI support.
41
41
  *
42
42
  * @author Peter Muessig, Tino Butz
43
- * @version 1.102.7
43
+ * @version 1.102.8
44
44
  * @since 1.7.0
45
45
  * @public
46
46
  * @alias sap.ui.core.DeclarativeSupport
@@ -126,7 +126,7 @@ sap.ui.define([
126
126
  *
127
127
  * @extends sap.ui.base.ManagedObject
128
128
  * @author SAP SE
129
- * @version 1.102.7
129
+ * @version 1.102.8
130
130
  * @public
131
131
  * @alias sap.ui.core.Element
132
132
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  *
24
24
  * @class
25
25
  * @author SAP SE
26
- * @version 1.102.7
26
+ * @version 1.102.8
27
27
  * @since 0.8.6
28
28
  * @alias sap.ui.core.ElementMetadata
29
29
  * @extends sap.ui.base.ManagedObjectMetadata
@@ -41,7 +41,7 @@ sap.ui.define([], function() {
41
41
  *
42
42
  * @param {boolean} [bDefault=true] Value that should be used as default value for the enhancement of the control.
43
43
  * @param {boolean} [bLegacy=false] Whether the introduced property should use the old name <code>Enabled</code>.
44
- * @version 1.102.7
44
+ * @version 1.102.8
45
45
  * @public
46
46
  * @class
47
47
  * @alias sap.ui.core.EnabledPropagator
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  *
31
31
  * @extends sap.ui.base.Object
32
32
  * @author SAP SE
33
- * @version 1.102.7
33
+ * @version 1.102.8
34
34
  * @public
35
35
  * @since 1.8.0
36
36
  * @alias sap.ui.core.EventBus
@@ -6,17 +6,19 @@
6
6
 
7
7
  // Provides class sap.ui.core.FocusHandler
8
8
  sap.ui.define([
9
- '../base/Object',
9
+ "../base/EventProvider",
10
+ "../base/Object",
10
11
  "sap/base/Log",
11
12
  "sap/ui/thirdparty/jquery",
12
13
  // jQuery Plugin "control"
13
14
  "sap/ui/dom/jquery/control"
14
15
  ],
15
- function(BaseObject, Log, jQuery) {
16
- "use strict";
17
-
18
-
16
+ function(EventProvider, BaseObject, Log, jQuery) {
17
+ "use strict";
19
18
 
19
+ var oFocusInfoEventProvider = new EventProvider();
20
+ var FOCUS_INFO_EVENT = "focusInfo";
21
+ var oEventData = {};
20
22
 
21
23
  /**
22
24
  * Constructs an instance of an sap.ui.core.FocusHandler.
@@ -148,6 +150,36 @@ sap.ui.define([
148
150
  }
149
151
  };
150
152
 
153
+ /**
154
+ * Adds the given function as an extender of the focus info. The given function will be called within the
155
+ * <code>restoreFocus</code> function before the focus info is forwarded to the corresponding control.
156
+ *
157
+ * @see sap.ui.core.FocusHandler#restoreFocus
158
+ * @param {function} fnFunction The function that will be called to extend the focus info
159
+ * @param {object} oListener An object which is set as "this" context when callin the "fnFunction"
160
+ * @return {sap.ui.core.FocusHandler} The object itself to allow function chaining
161
+ * @private
162
+ */
163
+ FocusHandler.prototype.addFocusInfoExtender = function(fnFunction, oListener) {
164
+ oFocusInfoEventProvider.attachEvent(FOCUS_INFO_EVENT, oEventData, fnFunction, oListener);
165
+ return this;
166
+ };
167
+
168
+ /**
169
+ * Removes the given function from being an extender of the focus info.
170
+ *
171
+ * @param {function} fnFunction The function that will be removed
172
+ * @param {object} oListener An object which is set as "this" context when callin the "fnFunction". Only when
173
+ * the same "oListener" is given as the one that is used to call <code>addFocusInfoExtender</code>, the function
174
+ * can be removed correctly.
175
+ * @return {sap.ui.core.FocusHandler} The object itself to allow function chaining
176
+ * @private
177
+ */
178
+ FocusHandler.prototype.removeFocusInfoExtender = function(fnFunction, oListener) {
179
+ oFocusInfoEventProvider.detachEvent(FOCUS_INFO_EVENT, fnFunction, oListener);
180
+ return this;
181
+ };
182
+
151
183
  /**
152
184
  * Restores the focus to the last known focused control or to the given focusInfo, if possible.
153
185
  *
@@ -175,7 +207,20 @@ sap.ui.define([
175
207
  this.oLastFocusedControlInfo = oInfo;
176
208
  // Do not store dom patch info in the last focused control info
177
209
  delete this.oLastFocusedControlInfo.patching;
178
- oControl.applyFocusInfo(oInfo.info);
210
+
211
+ // expose focus info into the oEventData which is forwarded to the focus info extender
212
+ oEventData.info = oInfo.info;
213
+ oFocusInfoEventProvider.fireEvent(FOCUS_INFO_EVENT, {
214
+ domRef: oControl.getDomRef()
215
+ });
216
+
217
+ oControl.applyFocusInfo(oEventData.info);
218
+
219
+ // oEventData is given to the event handler as event data, thus we can't assign it with a new empty
220
+ // object. We need to clear it by deleting all of its own properties
221
+ Object.keys(oEventData).forEach(function(sKey) {
222
+ delete oEventData[sKey];
223
+ });
179
224
  } else {
180
225
  Log.debug("Apply focus info of control " + oInfo.id + " not possible", null, "sap.ui.core.FocusHandler");
181
226
  }
@@ -60,7 +60,7 @@ function(
60
60
  * @class
61
61
  * @extends sap.ui.base.ManagedObject
62
62
  * @author SAP SE
63
- * @version 1.102.7
63
+ * @version 1.102.8
64
64
  * @public
65
65
  * @alias sap.ui.core.Fragment
66
66
  */
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @extends sap.ui.core.Control
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.102.7
47
+ * @version 1.102.8
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.core.HTML
@@ -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.102.7
25
+ * @version 1.102.8
26
26
  * @alias sap.ui.core.History
27
27
  * @protected
28
28
  */
@@ -73,7 +73,7 @@ sap.ui.define([
73
73
  * @implements sap.ui.core.IFormContent
74
74
  *
75
75
  * @author SAP SE
76
- * @version 1.102.7
76
+ * @version 1.102.8
77
77
  *
78
78
  * @public
79
79
  * @since 1.11.1
@@ -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.102.7
19
+ * @version 1.102.8
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.102.7
26
+ * @version 1.102.8
27
27
  * @public
28
28
  * @since 1.11.0
29
29
  * @alias sap.ui.core.IntervalTrigger
@@ -32,7 +32,7 @@ function (coreLibrary, ManagedObject, Log) {
32
32
  * @extends sap.ui.base.ManagedObject
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.102.7
35
+ * @version 1.102.8
36
36
  * @hideconstructor
37
37
  * @public
38
38
  * @since 1.78
@@ -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.102.7
15
+ * @version 1.102.8
16
16
  * @alias module:sap/ui/core/InvisibleRenderer
17
17
  * @since 1.66.0
18
18
  * @protected
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.core.Control
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.102.7
32
+ * @version 1.102.8
33
33
  *
34
34
  * @public
35
35
  * @since 1.27.0
@@ -24,7 +24,7 @@ sap.ui.define(['./Element', './library'],
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.102.7
27
+ * @version 1.102.8
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.Item
@@ -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.102.7
139
+ * @version 1.102.8
140
140
  * @protected
141
141
  * @alias sap.ui.core.LabelEnablement
142
142
  * @namespace
@@ -23,7 +23,7 @@ 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.102.7
26
+ * @version 1.102.8
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.LayoutData
@@ -23,7 +23,7 @@ sap.ui.define(['./Item', './library'],
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.102.7
26
+ * @version 1.102.8
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.ListItem
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.102.7
35
+ * @version 1.102.8
36
36
  *
37
37
  * @public
38
38
  * @since 1.11.0
@@ -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.102.7
41
+ * @version 1.102.8
42
42
  * @public
43
43
  * @alias sap.ui.core.Locale
44
44
  */
@@ -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.102.7
21
+ * @version 1.102.8
22
22
  * @public
23
23
  * @alias sap.ui.core.LocaleData
24
24
  */
@@ -139,7 +139,7 @@ sap.ui.define([
139
139
  * @class The Manifest class.
140
140
  * @extends sap.ui.base.Object
141
141
  * @author SAP SE
142
- * @version 1.102.7
142
+ * @version 1.102.8
143
143
  * @alias sap.ui.core.Manifest
144
144
  * @since 1.33.0
145
145
  */
@@ -26,7 +26,7 @@ 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.102.7
29
+ * @version 1.102.8
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.Message
@@ -9,13 +9,14 @@
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',
16
18
  './IntervalTrigger',
17
19
  './RenderManager',
18
- './Element',
19
20
  './ResizeHandler',
20
21
  './library',
21
22
  "sap/base/assert",
@@ -33,13 +34,14 @@ sap.ui.define([
33
34
  "sap/ui/dom/jquery/rect" // jQuery Plugin "rect"
34
35
  ], function(
35
36
  Device,
37
+ Event,
36
38
  ManagedObject,
37
39
  BaseObject,
38
40
  ObjectPool,
39
41
  Control,
42
+ Element,
40
43
  IntervalTrigger,
41
44
  RenderManager,
42
- Element,
43
45
  ResizeHandler,
44
46
  library,
45
47
  assert,
@@ -264,6 +266,7 @@ sap.ui.define([
264
266
  this._mEvents["sap.ui.core.Popup.onFocusEvent-" + this._popupUID] = this.onFocusEvent;
265
267
  this._mEvents["sap.ui.core.Popup.increaseZIndex-" + this._popupUID] = this._increaseMyZIndex;
266
268
  this._mEvents["sap.ui.core.Popup.contains-" + this._popupUID] = this._containsEventBusWrapper;
269
+ this._mEvents["sap.ui.core.Popup.extendFocusInfo-" + this._popupUID] = this._extendFocusInfoEventBusWrapper;
267
270
 
268
271
  if (oContent) {
269
272
  this.setContent(oContent);
@@ -2729,13 +2732,53 @@ sap.ui.define([
2729
2732
  }
2730
2733
  }
2731
2734
 
2735
+ Popup.prototype._extendFocusInfo = function(oEvent, oEventData) {
2736
+ var bExtended = false,
2737
+ sEventPrefix = "sap.ui.core.Popup.extendFocusInfo-",
2738
+ oData;
2739
+
2740
+ if (oEvent instanceof Event) {
2741
+ // the call is from event provider
2742
+ oData = {
2743
+ info: oEventData.info,
2744
+ element: oEvent.getParameter("domRef")
2745
+ };
2746
+ } else {
2747
+ // the call is from the event bus
2748
+ oData = oEvent;
2749
+ }
2750
+
2751
+ var oContent = this.getContent();
2752
+ var oContentDom = (oContent instanceof Element) ? oContent.getDomRef() : oContent;
2753
+
2754
+ if (oContentDom && oContentDom.contains(oData.element)) {
2755
+ oData.info.preventScroll = true;
2756
+ bExtended = true;
2757
+ } else {
2758
+ var aChildPopups = this.getChildPopups();
2759
+ bExtended = aChildPopups.some(function(sChildID) {
2760
+ var sEventId = sEventPrefix + sChildID;
2761
+ sap.ui.getCore().getEventBus().publish("sap.ui", sEventId, oData);
2762
+
2763
+ return oData.extended;
2764
+ });
2765
+ }
2766
+
2767
+ return bExtended;
2768
+ };
2769
+
2770
+ // Wrapper of _contains method for the event bus
2771
+ Popup.prototype._extendFocusInfoEventBusWrapper = function(sChannel, sEvent, oData) {
2772
+ oData.contains = this._extendFocusInfo(oData);
2773
+ };
2774
+
2732
2775
  /**
2733
2776
  * @private
2734
2777
  */
2735
2778
  Popup.prototype._showBlockLayer = function() {
2736
2779
  var $BlockRef = jQuery("#sap-ui-blocklayer-popup"),
2737
2780
  sClassName = "sapUiBLy" + (this._sModalCSSClass ? " " + this._sModalCSSClass : ""),
2738
- oWithinDOMRef;
2781
+ oWithinDOMRef, oStaticUIArea;
2739
2782
 
2740
2783
  if ($BlockRef.length === 0) {
2741
2784
  $BlockRef = jQuery('<div id="sap-ui-blocklayer-popup" tabindex="0" class="' + sClassName + '"></div>');
@@ -2765,6 +2808,12 @@ sap.ui.define([
2765
2808
  "visibility": "visible"
2766
2809
  }).show();
2767
2810
 
2811
+ if (!this.isInPopup(this._oLastPosition.of)) {
2812
+ this._bFocusExtenderAdded = true;
2813
+ oStaticUIArea = getStaticUIArea();
2814
+ oStaticUIArea.oCore.oFocusHandler.addFocusInfoExtender(this._extendFocusInfo, this);
2815
+ }
2816
+
2768
2817
  if (Popup.blStack.length === 1) {
2769
2818
  _fireBlockLayerStateChange({
2770
2819
  visible: true,
@@ -2778,16 +2827,21 @@ sap.ui.define([
2778
2827
  var $BlockRef = jQuery("#sap-ui-blocklayer-popup"),
2779
2828
  oBlockLayerDomRef = $BlockRef[0],
2780
2829
  that = this,
2781
- oLastPopupInfo, oWithinDOMRef;
2830
+ oLastPopupInfo, oWithinDOMRef, oStaticUIArea;
2782
2831
 
2783
2832
  oWithinDOMRef = convertWithin(this._oLastPosition.within);
2784
2833
  disconnectBlockLayerAndWithin(oWithinDOMRef);
2785
2834
 
2786
2835
  if ($BlockRef.length) {
2836
+ if (this._bFocusExtenderAdded) {
2837
+ this._bFocusExtenderAdded = false;
2838
+ oStaticUIArea = getStaticUIArea();
2839
+ oStaticUIArea.oCore.oFocusHandler.addFocusInfoExtender(this._extendFocusInfo, this);
2840
+ }
2841
+
2787
2842
  // if there are more z-indices this means there are more dialogs stacked
2788
2843
  // up. So redisplay the block layer (with new z-index) under the new
2789
2844
  // current dialog which should be displayed.
2790
-
2791
2845
  if (Popup.blStack.length > 1) {
2792
2846
  Popup.blStack = Popup.blStack.filter(function(oPopupInfo) {
2793
2847
  return oPopupInfo.popup !== that;
@@ -2807,6 +2861,7 @@ sap.ui.define([
2807
2861
  oBlockLayerDomRef.style.visibility = "hidden";
2808
2862
  oBlockLayerDomRef.style.display = "none";
2809
2863
 
2864
+
2810
2865
  _fireBlockLayerStateChange({
2811
2866
  visible: false,
2812
2867
  zIndex: oLastPopupInfo.zIndex
@@ -182,7 +182,7 @@ sap.ui.define([
182
182
  *
183
183
  * @extends Object
184
184
  * @author SAP SE
185
- * @version 1.102.7
185
+ * @version 1.102.8
186
186
  * @alias sap.ui.core.RenderManager
187
187
  * @public
188
188
  */
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * @classdesc Base Class for a Renderer.
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.102.7
21
+ * @version 1.102.8
22
22
  * @namespace
23
23
  * @public
24
24
  * @alias sap.ui.core.Renderer
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @alias sap.ui.core.ResizeHandler
35
35
  * @extends sap.ui.base.Object
36
36
  * @author SAP SE
37
- * @version 1.102.7
37
+ * @version 1.102.8
38
38
  * @public
39
39
  */
40
40
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * The ScrollBar control can be used for virtual scrolling of a certain area.
43
43
  * 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
44
  * @extends sap.ui.core.Control
45
- * @version 1.102.7
45
+ * @version 1.102.8
46
46
  *
47
47
  * @public
48
48
  * @deprecated as of version 1.56
@@ -23,7 +23,7 @@ sap.ui.define(['./Item', './library'],
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.102.7
26
+ * @version 1.102.8
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.SeparatorItem
@@ -25,7 +25,7 @@ sap.ui.define(['./Element', './library'],
25
25
  * @extends sap.ui.core.Element
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.102.7
28
+ * @version 1.102.8
29
29
  *
30
30
  * @public
31
31
  * @since 1.16.0
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @class
32
32
  * 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
33
  * @extends sap.ui.core.Control
34
- * @version 1.102.7
34
+ * @version 1.102.8
35
35
  *
36
36
  * @public
37
37
  * @alias sap.ui.core.TooltipBase
@@ -173,7 +173,7 @@ sap.ui.define([
173
173
  *
174
174
  * @extends sap.ui.base.ManagedObject
175
175
  * @author SAP SE
176
- * @version 1.102.7
176
+ * @version 1.102.8
177
177
  * @param {sap.ui.core.Core} oCore internal API of the <core>Core</code> that manages this UIArea
178
178
  * @param {object} [oRootNode] reference to the DOM element that should be 'hosting' the UI Area.
179
179
  * @public
@@ -54,7 +54,7 @@ sap.ui.define([
54
54
  * @extends sap.ui.core.Component
55
55
  * @abstract
56
56
  * @author SAP SE
57
- * @version 1.102.7
57
+ * @version 1.102.8
58
58
  * @alias sap.ui.core.UIComponent
59
59
  * @since 1.9.2
60
60
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
@@ -18,7 +18,7 @@ sap.ui.define(['./ComponentMetadata', 'sap/ui/core/mvc/ViewType'],
18
18
  * @experimental Since 1.15.1. The Component concept is still under construction, so some implementation details can be changed in future.
19
19
  * @class
20
20
  * @author SAP SE
21
- * @version 1.102.7
21
+ * @version 1.102.8
22
22
  * @since 1.15.1
23
23
  * @alias sap.ui.core.UIComponentMetadata
24
24
  * @extends sap.ui.core.ComponentMetadata
@@ -16,7 +16,7 @@ sap.ui.define(['./Element', './library', "sap/base/assert"],
16
16
  * Helper functionality for value state support.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.102.7
19
+ * @version 1.102.8
20
20
  * @public
21
21
  * @namespace sap.ui.core.ValueStateSupport
22
22
  */
@@ -20,7 +20,7 @@ sap.ui.define(['./LayoutData', './library'],
20
20
  * @class
21
21
  * Allows to add multiple LayoutData to one control in case that an easy switch of layouts (e.g. in a Form) is needed.
22
22
  * @extends sap.ui.core.LayoutData
23
- * @version 1.102.7
23
+ * @version 1.102.8
24
24
  *
25
25
  * @public
26
26
  * @since 1.9.2