@openui5/sap.ui.core 1.124.1 → 1.125.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/.reuse/dep5 +5 -0
  2. package/THIRDPARTY.txt +7 -0
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +4 -4
  5. package/src/jquery.sap.properties.js +2 -2
  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/jquery.sap.ui.js +6 -2
  10. package/src/sap/base/Event.js +1 -1
  11. package/src/sap/base/Eventing.js +1 -1
  12. package/src/sap/base/config.js +1 -1
  13. package/src/sap/base/i18n/LanguageTag.js +1 -1
  14. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  15. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  16. package/src/sap/base/util/restricted/_castArray.js +1 -1
  17. package/src/sap/base/util/restricted/_compact.js +1 -1
  18. package/src/sap/base/util/restricted/_curry.js +1 -1
  19. package/src/sap/base/util/restricted/_debounce.js +1 -1
  20. package/src/sap/base/util/restricted/_difference.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_flatten.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_intersection.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isNil.js +1 -1
  35. package/src/sap/base/util/restricted/_max.js +1 -1
  36. package/src/sap/base/util/restricted/_merge.js +1 -1
  37. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  38. package/src/sap/base/util/restricted/_min.js +1 -1
  39. package/src/sap/base/util/restricted/_omit.js +1 -1
  40. package/src/sap/base/util/restricted/_pick.js +1 -1
  41. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  42. package/src/sap/base/util/restricted/_throttle.js +1 -1
  43. package/src/sap/base/util/restricted/_toArray.js +1 -1
  44. package/src/sap/base/util/restricted/_union.js +1 -1
  45. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  46. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  47. package/src/sap/base/util/restricted/_uniq.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  50. package/src/sap/base/util/restricted/_without.js +1 -1
  51. package/src/sap/base/util/restricted/_xor.js +1 -1
  52. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  53. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  56. package/src/sap/ui/Device.js +3 -3
  57. package/src/sap/ui/Global.js +4 -4
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/Interface.js +1 -1
  61. package/src/sap/ui/base/ManagedObject.js +1 -1
  62. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  63. package/src/sap/ui/base/Metadata.js +1 -1
  64. package/src/sap/ui/base/Object.js +1 -1
  65. package/src/sap/ui/base/ObjectPool.js +1 -1
  66. package/src/sap/ui/core/.library +3 -3
  67. package/src/sap/ui/core/BusyIndicator.js +1 -1
  68. package/src/sap/ui/core/Component.js +6 -3
  69. package/src/sap/ui/core/ComponentContainer.js +1 -1
  70. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  71. package/src/sap/ui/core/ComponentSupport.js +1 -1
  72. package/src/sap/ui/core/Configuration.js +1 -1
  73. package/src/sap/ui/core/Control.js +1 -1
  74. package/src/sap/ui/core/Core.js +18 -25
  75. package/src/sap/ui/core/CustomData.js +1 -1
  76. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  77. package/src/sap/ui/core/Element.js +1 -1
  78. package/src/sap/ui/core/ElementMetadata.js +4 -3
  79. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  80. package/src/sap/ui/core/EventBus.js +1 -1
  81. package/src/sap/ui/core/ExtensionPoint.js +23 -9
  82. package/src/sap/ui/core/Fragment.js +15 -1
  83. package/src/sap/ui/core/HTML.js +1 -1
  84. package/src/sap/ui/core/History.js +1 -1
  85. package/src/sap/ui/core/Icon.js +84 -50
  86. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  87. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  88. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  89. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  90. package/src/sap/ui/core/InvisibleText.js +1 -1
  91. package/src/sap/ui/core/Item.js +1 -1
  92. package/src/sap/ui/core/LabelEnablement.js +66 -1
  93. package/src/sap/ui/core/LayoutData.js +1 -1
  94. package/src/sap/ui/core/ListItem.js +1 -1
  95. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  96. package/src/sap/ui/core/Locale.js +1 -1
  97. package/src/sap/ui/core/LocaleData.js +1 -1
  98. package/src/sap/ui/core/Manifest.js +1 -1
  99. package/src/sap/ui/core/Message.js +1 -1
  100. package/src/sap/ui/core/RenderManager.js +1 -1
  101. package/src/sap/ui/core/Renderer.js +1 -1
  102. package/src/sap/ui/core/ResizeHandler.js +1 -1
  103. package/src/sap/ui/core/ScrollBar.js +1 -1
  104. package/src/sap/ui/core/SeparatorItem.js +1 -1
  105. package/src/sap/ui/core/Title.js +1 -1
  106. package/src/sap/ui/core/TooltipBase.js +1 -1
  107. package/src/sap/ui/core/UIArea.js +5 -5
  108. package/src/sap/ui/core/UIComponent.js +23 -16
  109. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  110. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  111. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  112. package/src/sap/ui/core/XMLComposite.js +1 -1
  113. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  114. package/src/sap/ui/core/XMLTemplateProcessor.js +110 -74
  115. package/src/sap/ui/core/cldr/zh_TW.json +20 -20
  116. package/src/sap/ui/core/date/UI5Date.js +1 -1
  117. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  118. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  119. package/src/sap/ui/core/dnd/DragAndDrop.js +29 -23
  120. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  121. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  122. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  123. package/src/sap/ui/core/dnd/DropInfo.js +6 -3
  124. package/src/sap/ui/core/format/DateFormat.js +3 -3
  125. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  126. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  127. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  128. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  129. package/src/sap/ui/core/library.js +3 -3
  130. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  131. package/src/sap/ui/core/message/Message.js +1 -1
  132. package/src/sap/ui/core/message/MessageManager.js +1 -1
  133. package/src/sap/ui/core/message/MessageParser.js +1 -1
  134. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  135. package/src/sap/ui/core/mvc/Controller.js +77 -77
  136. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  137. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  138. package/src/sap/ui/core/mvc/JSView.js +1 -1
  139. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  140. package/src/sap/ui/core/mvc/View.js +10 -2
  141. package/src/sap/ui/core/mvc/XMLProcessingMode.js +4 -1
  142. package/src/sap/ui/core/mvc/XMLView.js +33 -5
  143. package/src/sap/ui/core/mvc/XMLViewRenderer.js +40 -7
  144. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  145. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  146. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  147. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  148. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  149. package/src/sap/ui/core/routing/async/TargetCache.js +12 -1
  150. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  151. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  152. package/src/sap/ui/core/service/Service.js +1 -1
  153. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  154. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  155. package/src/sap/ui/core/support/Plugin.js +1 -1
  156. package/src/sap/ui/core/support/Support.js +1 -1
  157. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  158. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  159. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  160. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  161. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  162. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  163. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  164. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  165. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  166. package/src/sap/ui/core/theming/Parameters.js +2 -2
  167. package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
  168. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  169. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
  170. package/src/sap/ui/core/tmpl/Template.js +1 -1
  171. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  172. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  173. package/src/sap/ui/core/util/Export.js +1 -1
  174. package/src/sap/ui/core/util/ExportCell.js +1 -1
  175. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  176. package/src/sap/ui/core/util/ExportRow.js +1 -1
  177. package/src/sap/ui/core/util/ExportType.js +1 -1
  178. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  179. package/src/sap/ui/core/util/File.js +1 -1
  180. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  181. package/src/sap/ui/core/util/MockServer.js +1 -1
  182. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  183. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  184. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  185. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  186. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  187. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  188. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  189. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  190. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  191. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  192. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  193. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  194. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  195. package/src/sap/ui/debug/ControlTree.js +1 -1
  196. package/src/sap/ui/debug/DebugEnv.js +1 -1
  197. package/src/sap/ui/debug/PropertyList.js +1 -1
  198. package/src/sap/ui/dom/jquery/control.js +6 -3
  199. package/src/sap/ui/model/Binding.js +10 -0
  200. package/src/sap/ui/model/ClientModel.js +1 -1
  201. package/src/sap/ui/model/CompositeDataState.js +1 -1
  202. package/src/sap/ui/model/CompositeType.js +1 -1
  203. package/src/sap/ui/model/DataState.js +1 -1
  204. package/src/sap/ui/model/FieldHelp.js +362 -0
  205. package/src/sap/ui/model/MetaModel.js +1 -1
  206. package/src/sap/ui/model/Model.js +1 -1
  207. package/src/sap/ui/model/SelectionModel.js +1 -1
  208. package/src/sap/ui/model/SimpleType.js +1 -1
  209. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  210. package/src/sap/ui/model/Type.js +1 -1
  211. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -12
  212. package/src/sap/ui/model/json/JSONModel.js +6 -5
  213. package/src/sap/ui/model/message/MessageModel.js +1 -1
  214. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  215. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  216. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  217. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  218. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  219. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  220. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  221. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  222. package/src/sap/ui/model/odata/type/Date.js +1 -1
  223. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  224. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  225. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  226. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  227. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  228. package/src/sap/ui/model/odata/type/Double.js +1 -1
  229. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  230. package/src/sap/ui/model/odata/type/Int.js +1 -1
  231. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  232. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  233. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  234. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  235. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  236. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  237. package/src/sap/ui/model/odata/type/Single.js +1 -1
  238. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  239. package/src/sap/ui/model/odata/type/String.js +1 -1
  240. package/src/sap/ui/model/odata/type/Time.js +1 -1
  241. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  242. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  243. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  244. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  245. package/src/sap/ui/model/odata/v2/ODataModel.js +50 -6
  246. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  247. package/src/sap/ui/model/odata/v4/Context.js +45 -13
  248. package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
  249. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +68 -68
  250. package/src/sap/ui/model/odata/v4/ODataListBinding.js +283 -212
  251. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +41 -39
  252. package/src/sap/ui/model/odata/v4/ODataModel.js +236 -209
  253. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +202 -202
  254. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  255. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +90 -20
  256. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -0
  257. package/src/sap/ui/model/odata/v4/lib/_Cache.js +38 -42
  258. package/src/sap/ui/model/odata/v4/lib/_Helper.js +93 -68
  259. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +78 -78
  260. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
  261. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +20 -20
  262. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +60 -60
  263. package/src/sap/ui/model/resource/ResourceModel.js +7 -2
  264. package/src/sap/ui/model/type/Boolean.js +1 -1
  265. package/src/sap/ui/model/type/Currency.js +1 -1
  266. package/src/sap/ui/model/type/Date.js +1 -1
  267. package/src/sap/ui/model/type/DateInterval.js +1 -1
  268. package/src/sap/ui/model/type/DateTime.js +1 -1
  269. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  270. package/src/sap/ui/model/type/FileSize.js +1 -1
  271. package/src/sap/ui/model/type/Float.js +1 -1
  272. package/src/sap/ui/model/type/Integer.js +1 -1
  273. package/src/sap/ui/model/type/String.js +1 -1
  274. package/src/sap/ui/model/type/Time.js +1 -1
  275. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  276. package/src/sap/ui/model/type/Unit.js +1 -1
  277. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  278. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  279. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  280. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  281. package/src/sap/ui/test/OpaPlugin.js +36 -12
  282. package/src/sap/ui/test/generic/TestBase.js +1 -1
  283. package/src/sap/ui/util/Storage.js +1 -1
  284. package/test/sap/ui/core/BindableResponseHeaders.html +4 -4
  285. package/test/sap/ui/core/ComponentCleanup.html +46 -46
  286. package/test/sap/ui/core/ComponentManifestFirst.html +26 -20
  287. package/test/sap/ui/core/ContextMenuSupport.html +9 -10
  288. package/test/sap/ui/core/DesigntimeOverview.html +1 -1
  289. package/test/sap/ui/core/EventBroadcaster.html +2 -2
  290. package/test/sap/ui/core/FieldGroup.html +70 -61
  291. package/test/sap/ui/core/GenericEventBinding.html +26 -23
  292. package/test/sap/ui/core/HTMLControl.html +46 -38
  293. package/test/sap/ui/core/HTMLSanitizer.html +70 -45
  294. package/test/sap/ui/core/IntervalTrigger.html +22 -21
  295. package/test/sap/ui/core/InvisibleControls.html +72 -72
  296. package/test/sap/ui/core/InvisibleText.html +2 -2
  297. package/test/sap/ui/core/LRUPersistentCache.html +19 -18
  298. package/test/sap/ui/core/LabelEnablement.html +18 -29
  299. package/test/sap/ui/core/Localization.html +40 -65
  300. package/test/sap/ui/core/Localization_HeapUsage.html +11 -12
  301. package/test/sap/ui/core/ManagedObjectModel.html +6 -7
  302. package/test/sap/ui/core/ODataAnnotationsPerformance.html +592 -602
  303. package/test/sap/ui/core/ODataV2CanonicalRequests.html +8 -8
  304. package/test/sap/ui/core/ODataV2Messages.html +1 -1
  305. package/test/sap/ui/core/ODataV2MessagesPerf.html +131 -132
  306. package/test/sap/ui/core/Popup.html +18 -14
  307. package/test/sap/ui/core/PopupWithUserSelection.html +4 -4
  308. package/test/sap/ui/core/StashedControlSupport.html +1 -1
  309. package/test/sap/ui/core/ThemeParameters.html +32 -20
  310. package/test/sap/ui/core/ValidateURL.html +109 -75
  311. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
  312. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Component.js +1 -4
  313. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Detail.controller.js +0 -1
  314. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Main.controller.js +0 -1
  315. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.html +0 -1
  316. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/extension/Component.js +1 -5
  317. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/manifest.json +2 -10
  318. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/Component.js +4 -1
  319. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/manifest.json +37 -0
  320. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Component.js +5 -1
  321. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/manifest.json +42 -0
  322. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Component.js +6 -3
  323. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Main.view.xml +4 -1
  324. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/manifest.json +49 -0
  325. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  326. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  327. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  328. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  329. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/Component.js +1 -0
  330. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/manifest.json +1 -2
  331. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/Component.js +1 -0
  332. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/manifest.json +1 -2
  333. package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/Component.js +1 -0
  334. package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/manifest.json +1 -2
  335. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/Component.js +1 -0
  336. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/manifest.json +1 -2
  337. package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/Component.js +1 -0
  338. package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/manifest.json +1 -2
  339. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/Component.js +1 -0
  340. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/manifest.json +1 -2
  341. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Component.js +1 -0
  342. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +35 -31
  343. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/manifest.json +1 -10
  344. package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/Component.js +1 -0
  345. package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/manifest.json +2 -11
  346. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Component.js +1 -0
  347. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +71 -68
  348. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.html +0 -1
  349. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/manifest.json +3 -11
  350. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +1 -0
  351. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +0 -1
  352. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +7 -16
  353. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Component.js +1 -0
  354. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Main.controller.js +3 -3
  355. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.html +0 -1
  356. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/manifest.json +1 -10
  357. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Component.js +1 -0
  358. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/FieldGroups.view.xml +0 -1
  359. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.html +0 -1
  360. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/manifest.json +3 -11
  361. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +1 -0
  362. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +46 -43
  363. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +12 -10
  364. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/manifest.json +3 -11
  365. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Component.js +1 -0
  366. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +21 -18
  367. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.html +0 -1
  368. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/manifest.json +4 -7
  369. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/Component.js +1 -0
  370. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/manifest.json +1 -10
  371. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +1 -0
  372. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +21 -18
  373. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +1 -10
  374. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Component.js +1 -0
  375. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +25 -22
  376. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.html +0 -1
  377. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +5 -4
  378. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.html +0 -1
  379. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/manifest.json +3 -7
  380. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Component.js +1 -0
  381. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.html +0 -1
  382. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/manifest.json +3 -11
  383. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Component.js +1 -0
  384. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.html +0 -1
  385. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/manifest.json +2 -10
  386. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Component.js +1 -0
  387. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +60 -57
  388. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.html +0 -1
  389. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/manifest.json +4 -6
  390. package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/Component.js +1 -0
  391. package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/manifest.json +3 -11
  392. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Component.js +1 -0
  393. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.view.xml +0 -1
  394. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.html +0 -1
  395. package/test/sap/ui/core/demokit/sample/odata/v4/Products/manifest.json +3 -10
  396. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Component.js +1 -0
  397. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.html +0 -1
  398. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +81 -69
  399. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +44 -9
  400. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +49 -0
  401. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +14 -0
  402. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/manifest.json +1 -10
  403. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Component.js +1 -0
  404. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.html +0 -1
  405. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +2 -11
  406. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Component.js +1 -0
  407. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.html +0 -1
  408. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +2 -11
  409. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +1 -2
  410. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.html +0 -1
  411. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/manifest.json +3 -10
  412. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Component.js +1 -0
  413. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.html +0 -1
  414. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +6 -5
  415. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Component.js +1 -0
  416. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.html +0 -1
  417. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/manifest.json +2 -10
  418. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Component.js +1 -0
  419. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.html +0 -1
  420. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/manifest.json +3 -10
  421. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.html +0 -1
  422. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/manifest.json +3 -11
  423. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  424. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  425. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  426. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  427. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  428. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  429. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  430. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  431. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  432. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  433. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  434. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  435. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  436. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  437. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  438. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  439. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  440. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  441. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  442. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  443. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  444. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  445. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  446. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  447. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  448. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  449. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  450. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  451. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  452. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  453. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  454. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  455. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  456. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  457. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  458. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  459. package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +1 -0
  460. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  461. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/Component.js +1 -0
  462. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/index.html +0 -1
  463. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/manifest.json +2 -13
  464. package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +1 -0
  465. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  466. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/Component.js +1 -0
  467. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/index.html +0 -1
  468. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/manifest.json +2 -13
  469. package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +1 -0
  470. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  471. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/Component.js +1 -0
  472. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/index.html +0 -1
  473. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/manifest.json +2 -13
  474. package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +1 -0
  475. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  476. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/Component.js +1 -0
  477. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/index.html +0 -1
  478. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/manifest.json +2 -13
  479. package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +1 -0
  480. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  481. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/Component.js +1 -0
  482. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/index.html +0 -1
  483. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/manifest.json +2 -13
  484. package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +1 -0
  485. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  486. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/Component.js +1 -0
  487. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/index.html +0 -1
  488. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/manifest.json +2 -13
  489. package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +1 -0
  490. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  491. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/Component.js +1 -0
  492. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/index.html +0 -1
  493. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/manifest.json +2 -13
  494. package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +1 -0
  495. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  496. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/Component.js +1 -0
  497. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/index.html +0 -1
  498. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/manifest.json +2 -13
  499. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.html +0 -1
  500. package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +1 -0
  501. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  502. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/Component.js +1 -0
  503. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/index.html +0 -1
  504. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/manifest.json +2 -11
  505. package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +1 -0
  506. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  507. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/Component.js +1 -0
  508. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/index.html +0 -1
  509. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/manifest.json +2 -11
  510. package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +1 -0
  511. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  512. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/Component.js +1 -0
  513. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/index.html +0 -1
  514. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/manifest.json +2 -11
  515. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.html +0 -1
  516. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  517. package/test/sap/ui/core/getComputedStyle.html +2 -1
  518. package/test/sap/ui/core/getComputedStyleFF.html +1 -1
  519. package/test/sap/ui/core/internal/samples/client/MusicCollection/Component.js +5 -8
  520. package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.controller.js +6 -2
  521. package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.view.xml +7 -3
  522. package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -3
  523. package/test/sap/ui/core/internal/samples/client/MusicCollection/manifest.json +1 -13
  524. package/test/sap/ui/core/internal/samples/odata/twoFields/Component.js +3 -45
  525. package/test/sap/ui/core/internal/samples/odata/twoFields/Main.controller.js +37 -1
  526. package/test/sap/ui/core/internal/samples/odata/twoFields/Main.view.xml +5 -5
  527. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -3
  528. package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -3
  529. package/test/sap/ui/core/internal/samples/odata/twoFields/manifest.json +1 -11
  530. package/test/sap/ui/core/internal/samples/odata/v2/Products/Component.js +3 -22
  531. package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.controller.js +16 -22
  532. package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.view.xml +3 -2
  533. package/test/sap/ui/core/internal/samples/odata/v2/Products/SandboxModel.js +1 -1
  534. package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -3
  535. package/test/sap/ui/core/internal/samples/odata/v2/Products/manifest.json +2 -13
  536. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +1 -0
  537. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +49 -41
  538. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +6 -4
  539. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/manifest.json +3 -12
  540. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +1 -0
  541. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +2 -2
  542. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +4 -3
  543. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -3
  544. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/manifest.json +1 -11
  545. package/test/sap/ui/core/qunit/Fragment.qunit.js +20 -20
  546. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +4 -4
  547. package/test/sap/ui/core/qunit/Icon.qunit.js +217 -1
  548. package/test/sap/ui/core/qunit/RenderManager.qunit.js +18 -5
  549. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +15 -18
  550. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +5 -13
  551. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +2 -2
  552. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +36 -1
  553. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +475 -290
  554. package/test/sap/ui/core/qunit/component/Models.qunit.js +0 -70
  555. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +86 -0
  556. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +86 -1
  557. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Cell_Found.fragment.xml +5 -0
  558. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Column.fragment.xml +5 -0
  559. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EPinNestedView.view.xml +51 -0
  560. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/ExtensionPointProvider.js +27 -4
  561. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Main.view.xml +5 -0
  562. package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Main.view.xml +0 -1
  563. package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Sub2.view.xml +1 -3
  564. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +72 -2
  565. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +14 -2
  566. package/test/sap/ui/core/qunit/generic/ControlRenderer.qunit.js +4 -1
  567. package/test/sap/ui/core/qunit/generic/legacy/ControlRenderer.qunit.js +4 -0
  568. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
  569. package/test/sap/ui/core/qunit/loader/amd/base_tag/_launchTest.js +2 -4
  570. package/test/sap/ui/core/qunit/loader/amd/config_paths/_launchTest.js +2 -4
  571. package/test/sap/ui/core/qunit/loader/amd/config_paths_relative/_launchTest.js +2 -4
  572. package/test/sap/ui/core/qunit/loader/amdAPIs.qunit.js +3 -0
  573. package/test/sap/ui/core/qunit/model/Binding.qunit.js +13 -0
  574. package/test/sap/ui/core/qunit/model/FieldHelp.qunit.js +864 -0
  575. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +2 -2
  576. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +8 -6
  577. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +7 -7
  578. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +131 -22
  579. package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -2
  580. package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +1 -3
  581. package/test/sap/ui/core/qunit/mvc/testdata/cache.view.xml +1 -1
  582. package/test/sap/ui/core/qunit/mvc/testdata/legacy/test.view.xml +32 -0
  583. package/test/sap/ui/core/qunit/mvc/testdata/test.view.xml +2 -15
  584. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +148 -1
  585. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +55 -6
  586. package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +14 -0
  587. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +54 -0
  588. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +277 -15
  589. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +580 -13
  590. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +86 -5
  591. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +268 -5
  592. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +20 -0
  593. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +4 -10
  594. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +61 -13
  595. package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +17 -14
  596. package/test/sap/ui/core/qunit/routing/async/Views.qunit.js +3 -0
  597. package/test/sap/ui/core/qunit/test/starter/find/main.js +6 -4
  598. package/test/sap/ui/core/qunit/testdata/routing/HistoryIFrame.html +2 -1
  599. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
  600. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +51 -22
  601. package/test/sap/ui/core/qunit/ui/Device.qunit.js +24 -0
  602. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +47 -1
  603. package/test/sap/ui/core/relnotes/changes-1.124.json +1 -21
  604. package/test/sap/ui/core/relnotes/changes-1.125.json +37 -0
  605. package/test/sap/ui/core/samples/ResponsiveDemo.html +97 -103
  606. package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
  607. package/test/sap/ui/core/samples/draganddrop/DragAndDrop.html +2 -2
  608. package/test/sap/ui/core/samples/mvc/Product.html +1 -7
  609. package/test/sap/ui/core/samples/mvc/ViewPreprocessor.html +20 -12
  610. package/test/sap/ui/core/samples/mvc/XMLView.html +77 -24
  611. package/test/sap/ui/core/samples/mvc/XMLViewAsync.html +13 -19
  612. package/test/sap/ui/core/samples/mvc/controller/Async.controller.js +0 -1
  613. package/test/sap/ui/core/samples/mvc/controller/Product.controller.js +0 -1
  614. package/test/sap/ui/core/samples/mvc/views/Async.view.xml +16 -57
  615. package/test/sap/ui/core/samples/mvc/views/Dummy.fragment.xml +2 -2
  616. package/test/sap/ui/core/samples/mvc/views/Dummy.view.xml +2 -2
  617. package/test/sap/ui/core/samples/mvc/views/Product.view.xml +16 -57
  618. package/test/sap/ui/core/util/PasteHelper.html +148 -147
  619. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  620. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  621. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  622. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  623. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  624. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  625. package/test/testsuite/js/settings.js +5 -4
  626. package/test/testsuite/styles/main.css +5 -0
  627. package/test/sap/ui/core/ResourceRoots.html +0 -28
  628. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/component.json +0 -17
  629. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/component.json +0 -18
  630. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/component.json +0 -30
  631. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +0 -52
  632. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Component.js +0 -30
  633. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Sandbox.js +0 -51
  634. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L0_top5.json +0 -32
  635. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_A_skip8.json +0 -138
  636. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_B.json +0 -17
  637. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_C.json +0 -17
  638. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_top8.json +0 -93
  639. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/metadata.xml +0 -2322
  640. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/i18n/i18n.properties +0 -3
  641. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/manifest.json +0 -69
