@openui5/sap.ui.core 1.121.0 → 1.122.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 (605) hide show
  1. package/.eslintrc.json +22 -5
  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.sjax.js +6 -5
  9. package/src/jquery.sap.storage.js +3 -3
  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/Formatting.js +1 -1
  14. package/src/sap/base/i18n/LanguageTag.js +1 -1
  15. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  16. package/src/sap/base/util/Deferred.js +4 -6
  17. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  18. package/src/sap/base/util/restricted/_castArray.js +1 -1
  19. package/src/sap/base/util/restricted/_compact.js +1 -1
  20. package/src/sap/base/util/restricted/_curry.js +1 -1
  21. package/src/sap/base/util/restricted/_debounce.js +1 -1
  22. package/src/sap/base/util/restricted/_difference.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_flatten.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  31. package/src/sap/base/util/restricted/_intersection.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isNil.js +1 -1
  37. package/src/sap/base/util/restricted/_max.js +1 -1
  38. package/src/sap/base/util/restricted/_merge.js +1 -1
  39. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  40. package/src/sap/base/util/restricted/_min.js +1 -1
  41. package/src/sap/base/util/restricted/_omit.js +1 -1
  42. package/src/sap/base/util/restricted/_pick.js +1 -1
  43. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  44. package/src/sap/base/util/restricted/_throttle.js +1 -1
  45. package/src/sap/base/util/restricted/_toArray.js +1 -1
  46. package/src/sap/base/util/restricted/_union.js +1 -1
  47. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  48. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  49. package/src/sap/base/util/restricted/_uniq.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  52. package/src/sap/base/util/restricted/_without.js +1 -1
  53. package/src/sap/base/util/restricted/_xor.js +1 -1
  54. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  55. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  58. package/src/sap/ui/Device.js +3 -3
  59. package/src/sap/ui/Global.js +4 -4
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +11 -5
  62. package/src/sap/ui/base/Exception.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +22 -3
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  66. package/src/sap/ui/base/Metadata.js +1 -1
  67. package/src/sap/ui/base/Object.js +1 -1
  68. package/src/sap/ui/base/ObjectPool.js +1 -1
  69. package/src/sap/ui/core/.library +1 -1
  70. package/src/sap/ui/core/BusyIndicator.js +1 -1
  71. package/src/sap/ui/core/Component.js +33 -5
  72. package/src/sap/ui/core/ComponentContainer.js +1 -1
  73. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +19 -3
  77. package/src/sap/ui/core/Core.js +1 -1
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +28 -3
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  83. package/src/sap/ui/core/EventBus.js +1 -1
  84. package/src/sap/ui/core/Fragment.js +1 -1
  85. package/src/sap/ui/core/HTML.js +1 -1
  86. package/src/sap/ui/core/History.js +1 -1
  87. package/src/sap/ui/core/Icon.js +1 -1
  88. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  89. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  90. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  91. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  92. package/src/sap/ui/core/InvisibleText.js +1 -1
  93. package/src/sap/ui/core/Item.js +1 -1
  94. package/src/sap/ui/core/LabelEnablement.js +1 -1
  95. package/src/sap/ui/core/LayoutData.js +1 -1
  96. package/src/sap/ui/core/ListItem.js +1 -1
  97. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  98. package/src/sap/ui/core/Locale.js +1 -1
  99. package/src/sap/ui/core/LocaleData.js +14 -6
  100. package/src/sap/ui/core/Manifest.js +1 -1
  101. package/src/sap/ui/core/Message.js +1 -1
  102. package/src/sap/ui/core/RenderManager.js +1 -1
  103. package/src/sap/ui/core/Renderer.js +1 -1
  104. package/src/sap/ui/core/ResizeHandler.js +1 -1
  105. package/src/sap/ui/core/ScrollBar.js +1 -1
  106. package/src/sap/ui/core/SeparatorItem.js +1 -1
  107. package/src/sap/ui/core/Title.js +1 -1
  108. package/src/sap/ui/core/TooltipBase.js +1 -1
  109. package/src/sap/ui/core/UIArea.js +1 -1
  110. package/src/sap/ui/core/UIComponent.js +1 -1
  111. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  112. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  113. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  114. package/src/sap/ui/core/XMLComposite.js +1 -1
  115. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  116. package/src/sap/ui/core/date/UI5Date.js +1 -1
  117. package/src/sap/ui/core/date/UniversalDateUtils.js +52 -52
  118. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  119. package/src/sap/ui/core/delegate/ScrollEnablement.js +4 -4
  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 +1 -1
  124. package/src/sap/ui/core/format/DateFormat.js +4 -4
  125. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  126. package/src/sap/ui/core/format/NumberFormat.js +32 -13
  127. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  128. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  129. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  130. package/src/sap/ui/core/library.js +3 -3
  131. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  132. package/src/sap/ui/core/message/Message.js +1 -1
  133. package/src/sap/ui/core/message/MessageManager.js +1 -1
  134. package/src/sap/ui/core/message/MessageParser.js +1 -1
  135. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  136. package/src/sap/ui/core/messagebundle_ar.properties +1 -1
  137. package/src/sap/ui/core/messagebundle_mk.properties +1 -1
  138. package/src/sap/ui/core/mvc/Controller.js +42 -7
  139. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  140. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  141. package/src/sap/ui/core/mvc/JSView.js +1 -1
  142. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  143. package/src/sap/ui/core/mvc/View.js +1 -1
  144. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  145. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  146. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  147. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  148. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  149. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  150. package/src/sap/ui/core/routing/Router.js +1 -1
  151. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  152. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  153. package/src/sap/ui/core/service/Service.js +1 -1
  154. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  155. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  156. package/src/sap/ui/core/support/Plugin.js +1 -1
  157. package/src/sap/ui/core/support/Support.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/themes/base/base.less +239 -8
  167. package/src/sap/ui/core/themes/base/global.less +20 -0
  168. package/src/sap/ui/core/themes/sap_hcb/global.less +20 -0
  169. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  170. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  171. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  172. package/src/sap/ui/core/tmpl/Template.js +1 -1
  173. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  174. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  175. package/src/sap/ui/core/util/Export.js +1 -1
  176. package/src/sap/ui/core/util/ExportCell.js +1 -1
  177. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  178. package/src/sap/ui/core/util/ExportRow.js +1 -1
  179. package/src/sap/ui/core/util/ExportType.js +1 -1
  180. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  181. package/src/sap/ui/core/util/File.js +1 -1
  182. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  183. package/src/sap/ui/core/util/MockServer.js +1 -1
  184. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  185. package/src/sap/ui/core/util/ShortcutHelper.js +6 -0
  186. package/src/sap/ui/core/util/XMLPreprocessor.js +112 -94
  187. package/src/sap/ui/core/util/_LocalizationHelper.js +2 -1
  188. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +0 -29
  189. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +0 -26
  190. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +0 -56
  191. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  192. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  193. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  194. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  195. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  196. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  197. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  198. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  199. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  200. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  201. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  202. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  203. package/src/sap/ui/debug/ControlTree.js +1 -1
  204. package/src/sap/ui/debug/DebugEnv.js +1 -1
  205. package/src/sap/ui/debug/PropertyList.js +1 -1
  206. package/src/sap/ui/model/ClientListBinding.js +13 -6
  207. package/src/sap/ui/model/ClientModel.js +1 -1
  208. package/src/sap/ui/model/ClientTreeBinding.js +16 -7
  209. package/src/sap/ui/model/CompositeBinding.js +11 -4
  210. package/src/sap/ui/model/CompositeDataState.js +1 -1
  211. package/src/sap/ui/model/CompositeType.js +17 -3
  212. package/src/sap/ui/model/DataState.js +1 -1
  213. package/src/sap/ui/model/ListBinding.js +14 -11
  214. package/src/sap/ui/model/MetaModel.js +1 -1
  215. package/src/sap/ui/model/Model.js +11 -9
  216. package/src/sap/ui/model/PropertyBinding.js +21 -4
  217. package/src/sap/ui/model/SelectionModel.js +1 -1
  218. package/src/sap/ui/model/SimpleType.js +1 -1
  219. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  220. package/src/sap/ui/model/TreeBinding.js +14 -7
  221. package/src/sap/ui/model/Type.js +1 -1
  222. package/src/sap/ui/model/analytics/AnalyticalBinding.js +12 -8
  223. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  224. package/src/sap/ui/model/analytics/odata4analytics.js +66 -52
  225. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -4
  226. package/src/sap/ui/model/json/JSONListBinding.js +5 -2
  227. package/src/sap/ui/model/json/JSONModel.js +7 -5
  228. package/src/sap/ui/model/json/JSONTreeBinding.js +5 -2
  229. package/src/sap/ui/model/message/MessageListBinding.js +5 -2
  230. package/src/sap/ui/model/message/MessageModel.js +1 -1
  231. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  232. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  233. package/src/sap/ui/model/odata/ODataMetaModel.js +8 -9
  234. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  235. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  236. package/src/sap/ui/model/odata/ODataUtils.js +1 -1
  237. package/src/sap/ui/model/odata/type/Boolean.js +2 -4
  238. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  239. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  240. package/src/sap/ui/model/odata/type/Date.js +1 -1
  241. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  242. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  243. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  244. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  245. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  246. package/src/sap/ui/model/odata/type/Double.js +1 -1
  247. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  248. package/src/sap/ui/model/odata/type/Int.js +1 -1
  249. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  250. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  251. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  252. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  253. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  254. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  255. package/src/sap/ui/model/odata/type/Single.js +1 -1
  256. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  257. package/src/sap/ui/model/odata/type/String.js +1 -1
  258. package/src/sap/ui/model/odata/type/Time.js +1 -1
  259. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  260. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  261. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  262. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  263. package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -8
  264. package/src/sap/ui/model/odata/v2/ODataModel.js +25 -28
  265. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +15 -12
  266. package/src/sap/ui/model/odata/v4/Context.js +111 -30
  267. package/src/sap/ui/model/odata/v4/ODataBinding.js +9 -5
  268. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  269. package/src/sap/ui/model/odata/v4/ODataListBinding.js +14 -9
  270. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -3
  271. package/src/sap/ui/model/odata/v4/ODataModel.js +27 -2
  272. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +19 -7
  273. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +240 -41
  274. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +88 -0
  275. package/src/sap/ui/model/odata/v4/lib/_Cache.js +13 -4
  276. package/src/sap/ui/model/odata/v4/lib/_Helper.js +15 -0
  277. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +77 -15
  278. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  279. package/src/sap/ui/model/type/Boolean.js +1 -1
  280. package/src/sap/ui/model/type/Currency.js +1 -1
  281. package/src/sap/ui/model/type/Date.js +1 -1
  282. package/src/sap/ui/model/type/DateInterval.js +1 -1
  283. package/src/sap/ui/model/type/DateTime.js +1 -1
  284. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  285. package/src/sap/ui/model/type/FileSize.js +1 -1
  286. package/src/sap/ui/model/type/Float.js +1 -1
  287. package/src/sap/ui/model/type/Integer.js +1 -1
  288. package/src/sap/ui/model/type/String.js +1 -1
  289. package/src/sap/ui/model/type/Time.js +1 -1
  290. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  291. package/src/sap/ui/model/type/Unit.js +38 -1
  292. package/src/sap/ui/model/xml/XMLListBinding.js +5 -2
  293. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  294. package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -1
  295. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  296. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  297. package/src/sap/ui/test/RecordReplay.js +1 -0
  298. package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +8 -1
  299. package/src/sap/ui/test/generic/TestBase.js +1 -1
  300. package/src/sap/ui/test/gherkin/opa5TestHarness.js +0 -6
  301. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +0 -6
  302. package/src/sap/ui/test/qunitPause.js +5 -1
  303. package/src/sap/ui/util/Storage.js +1 -1
  304. package/src/sap/ui/util/_enforceNoReturnValue.js +26 -0
  305. package/src/ui5loader.js +25 -2
  306. package/test/sap/ui/core/HyphenationPlayground.html +6 -292
  307. package/test/sap/ui/core/HyphenationPlayground.js +313 -0
  308. package/test/sap/ui/core/demokit/docuindex.json +1 -1
  309. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  310. package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/OpaAutoWaitParams.html +1 -1
  311. package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/applicationUnderTest/index.html +1 -2
  312. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/README.js +31 -23
  313. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +103 -94
  314. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.html +3 -0
  315. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.js +1 -5
  316. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.html +3 -0
  317. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.js +1 -5
  318. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.html +3 -0
  319. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.js +1 -5
  320. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/Steps.js +5 -5
  321. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.html +3 -0
  322. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.js +1 -5
  323. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  324. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  325. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  326. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  327. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +16 -9
  328. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -0
  329. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/SandboxModel.js +11 -0
  330. package/test/sap/ui/core/demokit/sample/odata/v4/Products/data/UnitsOfMeasure.json +1 -1
  331. package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +2 -1
  332. package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +4 -1
  333. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/Component.js +12 -0
  335. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.html +8 -7
  336. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +28 -1
  337. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/view/App.view.xml +5 -0
  338. package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +3 -1
  339. package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +4 -1
  340. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  341. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/Component.js +12 -0
  342. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.html +8 -7
  343. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +34 -1
  344. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/model/data.json +3 -0
  345. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/view/App.view.xml +5 -0
  346. package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +3 -1
  347. package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +4 -1
  348. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/Component.js +12 -0
  350. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.html +8 -7
  351. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +34 -1
  352. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/model/data.json +3 -0
  353. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/view/App.view.xml +5 -0
  354. package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +3 -2
  355. package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +4 -1
  356. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/Component.js +12 -0
  358. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.html +8 -10
  359. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +35 -1
  360. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/model/data.json +6 -0
  361. package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +3 -2
  362. package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +4 -1
  363. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/Component.js +20 -0
  365. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.html +8 -10
  366. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +35 -1
  367. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/model/data.json +6 -0
  368. package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +4 -3
  369. package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +4 -1
  370. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  371. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/Component.js +12 -0
  372. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.html +8 -10
  373. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +46 -1
  374. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/model/data.json +5 -0
  375. package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +4 -3
  376. package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +3 -0
  377. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/Component.js +12 -0
  379. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.html +8 -10
  380. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +46 -1
  381. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/model/data.json +5 -0
  382. package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +4 -3
  383. package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +3 -0
  384. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/Component.js +12 -0
  386. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.html +8 -10
  387. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +46 -1
  388. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/model/data.json +11 -0
  389. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/view/App.view.xml +1 -1
  390. package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +4 -3
  391. package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +3 -0
  392. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  393. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/Component.js +12 -0
  394. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/controller/App.controller.js +8 -7
  395. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.html +8 -10
  396. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +46 -1
  397. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/model/data.json +11 -0
  398. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/view/App.view.xml +2 -2
  399. package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +4 -3
  400. package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +3 -0
  401. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  402. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/Component.js +12 -0
  403. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/controller/App.controller.js +8 -7
  404. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.html +8 -10
  405. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +46 -1
  406. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/model/data.json +13 -0
  407. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/view/App.view.xml +3 -3
  408. package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +4 -3
  409. package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +3 -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/Component.js +12 -0
  412. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/controller/App.controller.js +8 -7
  413. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.html +8 -10
  414. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +47 -1
  415. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/model/data.json +13 -0
  416. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/view/App.view.xml +3 -3
  417. package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +4 -3
  418. package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +3 -0
  419. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  420. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/Component.js +12 -0
  421. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/controller/App.controller.js +10 -11
  422. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.html +8 -10
  423. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +51 -1
  424. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/Products.json +64 -57
  425. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/data.json +13 -0
  426. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/view/App.view.xml +3 -3
  427. package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +4 -3
  428. package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +3 -0
  429. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  430. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/Component.js +12 -0
  431. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/controller/App.controller.js +16 -16
  432. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.html +8 -10
  433. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +51 -1
  434. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/Products.json +64 -57
  435. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/data.json +13 -0
  436. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/view/App.view.xml +3 -3
  437. package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +4 -3
  438. package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +3 -0
  439. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  440. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/Component.js +12 -0
  441. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/controller/App.controller.js +16 -16
  442. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.html +8 -10
  443. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +51 -1
  444. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/Products.json +64 -57
  445. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/data.json +14 -0
  446. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/view/App.view.xml +3 -3
  447. package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +4 -3
  448. package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +3 -0
  449. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  450. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/Component.js +12 -0
  451. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/controller/App.controller.js +19 -22
  452. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.html +8 -10
  453. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +51 -1
  454. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/Products.json +64 -57
  455. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/data.json +14 -0
  456. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/view/App.view.xml +5 -5
  457. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  458. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  459. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  460. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  461. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  462. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  463. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  464. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  465. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  466. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  467. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  468. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  469. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  470. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  471. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  472. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  473. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  474. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  475. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  476. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  477. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  478. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  479. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  480. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  481. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  482. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  483. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  484. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  485. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  486. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  487. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  488. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  489. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  490. package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +67 -0
  491. package/test/sap/ui/core/qunit/EventProvider.qunit.js +30 -2
  492. package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.html → Lib_preloadFiles.qunit.html} +1 -1
  493. package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.js → Lib_preloadFiles.qunit.js} +5 -10
  494. package/test/sap/ui/core/qunit/ThemeHelper.qunit.js +1 -1
  495. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +4 -4
  496. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +12 -12
  497. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +262 -12
  498. package/test/sap/ui/core/qunit/app/DesignMode_suppressedDeactivation.qunit.js +8 -4
  499. package/test/sap/ui/core/qunit/app/_createDesignModeTests_legacyAPIs.qunit.js +8 -4
  500. package/test/sap/ui/core/qunit/app/fixture/designmode/test01.controller.js +4 -4
  501. package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +3 -3
  502. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +11 -0
  503. package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +30 -2
  504. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +82 -19
  505. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/App.view.xml +3 -0
  506. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Component.js +20 -0
  507. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Home.view.xml +5 -0
  508. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Other.view.xml +5 -0
  509. package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/manifest.json +54 -0
  510. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.html +4 -0
  511. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.html +4 -0
  512. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.html +4 -0
  513. package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +4 -0
  514. package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.js +1 -1
  515. package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +4 -0
  516. package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.js +1 -1
  517. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
  518. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +5 -6
  519. package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +43 -16
  520. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +194 -180
  521. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +15 -33
  522. package/test/sap/ui/core/qunit/mockserver/MockServer.qunit.js +936 -1014
  523. package/test/sap/ui/core/qunit/mockserver/testsuite.mockserver.qunit.js +2 -4
  524. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
  525. package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +50 -1
  526. package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +18 -8
  527. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +107 -49
  528. package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +7 -0
  529. package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +0 -3
  530. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +143 -2
  531. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +34 -0
  532. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +230 -39
  533. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +57 -18
  534. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +40 -6
  535. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -0
  536. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1715 -106
  537. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -0
  538. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +88 -18
  539. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +544 -50
  540. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +175 -0
  541. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +50 -9
  542. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +17 -0
  543. package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +140 -27
  544. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +12 -3
  545. package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +1 -2
  546. package/test/sap/ui/core/qunit/routing/fixture/placeholder/component/NavContainerOptOut/Component.js +1 -0
  547. package/test/sap/ui/core/qunit/rule/model/bindingPathSyntaxValidation.qunit.js +37 -0
  548. package/test/sap/ui/core/qunit/rule/model/{modelSupport.qunit.js → selectUsedInBoundAggregation.qunit.js} +86 -154
  549. package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +5 -2
  550. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/themes/{sap_hcb → sap_horizon_hcb}/library.css +1 -1
  551. package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +18 -18
  552. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  553. package/test/sap/ui/core/qunit/testsuites/testsuite.controls.qunit.js +2 -1
  554. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +3 -3
  555. package/test/sap/ui/core/qunit/types/CompositeType.qunit.js +6 -0
  556. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +3 -6
  557. package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +1370 -1242
  558. package/test/sap/ui/core/qunit/types/Types.qunit.js +65 -0
  559. package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +0 -3
  560. package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +68 -3
  561. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +2757 -1920
  562. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +0 -102
  563. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +0 -165
  564. package/test/sap/ui/core/relnotes/changes-1.121.json +0 -15
  565. package/test/sap/ui/core/relnotes/changes-1.122.json +80 -0
  566. package/test/sap/ui/core/visual/HyphenationPlayground.spec.js +5 -2
  567. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +0 -15
  568. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +0 -21
  569. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +0 -21
  570. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +0 -25
  571. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +0 -29
  572. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +0 -42
  573. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +0 -44
  574. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +0 -39
  575. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +0 -39
  576. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +0 -41
  577. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +0 -48
  578. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +0 -52
  579. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +0 -52
  580. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +0 -54
  581. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +0 -54
  582. /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  583. /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  584. /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library[legacy].css +0 -0
  585. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  586. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  587. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  588. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  589. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  590. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  591. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  592. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  593. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  594. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  595. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  596. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  597. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  598. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  599. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  600. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
  601. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  602. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  603. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  604. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
  605. /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
