@openui5/sap.ui.core 1.120.0 → 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 (625) 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 +2 -2
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/i18n/Formatting.js +30 -14
  13. package/src/sap/base/i18n/LanguageTag.js +1 -1
  14. package/src/sap/base/i18n/Localization.js +1 -2
  15. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +3 -3
  58. package/src/sap/ui/Global.js +4 -4
  59. package/src/sap/ui/base/BindingParser.js +4 -4
  60. package/src/sap/ui/base/DataType.js +5 -5
  61. package/src/sap/ui/base/Event.js +1 -1
  62. package/src/sap/ui/base/EventProvider.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +9 -65
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +25 -1
  66. package/src/sap/ui/base/ManagedObjectRegistry.js +186 -169
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +1 -1
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/core/.library +3 -3
  71. package/src/sap/ui/core/BusyIndicator.js +1 -1
  72. package/src/sap/ui/core/Component.js +55 -150
  73. package/src/sap/ui/core/ComponentContainer.js +5 -5
  74. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  75. package/src/sap/ui/core/ComponentRegistry.js +153 -0
  76. package/src/sap/ui/core/ComponentSupport.js +3 -3
  77. package/src/sap/ui/core/Configuration.js +9 -7
  78. package/src/sap/ui/core/Control.js +6 -4
  79. package/src/sap/ui/core/Core.js +19 -71
  80. package/src/sap/ui/core/CustomData.js +1 -1
  81. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  82. package/src/sap/ui/core/Element.js +30 -142
  83. package/src/sap/ui/core/ElementMetadata.js +1 -1
  84. package/src/sap/ui/core/ElementRegistry.js +159 -0
  85. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  86. package/src/sap/ui/core/EventBus.js +1 -1
  87. package/src/sap/ui/core/ExtensionPoint.js +5 -5
  88. package/src/sap/ui/core/FocusHandler.js +3 -2
  89. package/src/sap/ui/core/Fragment.js +7 -7
  90. package/src/sap/ui/core/HTML.js +1 -1
  91. package/src/sap/ui/core/History.js +1 -1
  92. package/src/sap/ui/core/Icon.js +1 -1
  93. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  94. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  95. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  96. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  97. package/src/sap/ui/core/InvisibleText.js +1 -1
  98. package/src/sap/ui/core/Item.js +1 -1
  99. package/src/sap/ui/core/LabelEnablement.js +1 -1
  100. package/src/sap/ui/core/LayoutData.js +1 -1
  101. package/src/sap/ui/core/Lib.js +62 -32
  102. package/src/sap/ui/core/ListItem.js +1 -1
  103. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  104. package/src/sap/ui/core/Locale.js +1 -1
  105. package/src/sap/ui/core/LocaleData.js +55 -11
  106. package/src/sap/ui/core/Manifest.js +4 -5
  107. package/src/sap/ui/core/Message.js +2 -1
  108. package/src/sap/ui/core/Messaging.js +2 -2
  109. package/src/sap/ui/core/RenderManager.js +1 -1
  110. package/src/sap/ui/core/Renderer.js +1 -1
  111. package/src/sap/ui/core/ResizeHandler.js +1 -1
  112. package/src/sap/ui/core/ScrollBar.js +1 -1
  113. package/src/sap/ui/core/SeparatorItem.js +1 -1
  114. package/src/sap/ui/core/Shortcut.js +15 -9
  115. package/src/sap/ui/core/StaticArea.js +4 -1
  116. package/src/sap/ui/core/Theming.js +3 -3
  117. package/src/sap/ui/core/Title.js +1 -1
  118. package/src/sap/ui/core/TooltipBase.js +1 -1
  119. package/src/sap/ui/core/UIArea.js +54 -12
  120. package/src/sap/ui/core/UIAreaRegistry.js +150 -0
  121. package/src/sap/ui/core/UIComponent.js +3 -3
  122. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  123. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  124. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  125. package/src/sap/ui/core/XMLComposite.js +1 -1
  126. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  127. package/src/sap/ui/core/XMLTemplateProcessor.js +95 -76
  128. package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
  129. package/src/sap/ui/core/cldr/cy.json +12 -3
  130. package/src/sap/ui/core/cldr/en_AU.json +48 -12
  131. package/src/sap/ui/core/cldr/en_GB.json +24 -6
  132. package/src/sap/ui/core/cldr/en_HK.json +24 -6
  133. package/src/sap/ui/core/cldr/en_IE.json +24 -6
  134. package/src/sap/ui/core/cldr/en_IN.json +24 -6
  135. package/src/sap/ui/core/cldr/en_NZ.json +24 -6
  136. package/src/sap/ui/core/cldr/en_PG.json +24 -6
  137. package/src/sap/ui/core/cldr/en_SG.json +24 -6
  138. package/src/sap/ui/core/cldr/en_ZA.json +24 -6
  139. package/src/sap/ui/core/cldr/es.json +288 -72
  140. package/src/sap/ui/core/cldr/es_AR.json +288 -72
  141. package/src/sap/ui/core/cldr/es_BO.json +288 -72
  142. package/src/sap/ui/core/cldr/es_CL.json +144 -36
  143. package/src/sap/ui/core/cldr/es_CO.json +144 -36
  144. package/src/sap/ui/core/cldr/es_MX.json +288 -72
  145. package/src/sap/ui/core/cldr/fa.json +48 -12
  146. package/src/sap/ui/core/cldr/id.json +56 -14
  147. package/src/sap/ui/core/cldr/kk.json +184 -46
  148. package/src/sap/ui/core/cldr/ms.json +56 -14
  149. package/src/sap/ui/core/cldr/nb.json +36 -9
  150. package/src/sap/ui/core/cldr/nl.json +264 -66
  151. package/src/sap/ui/core/cldr/nl_BE.json +264 -66
  152. package/src/sap/ui/core/cldr/pt.json +288 -72
  153. package/src/sap/ui/core/cldr/pt_PT.json +288 -72
  154. package/src/sap/ui/core/cldr/sr.json +96 -24
  155. package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
  156. package/src/sap/ui/core/date/Islamic.js +4 -4
  157. package/src/sap/ui/core/date/UI5Date.js +1 -1
  158. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  159. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  160. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  161. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  162. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  163. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  164. package/src/sap/ui/core/format/DateFormat.js +25 -13
  165. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  166. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  167. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  168. package/src/sap/ui/core/library.js +9 -3
  169. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  170. package/src/sap/ui/core/message/Message.js +7 -7
  171. package/src/sap/ui/core/message/MessageManager.js +1 -1
  172. package/src/sap/ui/core/message/MessageParser.js +1 -1
  173. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  174. package/src/sap/ui/core/message/MessageType.js +1 -1
  175. package/src/sap/ui/core/mvc/Controller.js +15 -13
  176. package/src/sap/ui/core/mvc/ControllerExtension.js +7 -5
  177. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
  178. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  179. package/src/sap/ui/core/mvc/EventHandlerResolver.js +4 -4
  180. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  181. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  182. package/src/sap/ui/core/mvc/JSView.js +1 -1
  183. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  184. package/src/sap/ui/core/mvc/View.js +21 -10
  185. package/src/sap/ui/core/mvc/XMLView.js +8 -2
  186. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  187. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  188. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  189. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  190. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  191. package/src/sap/ui/core/routing/History.js +1 -1
  192. package/src/sap/ui/core/routing/Route.js +6 -6
  193. package/src/sap/ui/core/routing/Router.js +6 -6
  194. package/src/sap/ui/core/routing/Targets.js +3 -3
  195. package/src/sap/ui/core/routing/async/Target.js +2 -2
  196. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  197. package/src/sap/ui/core/rules/Misc.support.js +3 -3
  198. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -1
  199. package/src/sap/ui/core/search/SearchProvider.js +2 -1
  200. package/src/sap/ui/core/service/Service.js +1 -1
  201. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  202. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  203. package/src/sap/ui/core/support/Plugin.js +1 -1
  204. package/src/sap/ui/core/support/Support.js +1 -1
  205. package/src/sap/ui/core/support/plugins/ControlTree.js +7 -5
  206. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  207. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  208. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  209. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  210. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  211. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  212. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  213. package/src/sap/ui/core/theming/Parameters.js +7 -7
  214. package/src/sap/ui/core/theming/ThemeHelper.js +2 -2
  215. package/src/sap/ui/core/theming/ThemeManager.js +2 -2
  216. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  217. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  218. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  219. package/src/sap/ui/core/tmpl/Template.js +1 -1
  220. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  221. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  222. package/src/sap/ui/core/util/Export.js +1 -1
  223. package/src/sap/ui/core/util/ExportCell.js +1 -1
  224. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  225. package/src/sap/ui/core/util/ExportRow.js +1 -1
  226. package/src/sap/ui/core/util/ExportType.js +1 -1
  227. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  228. package/src/sap/ui/core/util/File.js +1 -1
  229. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  230. package/src/sap/ui/core/util/MockServer.js +34 -3
  231. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  232. package/src/sap/ui/core/util/_LocalizationHelper.js +122 -0
  233. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  236. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  237. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  238. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  239. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  240. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  241. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  242. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  243. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  244. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  245. package/src/sap/ui/debug/ControlTree.js +1 -1
  246. package/src/sap/ui/debug/DebugEnv.js +1 -1
  247. package/src/sap/ui/debug/PropertyList.js +1 -1
  248. package/src/sap/ui/model/Binding.js +2 -2
  249. package/src/sap/ui/model/ClientListBinding.js +6 -3
  250. package/src/sap/ui/model/ClientModel.js +1 -1
  251. package/src/sap/ui/model/ClientTreeBinding.js +6 -3
  252. package/src/sap/ui/model/CompositeDataState.js +5 -5
  253. package/src/sap/ui/model/CompositeType.js +1 -1
  254. package/src/sap/ui/model/DataState.js +10 -10
  255. package/src/sap/ui/model/FilterProcessor.js +19 -16
  256. package/src/sap/ui/model/ManagedObjectBindingSupport.js +2 -2
  257. package/src/sap/ui/model/MetaModel.js +1 -1
  258. package/src/sap/ui/model/Model.js +10 -8
  259. package/src/sap/ui/model/SelectionModel.js +1 -1
  260. package/src/sap/ui/model/SimpleType.js +1 -1
  261. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  262. package/src/sap/ui/model/Type.js +1 -1
  263. package/src/sap/ui/model/analytics/odata4analytics.js +6 -6
  264. package/src/sap/ui/model/json/JSONModel.js +1 -1
  265. package/src/sap/ui/model/message/MessageModel.js +1 -1
  266. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  267. package/src/sap/ui/model/odata/ODataListBinding.js +5 -2
  268. package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
  269. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  270. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  271. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  272. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  273. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  274. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  275. package/src/sap/ui/model/odata/type/Date.js +1 -1
  276. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  277. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  278. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  279. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  280. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  281. package/src/sap/ui/model/odata/type/Double.js +1 -1
  282. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  283. package/src/sap/ui/model/odata/type/Int.js +1 -1
  284. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  285. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  286. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  287. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  288. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  289. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  290. package/src/sap/ui/model/odata/type/Single.js +1 -1
  291. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  292. package/src/sap/ui/model/odata/type/String.js +1 -1
  293. package/src/sap/ui/model/odata/type/Time.js +1 -1
  294. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  295. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  296. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  297. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  298. package/src/sap/ui/model/odata/v2/ODataListBinding.js +5 -2
  299. package/src/sap/ui/model/odata/v2/ODataModel.js +9 -58
  300. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +6 -3
  301. package/src/sap/ui/model/odata/v4/Context.js +32 -27
  302. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  303. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  304. package/src/sap/ui/model/odata/v4/ODataListBinding.js +198 -155
  305. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +2 -2
  306. package/src/sap/ui/model/odata/v4/ODataModel.js +9 -4
  307. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -6
  308. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  309. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +220 -85
  310. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +33 -20
  311. package/src/sap/ui/model/odata/v4/lib/_Cache.js +70 -18
  312. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +9 -5
  313. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  314. package/src/sap/ui/model/type/Boolean.js +1 -1
  315. package/src/sap/ui/model/type/Currency.js +1 -1
  316. package/src/sap/ui/model/type/Date.js +1 -1
  317. package/src/sap/ui/model/type/DateInterval.js +1 -1
  318. package/src/sap/ui/model/type/DateTime.js +1 -1
  319. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  320. package/src/sap/ui/model/type/FileSize.js +1 -1
  321. package/src/sap/ui/model/type/Float.js +1 -1
  322. package/src/sap/ui/model/type/Integer.js +1 -1
  323. package/src/sap/ui/model/type/String.js +1 -1
  324. package/src/sap/ui/model/type/Time.js +1 -1
  325. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  326. package/src/sap/ui/model/type/Unit.js +1 -1
  327. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  328. package/src/sap/ui/performance/trace/Interaction.js +20 -16
  329. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  330. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +5 -5
  331. package/src/sap/ui/test/BranchTracking.js +4 -0
  332. package/src/sap/ui/test/actions/EnterText.js +1 -1
  333. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -0
  334. package/src/sap/ui/test/generic/TestBase.js +4 -4
  335. package/src/sap/ui/test/generic/Utils.js +3 -2
  336. package/src/sap/ui/util/Storage.js +1 -1
  337. package/src/ui5loader-autoconfig.js +23 -15
  338. package/src/ui5loader.js +9 -4
  339. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/manifest.json +3 -10
  340. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/package.json +13 -0
  341. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +11 -0
  342. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
  343. package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
  344. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +3 -11
  345. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/package.json +13 -0
  346. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +11 -0
  347. package/test/sap/ui/core/demokit/sample/matcher/Descendant/Component.js +1 -1
  348. package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +3 -11
  349. package/test/sap/ui/core/demokit/sample/matcher/Descendant/package.json +13 -0
  350. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +11 -0
  351. package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +3 -11
  352. package/test/sap/ui/core/demokit/sample/matcher/I18NText/package.json +13 -0
  353. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +11 -0
  354. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +3 -11
  355. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/package.json +13 -0
  356. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +11 -0
  357. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
  358. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
  359. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
  360. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
  361. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
  362. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
  363. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
  364. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
  365. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +19 -1
  366. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
  367. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
  368. package/test/sap/ui/core/demokit/tutorial/databinding/01/Component.js +9 -25
  369. package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +20 -0
  370. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  371. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +5 -0
  372. package/test/sap/ui/core/demokit/tutorial/databinding/02/Component.js +9 -25
  373. package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +20 -0
  374. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  375. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +5 -0
  376. package/test/sap/ui/core/demokit/tutorial/databinding/03/Component.js +9 -25
  377. package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +20 -0
  378. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +5 -0
  380. package/test/sap/ui/core/demokit/tutorial/databinding/04/Component.js +9 -26
  381. package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +21 -0
  382. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  383. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +5 -0
  384. package/test/sap/ui/core/demokit/tutorial/databinding/05/Component.js +9 -26
  385. package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +21 -0
  386. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  387. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +5 -0
  388. package/test/sap/ui/core/demokit/tutorial/databinding/06/Component.js +9 -27
  389. package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +22 -0
  390. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +5 -0
  392. package/test/sap/ui/core/demokit/tutorial/databinding/07/Component.js +9 -28
  393. package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +23 -0
  394. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  395. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +5 -0
  396. package/test/sap/ui/core/demokit/tutorial/databinding/08/Component.js +9 -28
  397. package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +23 -0
  398. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  399. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +5 -0
  400. package/test/sap/ui/core/demokit/tutorial/databinding/09/Component.js +9 -29
  401. package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +24 -0
  402. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  403. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +5 -0
  404. package/test/sap/ui/core/demokit/tutorial/databinding/10/Component.js +9 -29
  405. package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +24 -0
  406. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  407. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +5 -0
  408. package/test/sap/ui/core/demokit/tutorial/databinding/11/Component.js +9 -29
  409. package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +24 -0
  410. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  411. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +5 -0
  412. package/test/sap/ui/core/demokit/tutorial/databinding/12/Component.js +9 -30
  413. package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +25 -0
  414. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  415. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +5 -0
  416. package/test/sap/ui/core/demokit/tutorial/databinding/13/Component.js +9 -30
  417. package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +25 -0
  418. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  419. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +5 -0
  420. package/test/sap/ui/core/demokit/tutorial/databinding/14/Component.js +9 -30
  421. package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +25 -0
  422. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  423. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +5 -0
  424. package/test/sap/ui/core/demokit/tutorial/databinding/15/Component.js +9 -32
  425. package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +27 -0
  426. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  427. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +5 -0
  428. package/test/sap/ui/core/demokit/tutorial/mockserver/01/Component.js +9 -30
  429. package/test/sap/ui/core/demokit/tutorial/mockserver/01/manifest.json +24 -0
  430. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  431. package/test/sap/ui/core/demokit/tutorial/mockserver/02/Component.js +9 -33
  432. package/test/sap/ui/core/demokit/tutorial/mockserver/02/manifest.json +27 -0
  433. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  434. package/test/sap/ui/core/demokit/tutorial/mockserver/03/Component.js +9 -33
  435. package/test/sap/ui/core/demokit/tutorial/mockserver/03/manifest.json +27 -0
  436. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  437. package/test/sap/ui/core/demokit/tutorial/mockserver/04/Component.js +9 -33
  438. package/test/sap/ui/core/demokit/tutorial/mockserver/04/manifest.json +27 -0
  439. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  440. package/test/sap/ui/core/demokit/tutorial/navigation/01/Component.js +9 -33
  441. package/test/sap/ui/core/demokit/tutorial/navigation/01/manifest.json +28 -0
  442. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  443. package/test/sap/ui/core/demokit/tutorial/navigation/02/Component.js +9 -35
  444. package/test/sap/ui/core/demokit/tutorial/navigation/02/manifest.json +30 -0
  445. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  446. package/test/sap/ui/core/demokit/tutorial/navigation/03/Component.js +9 -37
  447. package/test/sap/ui/core/demokit/tutorial/navigation/03/manifest.json +32 -0
  448. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  449. package/test/sap/ui/core/demokit/tutorial/navigation/04/Component.js +9 -38
  450. package/test/sap/ui/core/demokit/tutorial/navigation/04/manifest.json +33 -0
  451. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  452. package/test/sap/ui/core/demokit/tutorial/navigation/05/Component.js +9 -38
  453. package/test/sap/ui/core/demokit/tutorial/navigation/05/manifest.json +33 -0
  454. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  455. package/test/sap/ui/core/demokit/tutorial/navigation/06/Component.js +9 -40
  456. package/test/sap/ui/core/demokit/tutorial/navigation/06/manifest.json +35 -0
  457. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  458. package/test/sap/ui/core/demokit/tutorial/navigation/07/Component.js +9 -42
  459. package/test/sap/ui/core/demokit/tutorial/navigation/07/manifest.json +37 -0
  460. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  461. package/test/sap/ui/core/demokit/tutorial/navigation/08/Component.js +9 -45
  462. package/test/sap/ui/core/demokit/tutorial/navigation/08/manifest.json +40 -0
  463. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  464. package/test/sap/ui/core/demokit/tutorial/navigation/09/Component.js +9 -45
  465. package/test/sap/ui/core/demokit/tutorial/navigation/09/manifest.json +40 -0
  466. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  467. package/test/sap/ui/core/demokit/tutorial/navigation/10/Component.js +9 -47
  468. package/test/sap/ui/core/demokit/tutorial/navigation/10/manifest.json +42 -0
  469. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  470. package/test/sap/ui/core/demokit/tutorial/navigation/11/Component.js +9 -52
  471. package/test/sap/ui/core/demokit/tutorial/navigation/11/manifest.json +47 -0
  472. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  473. package/test/sap/ui/core/demokit/tutorial/navigation/12/Component.js +9 -52
  474. package/test/sap/ui/core/demokit/tutorial/navigation/12/manifest.json +47 -0
  475. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  476. package/test/sap/ui/core/demokit/tutorial/navigation/13/Component.js +9 -52
  477. package/test/sap/ui/core/demokit/tutorial/navigation/13/manifest.json +47 -0
  478. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  479. package/test/sap/ui/core/demokit/tutorial/navigation/14/Component.js +9 -52
  480. package/test/sap/ui/core/demokit/tutorial/navigation/14/manifest.json +47 -0
  481. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  482. package/test/sap/ui/core/demokit/tutorial/navigation/15/Component.js +9 -52
  483. package/test/sap/ui/core/demokit/tutorial/navigation/15/manifest.json +47 -0
  484. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  485. package/test/sap/ui/core/demokit/tutorial/navigation/16/Component.js +9 -52
  486. package/test/sap/ui/core/demokit/tutorial/navigation/16/manifest.json +47 -0
  487. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  488. package/test/sap/ui/core/demokit/tutorial/navigation/17/Component.js +9 -52
  489. package/test/sap/ui/core/demokit/tutorial/navigation/17/manifest.json +47 -0
  490. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  491. package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +3 -27
  492. package/test/sap/ui/core/demokit/tutorial/odatav4/01/manifest.json +28 -0
  493. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  494. package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +3 -27
  495. package/test/sap/ui/core/demokit/tutorial/odatav4/02/manifest.json +28 -0
  496. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  497. package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +3 -27
  498. package/test/sap/ui/core/demokit/tutorial/odatav4/03/manifest.json +28 -0
  499. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  500. package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +3 -27
  501. package/test/sap/ui/core/demokit/tutorial/odatav4/04/manifest.json +28 -0
  502. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  503. package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +3 -27
  504. package/test/sap/ui/core/demokit/tutorial/odatav4/05/manifest.json +28 -0
  505. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  506. package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +3 -27
  507. package/test/sap/ui/core/demokit/tutorial/odatav4/06/manifest.json +28 -0
  508. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  509. package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +3 -27
  510. package/test/sap/ui/core/demokit/tutorial/odatav4/07/manifest.json +28 -0
  511. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  512. package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +3 -27
  513. package/test/sap/ui/core/demokit/tutorial/odatav4/08/manifest.json +28 -0
  514. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  515. package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +3 -27
  516. package/test/sap/ui/core/demokit/tutorial/odatav4/09/manifest.json +28 -0
  517. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  518. package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +3 -27
  519. package/test/sap/ui/core/demokit/tutorial/odatav4/10/manifest.json +28 -0
  520. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  521. package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +3 -27
  522. package/test/sap/ui/core/demokit/tutorial/odatav4/11/manifest.json +28 -0
  523. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  524. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/Component.js +9 -29
  525. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/manifest.json +25 -0
  526. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  527. package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
  528. package/test/sap/ui/core/qunit/ClientModel.qunit.js +28 -28
  529. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
  530. package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
  531. package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
  532. package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
  533. package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
  534. package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
  535. package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
  536. package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
  537. package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
  538. package/test/sap/ui/core/qunit/Lib.qunit.js +59 -0
  539. package/test/sap/ui/core/qunit/ManagedObject.qunit.js +86 -3
  540. package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
  541. package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
  542. package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
  543. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
  544. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
  545. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
  546. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
  547. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +19 -0
  548. package/test/sap/ui/core/qunit/component/Component.qunit.js +35 -11
  549. package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
  550. package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
  551. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
  552. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
  553. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
  554. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
  555. package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
  556. package/test/sap/ui/core/qunit/i18n/Islamic.qunit.js +4 -4
  557. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
  558. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
  559. package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
  560. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
  561. package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
  562. package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -2
  563. package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -2
  564. package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +58 -16
  565. package/test/sap/ui/core/qunit/model/Model.qunit.js +43 -2
  566. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
  567. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
  568. package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
  569. package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
  570. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
  571. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
  572. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
  573. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
  574. package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
  575. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
  576. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
  577. package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
  578. package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
  579. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
  580. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
  581. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
  582. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
  583. package/test/sap/ui/core/qunit/odata/ODataModel_legacyAPIs.qunit.js +22 -22
  584. package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +1 -1
  585. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +16 -16
  586. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +69 -0
  587. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +2 -11
  588. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +17 -17
  589. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +32 -36
  590. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
  591. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +19 -9
  592. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
  593. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +5 -5
  594. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2148 -124
  595. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
  596. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
  597. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +453 -125
  598. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
  599. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +256 -8
  600. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
  601. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +40 -1
  602. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +11 -2
  603. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +4 -7
  604. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
  605. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
  606. package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
  607. package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
  608. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
  609. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
  610. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
  611. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
  612. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
  613. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
  614. package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
  615. package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
  616. package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
  617. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  618. package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
  619. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
  620. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  621. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
  622. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
  623. package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
  624. package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
  625. package/test/sap/ui/core/relnotes/changes-1.120.json +307 -0