@@ -602,10 +602,10 @@ sap.ui.define([
602
602
  let oOnAfterRenderingPromise;
603
603
  sap.ui.define("my/Controller13.controller", ["sap/ui/core/mvc/Controller"], function(Controller) {
604
604
  return Controller.extend("my.Controller13", {
605
- onAfterRendering: async function() {
605
+ onAfterRendering: function() {
606
606
  const oPromise = Promise.reject(new Error("async onAfterRendering returns rejected Promise."));
607
607
  oOnAfterRenderingPromise = oPromise;
608
- await oPromise;
608
+ return oPromise;
609
609
  }
610
610
  });
611
611
  });
@@ -249,7 +249,9 @@ sap.ui.define([
249
249
  });
250
250
 
251
251
 
252
-
252
+ /**
253
+ * @deprecated because the mode 'Sequential' will be the only mode that is supported in the next major release
254
+ */
253
255
  QUnit.module("Propagation of processingMode: 'Sequential'", {
254
256
  beforeEach: function() {
255
257
  this.loadTemplatePromiseSpy = sinon.spy(XMLTemplateProcessor, "loadTemplatePromise");
@@ -293,7 +295,7 @@ sap.ui.define([
293
295
  });
294
296
  });
295
297
 
296
- QUnit.test("Async rootView & sync childView", function(assert) {
298
+ QUnit.test("Async rootView & (auto) async childView", function(assert) {
297
299
  var done = assert.async();
298
300
 
299
301
  sap.ui.define("test/XMLTemplateProcessor2/Component", function() {
@@ -321,7 +323,7 @@ sap.ui.define([
321
323
 
322
324
  oView.getContent()[0].loaded().then(function(oChildView1) {
323
325
  assert.ok(oChildView1, "View is loaded.");
324
- assert.notOk(oChildView1.oAsyncState, "View is a sync view.");
326
+ assert.ok(oChildView1.oAsyncState, "View is an async view.");
325
327
  assert.equal(oChildView1._sProcessingMode, XMLProcessingMode.Sequential, "ProcessingMode 'Sequential' is set on " + "View:" + oChildView1.getViewName());
326
328
 
327
329
  oChildView1.getContent()[0].loaded().then(function(oChildView2) {
@@ -366,11 +368,11 @@ sap.ui.define([
366
368
  assert.ok(oView, "View is loaded.");
367
369
  assert.ok(oView.oAsyncState, "View is an async view.");
368
370
  assert.equal(oView._sProcessingMode, XMLProcessingMode.Sequential, "ProcessingMode 'Sequential' is set on " + "View:" + oView.getViewName());
369
- assert.equal(this.loadTemplatePromiseSpy.callCount, 1, "loadTemplatePromiseSpy should be called once");
371
+ assert.equal(this.loadTemplatePromiseSpy.callCount, 3, "loadTemplatePromiseSpy should be called once");
370
372
 
371
373
  var oXMLView = oView.byId("xmlViewInsideFragment");
372
374
  assert.ok(oXMLView, "View is loaded.");
373
- assert.notOk(oXMLView.oAsyncState, "View is a sync view.");
375
+ assert.ok(oXMLView.oAsyncState, "View is an async view.");
374
376
  assert.equal(oXMLView._sProcessingMode, XMLProcessingMode.Sequential, "ProcessingMode 'Sequential' is set on " + "View:" + oXMLView.getViewName());
375
377
 
376
378
  assert.deepEqual(Component.getOwnerComponentFor(oXMLView), oComponent, "Should be the same owner component.");
@@ -552,7 +554,7 @@ sap.ui.define([
552
554
  });
553
555
  });
554
556
 
555
- QUnit.test("[Simple Binding] Async loading of data types (future=false)", async function(assert) {
557
+ QUnit.test("[Simple Binding] Async loading of data types (future=true)", async function(assert) {
556
558
  future.active = true;
557
559
  var oModel = new JSONModel({
558
560
  value: 1234,
@@ -461,20 +461,20 @@ sap.ui.define([
461
461
  async: {
462
462
  create: createView,
463
463
  spies: {
464
- _create: [View, "_create"],
464
+ create: [View, "create"],
465
465
  warning: [Log, "warning"]
466
466
  }
467
467
  }
468
468
  },
469
469
  future: false,
470
- runAssertions: function (oView, mSpies, assert, bAsync) {
471
- var oCreateSpy = mSpies._create;
470
+ runAssertions: async function (oView, mSpies, assert, bAsync) {
471
+ var oCreateSpy = mSpies.create;
472
472
  var oWarningSpy = mSpies.warning;
473
- assert.ok(oCreateSpy.calledOnce, "generic create is called for the nested view");
473
+ assert.ok(oCreateSpy.calledTwice, "public create is called for the nested view");
474
474
 
475
- return oCreateSpy.getCall(0).returnValue.loaded().then(function() {
476
- return assert.ok(oWarningSpy.calledWith(sinon.match(/Event handler name 'Box.show\('MessageBox'\)' could not be resolved to an event handler function/)));
477
- });
475
+ await oCreateSpy.getCall(0).returnValue;
476
+
477
+ assert.ok(oWarningSpy.calledWith(sinon.match(/Event handler name 'Box.show\('MessageBox'\)' could not be resolved to an event handler function/)));
478
478
  }
479
479
  }, {
480
480
  testDescription: "Parsing core:require in XMLView with nested view and the require context isn't forwarded to nested view (future=true)",
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  var oConfig = {
58
58
  viewClass : XMLView,
59
59
  viewClassName : XMLView.getMetadata().getName(),
60
- idsToBeChecked : ["myPanel", "Button1", "localTableId"]
60
+ idsToBeChecked : ["myPanel", "Button1", "Button2", "Button3"]
61
61
  };
62
62
 
63
63
  var fnWaitForNestedViews = function(oView) {
@@ -110,6 +110,69 @@ sap.ui.define([
110
110
  }).then(fnWaitForNestedViews);
111
111
  }, /* bCheckViewData = */ true);
112
112
 
113
+ /**
114
+ * @deprecated since version 1.120 because the view contains HTML and SVG nodes
115
+ */
116
+ (() => {
117
+ const sViewName = "example.mvc.legacy.test";
118
+
119
+ const oConfig = {
120
+ viewClass : XMLView,
121
+ viewClassName : XMLView.getMetadata().getName(),
122
+ idsToBeChecked : ["myPanel", "Button1", "localTableId"]
123
+ };
124
+ let sViewXML;
125
+ pViewXMLLoaded = pViewXMLLoaded.then(() => {
126
+ return Promise.resolve(
127
+ jQuery.ajax({
128
+ url: sap.ui.require.toUrl(sViewName.replace(/\./g, "/") + ".view.xml"),
129
+ dataType: "text"
130
+ })
131
+ );
132
+ }).then(function(sResult) {
133
+ sViewXML = sResult;
134
+ });
135
+
136
+ // run the full testset for a view loaded from a file
137
+ testsuite(oConfig, "XMLView (contains HTML or SVG nodes) creation loading from file", function() {
138
+ return XMLView.create({
139
+ viewName: sViewName
140
+ }).then(fnWaitForNestedViews);
141
+ });
142
+
143
+ // run the full testset for a view created from a string
144
+ testsuite(oConfig, "XMLView (contains HTML or SVG nodes) creation via XML string", function() {
145
+ // let the XMLView parse the XML string
146
+ return XMLView.create({
147
+ definition: sViewXML
148
+ }).then(fnWaitForNestedViews);
149
+ });
150
+
151
+ // run the full testset for a view created from an XML document
152
+ testsuite(oConfig, "XMLView (contains HTML or SVG nodes) creation via XML document", function() {
153
+ // parse the XML string and pass the XML document
154
+ return XMLView.create({
155
+ definition: XMLHelper.parse(sViewXML)
156
+ }).then(fnWaitForNestedViews);
157
+ });
158
+
159
+ // run the full testset for a view created from the root element of an XML document
160
+ testsuite(oConfig, "XMLView (contains HTML or SVG nodes) creation via XML node", function() {
161
+ // parse the XML string and pass the XML root element
162
+ return XMLView.create({
163
+ xmlNode: XMLHelper.parse(sViewXML).documentElement
164
+ }).then(fnWaitForNestedViews);
165
+ });
166
+
167
+ // run the full testset for a view created via the generic factory method
168
+ testsuite(oConfig, "XMLView (contains HTML or SVG nodes) creation using generic view factory", function() {
169
+ return View.create({
170
+ type: ViewType.XML,
171
+ viewName: sViewName,
172
+ viewData: {test:"testdata"}
173
+ }).then(fnWaitForNestedViews);
174
+ }, /* bCheckViewData = */ true);
175
+ })();
113
176
 
114
177
  var sDefaultLanguage = Localization.getLanguage();
115
178
 
@@ -133,6 +196,9 @@ sap.ui.define([
133
196
  });
134
197
  });
135
198
 
199
+ /**
200
+ * @deprecated
201
+ */
136
202
  QUnit.test("Using native HTML in XMLViews (future=false)", async function (assert) {
137
203
  future.active = false;
138
204
  const oView = await XMLView.create({
@@ -156,7 +222,7 @@ sap.ui.define([
156
222
  var oViewPromise = XMLView.create({definition: "" +
157
223
  "<mvc:View resourceBundleName=\"testdata.mvc.text\"\n" +
158
224
  "\t\t resourceBundleAlias=\"i18n\"\n" +
159
- "\t\t xmlns:mvc=\"sap.ui.core.mvc\" xmlns=\"sap.m\" xmlns:html=\"http://www.w3.org/1999/xhtml\">\n" +
225
+ "\t\t xmlns:mvc=\"sap.ui.core.mvc\" xmlns=\"sap.m\">\n" +
160
226
  "\t<Panel id=\"aPanel\">\n" +
161
227
  "\t\t<Button id=\"Button1\" text=\"{i18n>TEXT_CLOSE}\"></Button>\n" +
162
228
  "\t</Panel>\n" +
@@ -278,7 +344,7 @@ sap.ui.define([
278
344
 
279
345
  // load and place view, force rendering
280
346
  var oView = View._create({
281
- viewName: 'example.mvc.test',
347
+ viewName: 'example.mvc.legacy.test',
282
348
  type: ViewType.XML,
283
349
  async: true
284
350
  }).placeAt('content');
@@ -342,7 +408,7 @@ sap.ui.define([
342
408
 
343
409
  // load view, embed it in a Panel and force rendering
344
410
  return XMLView.create({
345
- viewName: 'example.mvc.test'
411
+ viewName: 'example.mvc.legacy.test'
346
412
  }).then(async function(oView) {
347
413
  var oPanel = new Panel({
348
414
  text: "My View",
@@ -417,7 +483,7 @@ sap.ui.define([
417
483
 
418
484
  return XMLView.create({
419
485
  id: "xmlview",
420
- viewName: 'example.mvc.test'
486
+ viewName: 'example.mvc.legacy.test'
421
487
  }).then(async function(oView) {
422
488
  xmlview = oView;
423
489
 
@@ -459,7 +525,7 @@ sap.ui.define([
459
525
 
460
526
  // load and place view, force rendering
461
527
  return XMLView.create({
462
- viewName: "example.mvc.test"
528
+ viewName: 'example.mvc.legacy.test'
463
529
  }).then(async function(oView) {
464
530
  oView.placeAt("content");
465
531
  var oPanel = oView.byId("myPanel");
@@ -527,7 +593,7 @@ sap.ui.define([
527
593
 
528
594
  // load and place view, force rendering
529
595
  return XMLView.create({
530
- viewName: 'example.mvc.test'
596
+ viewName: 'example.mvc.legacy.test'
531
597
  }).then(async function(oView) {
532
598
  oView.placeAt("content");
533
599
  await nextUIUpdate();
@@ -547,7 +613,7 @@ sap.ui.define([
547
613
 
548
614
  // load and place view, force rendering
549
615
  return XMLView.create({
550
- viewName: 'example.mvc.test'
616
+ viewName: 'example.mvc.legacy.test'
551
617
  }).then(async function(oView) {
552
618
  oView.placeAt("content");
553
619
  await nextUIUpdate();
@@ -565,6 +631,8 @@ sap.ui.define([
565
631
  });
566
632
  });
567
633
 
634
+ QUnit.module("Nested XMLViews");
635
+
568
636
  /**
569
637
  * @deprecated
570
638
  */
@@ -766,7 +834,7 @@ sap.ui.define([
766
834
  // error
767
835
  QUnit.test("Error in template - no default aggregation defined", function(assert) {
768
836
  var sXml = [
769
- '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" xmlns="http://www.w3.org/1999/xhtml">',
837
+ '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib">',
770
838
  ' <test:TestButton>',
771
839
  ' <test:Error/>',
772
840
  ' </test:TestButton>',
@@ -787,7 +855,7 @@ sap.ui.define([
787
855
 
788
856
  QUnit.test("Error in template - text in aggregation", function(assert) {
789
857
  var sXml = [
790
- '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" xmlns="http://www.w3.org/1999/xhtml">',
858
+ '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib">',
791
859
  ' <test:TestButton>',
792
860
  ' Error',
793
861
  ' </test:TestButton>',
@@ -827,7 +895,11 @@ sap.ui.define([
827
895
  });
828
896
  });
829
897
 
830
- // encoding
898
+
899
+ /**
900
+ * encoding
901
+ * @deprecated since 1.120 because the view has HTML or SVG nodes
902
+ */
831
903
  QUnit.test("Encoding", function(assert) {
832
904
 
833
905
  var xmlWithHTMLFragment = [
@@ -1007,15 +1079,12 @@ sap.ui.define([
1007
1079
 
1008
1080
  QUnit.test("Named Aggregation", function(assert) {
1009
1081
  var sXmlWithNamedAggregations = [
1010
- '<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" xmlns:html="http://www.w3.org/1999/xhtml" controllerName="example.mvc.test">',
1082
+ '<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" controllerName="example.mvc.test">',
1011
1083
  ' <mvc:content>',
1012
1084
  ' <test:TestButton id="contentButton" />',
1013
- ' <html:div id="div1">test1</html:div>',
1014
1085
  ' </mvc:content>',
1015
1086
  ' <mvc:dependents>',
1016
1087
  ' <test:TestButton id="dependentButton" />',
1017
- ' <html:div id="div2">test2</html:div>',
1018
- ' plain text node',
1019
1088
  ' <core:Fragment id="innerFragment" fragmentName="testdata.fragments.XMLFragmentDialog" type="XML"/>',
1020
1089
  ' </mvc:dependents>',
1021
1090
  '</mvc:View>'
@@ -1054,13 +1123,6 @@ sap.ui.define([
1054
1123
  assert.strictEqual(oView.getDependents()[0].getId(),"viewWithNamedAggregations--dependentButton", "viewWithNamedAggregations: The dependent button was added correctly to dependents aggregation");
1055
1124
  assert.strictEqual(oView.getDependents()[1].getId(),"viewWithNamedAggregations--innerFragment--xmlDialog", "viewWithNamedAggregations: The dialog control from the dependent fragment was added correctly to dependents aggregation");
1056
1125
 
1057
- var oDiv1 = document.getElementById(oView.createId("div1"));
1058
- assert.ok(oDiv1, "XHTML element in 'content' aggregation is rendered");
1059
- assert.equal(oDiv1.childNodes.length, 1, "The div has one child");
1060
- assert.equal(oDiv1.childNodes[0].textContent, "test1", "The text content is correct");
1061
- assert.notOk(document.getElementById(oView.createId("div2")), "XHTML element in 'dependents' aggregation is NOT rendered");
1062
- assert.notOk(oDiv1.nextSibling.textContent.trim(), "HTML nodes or text nodes outside the content aggregation shouldn't be rendered");
1063
-
1064
1126
  oView.destroy();
1065
1127
  }).then(function() {
1066
1128
  return XMLView.create({
@@ -1086,6 +1148,53 @@ sap.ui.define([
1086
1148
  });
1087
1149
  });
1088
1150
 
1151
+ /**
1152
+ * @deprecated since version 1.120 because the views contain HTML or SVG nodes
1153
+ */
1154
+ QUnit.test("Named Aggregation (Views contain HTML nodes)", function(assert) {
1155
+ var sXmlWithNamedAggregations = [
1156
+ '<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" xmlns:html="http://www.w3.org/1999/xhtml" controllerName="example.mvc.test">',
1157
+ ' <mvc:content>',
1158
+ ' <test:TestButton id="contentButton" />',
1159
+ ' <html:div id="div1">test1</html:div>',
1160
+ ' </mvc:content>',
1161
+ ' <mvc:dependents>',
1162
+ ' <test:TestButton id="dependentButton" />',
1163
+ ' <html:div id="div2">test2</html:div>',
1164
+ ' plain text node',
1165
+ ' <core:Fragment id="innerFragment" fragmentName="testdata.fragments.XMLFragmentDialog" type="XML"/>',
1166
+ ' </mvc:dependents>',
1167
+ '</mvc:View>'
1168
+ ].join('');
1169
+
1170
+ return XMLView.create({
1171
+ id: "viewWithNamedAggregations",
1172
+ definition: sXmlWithNamedAggregations
1173
+ }).then(async function(oView) {
1174
+ oView.placeAt("content");
1175
+ await nextUIUpdate();
1176
+
1177
+ assert.strictEqual(oView.getContent()[0].getId(),"viewWithNamedAggregations--contentButton", "viewWithNamedAggregations: The button was added correctly to content aggregation");
1178
+
1179
+ var oDependentButton = oView.byId("dependentButton");
1180
+ assert.notOk(oDependentButton.getDomRef(), "controls that aren't in the content aggregation of the view shouldn't be rendered");
1181
+ assert.strictEqual(oView.getDependents()[0].getId(),"viewWithNamedAggregations--dependentButton", "viewWithNamedAggregations: The dependent button was added correctly to dependents aggregation");
1182
+ assert.strictEqual(oView.getDependents()[1].getId(),"viewWithNamedAggregations--innerFragment--xmlDialog", "viewWithNamedAggregations: The dialog control from the dependent fragment was added correctly to dependents aggregation");
1183
+
1184
+ var oDiv1 = document.getElementById(oView.createId("div1"));
1185
+ assert.ok(oDiv1, "XHTML element in 'content' aggregation is rendered");
1186
+ assert.equal(oDiv1.childNodes.length, 1, "The div has one child");
1187
+ assert.equal(oDiv1.childNodes[0].textContent, "test1", "The text content is correct");
1188
+ assert.notOk(document.getElementById(oView.createId("div2")), "XHTML element in 'dependents' aggregation is NOT rendered");
1189
+ assert.notOk(oDiv1.nextSibling.textContent.trim(), "HTML nodes or text nodes outside the content aggregation shouldn't be rendered");
1190
+
1191
+ oView.destroy();
1192
+ });
1193
+ });
1194
+
1195
+ /**
1196
+ * @deprecated since version 1.120 because the view has HTML nodes
1197
+ */
1089
1198
  QUnit.test("Error should be thrown when 'content' aggregation of View is bound and binding template contains HTML node", function(assert) {
1090
1199
  var sXmlWithBoundContent = [
1091
1200
  '<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:test="sap.ui.testlib" xmlns:html="http://www.w3.org/1999/xhtml" ',
@@ -1,7 +1,6 @@
1
1
  <mvc:View controllerName="testdata.mvc.Async"
2
2
  xmlns="sap.m" xmlns:form="sap.ui.layout.form"
3
- xmlns:mvc="sap.ui.core.mvc" xmlns:html="http://www.w3.org/1999/xhtml">
4
-
3
+ xmlns:mvc="sap.ui.core.mvc">
5
4
  <Image width="150px" height="110px" src="./testdata/images/screw.jpg"></Image>
6
5
 
7
6
  <form:SimpleForm id="Layout" width="250px" class="myMatrixLayout" layout="ColumnLayout">
@@ -1,6 +1,4 @@
1
- <mvc:View xmlns:m="sap.m"
2
- xmlns:mvc="sap.ui.core.mvc" xmlns="http://www.w3.org/1999/xhtml"
3
- displayBlock="true">
1
+ <mvc:View xmlns:m="sap.m" xmlns:mvc="sap.ui.core.mvc" displayBlock="true">
4
2
  <m:Panel id="myPanel">
5
3
  <m:Button id="myButton" text="Press me"></m:Button>
6
4
  </m:Panel>
@@ -1,4 +1,4 @@
1
- <mvc:XMLView xmlns:m="sap.m" xmlns:mvc="sap.ui.core.mvc" xmlns="http://www.w3.org/1999/xhtml">
1
+ <mvc:XMLView xmlns:m="sap.m" xmlns:mvc="sap.ui.core.mvc">
2
2
  <m:Panel>
3
3
  <m:Label id="Label1" text="Label" labelFor="Button1" />
4
4
  <m:Button id="Button1"></m:Button>
@@ -0,0 +1,32 @@
1
+ <mvc:View controllerName="example.mvc.test" xmlns:m="sap.m"
2
+ xmlns:mvc="sap.ui.core.mvc" xmlns="http://www.w3.org/1999/xhtml"
3
+ xmlns:svg="http://www.w3.org/2000/svg"
4
+ displayBlock="true">
5
+ <table id="localTableId" title="encoding is the A&amp;O of XML parsing &lt;and&gt; &quot;writing" border="5">
6
+ <tr><td>Hello</td><td>Hello</td><td>Hello</td></tr>
7
+ <tr><td>Hello</td><td>Hello A&amp;O, what about a &lt;div&gt; in here?</td><td><m:Button id="Button1" text="HEY!" press="doIt"></m:Button></td></tr>
8
+ </table>
9
+ plain text node as direct child of view
10
+ <m:Panel id="myPanel">
11
+ <!-- this comment should be ignored -->
12
+ <m:Button id="Button3" text="HEY default aggregation!" tooltip="hello tooltip" press="doIt"></m:Button>
13
+ <m:Button id="ButtonX" text="Another Hello" press=".sap.doIt"></m:Button>
14
+ <div style="border:1px solid red;background-color:yellow;width:200px;height:10px;">text node in nested HTML in default aggregation</div>
15
+ <m:content>
16
+ <!-- this comment should be ignored -->
17
+ <div style="border:1px solid red;background-color:blue;width:200px;height:10px;">text node in HTML in named aggregation &amp; </div>
18
+ <div>
19
+ <svg:svg width="4cm" height="8cm" version="1.1">
20
+ <svg:ellipse cx="2cm" cy="4cm" rx="2cm" ry="1cm" />
21
+ </svg:svg>
22
+ </div>
23
+ <m:Button id="Button2" text="HEY named aggregation!" press="doIt">
24
+ <!-- this comment should be ignored -->
25
+ </m:Button>
26
+ <m:CheckBox text="HEY named aggregation!" />
27
+ <mvc:View async="true" id="MyJSView" viewName="module:example/mvc/TypedView2"></mvc:View>
28
+ <mvc:XMLView async="true" id="MyXMLView" viewName="example.mvc.test2"></mvc:XMLView>
29
+ <mvc:XMLView async="true" id="MyHTMLView" viewName="example.mvc.test2" controllerName="example.mvc.test"></mvc:XMLView>
30
+ </m:content>
31
+ </m:Panel>
32
+ </mvc:View>
@@ -1,25 +1,12 @@
1
1
  <mvc:View controllerName="example.mvc.test" xmlns:m="sap.m"
2
- xmlns:mvc="sap.ui.core.mvc" xmlns="http://www.w3.org/1999/xhtml"
3
- xmlns:svg="http://www.w3.org/2000/svg"
4
- displayBlock="true">
5
- <table id="localTableId" title="encoding is the A&amp;O of XML parsing &lt;and&gt; &quot;writing" border="5">
6
- <tr><td>Hello</td><td>Hello</td><td>Hello</td></tr>
7
- <tr><td>Hello</td><td>Hello A&amp;O, what about a &lt;div&gt; in here?</td><td><m:Button id="Button1" text="HEY!" press="doIt"></m:Button></td></tr>
8
- </table>
9
- plain text node as direct child of view
2
+ xmlns:mvc="sap.ui.core.mvc" displayBlock="true">
3
+ <m:Button id="Button1" text="HEY!" press="doIt"></m:Button>
10
4
  <m:Panel id="myPanel">
11
5
  <!-- this comment should be ignored -->
12
6
  <m:Button id="Button3" text="HEY default aggregation!" tooltip="hello tooltip" press="doIt"></m:Button>
13
7
  <m:Button id="ButtonX" text="Another Hello" press=".sap.doIt"></m:Button>
14
- <div style="border:1px solid red;background-color:yellow;width:200px;height:10px;">text node in nested HTML in default aggregation</div>
15
8
  <m:content>
16
9
  <!-- this comment should be ignored -->
17
- <div style="border:1px solid red;background-color:blue;width:200px;height:10px;">text node in HTML in named aggregation &amp; </div>
18
- <div>
19
- <svg:svg width="4cm" height="8cm" version="1.1">
20
- <svg:ellipse cx="2cm" cy="4cm" rx="2cm" ry="1cm" />
21
- </svg:svg>
22
- </div>
23
10
  <m:Button id="Button2" text="HEY named aggregation!" press="doIt">
24
11
  <!-- this comment should be ignored -->
25
12
  </m:Button>
@@ -19,6 +19,7 @@ sap.ui.define([
19
19
  "sap/ui/core/mvc/View",
20
20
  "sap/ui/core/Rendering",
21
21
  "sap/ui/model/BindingMode",
22
+ "sap/ui/model/FieldHelp",
22
23
  "sap/ui/model/Filter",
23
24
  "sap/ui/model/FilterOperator",
24
25
  "sap/ui/model/FilterType",
@@ -38,7 +39,7 @@ sap.ui.define([
38
39
  // load Table resources upfront to avoid loading times > 1 second for the first test using Table
39
40
  // "sap/ui/table/Table"
40
41
  ], function (Log, Localization, merge, uid, Input, Device, ManagedObjectObserver, SyncPromise,
41
- Library, Messaging, UI5Date, Message, MessageType, Controller, View, Rendering, BindingMode, Filter,
42
+ Library, Messaging, UI5Date, Message, MessageType, Controller, View, Rendering, BindingMode, FieldHelp, Filter,
42
43
  FilterOperator, FilterType, Model, Sorter, JSONModel, MessageModel, CountMode, MessageScope, Decimal,
43
44
  Context, ODataModel, XMLModel, TestUtils, datajs, XMLHelper) {
44
45
  /*global QUnit, sinon*/
@@ -23035,4 +23036,150 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
23035
23036
  assert.deepEqual(getTableContent(oTable), [["16.00\u00a0EUR"], ["29\u00a0JPY"]]);
23036
23037
  });
23037
23038
  });
23039
+
23040
+ //*********************************************************************************************
23041
+ // Scenario: Activate field help and get the expected hotspots. Simulate filter bar fields which will set
23042
+ // "sap-ui-DocumentationRef" custom data at the filter field. For ODataPropertyBindings, either standalone or
23043
+ // embedded in a CompositeBinding, the field help is determined automatically by evaluating the
23044
+ // "com.sap.vocabularies.Common.v1.DocumentationRef" annotation. ODataPropertyBindings embedded in a
23045
+ // CompositeBinding for which no messages are displayed (see getPartsIgnoringMessages), are ignored.
23046
+ // Controls which have been destroyed do neither produce a field help nor log messages.
23047
+ // JIRA: CPOUI5MODELS-1696
23048
+ QUnit.test("Field Help", function (assert) {
23049
+ const oModel = createSalesOrdersModel({defaultBindingMode: BindingMode.TwoWay});
23050
+ const oFilterModel = new JSONModel({filter: "42"});
23051
+ const sView = `
23052
+ <Label labelFor="FilterSingleFieldHelp" text="Label for filter with single field help" />
23053
+ <Input id="FilterSingleFieldHelp" value="{filter>/filter}" />
23054
+ <Label labelFor="FilterMultipleFieldHelps" text="Label for filter with multiple field helps" />
23055
+ <Input id="FilterMultipleFieldHelps" value="Foo Bar" />
23056
+ <Label labelFor="FilterWithoutFieldHelp" text="Label for filter without any field help" />
23057
+ <Input id="FilterWithoutFieldHelp" value="Baz" />
23058
+ <Label labelFor="FilterDynamicallyDestroyed" text="Label for filter which is dynamically destroyed" />
23059
+ <Input id="FilterDynamicallyDestroyed" value="{filter>/filter}" />
23060
+ <FlexBox id="form" binding="{/SalesOrderSet('1')}">
23061
+ <Label labelFor="Note" text="Label for Note" />
23062
+ <Input id="Note" value="{Note}" />
23063
+ <Label labelFor="DeliveryStatus" text="Label for DeliveryStatus without any field help" />
23064
+ <Input id="DeliveryStatus" value="{DeliveryStatus}" />
23065
+ <Label labelFor="Amount0" text="Label for both amount and currency" />
23066
+ <Input id="Amount0" value="{
23067
+ mode : 'TwoWay',
23068
+ parts : [{
23069
+ constraints : {precision : 16, scale : 3},
23070
+ path : 'GrossAmount',
23071
+ type : 'sap.ui.model.odata.type.Decimal'
23072
+ }, {
23073
+ constraints : {maxLength : 5},
23074
+ path : 'CurrencyCode',
23075
+ type : 'sap.ui.model.odata.type.String'
23076
+ }],
23077
+ type : 'sap.ui.model.type.Currency'
23078
+ }" />
23079
+ <Label labelFor="Amount1" text="Label for amount only" />
23080
+ <Input id="Amount1" value="{
23081
+ formatOptions : {showMeasure : false},
23082
+ mode : 'TwoWay',
23083
+ parts : [{
23084
+ constraints : {precision : 16, scale : 3},
23085
+ path : 'GrossAmount',
23086
+ type : 'sap.ui.model.odata.type.Decimal'
23087
+ }, {
23088
+ constraints : {maxLength : 5},
23089
+ path : 'CurrencyCode',
23090
+ type : 'sap.ui.model.odata.type.String'
23091
+ }],
23092
+ type : 'sap.ui.model.type.Currency'
23093
+ }" />
23094
+ </FlexBox>`;
23095
+ function compare(a, b) {
23096
+ if (a === b) {
23097
+ return 0;
23098
+ }
23099
+ return a < b ? -1 : 1;
23100
+ }
23101
+ function sortHotspots(a, b) {
23102
+ return compare(a.hotspotId, b.hotspotId) || compare(a.backendHelpKey.id, b.backendHelpKey.id);
23103
+ }
23104
+
23105
+ this.expectHeadRequest()
23106
+ .expectRequest("SalesOrderSet('1')", {
23107
+ __metadata: {uri: "SalesOrderSet('1')"},
23108
+ CurrencyCode: "EUR",
23109
+ DeliveryStatus: "N",
23110
+ GrossAmount: "1.23",
23111
+ Note: "Sales Order Note",
23112
+ SalesOrderID: "1"
23113
+ })
23114
+ .expectValue("Amount0", "1.23")
23115
+ .expectValue("Amount0", "1.23\xa0EUR")
23116
+ .expectValue("Amount1", "1.23")
23117
+ .expectValue("DeliveryStatus", "N")
23118
+ .expectValue("Note", "Sales Order Note");
23119
+
23120
+ return this.createView(assert, sView, {undefined: oModel, filter: oFilterModel}).then(() => {
23121
+ const oView = this.oView;
23122
+ // manually add documentation refs - simulate filter fields
23123
+ const oFilterSingleFieldHelp = oView.byId("FilterSingleFieldHelp");
23124
+ oFilterSingleFieldHelp.data("sap-ui-DocumentationRef",
23125
+ "urn:sap-com:documentation:key?=type=DTEL&id=SALESORDERID");
23126
+ const oFilterMultipleFieldHelps = oView.byId("FilterMultipleFieldHelps");
23127
+ oFilterMultipleFieldHelps.data("sap-ui-DocumentationRef", [
23128
+ "urn:sap-com:documentation:key?=type=DTEL&id=FOO",
23129
+ "urn:sap-com:documentation:key?=type=DTEL&id=Bar&origin=Origin"
23130
+ ]);
23131
+ const oFilterDynamicallyDestroyed = oView.byId("FilterDynamicallyDestroyed");
23132
+ oFilterDynamicallyDestroyed.data("sap-ui-DocumentationRef",
23133
+ "urn:sap-com:documentation:key?=type=DTEL&id=SALESORDERID");
23134
+ let fnResolve;
23135
+ const oPromise = new Promise((resolve) => {
23136
+ fnResolve = resolve;
23137
+ });
23138
+ const oUtil = {fnUpdateCallback() {}};
23139
+ this.mock(oUtil).expects("fnUpdateCallback").withExactArgs(sinon.match.array).callsFake((aHotspots) => {
23140
+ const aExpectedHotspots = [{
23141
+ "backendHelpKey": {id: "SALESORDERID", origin: null, type: "DTEL"},
23142
+ "hotspotId": oFilterSingleFieldHelp.getId(),
23143
+ "labelText": "Label for filter with single field help"
23144
+ }, {
23145
+ "backendHelpKey": {id: "FOO", origin: null, type: "DTEL"},
23146
+ "hotspotId": oFilterMultipleFieldHelps.getId(),
23147
+ "labelText": "Label for filter with multiple field helps"
23148
+ }, {
23149
+ "backendHelpKey": {id: "Bar", origin: "Origin", type: "DTEL"},
23150
+ "hotspotId": oFilterMultipleFieldHelps.getId(),
23151
+ "labelText": "Label for filter with multiple field helps"
23152
+ }, { // documentation ref from OData annotation
23153
+ "backendHelpKey": {id: "NOTE", origin: "MyOrigin", type: "DTEL"},
23154
+ "hotspotId": oView.byId("Note").getId(),
23155
+ "labelText": "Label for Note"
23156
+ }, { // documentation ref from OData annotation - composite binding part 0
23157
+ "backendHelpKey": {id: "GROSSAMOUNT", origin: null, type: "DTEL"},
23158
+ "hotspotId": oView.byId("Amount0").getId(),
23159
+ "labelText": "Label for both amount and currency"
23160
+ }, { // documentation ref from OData annotation - composite binding part 1
23161
+ "backendHelpKey": {id: "/FOO/CURRENCY", origin: null, type: "DTEL"},
23162
+ "hotspotId": oView.byId("Amount0").getId(),
23163
+ "labelText": "Label for both amount and currency"
23164
+ }, { // documentation ref from OData annotation - composite binding showning only one part
23165
+ "backendHelpKey": {id: "GROSSAMOUNT", origin: null, type: "DTEL"},
23166
+ "hotspotId": oView.byId("Amount1").getId(),
23167
+ "labelText": "Label for amount only"
23168
+ }].sort(sortHotspots);
23169
+
23170
+ assert.deepEqual(aHotspots.sort(sortHotspots), aExpectedHotspots);
23171
+ fnResolve();
23172
+ });
23173
+
23174
+ // code under test
23175
+ FieldHelp.getInstance().activate(oUtil.fnUpdateCallback);
23176
+
23177
+ // code under test - destroy a field with field help - async callback does not consider that control
23178
+ oFilterDynamicallyDestroyed.destroy();
23179
+
23180
+ return Promise.all([oPromise, this.waitForChanges(assert, "Initial activation")]);
23181
+ }).finally(() => {
23182
+ FieldHelp.getInstance().deactivate();
23183
+ });
23184
+ });
23038
23185
  });