@openui5/sap.ui.core 1.120.1 → 1.120.2

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 (476) hide show
  1. package/.reuse/dep5 +1 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/Event.js +1 -1
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/i18n/LanguageTag.js +1 -1
  13. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +3 -3
  56. package/src/sap/ui/Global.js +4 -4
  57. package/src/sap/ui/base/BindingParser.js +4 -4
  58. package/src/sap/ui/base/DataType.js +5 -5
  59. package/src/sap/ui/base/Event.js +1 -1
  60. package/src/sap/ui/base/EventProvider.js +1 -1
  61. package/src/sap/ui/base/Interface.js +1 -1
  62. package/src/sap/ui/base/ManagedObject.js +9 -9
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/ManagedObjectRegistry.js +186 -169
  65. package/src/sap/ui/base/Metadata.js +1 -1
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/core/.library +3 -3
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/Component.js +30 -144
  71. package/src/sap/ui/core/ComponentContainer.js +3 -3
  72. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  73. package/src/sap/ui/core/ComponentRegistry.js +153 -0
  74. package/src/sap/ui/core/ComponentSupport.js +3 -3
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +6 -4
  77. package/src/sap/ui/core/Core.js +6 -4
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +25 -141
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/ElementRegistry.js +159 -0
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/ExtensionPoint.js +5 -5
  86. package/src/sap/ui/core/FocusHandler.js +3 -2
  87. package/src/sap/ui/core/Fragment.js +5 -5
  88. package/src/sap/ui/core/HTML.js +1 -1
  89. package/src/sap/ui/core/History.js +1 -1
  90. package/src/sap/ui/core/Icon.js +1 -1
  91. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  92. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  93. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  94. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  95. package/src/sap/ui/core/InvisibleText.js +1 -1
  96. package/src/sap/ui/core/Item.js +1 -1
  97. package/src/sap/ui/core/LabelEnablement.js +1 -1
  98. package/src/sap/ui/core/LayoutData.js +1 -1
  99. package/src/sap/ui/core/Lib.js +7 -7
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +1 -1
  103. package/src/sap/ui/core/LocaleData.js +55 -11
  104. package/src/sap/ui/core/Manifest.js +4 -5
  105. package/src/sap/ui/core/Message.js +2 -1
  106. package/src/sap/ui/core/Messaging.js +2 -2
  107. package/src/sap/ui/core/RenderManager.js +1 -1
  108. package/src/sap/ui/core/Renderer.js +1 -1
  109. package/src/sap/ui/core/ResizeHandler.js +1 -1
  110. package/src/sap/ui/core/ScrollBar.js +1 -1
  111. package/src/sap/ui/core/SeparatorItem.js +1 -1
  112. package/src/sap/ui/core/Shortcut.js +15 -9
  113. package/src/sap/ui/core/StaticArea.js +4 -1
  114. package/src/sap/ui/core/Theming.js +3 -3
  115. package/src/sap/ui/core/Title.js +1 -1
  116. package/src/sap/ui/core/TooltipBase.js +1 -1
  117. package/src/sap/ui/core/UIArea.js +51 -13
  118. package/src/sap/ui/core/UIAreaRegistry.js +150 -0
  119. package/src/sap/ui/core/UIComponent.js +3 -3
  120. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  121. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  122. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  123. package/src/sap/ui/core/XMLComposite.js +1 -1
  124. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  125. package/src/sap/ui/core/XMLTemplateProcessor.js +95 -76
  126. package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
  127. package/src/sap/ui/core/cldr/cy.json +12 -3
  128. package/src/sap/ui/core/cldr/en_AU.json +48 -12
  129. package/src/sap/ui/core/cldr/en_GB.json +24 -6
  130. package/src/sap/ui/core/cldr/en_HK.json +24 -6
  131. package/src/sap/ui/core/cldr/en_IE.json +24 -6
  132. package/src/sap/ui/core/cldr/en_IN.json +24 -6
  133. package/src/sap/ui/core/cldr/en_NZ.json +24 -6
  134. package/src/sap/ui/core/cldr/en_PG.json +24 -6
  135. package/src/sap/ui/core/cldr/en_SG.json +24 -6
  136. package/src/sap/ui/core/cldr/en_ZA.json +24 -6
  137. package/src/sap/ui/core/cldr/es.json +288 -72
  138. package/src/sap/ui/core/cldr/es_AR.json +288 -72
  139. package/src/sap/ui/core/cldr/es_BO.json +288 -72
  140. package/src/sap/ui/core/cldr/es_CL.json +144 -36
  141. package/src/sap/ui/core/cldr/es_CO.json +144 -36
  142. package/src/sap/ui/core/cldr/es_MX.json +288 -72
  143. package/src/sap/ui/core/cldr/fa.json +48 -12
  144. package/src/sap/ui/core/cldr/id.json +56 -14
  145. package/src/sap/ui/core/cldr/kk.json +184 -46
  146. package/src/sap/ui/core/cldr/ms.json +56 -14
  147. package/src/sap/ui/core/cldr/nb.json +36 -9
  148. package/src/sap/ui/core/cldr/nl.json +264 -66
  149. package/src/sap/ui/core/cldr/nl_BE.json +264 -66
  150. package/src/sap/ui/core/cldr/pt.json +288 -72
  151. package/src/sap/ui/core/cldr/pt_PT.json +288 -72
  152. package/src/sap/ui/core/cldr/sr.json +96 -24
  153. package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
  154. package/src/sap/ui/core/date/UI5Date.js +1 -1
  155. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  156. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  157. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  158. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  159. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  160. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  161. package/src/sap/ui/core/format/DateFormat.js +25 -13
  162. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  163. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  164. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  165. package/src/sap/ui/core/library.js +9 -3
  166. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  167. package/src/sap/ui/core/message/Message.js +7 -7
  168. package/src/sap/ui/core/message/MessageManager.js +1 -1
  169. package/src/sap/ui/core/message/MessageParser.js +1 -1
  170. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  171. package/src/sap/ui/core/message/MessageType.js +1 -1
  172. package/src/sap/ui/core/mvc/Controller.js +15 -13
  173. package/src/sap/ui/core/mvc/ControllerExtension.js +7 -5
  174. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  175. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  176. package/src/sap/ui/core/mvc/EventHandlerResolver.js +4 -4
  177. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  178. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  179. package/src/sap/ui/core/mvc/JSView.js +1 -1
  180. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  181. package/src/sap/ui/core/mvc/View.js +20 -9
  182. package/src/sap/ui/core/mvc/XMLView.js +8 -2
  183. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  184. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  185. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  186. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  187. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  188. package/src/sap/ui/core/routing/History.js +1 -1
  189. package/src/sap/ui/core/routing/Route.js +6 -6
  190. package/src/sap/ui/core/routing/Router.js +6 -6
  191. package/src/sap/ui/core/routing/Targets.js +3 -3
  192. package/src/sap/ui/core/routing/async/Target.js +2 -2
  193. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  194. package/src/sap/ui/core/rules/Misc.support.js +3 -3
  195. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  196. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  197. package/src/sap/ui/core/service/Service.js +1 -1
  198. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  199. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  200. package/src/sap/ui/core/support/Plugin.js +1 -1
  201. package/src/sap/ui/core/support/Support.js +1 -1
  202. package/src/sap/ui/core/support/plugins/ControlTree.js +6 -4
  203. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  204. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  205. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  206. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  207. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  208. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  209. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  210. package/src/sap/ui/core/theming/Parameters.js +7 -7
  211. package/src/sap/ui/core/theming/ThemeHelper.js +2 -2
  212. package/src/sap/ui/core/theming/ThemeManager.js +2 -2
  213. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  214. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  215. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  216. package/src/sap/ui/core/tmpl/Template.js +1 -1
  217. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  218. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  219. package/src/sap/ui/core/util/Export.js +1 -1
  220. package/src/sap/ui/core/util/ExportCell.js +1 -1
  221. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  222. package/src/sap/ui/core/util/ExportRow.js +1 -1
  223. package/src/sap/ui/core/util/ExportType.js +1 -1
  224. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  225. package/src/sap/ui/core/util/File.js +1 -1
  226. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  227. package/src/sap/ui/core/util/MockServer.js +34 -3
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  230. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  231. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  232. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  233. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  234. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  235. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  236. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  237. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  238. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  239. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  240. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  241. package/src/sap/ui/debug/ControlTree.js +1 -1
  242. package/src/sap/ui/debug/DebugEnv.js +1 -1
  243. package/src/sap/ui/debug/PropertyList.js +1 -1
  244. package/src/sap/ui/model/Binding.js +2 -2
  245. package/src/sap/ui/model/ClientModel.js +1 -1
  246. package/src/sap/ui/model/CompositeDataState.js +5 -5
  247. package/src/sap/ui/model/CompositeType.js +1 -1
  248. package/src/sap/ui/model/DataState.js +10 -10
  249. package/src/sap/ui/model/FilterProcessor.js +8 -5
  250. package/src/sap/ui/model/ManagedObjectBindingSupport.js +2 -2
  251. package/src/sap/ui/model/MetaModel.js +1 -1
  252. package/src/sap/ui/model/Model.js +1 -1
  253. package/src/sap/ui/model/SelectionModel.js +1 -1
  254. package/src/sap/ui/model/SimpleType.js +1 -1
  255. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  256. package/src/sap/ui/model/Type.js +1 -1
  257. package/src/sap/ui/model/analytics/odata4analytics.js +6 -6
  258. package/src/sap/ui/model/json/JSONModel.js +1 -1
  259. package/src/sap/ui/model/message/MessageModel.js +1 -1
  260. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  261. package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
  262. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  263. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  264. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  265. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  266. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  267. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  268. package/src/sap/ui/model/odata/type/Date.js +1 -1
  269. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  270. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  271. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  272. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  273. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  274. package/src/sap/ui/model/odata/type/Double.js +1 -1
  275. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  276. package/src/sap/ui/model/odata/type/Int.js +1 -1
  277. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  278. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  279. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  280. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  281. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  282. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  283. package/src/sap/ui/model/odata/type/Single.js +1 -1
  284. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  285. package/src/sap/ui/model/odata/type/String.js +1 -1
  286. package/src/sap/ui/model/odata/type/Time.js +1 -1
  287. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  288. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  289. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  290. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  291. package/src/sap/ui/model/odata/v2/ODataModel.js +4 -4
  292. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  293. package/src/sap/ui/model/odata/v4/Context.js +32 -27
  294. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  295. package/src/sap/ui/model/odata/v4/ODataListBinding.js +198 -155
  296. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  297. package/src/sap/ui/model/odata/v4/ODataModel.js +9 -4
  298. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -6
  299. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  300. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +220 -85
  301. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +33 -20
  302. package/src/sap/ui/model/odata/v4/lib/_Cache.js +70 -18
  303. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +9 -5
  304. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  305. package/src/sap/ui/model/type/Boolean.js +1 -1
  306. package/src/sap/ui/model/type/Currency.js +1 -1
  307. package/src/sap/ui/model/type/Date.js +1 -1
  308. package/src/sap/ui/model/type/DateInterval.js +1 -1
  309. package/src/sap/ui/model/type/DateTime.js +1 -1
  310. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  311. package/src/sap/ui/model/type/FileSize.js +1 -1
  312. package/src/sap/ui/model/type/Float.js +1 -1
  313. package/src/sap/ui/model/type/Integer.js +1 -1
  314. package/src/sap/ui/model/type/String.js +1 -1
  315. package/src/sap/ui/model/type/Time.js +1 -1
  316. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  317. package/src/sap/ui/model/type/Unit.js +1 -1
  318. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  319. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  320. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +5 -5
  321. package/src/sap/ui/test/BranchTracking.js +4 -0
  322. package/src/sap/ui/test/actions/EnterText.js +1 -5
  323. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -0
  324. package/src/sap/ui/test/generic/TestBase.js +4 -4
  325. package/src/sap/ui/test/generic/Utils.js +3 -2
  326. package/src/sap/ui/util/Storage.js +1 -1
  327. package/src/ui5loader-autoconfig.js +23 -15
  328. package/src/ui5loader.js +9 -4
  329. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  330. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
  331. package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
  332. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  333. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  335. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  336. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
  337. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
  338. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
  339. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
  340. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
  341. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
  342. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
  343. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
  344. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +19 -1
  345. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
  346. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
  347. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  348. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  350. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  351. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  353. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  354. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  356. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  362. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  363. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  365. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  366. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  367. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  368. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  369. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  370. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  371. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  372. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  373. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  374. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  375. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  377. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  380. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  381. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  383. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  384. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  386. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  387. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  388. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  389. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  390. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  392. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  393. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  394. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  395. package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
  396. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
  397. package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
  398. package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
  399. package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
  400. package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
  401. package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
  402. package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
  403. package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
  404. package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
  405. package/test/sap/ui/core/qunit/Lib.qunit.js +19 -2
  406. package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
  407. package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
  408. package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
  409. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
  410. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
  411. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
  412. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
  413. package/test/sap/ui/core/qunit/component/Component.qunit.js +9 -8
  414. package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
  415. package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
  416. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
  417. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
  418. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
  419. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
  420. package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
  421. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
  422. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
  423. package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
  424. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
  425. package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
  426. package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +22 -8
  427. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
  428. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
  429. package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
  430. package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
  431. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
  432. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
  433. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
  434. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
  435. package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
  436. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
  437. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
  438. package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
  439. package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
  440. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
  441. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
  442. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
  443. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
  444. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +69 -0
  445. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
  446. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
  447. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2111 -124
  448. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
  449. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
  450. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +453 -125
  451. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
  452. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +256 -8
  453. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
  454. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +38 -14
  455. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
  456. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
  457. package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
  458. package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
  459. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
  460. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
  461. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
  462. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
  463. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
  464. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
  465. package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
  466. package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
  467. package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
  468. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  469. package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
  470. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
  471. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  472. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
  473. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
  474. package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
  475. package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
  476. package/test/sap/ui/core/relnotes/changes-1.120.json +225 -0
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.1" #MainVersion#
7
+ version: "1.120.2" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.ui.layout
@@ -194,7 +194,7 @@ sap.ui.define([
194
194
  });