@@ -10,6 +10,7 @@ sap.ui.define([
10
10
  "sap/base/util/deepExtend",
11
11
  "sap/base/util/JSTokenizer",
12
12
  "sap/base/util/ObjectPath",
13
+ "sap/ui/base/BindingInfo",
13
14
  "sap/ui/base/BindingParser",
14
15
  "sap/ui/base/ManagedObject",
15
16
  "sap/ui/base/SyncPromise",
@@ -19,8 +20,9 @@ sap.ui.define([
19
20
  "sap/ui/model/CompositeBinding",
20
21
  "sap/ui/model/Context",
21
22
  "sap/ui/performance/Measurement"
22
- ], function (Log, deepExtend, JSTokenizer, ObjectPath, BindingParser, ManagedObject, SyncPromise,
23
- Component, XMLTemplateProcessor, BindingMode, CompositeBinding, Context, Measurement) {
23
+ ], function (Log, deepExtend, JSTokenizer, ObjectPath, BindingInfo, BindingParser, ManagedObject,
24
+ SyncPromise, Component, XMLTemplateProcessor, BindingMode, CompositeBinding, Context,
25
+ Measurement) {
24
26
  "use strict";
25
27
 
26
28
  var sNAMESPACE = "http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1",
@@ -40,7 +42,7 @@ sap.ui.define([
40
42
  */
41
43
  With = ManagedObject.extend("sap.ui.core.util._with", {
42
44
  metadata : {
43
- library: "sap.ui.core",
45
+ library : "sap.ui.core",
44
46
  properties : {
45
47
  any : "any"
46
48
  },
@@ -59,7 +61,7 @@ sap.ui.define([
59
61
  */
60
62
  Repeat = With.extend("sap.ui.core.util._repeat", {
61
63
  metadata : {
62
- library: "sap.ui.core",
64
+ library : "sap.ui.core",
63
65
  aggregations : {
64
66
  list : {multiple : true, type : "n/a", _doesNotRequireFactory : true}
65
67
  }
@@ -132,6 +134,7 @@ sap.ui.define([
132
134
  oBindingOrContext.getPath(), oBindingOrContext.getContext());
133
135
  }
134
136
 
137
+ // eslint-disable-next-line no-warning-comments
135
138
  /**
136
139
  * Context interface provided by XML template processing as an additional first argument to
137
140
  * any formatter function which opts in to this mechanism. Candidates for such formatter
@@ -273,7 +276,7 @@ sap.ui.define([
273
276
 
274
277
  if (sPath) {
275
278
  oModel = oBindingOrContext.getModel();
276
- if (sPath.charAt(0) !== '/') { // relative path needs a base context
279
+ if (sPath.charAt(0) !== "/") { // relative path needs a base context
277
280
  oBaseContext = oBindingOrContext instanceof Context
278
281
  ? oBindingOrContext
279
282
  : oModel.createBindingContext(oBindingOrContext.getPath(),
@@ -303,6 +306,7 @@ sap.ui.define([
303
306
  */
304
307
  getModel : function (iPart) {
305
308
  var oBindingOrContext = getBindingOrContext(iPart);
309
+
306
310
  return oBindingOrContext && oBindingOrContext.getModel();
307
311
  },
308
312
 
@@ -319,6 +323,7 @@ sap.ui.define([
319
323
  */
320
324
  getPath : function (iPart) {
321
325
  var oBindingOrContext = getBindingOrContext(iPart);
326
+
322
327
  return oBindingOrContext && getPath(oBindingOrContext);
323
328
  },
324
329
 
@@ -349,7 +354,8 @@ sap.ui.define([
349
354
  * @param {sap.ui.core.util._with} oWithControl
350
355
  * the "with" control
351
356
  * @param {object} oBindingInfo
352
- * the binding info
357
+ * the binding info which must be "ready" (because it refers only to models which are
358
+ * available) and normalized via {@link sap.ui.base.BindingIfo.createProperty}
353
359
  * @param {object} mSettings
354
360
  * map/JSON-object with initial property values, etc.
355
361
  * @param {object} oScope
@@ -358,8 +364,7 @@ sap.ui.define([
358
364
  * whether async processing is allowed
359
365
  * @returns {sap.ui.base.SyncPromise|null}
360
366
  * a sync promise which resolves with the property value or is rejected with a corresponding
361
- * error (for example, an error thrown by a formatter), or <code>null</code> in case the
362
- * binding is not ready (because it refers to a model which is not available)
367
+ * error (for example, an error thrown by a formatter)
363
368
  */
364
369
  function getAny(oWithControl, oBindingInfo, mSettings, oScope, bAsync) {
365
370
  var bValueAsPromise = false;
@@ -375,13 +380,8 @@ sap.ui.define([
375
380
  */
376
381
  function prepare(oInfo, i) {
377
382
  var fnFormatter = oInfo.formatter,
378
- oModel,
379
- sModelName = oInfo.model;
380
-
381
- if (oInfo.path && oInfo.path.indexOf(">") > 0) {
382
- sModelName = oInfo.path.slice(0, oInfo.path.indexOf(">"));
383
- }
384
- oModel = oWithControl.getModel(sModelName);
383
+ sModelName = oInfo.model,
384
+ oModel = oWithControl.getModel(sModelName);
385
385
 
386
386
  if (fnFormatter && fnFormatter.requiresIContext === true) {
387
387
  fnFormatter = oInfo.formatter
@@ -394,6 +394,7 @@ sap.ui.define([
394
394
  && (oModel && oModel.$$valueAsPromise || i === undefined && bValueAsPromise)) {
395
395
  oInfo.formatter = function () {
396
396
  var that = this;
397
+
397
398
  return SyncPromise.all(arguments).then(function (aArguments) {
398
399
  return fnFormatter.apply(that, aArguments);
399
400
  });
@@ -409,15 +410,11 @@ sap.ui.define([
409
410
  }
410
411
 
411
412
  try {
412
- if (oBindingInfo.parts) {
413
- oBindingInfo.parts.forEach(prepare);
414
- }
413
+ oBindingInfo.parts.forEach(prepare);
415
414
  prepare(oBindingInfo);
416
415
 
417
416
  oWithControl.bindProperty("any", oBindingInfo);
418
- return oWithControl.getBinding("any")
419
- ? SyncPromise.resolve(oWithControl.getAny())
420
- : null;
417
+ return SyncPromise.resolve(oWithControl.getAny());
421
418
  } catch (e) {
422
419
  return SyncPromise.reject(e);
423
420
  } finally {
@@ -452,7 +449,7 @@ sap.ui.define([
452
449
  *
453
450
  * @param {boolean} bFound
454
451
  * Whether an element was approved by the corresponding callback
455
- * @returns {sap.ui.base.SyncPromise|any}
452
+ * @returns {sap.ui.base.SyncPromise|any|undefined}
456
453
  * First call returns a <code>sap.ui.base.SyncPromise</code> which resolves with a later
457
454
  * call's result.
458
455
  */
@@ -464,6 +461,7 @@ sap.ui.define([
464
461
  if (i < aElements.length) {
465
462
  return fnCallback(aElements[i], i, aElements).then(next);
466
463
  }
464
+ return undefined;
467
465
  }
468
466
 
469
467
  return aElements.length
@@ -917,7 +915,7 @@ sap.ui.define([
917
915
  * @see sap.ui.core.util.XMLPreprocessor.ICallback.getResult
918
916
  * @since 1.39.0
919
917
  */
920
- "with" : function (mVariables, bReplace) {
918
+ with : function (mVariables, bReplace) {
921
919
  var oContext,
922
920
  bHasVariables = false,
923
921
  sName,
@@ -989,7 +987,7 @@ sap.ui.define([
989
987
  * the XML DOM element
990
988
  */
991
989
  function error(sMessage, oElement) {
992
- sMessage = sMessage + serializeSingleElement(oElement);
990
+ sMessage += serializeSingleElement(oElement);
993
991
  Log.error(sMessage, sCaller, sXMLPreprocessor);
994
992
  throw new Error(sCaller + ": " + sMessage);
995
993
  }
@@ -1107,67 +1105,74 @@ sap.ui.define([
1107
1105
  */
1108
1106
  function getResolvedBinding(sValue, oElement, oWithControl, bMandatory,
1109
1107
  fnCallIfConstant) {
1110
- let vParseResult;
1108
+ try {
1109
+ Measurement.average(sPerformanceGetResolvedBinding, "", aPerformanceCategories);
1110
+
1111
+ let vBindingInfo;
1112
+ try {
1113
+ vBindingInfo = BindingParser.complexParser(sValue, oScope, bMandatory, true,
1114
+ true, true, null, /*bResolveTypesAsync*/!oViewInfo.sync);
1115
+ } catch (e) {
1116
+ return SyncPromise.reject(e);
1117
+ }
1111
1118
 
1112
- function resolveBinding (vBindingInfo) {
1113
- let oPromise;
1119
+ let oTypesPromise;
1120
+ if (vBindingInfo) {
1121
+ if (!oViewInfo.sync) {
1122
+ if (vBindingInfo.wait) {
1123
+ oTypesPromise = SyncPromise.resolve(vBindingInfo.resolved);
1124
+ }
1125
+ vBindingInfo = vBindingInfo.bindingInfo;
1126
+ }
1127
+ if (typeof vBindingInfo === "string") {
1128
+ fnCallIfConstant?.();
1129
+ return SyncPromise.resolve(vBindingInfo);
1130
+ }
1131
+ vBindingInfo = BindingInfo.createProperty(vBindingInfo);
1132
+ } else { // in case there is no binding and nothing to unescape
1133
+ fnCallIfConstant?.();
1134
+ return SyncPromise.resolve(sValue);
1135
+ }
1114
1136
 
1115
1137
  if (vBindingInfo.functionsNotFound) {
1116
1138
  if (bMandatory) {
1117
- warn(oElement, 'Function name(s)',
1118
- vBindingInfo.functionsNotFound.join(", "), 'not found');
1139
+ warn(oElement, "Function name(s)",
1140
+ vBindingInfo.functionsNotFound.join(", "), "not found");
1119
1141
  }
1120
- Measurement.end(sPerformanceGetResolvedBinding);
1121
1142
  return null; // treat incomplete bindings as unrelated
1122
1143
  }
1123
1144
 
1124
- if (typeof vBindingInfo === "object") {
1125
- oPromise = getAny(oWithControl, vBindingInfo, mSettings, oScope,
1126
- !oViewInfo.sync);
1127
- if (bMandatory && !oPromise) {
1128
- warn(oElement, 'Binding not ready');
1129
- } else if (oViewInfo.sync && oPromise && oPromise.isPending()) {
1130
- error("Async formatter in sync view in " + sValue + " of ", oElement);
1131
- }
1132
- } else {
1133
- oPromise = SyncPromise.resolve(vBindingInfo);
1134
- if (fnCallIfConstant) { // string
1135
- fnCallIfConstant();
1145
+ const bReady = vBindingInfo.parts.every((oPart) => {
1146
+ return oPart.value !== undefined || oWithControl.getModel(oPart.model);
1147
+ });
1148
+ if (!bReady) {
1149
+ if (bMandatory) {
1150
+ warn(oElement, "Binding not ready");
1136
1151
  }
1152
+ return null;
1137
1153
  }
1138
- Measurement.end(sPerformanceGetResolvedBinding);
1139
1154
 
1140
- return oPromise;
1141
- }
1155
+ const bStaticOnly
1156
+ = vBindingInfo.parts.every((oPart) => oPart.value !== undefined);
1157
+ if (bStaticOnly) {
1158
+ fnCallIfConstant?.();
1159
+ }
1142
1160
 
1143
- Measurement.average(sPerformanceGetResolvedBinding, "", aPerformanceCategories);
1144
- if (oViewInfo.sync) {
1145
- try {
1146
- vParseResult
1147
- = BindingParser.complexParser(sValue, oScope, bMandatory, true, true, true)
1148
- || sValue; // in case there is no binding and nothing to unescape
1149
- } catch (e) {
1150
- return SyncPromise.reject(e);
1161
+ if (!oTypesPromise) {
1162
+ const oPromise = getAny(oWithControl, vBindingInfo, mSettings, oScope,
1163
+ !oViewInfo.sync);
1164
+ if (oViewInfo.sync && oPromise.isPending()) {
1165
+ error("Async formatter in sync view in " + sValue + " of ", oElement);
1166
+ }
1167
+ return oPromise;
1151
1168
  }
1152
- return resolveBinding(vParseResult);
1153
- }
1154
1169
 
1155
- try {
1156
- vParseResult
1157
- = BindingParser.complexParser(sValue, oScope, bMandatory, true, true, true,
1158
- null, true);
1159
- } catch (e) {
1160
- return SyncPromise.reject(e);
1161
- }
1162
- if (!vParseResult) { // no binding and nothing to unescape
1163
- return resolveBinding(sValue);
1164
- }
1165
- if (!vParseResult.wait) { // nothing to wait for
1166
- return resolveBinding(vParseResult.bindingInfo);
1170
+ return oTypesPromise.then(function () {
1171
+ return getAny(oWithControl, vBindingInfo, mSettings, oScope, true);
1172
+ });
1173
+ } finally {
1174
+ Measurement.end(sPerformanceGetResolvedBinding);
1167
1175
  }
1168
- return vParseResult.resolved.then(function (/*no results*/) {
1169
- return resolveBinding(vParseResult.bindingInfo);
1170
- });
1171
1176
  }
1172
1177
 
1173
1178
  /**
@@ -1273,14 +1278,14 @@ sap.ui.define([
1273
1278
  */
1274
1279
  function performTest(oElement, oWithControl) {
1275
1280
  // constant test conditions are suspicious, but useful during development
1276
- var fnCallIfConstant = warn.bind(null, oElement, 'Constant test condition'),
1281
+ var fnCallIfConstant = warn.bind(null, oElement, "Constant test condition"),
1277
1282
  oPromise
1278
1283
  = getResolvedBinding(oElement.getAttribute("test"), oElement, oWithControl,
1279
1284
  true, fnCallIfConstant)
1280
1285
  || SyncPromise.resolve(false);
1281
1286
 
1282
1287
  return oPromise.catch(function (ex) {
1283
- warn(oElement, 'Error in formatter:', ex);
1288
+ warn(oElement, "Error in formatter:", ex);
1284
1289
  // "test == undefined --> false" in debug log
1285
1290
  }).then(function (vTest) {
1286
1291
  var bResult = !!vTest && vTest !== "false";
@@ -1389,12 +1394,12 @@ sap.ui.define([
1389
1394
  var oPromise = getResolvedBinding(oAttribute.value, oElement, oWithControl, false);
1390
1395
 
1391
1396
  if (!oPromise) {
1392
- debug(oElement, 'Binding not ready for attribute', oAttribute.name);
1397
+ debug(oElement, "Binding not ready for attribute", oAttribute.name);
1393
1398
  return oSyncPromiseResolved;
1394
1399
  }
1395
1400
  return oPromise.then(function (vValue) {
1396
- if (vValue === undefined) {
1397
- // if the formatter returns null, the value becomes undefined
1401
+ if (vValue === null || vValue === undefined) {
1402
+ // if the formatter returns null, the value may become undefined
1398
1403
  // (the default value of _With.any)
1399
1404
  debug(oElement, "Removed attribute", oAttribute.name);
1400
1405
  oElement.removeAttributeNode(oAttribute);
@@ -1502,7 +1507,7 @@ sap.ui.define([
1502
1507
 
1503
1508
  return true;
1504
1509
  }, function (ex) {
1505
- warn(oElement, 'Error in formatter:', ex);
1510
+ warn(oElement, "Error in formatter:", ex);
1506
1511
  return true;
1507
1512
  });
1508
1513
  }
@@ -1534,7 +1539,7 @@ sap.ui.define([
1534
1539
  oScope = oOldScope;
1535
1540
  });
1536
1541
  }, function (ex) {
1537
- warn(oElement, 'Error in formatter:', ex);
1542
+ warn(oElement, "Error in formatter:", ex);
1538
1543
  });
1539
1544
  }
1540
1545
 
@@ -1605,8 +1610,8 @@ sap.ui.define([
1605
1610
  error("Missing binding for ", oElement);
1606
1611
  }
1607
1612
  if (oBindingInfo.functionsNotFound) {
1608
- warn(oElement, 'Function name(s)', oBindingInfo.functionsNotFound.join(", "),
1609
- 'not found');
1613
+ warn(oElement, "Function name(s)", oBindingInfo.functionsNotFound.join(", "),
1614
+ "not found");
1610
1615
  }
1611
1616
 
1612
1617
  // set up a scope for the loop variable, so to say
@@ -1754,7 +1759,7 @@ sap.ui.define([
1754
1759
  // Warn and ignore the new "with" control when its binding context is
1755
1760
  // the same as a previous one.
1756
1761
  // We test identity because models cache and reuse binding contexts.
1757
- warn(oElement, 'Set unchanged path:', sResolvedPath);
1762
+ warn(oElement, "Set unchanged path:", sResolvedPath);
1758
1763
  oNewWithControl = oWithControl;
1759
1764
  }
1760
1765
 
@@ -1780,12 +1785,24 @@ sap.ui.define([
1780
1785
  */
1781
1786
  function visitAttribute(oElement, oAttribute, oWithControl) {
1782
1787
  if (fnSupportInfo) {
1783
- fnSupportInfo({context:undefined /*context from node clone*/, env:{caller:"visitAttribute", before: {name: oAttribute.name, value: oAttribute.value}}});
1788
+ fnSupportInfo({
1789
+ context : undefined /*context from node clone*/,
1790
+ env : {
1791
+ caller : "visitAttribute",
1792
+ before : {name : oAttribute.name, value : oAttribute.value}
1793
+ }
1794
+ });
1784
1795
  }
1785
1796
  return resolveAttributeBinding(oElement, oAttribute, oWithControl)
1786
1797
  .then(function () {
1787
1798
  if (fnSupportInfo) {
1788
- fnSupportInfo({context:undefined /*context from node clone*/, env:{caller:"visitAttribute", after: {name: oAttribute.name, value: oAttribute.value}}});
1799
+ fnSupportInfo({
1800
+ context : undefined /*context from node clone*/,
1801
+ env : {
1802
+ caller : "visitAttribute",
1803
+ after : {name : oAttribute.name, value : oAttribute.value}
1804
+ }
1805
+ });
1789
1806
  }
1790
1807
  });
1791
1808
  }
@@ -1859,7 +1876,8 @@ sap.ui.define([
1859
1876
  return visitChildNodes(oNode, oWithControl);
1860
1877
  }).then(function () {
1861
1878
  if (fnSupportInfo) {
1862
- fnSupportInfo({context:oNode, env:{caller:"visitNode", after: {name: oNode.tagName}}});
1879
+ fnSupportInfo({context : oNode,
1880
+ env : {caller : "visitNode", after : {name : oNode.tagName}}});
1863
1881
  }
1864
1882
  });
1865
1883
  }
@@ -1869,7 +1887,8 @@ sap.ui.define([
1869
1887
  return oSyncPromiseResolved;
1870
1888
  }
1871
1889
  if (fnSupportInfo) {
1872
- fnSupportInfo({context:oNode, env:{caller:"visitNode", before: {name: oNode.tagName}}});
1890
+ fnSupportInfo({context : oNode,
1891
+ env : {caller : "visitNode", before : {name : oNode.tagName}}});
1873
1892
  }
1874
1893
  if (oNode.namespaceURI === sNAMESPACE) {
1875
1894
  switch (oNode.localName) {
@@ -1892,9 +1911,7 @@ sap.ui.define([
1892
1911
  switch (oNode.localName) {
1893
1912
  case "ExtensionPoint":
1894
1913
  return templateExtensionPoint(oNode, oWithControl).then(function (bResult) {
1895
- if (bResult) {
1896
- return visitAttributesAndChildren();
1897
- }
1914
+ return bResult ? visitAttributesAndChildren() : undefined;
1898
1915
  });
1899
1916
 
1900
1917
  case "Fragment":
@@ -1965,13 +1982,14 @@ sap.ui.define([
1965
1982
  }
1966
1983
  if (fnSupportInfo) {
1967
1984
  fnSupportInfo({
1968
- context: oRootElement,
1969
- env: {
1970
- caller:"view",
1971
- viewinfo: deepExtend({}, oViewInfo),
1972
- settings: deepExtend({}, mSettings),
1973
- clone: oRootElement.cloneNode(true),
1974
- type: "template"}
1985
+ context : oRootElement,
1986
+ env : {
1987
+ caller : "view",
1988
+ viewinfo : deepExtend({}, oViewInfo),
1989
+ settings : deepExtend({}, mSettings),
1990
+ clone : oRootElement.cloneNode(true),
1991
+ type : "template"
1992
+ }
1975
1993
  });
1976
1994
  }
1977
1995
  return requireFor(oRootElement).then(function () {
@@ -88,6 +88,7 @@ sap.ui.define([
88
88
  }
89
89
  // notify Elements via a pseudo browser event (onLocalizationChanged)
90
90
  if (oObject.isA("sap.ui.core.Element")) {
91
+ oBrowserEvent._bNoReturnValue = true; // localizationChanged handler aren't allowed to return any value, mark for future fatal throw.
91
92
  oObject._handleEvent(oBrowserEvent);
92
93
  }
93
94
  }
@@ -128,4 +129,4 @@ sap.ui.define([
128
129
  };
129
130
 
130
131
  return _LocalizationHelper;
131
- });
132
+ });
@@ -985,35 +985,6 @@ sap.ui.define([
985
985
  return mDelegateInfo;
986
986
  },
987
987
 
988
- /**
989
- * Attaches event on the specified <code>ManagedObject</code>.
990
- * To not rely on globals the function has to be passed in addition to the path.
991
- *
992
- * @abstract
993
- * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
994
- * @param {string} sEventName - Event name
995
- * @param {string} sFunctionPath - Absolute path to a function
996
- * @param {object} vData - Predefined values for event handler function
997
- * @param {function} fnCallback - Callback function that is located at the function path
998
- * @returns {Promise} Resolves when async processing is done
999
- * @public
1000
- */
1001
- attachEvent: function(vControl, sEventName, sFunctionPath, vData, fnCallback) {},
1002
-
1003
- /**
1004
- * Detaches event from the specified ManagedObject.
1005
- * To not rely on globals the function has to be passed in addition to the path.
1006
- *
1007
- * @abstract
1008
- * @param {sap.ui.base.ManagedObject|Element} vControl - Control representation
1009
- * @param {string} sEventName - Event name
1010
- * @param {string} sFunctionPath - Absolute path to a function
1011
- * @param {function} fnCallback - Callback function that is located at the function path
1012
- * @returns {Promise} Resolves when async processing is done
1013
- * @public
1014
- */
1015
- detachEvent: function(vControl, sEventName, sFunctionPath, fnCallback) {},
1016
-
1017
988
  /**
1018
989
  * Returns an object containing parent control, aggregation name and index for controls to be added of the given extension point.
1019
990
  *
@@ -567,32 +567,6 @@ sap.ui.define([
567
567
  return ObjectPath.get(["sap.ui.fl", sType], oCustomData);
568
568
  },
569
569
 
570
- /**
571
- * @inheritDoc
572
- */
573
- attachEvent: function (oObject, sEventName, sFunctionPath, vData, fnCallback) {
574
- return new Promise(function (fnResolve, fnReject) {
575
- if (typeof fnCallback !== "function") {
576
- fnReject(new Error("Can't attach event: fnCallback parameter missing or not a function"));
577
- }
578
- fnResolve(oObject.attachEvent(sEventName, vData, fnCallback));
579
- });
580
- },
581
-
582
- /**
583
- * @inheritDoc
584
- */
585
- detachEvent: function (oObject, sEventName, sFunctionPath, fnCallback) {
586
- return new Promise(function (fnResolve, fnReject) {
587
- if (typeof fnCallback !== "function") {
588
- fnReject(new Error("Can't detach event: fnCallback parameter missing or not a function"));
589
- }
590
- // EventProvider.detachEvent doesn't accept vData parameter, therefore it might lead
591
- // to a situation when an incorrect event listener is detached.
592
- fnResolve(oObject.detachEvent(sEventName, fnCallback));
593
- });
594
- },
595
-
596
570
  /**
597
571
  * @inheritDoc
598
572
  */
@@ -849,62 +849,6 @@ sap.ui.define([
849
849
  return oControl.getAttributeNS("sap.ui.fl", sType);
850
850
  },
851
851
 
852
- /**
853
- * @inheritDoc
854
- */
855
- attachEvent: function(oNode, sEventName, sFunctionPath, vData, fnCallback) {
856
- if (typeof fnCallback !== "function") {
857
- return Promise.reject(new Error("Can't attach event: fnCallback parameter missing or not a function"));
858
- }
859
- return XmlTreeModifier.getProperty(oNode, sEventName)
860
- .then(function (sValue) {
861
- sValue = sValue || "";
862
- var aEventHandlers = EventHandlerResolver.parse(sValue);
863
- var sEventHandler = sFunctionPath;
864
- var aParams = ["$event"];
865
-
866
- if (vData) {
867
- aParams.push(JSON.stringify(vData));
868
- }
869
-
870
- sEventHandler += "(" + aParams.join(",") + ")";
871
-
872
- if (!aEventHandlers.includes(sEventHandler)) {
873
- aEventHandlers.push(sEventHandler);
874
- }
875
-
876
- oNode.setAttribute(sEventName, aEventHandlers.join(";"));
877
- });
878
- },
879
-
880
- /**
881
- * @inheritDoc
882
- */
883
- detachEvent: function(oNode, sEventName, sFunctionPath, fnCallback) {
884
- if (typeof fnCallback !== "function") {
885
- return Promise.reject(new Error("Can't detach event: fnCallback parameter missing or not a function"));
886
- }
887
- return XmlTreeModifier.getProperty(oNode, sEventName)
888
- .then(function (sValue) {
889
- sValue = sValue || "";
890
- var aEventHandlers = EventHandlerResolver.parse(sValue);
891
-
892
- var iEventHandlerIndex = aEventHandlers.findIndex(function (sEventHandler) {
893
- return sEventHandler.includes(sFunctionPath);
894
- });
895
-
896
- if (iEventHandlerIndex > -1) {
897
- aEventHandlers.splice(iEventHandlerIndex, 1);
898
- }
899
-
900
- if (aEventHandlers.length) {
901
- oNode.setAttribute(sEventName, aEventHandlers.join(";"));
902
- } else {
903
- oNode.removeAttribute(sEventName);
904
- }
905
- });
906
- },
907
-
908
852
  /**
909
853
  * @inheritDoc
910
854
  */
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/HTML', '
20
20
  * @class HTMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.121.0
23
+ * @version 1.122.0
24
24
  * @alias sap.ui.core.util.serializer.HTMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/assert"],
21
21
  * @class Serializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.121.0
24
+ * @version 1.122.0
25
25
  * @alias sap.ui.core.util.serializer.Serializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './HTMLViewSerializer', './XMLViewSe
21
21
  * @class ViewSerializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.121.0
24
+ * @version 1.122.0
25
25
  * @alias sap.ui.core.util.serializer.ViewSerializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/XML', 's
20
20
  * @class XMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.121.0
23
+ * @version 1.122.0
24
24
  * @alias sap.ui.core.util.serializer.XMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -17,7 +17,7 @@ sap.ui.define(['sap/ui/base/EventProvider'],
17
17
  * @class Abstract serializer delegate class.
18
18
  * @extends sap.ui.base.EventProvider
19
19
  * @author SAP SE
20
- * @version 1.121.0
20
+ * @version 1.122.0
21
21
  * @alias sap.ui.core.util.serializer.delegate.Delegate
22
22
  * @private
23
23
  * @ui5-restricted sap.watt, com.sap.webide
@@ -19,7 +19,7 @@ sap.ui.define(['./Delegate', "sap/base/strings/hyphenate", "sap/base/util/deepEq
19
19
  * @class HTML serializer delegate class.
20
20
  * @extends sap.ui.core.util.serializer.delegate.Delegate
21
21
  * @author SAP SE
22
- * @version 1.121.0
22
+ * @version 1.122.0
23
23
  * @alias sap.ui.core.util.serializer.delegate.HTML
24
24
  * @private
25
25
  * @ui5-restricted sap.watt, com.sap.webide
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class XML serializer delegate class.
25
25
  * @extends sap.ui.core.util.serializer.delegate.Delegate
26
26
  * @author SAP SE
27
- * @version 1.121.0
27
+ * @version 1.122.0
28
28
  * @alias sap.ui.core.util.serializer.delegate.XML
29
29
  * @private
30
30
  * @ui5-restricted sap.watt, com.sap.webide
@@ -108,7 +108,7 @@ function(
108
108
  *
109
109
  * @extends sap.ui.core.Control
110
110
  * @author SAP SE
111
- * @version 1.121.0
111
+ * @version 1.122.0
112
112
  * @public
113
113
  * @since 1.118.0
114
114
  * @alias sap.ui.core.webc.WebComponent
@@ -23,7 +23,7 @@ function(ElementMetadata, WebComponentRenderer, camelize) {
23
23
  *
24
24
  * @class
25
25
  * @author SAP SE
26
- * @version 1.121.0
26
+ * @version 1.122.0
27
27
  * @since 1.118.0
28
28
  * @experimental Since 1.118.0 The API might change. It is not intended for productive usage yet!
29
29
  * @alias sap.ui.core.webc.WebComponentMetadata