@@ -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");
@@ -446,4 +446,63 @@ sap.ui.define([
446
446
  }, reject);
447
447
  });
448
448
  });
449
+
450
+ /**
451
+ * @deprecated since 1.120
452
+ */
453
+ QUnit.module("Pseudo Module Deprecation", {});
454
+
455
+ QUnit.test("", async function(assert) {
456
+ let oErrorLogSpy;
457
+
458
+ assert.expect(6);
459
+
460
+ sap.ui.predefine('testing/pseudo/modules/deprecation/library', ["sap/ui/core/Lib"], function(Library) {
461
+ const oThisLib = Library.init({
462
+ name: 'testing.pseudo.modules.deprecation',
463
+ noLibraryCSS: true,
464
+ types: ["testing.pseudo.modules.deprecation.Type1"]
465
+ });
466
+
467
+ oThisLib.Type1 = {
468
+ "A": "A",
469
+ "B": "B"
470
+ };
471
+ });
472
+
473
+ await Library.load({
474
+ name: "testing.pseudo.modules.deprecation"
475
+ });
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
480
+ await new Promise((resolve, reject) => {
481
+ oErrorLogSpy = this.spy(Log, "error");
482
+
483
+ sap.ui.require(["testing/pseudo/modules/deprecation/Type1"], (Type1) => {
484
+ assert.ok(oErrorLogSpy.calledWith(sExpectedErrorMessage), "Error Message for pseudo module deprecation logged.");
485
+ assert.ok(Type1.A, "A", "pseudo type module export is correct (A).");
486
+ assert.ok(Type1.B, "B", "pseudo type module export is correct (B).");
487
+ resolve();
488
+ }, reject);
489
+ }).finally(() => {
490
+ oErrorLogSpy.restore();
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
+ });
507
+ });
449
508
  });