195
195
 
196
196
  QUnit.test("Single Binding with non-existing type", function (assert) {
197
- this.oLogMock.expects("error").once().withExactArgs("Failed to resolve type 'does.not.exist'. Maybe not loaded or a typo?");
197
+ this.oLogMock.expects("error").once().calledWith(sinon.match(/Failed to resolve type 'does.not.exist'. Maybe not loaded or a typo\?/));
198
198
  var o = parse("{path:'something', type: 'does.not.exist'}", oController);
199
199
  assert.strictEqual(typeof o, "object", "parse should return an object");
200
200
  assert.strictEqual(o.parts, undefined, "binding info should not be a composite binding info");
@@ -777,7 +777,7 @@ sap.ui.define([
777
777
  oBindingInfo;
778
778
 
779
779
  this.oLogMock.expects("error")
780
- .withExactArgs("Cannot merge parts: Unsupported property: type", sBinding,
780
+ .calledWith(sinon.match(/Cannot merge parts: Unsupported property: type/), sBinding,
781
781
  "sap.ui.base.BindingParser");
782
782
 
783
783
  //TODO complex binding with type: does not work (but is left untouched by mergeParts())
@@ -883,8 +883,8 @@ sap.ui.define([
883
883
  oBindingInfo;
884
884
 
885
885
  // bTolerateFunctionsNotFound = false
886
- this.oLogMock.expects("error").withExactArgs("formatter function foo not found!");
887
- this.oLogMock.expects("error").withExactArgs("formatter function .bar not found!");
886
+ this.oLogMock.expects("error").calledWith(sinon.match(/formatter function foo not found!/));
887
+ this.oLogMock.expects("error").calledWith(sinon.match(/formatter function .bar not found!/));
888
888
 
889
889
  parse(sBinding, null, true, /*bTolerateFunctionsNotFound*/false);
890
890
 
@@ -4,6 +4,7 @@ sap.ui.define([
4
4
  "sap/ui/base/ManagedObject",
5
5
  "sap/ui/core/CommandExecution",
6
6
  "sap/ui/core/Component",
7
+ "sap/ui/core/ComponentRegistry",
7
8
  "sap/ui/core/ComponentContainer",
8
9
  "sap/ui/core/Control",
9
10
  "sap/ui/core/Shortcut",
@@ -16,6 +17,7 @@ sap.ui.define([
16
17
  ManagedObject,
17
18
  CommandExecution,
18
19
  Component,
20
+ ComponentRegistry,
19
21
  ComponentContainer,
20
22
  Control,
21
23
  Shortcut,
@@ -179,7 +181,7 @@ sap.ui.define([
179
181
  }
180
182
  },
181
183
  getExtensionComponent: function() {
182
- return Component.registry.filter(function(oComponent) {
184
+ return ComponentRegistry.filter(function(oComponent) {
183
185
  return oComponent.getManifestEntry("/sap.app/id") === "my.command.constructor";
184
186
  })[0] || this;
185
187
  }
@@ -810,7 +810,7 @@ sap.ui.define([
810
810
  var oElementB = new Element("B");
811
811
 
812
812
  assert.ok(Object.keys(oCoreInternals.mElements).length, 2, "Return all registered Element instances");
813
- assert.equal(oErrorLogSpy.getCall(0).args[0], "oCore.mElements was a private member and has been removed. Use one of the methods in sap.ui.core.Element.registry instead", "Logs error on private methode access");
813
+ assert.equal(oErrorLogSpy.getCall(0).args[0], "oCore.mElements was a private member and has been removed. Use one of the methods in sap.ui.core.ElementRegistry instead", "Logs error on private methode access");
814
814
 
815
815
  oElementA.destroy();
816
816
  oElementB.destroy();
@@ -3,7 +3,7 @@ sap.ui.define([
3
3
  "test-resources/sap/ui/core/qunit/odata/data/ODataModelFakeService",
4
4
  "sap/ui/base/ManagedObject",
5
5
  "sap/ui/core/Control",
6
- "sap/ui/core/UIArea",
6
+ "sap/ui/core/UIAreaRegistry",
7
7
  "sap/ui/model/ContextBinding",
8
8
  "sap/ui/model/json/JSONModel",
9
9
  "sap/ui/model/odata/v2/ODataModel"
@@ -11,7 +11,7 @@ sap.ui.define([
11
11
  fakeService,
12
12
  ManagedObject,
13
13
  Control,
14
- UIArea,
14
+ UIAreaRegistry,
15
15
  ContextBinding,
16
16
  JSONModel,
17
17
  ODataModel
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  var oDiv = document.createElement("div");
63
63
  oUIAreas.appendChild(oDiv);
64
64
  new Control().placeAt(oDiv).destroy();
65
- this.uiArea = UIArea.registry.get(oDiv.id);
65
+ this.uiArea = UIAreaRegistry.get(oDiv.id);
66
66
 
67
67
  this.mPropagationInfo = {};
68
68
 
@@ -152,7 +152,7 @@ sap.ui.define([
152
152
  var oDiv = document.createElement("div");
153
153
  oUIAreas.appendChild(oDiv);
154
154
  new Control().placeAt(oDiv).destroy();
155
- this.uiArea = UIArea.registry.get(oDiv.id);
155
+ this.uiArea = UIAreaRegistry.get(oDiv.id);
156
156
 
157
157
  this.mPropagationInfo = {};
158
158
 
@@ -570,7 +570,7 @@ sap.ui.define([
570
570
  beforeEach : function() {
571
571
  sap.ui.getCore().setModel(oModel1);
572
572
  new Control().placeAt("content").destroy();
573
- this.uiArea = UIArea.registry.get("content");
573
+ this.uiArea = UIAreaRegistry.get("content");
574
574
  this.uiArea.setModel(null);
575
575
  this.child = new TestControl({
576
576
  value : { parts : [ "/value", "m2>/value" ], formatter : function(a,b) { return a + ":" + b; } },
@@ -691,7 +691,7 @@ sap.ui.define([
691
691
  }
692
692
  }.bind(this);
693
693
  new Control().placeAt("content").destroy();
694
- this.uiArea = UIArea.registry.get("content");
694
+ this.uiArea = UIAreaRegistry.get("content");
695
695
  this.uiArea.attachModelContextChange(this.fnChange);
696
696
 
697
697
  sap.ui.getCore().setModel(oModel4);
@@ -3,9 +3,9 @@ sap.ui.define([
3
3
  "sap/ui/thirdparty/jquery",
4
4
  "sap/ui/core/DeclarativeSupport",
5
5
  "sap/ui/core/Element",
6
- "sap/ui/core/UIArea",
6
+ "sap/ui/core/UIAreaRegistry",
7
7
  "sap/ui/model/json/JSONModel"
8
- ], function(jQuery, DeclarativeSupport, Element, UIArea, JSONModel) {
8
+ ], function(jQuery, DeclarativeSupport, Element, UIAreaRegistry, JSONModel) {
9
9
  "use strict";
10
10
  QUnit.config.reorder = false;
11
11
  QUnit.module("Basic");
@@ -144,7 +144,7 @@ sap.ui.define([
144
144
 
145
145
  QUnit.test("UIArea", function(assert) {
146
146
  assert.expect(7);
147
- var oUIArea = UIArea.registry.get("uiAreaSimple");
147
+ var oUIArea = UIAreaRegistry.get("uiAreaSimple");
148
148
  assert.equal(!!oUIArea, false, 'No control with id "uiAreaSimple" found.');
149
149
 
150
150
  var oButton1 = Element.getElementById("uiAreaSimpleButton2");
@@ -155,7 +155,7 @@ sap.ui.define([
155
155
 
156
156
  DeclarativeSupport.compile(jQuery("#ui-area-simple"));
157
157
 
158
- var oUIArea = UIArea.registry.get("uiAreaSimple");
158
+ var oUIArea = UIAreaRegistry.get("uiAreaSimple");
159
159
  assert.ok(!!oUIArea, 'UIArea with id "uiAreaSimple" found.');
160
160
 
161
161
  var oButton1 = Element.getElementById("uiAreaSimpleButton2");
@@ -170,7 +170,7 @@ sap.ui.define([
170
170
 
171
171
  QUnit.test("Complex Declaration", function(assert) {
172
172
  assert.expect(8);
173
- var oUIArea = UIArea.registry.get("complexDeclarationUIArea");
173
+ var oUIArea = UIAreaRegistry.get("complexDeclarationUIArea");
174
174
  assert.equal(!!oUIArea, false, 'No UIArea with id "complexDeclarationUIArea" found.');
175
175
 
176
176
  var oPanel1 = Element.getElementById("complexDeclarationPanel1");
@@ -188,7 +188,7 @@ sap.ui.define([
188
188
 
189
189
  DeclarativeSupport.compile(jQuery("#complex-declaration"));
190
190
 
191
- var oUIArea = UIArea.registry.get("complexDeclarationUIArea");
191
+ var oUIArea = UIAreaRegistry.get("complexDeclarationUIArea");
192
192
  assert.ok(!!oUIArea, 'UIArea with id "complexDeclarationUIArea" found.');
193
193
 
194
194
  var oPanel1 = Element.getElementById("complexDeclarationPanel1");
@@ -1,11 +1,12 @@
1
1
  /*global QUnit */
2
2
  sap.ui.define([
3
- "sap/ui/core/Element"
4
- ], function(Element) {
3
+ "sap/ui/core/Element",
4
+ "sap/ui/core/ElementRegistry"
5
+ ], function(Element, ElementRegistry) {
5
6
  "use strict";
6
7
 
7
8
  function cleanUpRegistry() {
8
- Element.registry.forEach(function(oElement) {
9
+ ElementRegistry.forEach(function(oElement) {
9
10
  oElement.destroy();
10
11
  });
11
12
  }
@@ -27,14 +28,14 @@ sap.ui.define([
27
28
  var aFilteredElements = [];
28
29
 
29
30
  assert.ok(Element.hasOwnProperty("registry"), "Element has static method to access registry");
30
- assert.equal(Element.registry.size, 3, "Return number of registered element instances");
31
- assert.deepEqual(Object.keys(Element.registry.all()).sort(), ["A", "B", "C"], "Return all registered element instances");
31
+ assert.equal(ElementRegistry.size, 3, "Return number of registered element instances");
32
+ assert.deepEqual(Object.keys(ElementRegistry.all()).sort(), ["A", "B", "C"], "Return all registered element instances");
32
33
  assert.ok(Element.getElementById("B") === oFooB, "Return reference of element B from registry by ID");
33
34
 
34
- Element.registry.forEach(fnCallbackSpy);
35
+ ElementRegistry.forEach(fnCallbackSpy);
35
36
  assert.ok(fnCallbackSpy.calledThrice, "Callback was executed 3 times");
36
37
 
37
- aFilteredElements = Element.registry.filter(function(oElement) {
38
+ aFilteredElements = ElementRegistry.filter(function(oElement) {
38
39
  return ["B", "C"].indexOf(oElement.getId()) > -1;
39
40
  });
40
41
 
@@ -0,0 +1,48 @@
1
+ /*global QUnit */
2
+ sap.ui.define([
3
+ "sap/ui/core/Element"
4
+ ], function(Element) {
5
+ "use strict";
6
+
7
+ function cleanUpRegistry() {
8
+ Element.registry.forEach(function(oElement) {
9
+ oElement.destroy();
10
+ });
11
+ }
12
+
13
+ QUnit.module("Element registry", {
14
+ beforeEach: function () {
15
+ cleanUpRegistry();
16
+ },
17
+ afterEach: function() {
18
+ cleanUpRegistry();
19
+ }
20
+ });
21
+
22
+ QUnit.test("Element registry access", function(assert) {
23
+ var oFooA = new Element("A");
24
+ var oFooB = new Element("B");
25
+ var oFooC = new Element("C");
26
+ var fnCallbackSpy = this.spy(function() {});
27
+ var aFilteredElements = [];
28
+
29
+ assert.ok(Element.hasOwnProperty("registry"), "Element has static method to access registry");
30
+ assert.equal(Element.registry.size, 3, "Return number of registered element instances");
31
+ assert.deepEqual(Object.keys(Element.registry.all()).sort(), ["A", "B", "C"], "Return all registered element instances");
32
+ assert.ok(Element.getElementById("B") === oFooB, "Return reference of element B from registry by ID");
33
+
34
+ Element.registry.forEach(fnCallbackSpy);
35
+ assert.ok(fnCallbackSpy.calledThrice, "Callback was executed 3 times");
36
+
37
+ aFilteredElements = Element.registry.filter(function(oElement) {
38
+ return ["B", "C"].indexOf(oElement.getId()) > -1;
39
+ });
40
+
41
+ assert.equal(aFilteredElements.length, 2, "Return 2 components matching the filter criteria");
42
+
43
+ oFooA.destroy();
44
+ oFooB.destroy();
45
+ oFooC.destroy();
46
+ });
47
+
48
+ });
@@ -139,7 +139,7 @@ sap.ui.define([
139
139
  var oUI5ElementFound = Element.closestTo(jQuery("#startPoint"));
140
140
  assert.strictEqual(oUI5ElementFound, oUI5Element);
141
141
 
142
- sinon.assert.calledWithExactly(oErrorLogSpy, "[FUTURE] Do not call Element.closestTo() with jQuery object as parameter. \
142
+ sinon.assert.calledWithExactly(oErrorLogSpy, "[FUTURE FATAL] Do not call Element.closestTo() with jQuery object as parameter. \
143
143
  The function should be called with either a DOM Element or a CSS selector. \
144
144
  (future error, ignored for now)");
145
145
 
@@ -7,19 +7,16 @@ sap.ui.define([
7
7
  "sap/ui/core/Fragment",
8
8
  "sap/ui/core/Element",
9
9
  "sap/ui/core/XMLTemplateProcessor",
10
- "sap/m/Panel",
11
10
  "sap/m/Button",
12
11
  "sap/ui/layout/HorizontalLayout",
13
12
  "sap/ui/model/json/JSONModel",
14
13
  "sap/ui/qunit/utils/createAndAppendDiv",
15
14
  "sap/ui/qunit/utils/nextUIUpdate",
16
15
  "sap/ui/core/mvc/View",
17
- "sap/ui/core/mvc/XMLView",
18
- "sap/ui/core/mvc/JSView",
19
- "sap/ui/core/mvc/Controller",
16
+ "sap/ui/core/mvc/ViewType",
20
17
  "sap/base/util/LoaderExtensions",
21
18
  "sap/ui/thirdparty/jquery"
22
- ], function (Log, qutils, Core, Component, Fragment, Element, XMLTemplateProcessor, Panel, Button, HorizontalLayout, JSONModel, createAndAppendDiv, nextUIUpdate, View, XMLView, JSView, Controller, LoaderExtensions, jQuery) {
19
+ ], function (Log, qutils, Core, Component, Fragment, Element, XMLTemplateProcessor, Button, HorizontalLayout, JSONModel, createAndAppendDiv, nextUIUpdate, View, ViewType, LoaderExtensions, jQuery) {
23
20
  "use strict";
24
21
 
25
22
  createAndAppendDiv(["content1", "content2", "content3", "content4", "binding"]);
@@ -54,6 +51,55 @@ sap.ui.define([
54
51
  }
55
52
  });
56
53
 
54
+ // Keep this test run as the first test in this file because it's needed to check whether the module
55
+ // "sap/ui/core/mvc/XMLView" is required correctly
56
+ //
57
+ // There are later further tests which load this module, therefore this test should run before the other tests.
58
+ QUnit.test("XML Fragment loaded from file with nested XMLView", function(assert) {
59
+ /**
60
+ * @deprecated
61
+ */
62
+ var oRequireSyncSpy = this.spy(sap.ui, "requireSync");
63
+ assert.notOk(sap.ui.require("sap/ui/core/mvc/XMLView"), "XMLView module isn't loaded yet");
64
+ return Fragment.load({
65
+ fragmentName: "testdata.fragments.XMLTestFragmentWithXMLView",
66
+ controller: this.oDummyController
67
+ }).then(async function(oFragment) {
68
+ assert.ok(sap.ui.require("sap/ui/core/mvc/XMLView"), "XMLView module is loaded");
69
+ /**
70
+ * @deprecated
71
+ */
72
+ assert.notOk(oRequireSyncSpy.called, "sap.ui.requireSync shouldn't be called");
73
+
74
+ oFragment.placeAt("content1");
75
+ await nextUIUpdate();
76
+
77
+ var id = oFragment.getId();
78
+
79
+ assert.equal(id.substr(0, 8), "__layout", "Fragment ID should be generated");
80
+ assert.ok(document.getElementById(id), "XML Fragment should be rendered");
81
+
82
+ var aContent = oFragment.getContent();
83
+ var btn1 = aContent[0];
84
+ var btn2 = aContent[1];
85
+ assert.equal(btn1.getId(), "btn1InXmlFragment", "Button with given ID should have exactly this ID");
86
+ assert.equal(btn2.getId().substr(0, 8), "__button", "Button with no given ID should have a generated ID");
87
+
88
+ // Data binding
89
+ assert.equal(btn2.$().text(), DATABOUND_TEXT, "Second Button should have text from data binding");
90
+
91
+ // find controls by ID
92
+ var btn = Element.getElementById("btn1InXmlFragment");
93
+ assert.ok(btn, "Button should be found by ID");
94
+ assert.ok(btn instanceof Button, "Button should be found by ID");
95
+
96
+ var view = aContent[2];
97
+ assert.ok(view.isA("sap.ui.core.mvc.XMLView"), "XMLView instance is created");
98
+
99
+ oFragment.destroy();
100
+ });
101
+ });
102
+
57
103
  QUnit.test("XML Fragment loaded from file", function(assert) {
58
104
  return Fragment.load({
59
105
  fragmentName: "testdata.fragments.XMLTestFragment",
@@ -254,8 +300,9 @@ sap.ui.define([
254
300
  var DATABOUND_TEXT_IN_VIEW = "Text from Databinding in View";
255
301
 
256
302
  QUnit.test("XMLView Rendering", function(assert) {
257
- return XMLView.create({
258
- viewName: "testdata.fragments.XMLViewWithFragments"
303
+ return View.create({
304
+ viewName: "testdata.fragments.XMLViewWithFragments",
305
+ type: ViewType.XML
259
306
  }).then(async function(oResult) {
260
307
  oXmlView = oResult;
261
308
 
@@ -509,9 +556,10 @@ sap.ui.define([
509
556
  });
510
557
 
511
558
  QUnit.test("Unnamed Model", function(assert) {
512
- return XMLView.create({
559
+ return View.create({
513
560
  id: "unnamedView",
514
- viewName: "my.UnnamedView"
561
+ viewName: "my.UnnamedView",
562
+ type: ViewType.XML
515
563
  }).then(async function(oView) {
516
564
  oView.placeAt("binding");
517
565
  await nextUIUpdate();
@@ -524,9 +572,10 @@ sap.ui.define([
524
572
  });
525
573
 
526
574
  QUnit.test("Named Model", function(assert) {
527
- return XMLView.create({
575
+ return View.create({
528
576
  id: "namedView",
529
- viewName: "my.View"
577
+ viewName: "my.View",
578
+ type: ViewType.XML
530
579
  }).then(async function(oView) {
531
580
  oView.placeAt("binding");
532
581
  await nextUIUpdate();
@@ -662,8 +711,9 @@ sap.ui.define([
662
711
 
663
712
  QUnit.test("Load XML View from file with nested fragments of type 'JS' and 'XML'", function (assert) {
664
713
  assert.expect(21);
665
- return XMLView.create({
666
- viewName: "testdata.fragments.nested.XMLViewWithFragments"
714
+ return View.create({
715
+ viewName: "testdata.fragments.nested.XMLViewWithFragments",
716
+ type: ViewType.XML
667
717
  }).then(function (oView) {
668
718
  return oView.loaded().then(function () {
669
719
  assert.equal(this.loadTemplatePromiseSpy.callCount, 2, "XMLTemplateProcessor.loadTemplatePromise should be called two times (only for the nested XML fragments)");
@@ -5,13 +5,13 @@ sap.ui.define([
5
5
  "sap/ui/core/Element",
6
6
  "sap/ui/core/HTML",
7
7
  "sap/ui/core/RenderManager",
8
- "sap/ui/core/UIArea",
8
+ "sap/ui/core/UIAreaRegistry",
9
9
  "sap/ui/core/UIComponent",
10
10
  "sap/ui/layout/VerticalLayout",
11
11
  "sap/ui/testlib/TestButton",
12
12
  "sap/ui/thirdparty/jquery",
13
13
  "sap/ui/qunit/utils/nextUIUpdate"
14
- ], function(ComponentContainer, Control, Element, HTML, RenderManager, UIArea, UIComponent, VerticalLayout, TestButton, jQuery, nextUIUpdate) {
14
+ ], function(ComponentContainer, Control, Element, HTML, RenderManager, UIAreaRegistry, UIComponent, VerticalLayout, TestButton, jQuery, nextUIUpdate) {
15
15
  "use strict";
16
16
 
17
17
  var normalize = (function() {
@@ -266,7 +266,7 @@ sap.ui.define([
266
266
 
267
267
  QUnit.test("content property + preferDOM, initial rendering", async function(assert) {
268
268
  //Cleanup UIArea because placeAt only adds new control to UIArea
269
- UIArea.registry.get("uiAreaA").removeAllContent();
269
+ UIAreaRegistry.get("uiAreaA").removeAllContent();
270
270
  new VerticalLayout({
271
271
  content: [
272
272
  new HTML("html3", {
@@ -406,7 +406,7 @@ sap.ui.define([
406
406
  var oldDomRef = jQuery("#html3")[0];
407
407
 
408
408
  // remove from control tree and rerender
409
- UIArea.registry.get("uiAreaA").removeAllContent();
409
+ UIAreaRegistry.get("uiAreaA").removeAllContent();
410
410
  await nextUIUpdate();
411
411
 
412
412
  // check that DOM still exists
@@ -488,7 +488,7 @@ sap.ui.define([
488
488
  // multiple roots test
489
489
  QUnit.test("content property, multiple roots", async function(assert) {
490
490
  // Cleanup UIArea because placeAt only adds new control to UIArea
491
- UIArea.registry.get("uiAreaA").removeAllContent();
491
+ UIAreaRegistry.get("uiAreaA").removeAllContent();
492
492
  new HTML("html6", {
493
493
  content : "<div style='width:200px;height:64px;background-color:rgb(0, 0, 0);'></div><div style='width:200px;height:64px;background-color:rgb(255, 0, 0);'></div><div style='width:200px;height:64px;background-color:rgb(255, 255, 0);'></div>"
494
494
  }).placeAt("uiAreaA");
@@ -455,7 +455,7 @@ sap.ui.define([
455
455
  QUnit.test("", async function(assert) {
456
456
  let oErrorLogSpy;
457
457
 
458
- assert.expect(3);
458
+ assert.expect(6);
459
459
 
460
460
  sap.ui.predefine('testing/pseudo/modules/deprecation/library', ["sap/ui/core/Lib"], function(Library) {
461
461
  const oThisLib = Library.init({
@@ -474,9 +474,11 @@ sap.ui.define([
474
474
  name: "testing.pseudo.modules.deprecation"
475
475
  });
476
476
 
477
+ const sExpectedErrorMessage = "Deprecation: Importing the type 'testing.pseudo.modules.deprecation.Type1' as a module is deprecated. Please require the corresponding 'library.js' containing the type directly. You can then reference the type via the library's module export.";
478
+
479
+ // Anonymous require: Log does not contain the requesting module
477
480
  await new Promise((resolve, reject) => {
478
481
  oErrorLogSpy = this.spy(Log, "error");
479
- const sExpectedErrorMessage = "Deprecation: Import the type 'testing.pseudo.modules.deprecation.Type1' as a module is deprecated. Please require the corresponding 'library.js' containing the type directly. You can then reference the type via the library's module export.";
480
482
 
481
483
  sap.ui.require(["testing/pseudo/modules/deprecation/Type1"], (Type1) => {
482
484
  assert.ok(oErrorLogSpy.calledWith(sExpectedErrorMessage), "Error Message for pseudo module deprecation logged.");
@@ -487,5 +489,20 @@ sap.ui.define([
487
489
  }).finally(() => {
488
490
  oErrorLogSpy.restore();
489
491
  });
492
+
493
+ // Anonymous require: Log does not contain the requesting module
494
+ await new Promise((resolve, reject) => {
495
+ oErrorLogSpy = this.spy(Log, "error");
496
+ const sModuleSpecificErrorMessage = `(dependency of 'my/old/Module.js') ${sExpectedErrorMessage}`;
497
+
498
+ sap.ui.define("my/old/Module", ["testing/pseudo/modules/deprecation/Type1"], (Type1) => {
499
+ assert.ok(oErrorLogSpy.calledWith(sModuleSpecificErrorMessage), "Error Message for pseudo module deprecation logged.");
500
+ assert.ok(Type1.A, "A", "pseudo type module export is correct (A).");
501
+ assert.ok(Type1.B, "B", "pseudo type module export is correct (B).");
502
+ resolve();
503
+ }, reject);
504
+ }).finally(() => {
505
+ oErrorLogSpy.restore();
506
+ });
490
507
  });
491
508
  });
@@ -5,9 +5,9 @@ sap.ui.define([
5
5
  "sap/ui/core/Core",
6
6
  "sap/ui/core/Element",
7
7
  "sap/ui/core/StaticArea",
8
- "sap/ui/core/UIArea",
8
+ "sap/ui/core/UIAreaRegistry",
9
9
  "sap/ui/qunit/utils/createAndAppendDiv"
10
- ], function(Panel, Button, oCore, Element, StaticArea, UIArea, createAndAppendDiv) {
10
+ ], function(Panel, Button, oCore, Element, StaticArea, UIAreaRegistry, createAndAppendDiv) {
11
11
  "use strict";
12
12
 
13
13
  createAndAppendDiv(["uiArea1", "uiArea2", "uiArea3", "uiArea4"]);
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  oControl.placeAt(oContainerRef);
35
35
  }
36
36
 
37
- var oCont = bIsUiArea ? UIArea.registry.get(sContainerId) : Element.getElementById(sContainerId);
37
+ var oCont = bIsUiArea ? UIAreaRegistry.get(sContainerId) : Element.getElementById(sContainerId);
38
38
  return [oControl.getId(), oCont];
39
39
  }
40
40
 
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  QUnit.module("sap.ui.core.Control.placeAt");
58
58
 
59
59
  QUnit.test("Deferred call", function(assert) {
60
- doCheckPlaceAtResult(assert, ["myPanel", UIArea.registry.get("uiArea1")], 1, 0, "deferred call");
60
+ doCheckPlaceAtResult(assert, ["myPanel", UIAreaRegistry.get("uiArea1")], 1, 0, "deferred call");
61
61
  });
62
62
 
63
63
  QUnit.test("UIArea via ID", function(assert) {
@@ -105,7 +105,7 @@ sap.ui.define([
105
105
  function setRoot() {
106
106
  var oControl = new Button();
107
107
  oCore.setRoot(oContainerRef, oControl);
108
- var oCont = bIsUiArea ? UIArea.registry.get(sContainerId) : Element.getElementById(sContainerId);
108
+ var oCont = bIsUiArea ? UIAreaRegistry.get(sContainerId) : Element.getElementById(sContainerId);
109
109
  return [oControl.getId(), oCont];
110
110
  }
111
111
 
@@ -118,7 +118,7 @@ sap.ui.define([
118
118
  QUnit.module("sap.ui.core.Core.setRoot");
119
119
 
120
120
  QUnit.test("Deferred call", function(assert) {
121
- doCheckSetRootResult(assert, ["myPanel2", UIArea.registry.get("uiArea3")]);
121
+ doCheckSetRootResult(assert, ["myPanel2", UIAreaRegistry.get("uiArea3")]);
122
122
  });
123
123
 
124
124
  QUnit.test("UIArea via ID", function(assert) {
@@ -82,7 +82,7 @@ sap.ui.define([
82
82
  });
83
83
 
84
84
  QUnit.test("fnWrapper trigger", function(assert) {
85
- assert.expect(4);
85
+ assert.expect(6);
86
86
  var done = assert.async();
87
87
  var oHTMLElementFocusSpy = sinon.spy(HTMLElement.prototype, "focus");
88
88
  var oInput = new Input();
@@ -100,7 +100,15 @@ sap.ui.define([
100
100
  oInput.placeAt("qunit-fixture");
101
101
  oInput.addEventDelegate({"onAfterRendering": function() {
102
102
  oInput.focus();
103
+
104
+ // wrap the assertion in a 0 timeout to make sure that the shift of focus to the internal "span"
105
+ // is done by using a 0 timeout
106
+ setTimeout(function() {
107
+ assert.ok(oInput.getDomRef().contains(document.activeElement), "Focus should be within the input after a 0 timeout");
108
+ });
109
+
103
110
  QUtils.triggerKeydown(oInput.getDomRef(), "s", true, false, false);
111
+ assert.ok(oInput.getDomRef().contains(document.activeElement), "Focus should be within the input directly after triggering the shortcut");
104
112
  }});
105
113
  });
106
114
  });
@@ -6,12 +6,13 @@ sap.ui.define([
6
6
  "sap/ui/core/Element",
7
7
  "sap/ui/core/HTML",
8
8
  "sap/ui/core/UIArea",
9
+ "sap/ui/core/UIAreaRegistry",
9
10
  "sap/ui/qunit/utils/createAndAppendDiv",
10
11
  "sap/ui/qunit/utils/nextUIUpdate",
11
12
  "sap/ui/testlib/TestButton",
12
13
  "sap/ui/test/actions/Press",
13
14
  "sap/ui/thirdparty/jquery"
14
- ], function(Log, Control, Element, HTML, UIArea, createAndAppendDiv, nextUIUpdate, TestButton, Press, jQuery) {
15
+ ], function(Log, Control, Element, HTML, UIArea, UIAreaRegistry, createAndAppendDiv, nextUIUpdate, TestButton, Press, jQuery) {
15
16
  "use strict";
16
17
 
17
18
  createAndAppendDiv("uiArea1");
@@ -60,7 +61,7 @@ sap.ui.define([
60
61
  * UIArea must be empty after the rendering
61
62
  */
62
63
  QUnit.test("removeAllContent", async function(assert) {
63
- UIArea.registry.get("uiArea1").removeAllContent();
64
+ UIAreaRegistry.get("uiArea1").removeAllContent();
64
65
  await nextUIUpdate();
65
66
  assert.equal(jQuery("#uiArea1").children().length, 0, "no more content");
66
67
  assert.ok(Element.getElementById("text1"), "remove must not destroy child 1");
@@ -87,7 +88,7 @@ sap.ui.define([
87
88
  assert.equal(jQuery($currentDom.get(1)).text(), "Text 1", "first span shows first text");
88
89
  assert.equal(jQuery($currentDom.get(2)).text(), "Text 2", "second span shows second text");
89
90
 
90
- UIArea.registry.get("uiArea2").removeAllContent();
91
+ UIAreaRegistry.get("uiArea2").removeAllContent();
91
92
  await nextUIUpdate();
92
93
  $currentDom = jQuery("#uiArea2").children();
93
94
  assert.equal($currentDom.length, 1, "initial DOM still exists in UIArea");
@@ -127,7 +128,7 @@ sap.ui.define([
127
128
  assert.equal(jQuery($currentDom.get(4)).text(), "After", "last span shows dynamically added end");
128
129
 
129
130
  // now remove controls, check that the remainigs are as expected
130
- UIArea.registry.get("uiArea2").removeAllContent();
131
+ UIAreaRegistry.get("uiArea2").removeAllContent();
131
132
  await nextUIUpdate();
132
133
  $currentDom = jQuery("#uiArea2").children();
133
134
  assert.equal($currentDom.length, 3, "initial DOM still exists in UIArea");
@@ -180,7 +181,7 @@ sap.ui.define([
180
181
  // ---- aspect 3: remove all content must not delete the preserved dOM ----
181
182
 
182
183
  // remove content and rerender
183
- UIArea.registry.get("uiArea1").removeAllContent();
184
+ UIAreaRegistry.get("uiArea1").removeAllContent();
184
185
  await nextUIUpdate();
185
186
 
186
187
  // check that UIArea is empoty, but preserved content still exists
@@ -296,7 +297,7 @@ sap.ui.define([
296
297
  beforeEach: function() {
297
298
  new Control().placeAt("uiArea1").destroy();
298
299
  var oControl = new Control();
299
- UIArea.registry.get("uiArea1").addDependent(oControl);
300
+ UIAreaRegistry.get("uiArea1").addDependent(oControl);
300
301
  this.uiArea = oControl.getUIArea();
301
302
  this.uiArea.addDependent(new Control());
302
303
  this.spy(this.uiArea, "invalidate");