@@ -15,8 +15,9 @@ sap.ui.define([
15
15
  "sap/ui/model/Sorter",
16
16
  "sap/ui/base/ManagedObjectMetadata",
17
17
  "sap/base/strings/escapeRegExp",
18
- "sap/base/util/isEmptyObject"
19
- ], function(BindingInfo, BindingParser, DataType, ManagedObject, Element, JSONModel, Context, ManagedObjectModel, StringType, Control, Component, UIComponent, Sorter, ManagedObjectMetadata, escapeRegExp, isEmptyObject) {
18
+ "sap/base/util/isEmptyObject",
19
+ "sap/base/util/ObjectPath"
20
+ ], function(BindingInfo, BindingParser, DataType, ManagedObject, Element, JSONModel, Context, ManagedObjectModel, StringType, Control, Component, UIComponent, Sorter, ManagedObjectMetadata, escapeRegExp, isEmptyObject, ObjectPath) {
20
21
  "use strict";
21
22
  var mObjects = {};
22
23
 
@@ -29,6 +30,15 @@ sap.ui.define([
29
30
 
30
31
  DataType.registerEnum("MyEnum", MyEnum);
31
32
 
33
+ // sample item object, will be used as aggregation content for defaultClass test
34
+ const TestItem = ManagedObject.extend("sap.ui.core.TestItem", {
35
+ metadata: {
36
+ properties: {
37
+ name: { type: "string", defaultValue: "hello" }
38
+ }
39
+ }
40
+ });
41
+
32
42
  // define new types for testing
33
43
  var TestManagedObject = ManagedObject.extend("sap.ui.core.TestManagedObject", {
34
44
  metadata : {
@@ -54,7 +64,8 @@ sap.ui.define([
54
64
  singleBindableAggr : { type : "sap.ui.core.TestManagedObject", multiple : false, bindable: "bindable" },
55
65
  subObjects : { type : "sap.ui.core.TestManagedObject", multiple : true, singularName : "subObj"},
56
66
  elements : { type : "sap.ui.core.Element", multiple : true, bindable: "bindable"},
57
- skippedPropagation : { type: "sap.ui.core.Element", multiple: false }
67
+ skippedPropagation : { type: "sap.ui.core.Element", multiple: false },
68
+ itemsWithDefaultClass: { type: "sap.ui.core.TestItem", defaultClass: TestItem, multiple: true}
58
69
  },
59
70
  associations : {
60
71
  selectedObject : { type : "sap.ui.core.TestManagedObject", multiple : false},
@@ -1952,6 +1963,78 @@ sap.ui.define([
1952
1963
  assert.ok(bThrown, "Must throw error on unknown aggregation bind");
1953
1964
  });
1954
1965
 
1966
+ QUnit.module("defaultClass");
1967
+
1968
+ QUnit.test("ManagedObjects created from object-literals", function(assert) {
1969
+ // spy ObjectPath.get() to check if aggregations with default class don't probe the global namespace
1970
+ const oObjectPathGetSpy = this.spy(ObjectPath, "get");
1971
+
1972
+ // Create aggregation content from object literals
1973
+ const oContainer = new TestManagedObject({
1974
+ itemsWithDefaultClass: [{
1975
+ name: "item 0"
1976
+ },
1977
+ {
1978
+ name: "item 1"
1979
+ }]
1980
+ });
1981
+
1982
+ assert.equal(oObjectPathGetSpy.callCount, 0, "No access to global namespace for aggregations with 'defaultClass'");
1983
+
1984
+ // check aggregation content
1985
+ oContainer.getItemsWithDefaultClass().forEach((obj, i) => {
1986
+ assert.ok(obj instanceof TestItem, "Aggregation Item was correctly instantiated from 'defaultClass'");
1987
+ assert.ok(obj.getName(), `item ${i}`, "Aggregation Item properties correctly passed to 'defaultClass' constructor");
1988
+ });
1989
+
1990
+ oObjectPathGetSpy.restore();
1991
+ });
1992
+
1993
+ QUnit.test("validation: defaultClass does not match aggregation type", function(assert) {
1994
+ assert.throws(() => {
1995
+ // sample item object, will be used as aggregation content for defaultClass test
1996
+ ManagedObject.extend("sap.ui.core.FaultyTestClass", {
1997
+ metadata: {
1998
+ aggregations: {
1999
+ items: { type: "sap.ui.core.TestItem", defaultClass: ManagedObject }
2000
+ }
2001
+ }
2002
+ });
2003
+ },
2004
+ new TypeError("The 'defaultClass' of the aggregation 'items' in 'sap.ui.core.FaultyTestClass' is not of type 'sap.ui.core.TestItem'."),
2005
+ "'defaultClass' definition not matching aggregation type leads to a TypeError");
2006
+ });
2007
+
2008
+ QUnit.test("validation: defaultClass is defined together with altTypes containing 'object'", function(assert) {
2009
+ assert.throws(() => {
2010
+ // sample item object, will be used as aggregation content for defaultClass test
2011
+ ManagedObject.extend("sap.ui.core.FaultyTestClass", {
2012
+ metadata: {
2013
+ aggregations: {
2014
+ items: { type: "sap.ui.base.ManagedObject", defaultClass: ManagedObject, altTypes: ["string", "object"] }
2015
+ }
2016
+ }
2017
+ });
2018
+ },
2019
+ new TypeError("The aggregation 'items' in 'sap.ui.core.FaultyTestClass' must not defined a 'defaultClass' together with the altType 'object'."),
2020
+ "'defaultClass' definition together with 'altTypes' definition containing 'object' leads to a TypeError");
2021
+ });
2022
+
2023
+ QUnit.test("validation: defaultClass property is defined, but nullish", function(assert) {
2024
+ assert.throws(() => {
2025
+ // sample item object, will be used as aggregation content for defaultClass test
2026
+ ManagedObject.extend("sap.ui.core.FaultyTestClass", {
2027
+ metadata: {
2028
+ aggregations: {
2029
+ items: { type: "sap.ui.base.ManagedObject", defaultClass: undefined }
2030
+ }
2031
+ }
2032
+ });
2033
+ },
2034
+ new TypeError("The 'defaultClass' of the aggregation 'items' in 'sap.ui.core.FaultyTestClass' is defined with a nullish value (undefined)."),
2035
+ "'defaultClass' definition with nullish value leads to a TypeError");
2036
+ });
2037
+
1955
2038
  QUnit.module("Hidden Aggregations", {
1956
2039
  beforeEach: function() {
1957
2040
  this.testObj = new sapTestTestManagedObject("testObj", {
@@ -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");
@@ -1723,6 +1723,47 @@ sap.ui.define([
1723
1723
  oMeasureMock.verify();
1724
1724
  });
1725
1725
 
1726
+ //*********************************************************************************************
1727
+ // BCP: 985176/2023
1728
+ QUnit.test("renderUI5FilterArray", function (assert) {
1729
+ const aFilterArray = [
1730
+ {sPath: 'Material'},
1731
+ {aFilters: [/*Multi Filter*/]},
1732
+ {sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005860'},
1733
+ {sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: "4900005859"},
1734
+ {sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005915'},
1735
+ {sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005916'},
1736
+ {sPath: 'MaterialGroup'},
1737
+ {sPath: 'MaterialType'},
1738
+ {sPath: 'Plant'},
1739
+ {sPath: 'ReversalMovementIsSelected'},
1740
+ {sPath: 'StockLevelIsValuated'},
1741
+ {sPath: 'StorageLocation'}
1742
+ ];
1743
+ const oFilterExpression = new odata4analytics.FilterExpression();
1744
+ const oFilterExpressionMock = this.mock(oFilterExpression);
1745
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[0]).returns("~Material");
1746
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[2]).returns("~MaterialDocument0");
1747
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[3]).returns("~MaterialDocument1");
1748
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[4]).returns("~MaterialDocument2");
1749
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[5]).returns("~MaterialDocument3");
1750
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[6]).returns("~MaterialGroup");
1751
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[7]).returns("~MaterialType");
1752
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[8]).returns("~Plant");
1753
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[9])
1754
+ .returns("~ReversalMovementIsSelected");
1755
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[10])
1756
+ .returns("~StockLevelIsValuated");
1757
+ oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[11]).returns("~StorageLocation");
1758
+ oFilterExpressionMock.expects("renderUI5MultiFilter").withExactArgs(aFilterArray[1]).returns("~MultiFilter");
1759
+
1760
+ // code under test
1761
+ assert.strictEqual(oFilterExpression.renderUI5FilterArray(aFilterArray.slice()),
1762
+ "(~Material) and (~MaterialDocument0 or ~MaterialDocument1 or ~MaterialDocument2 or ~MaterialDocument3)"
1763
+ + " and (~MaterialGroup) and (~MaterialType) and (~Plant) and (~ReversalMovementIsSelected)"
1764
+ + " and (~StockLevelIsValuated) and (~StorageLocation) and (~MultiFilter)");
1765
+ });
1766
+
1726
1767
  //*********************************************************************************************
1727
1768
  QUnit.test("deepEqual", function (assert) {
1728
1769
  var aColumns = [];
@@ -2,16 +2,18 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <meta name="sap-ui-paramA" content="meta">
6
- <meta name="sap-ui-paramB" content="meta">
5
+ <meta name="sap-ui-param-a" content="meta">
6
+ <meta name="sap-ui-param-b" content="meta">
7
+ <meta name="sap-ui-param-merged-object" content='{ "objectKeyMeta": "metaObject" }'>
7
8
 
8
9
  <!-- Initialization -->
9
10
  <script src="./config/GlobalConfigForCascade.js"></script>
10
11
  <script src="../../../../../../resources/ui5loader.js"></script>
11
12
  <script id="sap-ui-bootstrap" src="../../../../../../resources/ui5loader-autoconfig.js"
12
- data-sap-ui-paramA="bootstrap"
13
- data-sap-ui-paramB="bootstrap"
14
- data-sap-ui-paramC="bootstrap"></script>
13
+ data-sap-ui-param-a="bootstrap"
14
+ data-sap-ui-param-b="bootstrap"
15
+ data-sap-ui-param-c="bootstrap"
16
+ data-sap-ui-param-merged-object='{ "objectKeyBootstrap": "bootstrapObject" }'></script>
15
17
 
16
18
  <link href="../../../../../../resources/sap/ui/thirdparty/qunit-2.css" rel="stylesheet" media="screen">
17
19
  <script src="../../../../../../resources/sap/ui/thirdparty/qunit-2.js"></script>