@openui5/sap.ui.core 1.122.1 → 1.123.1

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 (534) hide show
  1. package/.dtsgenrc +7 -1
  2. package/.eslintrc.json +3 -0
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -17
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/Event.js +1 -1
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/future.js +3 -1
  13. package/src/sap/base/i18n/Formatting.js +119 -94
  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/restricted/_CancelablePromise.js +1 -1
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +3 -3
  58. package/src/sap/ui/Global.js +7 -4
  59. package/src/sap/ui/base/BindingInfo.js +22 -0
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/Interface.js +1 -1
  63. package/src/sap/ui/base/ManagedObject.js +5 -14
  64. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  65. package/src/sap/ui/base/Metadata.js +15 -14
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/core/.library +1 -1
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/Component.js +17 -16
  71. package/src/sap/ui/core/ComponentContainer.js +1 -1
  72. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  73. package/src/sap/ui/core/ComponentSupport.js +1 -1
  74. package/src/sap/ui/core/Configuration.js +53 -18
  75. package/src/sap/ui/core/Control.js +1 -1
  76. package/src/sap/ui/core/Core.js +58 -21
  77. package/src/sap/ui/core/CustomData.js +1 -1
  78. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  79. package/src/sap/ui/core/Element.js +1 -1
  80. package/src/sap/ui/core/ElementMetadata.js +1 -1
  81. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  82. package/src/sap/ui/core/EventBus.js +6 -2
  83. package/src/sap/ui/core/Fragment.js +10 -5
  84. package/src/sap/ui/core/HTML.js +1 -1
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -1
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +1 -1
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +37 -21
  99. package/src/sap/ui/core/Manifest.js +1 -1
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/RenderManager.js +7 -1
  102. package/src/sap/ui/core/Renderer.js +4 -1
  103. package/src/sap/ui/core/ResizeHandler.js +1 -1
  104. package/src/sap/ui/core/ScrollBar.js +2 -2
  105. package/src/sap/ui/core/SeparatorItem.js +1 -1
  106. package/src/sap/ui/core/Title.js +1 -1
  107. package/src/sap/ui/core/TooltipBase.js +1 -1
  108. package/src/sap/ui/core/UIArea.js +37 -47
  109. package/src/sap/ui/core/UIComponent.js +1 -1
  110. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  111. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  112. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  113. package/src/sap/ui/core/XMLComposite.js +1 -1
  114. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  115. package/src/sap/ui/core/XMLTemplateProcessor.js +12 -0
  116. package/src/sap/ui/core/_IconRegistry.js +1 -0
  117. package/src/sap/ui/core/date/UI5Date.js +1 -1
  118. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  119. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  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/FormatUtils.js +1 -1
  125. package/src/sap/ui/core/format/NumberFormat.js +28 -3
  126. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  127. package/src/sap/ui/core/getCompatibilityVersion.js +6 -2
  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/HTMLView.js +1 -1
  136. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  137. package/src/sap/ui/core/mvc/JSView.js +1 -1
  138. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  139. package/src/sap/ui/core/mvc/View.js +12 -7
  140. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  141. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  142. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  143. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  144. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  145. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  146. package/src/sap/ui/core/rules/CoreHelper.support.js +2 -3
  147. package/src/sap/ui/core/rules/Misc.support.js +3 -12
  148. package/src/sap/ui/core/rules/Theming.support.js +5 -9
  149. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  150. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  151. package/src/sap/ui/core/service/Service.js +1 -1
  152. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  153. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  154. package/src/sap/ui/core/support/Plugin.js +1 -1
  155. package/src/sap/ui/core/support/Support.js +1 -20
  156. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  157. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  158. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  159. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  160. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  161. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  162. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  163. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  164. package/src/sap/ui/core/themes/base/.theming +3 -1
  165. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  166. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  167. package/src/sap/ui/core/theming/Parameters.js +5 -1
  168. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  169. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  170. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  171. package/src/sap/ui/core/tmpl/Template.js +1 -1
  172. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  173. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  174. package/src/sap/ui/core/util/Export.js +2 -2
  175. package/src/sap/ui/core/util/ExportCell.js +2 -2
  176. package/src/sap/ui/core/util/ExportColumn.js +2 -2
  177. package/src/sap/ui/core/util/ExportRow.js +2 -2
  178. package/src/sap/ui/core/util/ExportType.js +2 -2
  179. package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
  180. package/src/sap/ui/core/util/File.js +1 -1
  181. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  182. package/src/sap/ui/core/util/MockServer.js +1 -1
  183. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  184. package/src/sap/ui/core/util/XMLPreprocessor.js +8 -13
  185. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  186. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  187. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  188. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  189. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  190. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  191. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  192. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  193. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  194. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  195. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  196. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  197. package/src/sap/ui/debug/ControlTree.js +1 -1
  198. package/src/sap/ui/debug/DebugEnv.js +1 -1
  199. package/src/sap/ui/debug/PropertyList.js +1 -1
  200. package/src/sap/ui/dom/jquery/Aria.js +19 -0
  201. package/src/sap/ui/events/jquery/EventExtension.js +4 -3
  202. package/src/sap/ui/model/ClientModel.js +1 -1
  203. package/src/sap/ui/model/CompositeDataState.js +1 -1
  204. package/src/sap/ui/model/CompositeType.js +4 -4
  205. package/src/sap/ui/model/DataState.js +2 -2
  206. package/src/sap/ui/model/ManagedObjectBindingSupport.js +22 -33
  207. package/src/sap/ui/model/MetaModel.js +1 -1
  208. package/src/sap/ui/model/Model.js +1 -1
  209. package/src/sap/ui/model/SelectionModel.js +1 -1
  210. package/src/sap/ui/model/SimpleType.js +1 -1
  211. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  212. package/src/sap/ui/model/Type.js +1 -1
  213. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  214. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +7 -1
  215. package/src/sap/ui/model/json/JSONModel.js +1 -1
  216. package/src/sap/ui/model/message/MessageModel.js +1 -1
  217. package/src/sap/ui/model/odata/AnnotationHelper.js +11 -8
  218. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  219. package/src/sap/ui/model/odata/ODataExpressionAddons.js +21 -0
  220. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  221. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  222. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  223. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  224. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  225. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  226. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  227. package/src/sap/ui/model/odata/type/Date.js +1 -1
  228. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  229. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  230. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  231. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  232. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  233. package/src/sap/ui/model/odata/type/Double.js +1 -1
  234. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  235. package/src/sap/ui/model/odata/type/Int.js +1 -1
  236. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  237. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  238. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  239. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  240. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  241. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  242. package/src/sap/ui/model/odata/type/Single.js +1 -1
  243. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  244. package/src/sap/ui/model/odata/type/String.js +1 -1
  245. package/src/sap/ui/model/odata/type/Time.js +1 -1
  246. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  247. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  248. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  249. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  250. package/src/sap/ui/model/odata/v2/ODataModel.js +17 -48
  251. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  252. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +2 -0
  253. package/src/sap/ui/model/odata/v4/Context.js +66 -22
  254. package/src/sap/ui/model/odata/v4/ODataBinding.js +10 -11
  255. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +207 -180
  256. package/src/sap/ui/model/odata/v4/ODataListBinding.js +75 -52
  257. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +9 -11
  258. package/src/sap/ui/model/odata/v4/ODataModel.js +34 -35
  259. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -9
  260. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +20 -8
  261. package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
  262. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +126 -46
  263. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +56 -11
  264. package/src/sap/ui/model/odata/v4/lib/_Cache.js +21 -34
  265. package/src/sap/ui/model/odata/v4/lib/_Helper.js +16 -27
  266. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +2 -6
  267. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  268. package/src/sap/ui/model/odata/v4/lib/_Parser.js +6 -5
  269. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +49 -38
  270. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +75 -24
  271. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +3 -4
  272. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +4 -12
  273. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
  274. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  275. package/src/sap/ui/model/type/Boolean.js +1 -1
  276. package/src/sap/ui/model/type/Currency.js +48 -4
  277. package/src/sap/ui/model/type/Date.js +1 -1
  278. package/src/sap/ui/model/type/DateInterval.js +1 -1
  279. package/src/sap/ui/model/type/DateTime.js +1 -1
  280. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  281. package/src/sap/ui/model/type/FileSize.js +1 -1
  282. package/src/sap/ui/model/type/Float.js +1 -1
  283. package/src/sap/ui/model/type/Integer.js +1 -1
  284. package/src/sap/ui/model/type/String.js +1 -1
  285. package/src/sap/ui/model/type/Time.js +1 -1
  286. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  287. package/src/sap/ui/model/type/Unit.js +5 -4
  288. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  289. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  290. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +4 -1
  291. package/src/sap/ui/test/ModuleTracking.js +46 -0
  292. package/src/sap/ui/test/OpaBuilder.js +19 -19
  293. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +39 -6
  294. package/src/sap/ui/test/generic/TestBase.js +1 -1
  295. package/src/sap/ui/util/Storage.js +1 -1
  296. package/src/sap/ui/util/_enforceNoReturnValue.js +3 -1
  297. package/src/ui5loader-autoconfig.js +22 -16
  298. package/src/ui5loader.js +38 -1
  299. package/test/sap/ui/core/demokit/docuindex.json +17 -6
  300. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/Component.js +1 -1
  301. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/Controller.controller.js +30 -47
  302. package/test/sap/ui/core/demokit/sample/Messaging/BasicMessages/MessagePopover.fragment.xml +13 -0
  303. package/test/sap/ui/core/demokit/sample/Messaging/BasicMessages/View.view.xml +135 -0
  304. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/manifest.json +2 -2
  305. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/Component.js +1 -1
  306. package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/Controller.controller.js +58 -0
  307. package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/MessagePopover.fragment.xml +13 -0
  308. package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/View.view.xml +57 -0
  309. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/mockserver.js +11 -13
  310. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/manifest.json +2 -2
  311. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/Component.js +1 -1
  312. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/manifest.json +2 -1
  313. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/package.json +1 -1
  314. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +11 -0
  315. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/Component.js +2 -2
  316. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/App.controller.js +12 -0
  317. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/BaseController.js +41 -0
  318. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +54 -0
  319. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/controller/NotFound.controller.js +9 -11
  320. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/fragment/MessagePopover.fragment.xml +13 -0
  321. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/i18n/i18n.properties +9 -0
  322. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/index.html +20 -0
  323. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/index.js +16 -0
  324. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockserver.js +27 -27
  325. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/manifest.json +7 -4
  326. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/view/App.view.xml +1 -1
  327. package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/view/Employee.view.xml +6 -6
  328. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/view/NotFound.view.xml +13 -0
  329. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Types.controller.js +1 -1
  330. package/test/sap/ui/core/demokit/sample/common/Helper.js +8 -9
  331. package/test/sap/ui/core/demokit/sample/common/SandboxModelHelper.js +1 -1
  332. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.html +2 -2
  333. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.html +2 -2
  334. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.html +2 -2
  335. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/Steps.js +4 -5
  336. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.html +2 -2
  337. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  338. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  339. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  340. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  341. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +1 -0
  342. package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/Main.controller.js +1 -1
  343. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ObjectPage.controller.js +2 -2
  344. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +1 -1
  345. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +1 -1
  346. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/MIT.ListBinding.html +1 -1
  347. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.controller.js +5 -7
  348. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.view.xml +2 -2
  349. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/MIT.ListBindingTemplate.html +1 -1
  350. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +3 -3
  351. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +6 -5
  352. package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/ObjectPage.controller.js +5 -7
  353. package/test/sap/ui/core/demokit/sample/odata/v4/Products/MIT.Products.html +2 -2
  354. package/test/sap/ui/core/demokit/sample/odata/v4/Products/pages/Main.js +1 -1
  355. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +27 -9
  356. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/MIT.SalesOrderTP100.html +1 -1
  357. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/MIT.SalesOrderTP100.html +1 -1
  358. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.Basics.html +1 -1
  359. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderAdditionalTargets.html +1 -1
  360. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreate.html +1 -1
  361. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreateMultiple.html +1 -1
  362. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreateRelative.html +1 -1
  363. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderMessageHandling.html +3 -3
  364. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -5
  365. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.view.xml +3 -3
  366. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +7 -9
  367. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/MessageHandling.js +3 -3
  368. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/MIT.RTA.html +2 -2
  369. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/MIT.SalesOrdersTemplate.html +1 -1
  370. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/MIT.Sticky.html +3 -3
  371. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Main.controller.js +3 -3
  372. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/pages/Main.js +1 -1
  373. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  374. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  375. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  377. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  380. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  381. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  383. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  384. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  386. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  387. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  388. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  389. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  390. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  392. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  393. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  394. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  395. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  396. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  397. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  398. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  399. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  400. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  401. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  402. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  403. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  404. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  405. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  406. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  407. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  408. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  409. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  410. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  411. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  412. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  413. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  414. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  415. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -1
  416. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  417. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -1
  418. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  419. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -1
  420. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -1
  421. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  422. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -1
  423. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -1
  424. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  425. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +1 -1
  426. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -1
  427. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  428. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +1 -1
  429. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -1
  430. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  431. package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.view.xml +1 -1
  432. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +12 -3
  433. package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +33 -38
  434. package/test/sap/ui/core/qunit/CustomThemeFallback_unavoidablySync.qunit.js +119 -0
  435. package/test/sap/ui/core/qunit/EventBus.qunit.js +15 -0
  436. package/test/sap/ui/core/qunit/Lib_terminologies.qunit.js +109 -0
  437. package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +19 -0
  438. package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.view.xml +27 -0
  439. package/test/sap/ui/core/qunit/app/ThemeClassParameters.qunit.js +105 -140
  440. package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +75 -2
  441. package/test/sap/ui/core/qunit/base/Config.qunit.js +6 -2
  442. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +4 -1
  443. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +6 -2
  444. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +6 -3
  445. package/test/sap/ui/core/qunit/base/Config_global.qunit.html +5 -2
  446. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +5 -2
  447. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +5 -2
  448. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +5 -1
  449. package/test/sap/ui/core/qunit/base/Config_url.qunit.html +5 -2
  450. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery-without-jquery-ui-position.qunit.html +2 -1
  451. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery.qunit.html +2 -1
  452. package/test/sap/ui/core/qunit/bootstrap/DebugMode.beforeBootstrap.qunit.js +7 -0
  453. package/test/sap/ui/core/qunit/bootstrap/DebugModeAsync.qunit.html +10 -4
  454. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +7 -0
  455. package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +9 -0
  456. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.html +2 -2
  457. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.html +2 -2
  458. package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.html +2 -2
  459. package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +2 -2
  460. package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +2 -2
  461. package/test/sap/ui/core/qunit/gherkin/testHarnessTests.js +1 -1
  462. package/test/sap/ui/core/qunit/i18n/GenericLocaleData.qunit.js +1 -1
  463. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +15 -15
  464. package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +7 -1
  465. package/test/sap/ui/core/qunit/loader/config.qunit.js +14 -6
  466. package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +288 -0
  467. package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +12 -0
  468. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +7 -2
  469. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +225 -40
  470. package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBinding.qunit.js +78 -7
  471. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +142 -17
  472. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +93 -87
  473. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +116 -86
  474. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -3
  475. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1828 -548
  476. package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +1 -1
  477. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +1 -1
  478. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +26 -23
  479. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +9 -0
  480. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +251 -113
  481. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +50 -0
  482. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +3 -3
  483. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +31 -11
  484. package/test/sap/ui/core/qunit/odata/v4/lib/_Parser.qunit.js +8 -2
  485. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +46 -31
  486. package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +144 -45
  487. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +5 -5
  488. package/test/sap/ui/core/qunit/odata/v4/lib/data/v2/QM_INSP_PLAN_SRV/metadata.xml +3 -3
  489. package/test/sap/ui/core/qunit/odata/v4/lib/data/v2/QM_INSP_PLAN_SRV/metadata_only.xml +3 -3
  490. package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +82 -0
  491. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/i18n/i18n_fr.properties +1 -0
  492. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/i18n/terminologies/oil/i18n_fr.properties +2 -0
  493. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/library-preload.js +2 -2
  494. package/test/sap/ui/core/qunit/testdata/uilib-custom-theme-fallback/themes/sap_hcb/library.css +3 -0
  495. package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +19 -1
  496. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +14 -0
  497. package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +37 -20
  498. package/test/sap/ui/core/qunit/types/NumberFormatCurrencies.qunit.js +21 -0
  499. package/test/sap/ui/core/qunit/types/Types.qunit.js +126 -15
  500. package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +58 -4
  501. package/test/sap/ui/core/relnotes/changes-1.122.json +0 -22
  502. package/test/sap/ui/core/relnotes/changes-1.123.json +47 -0
  503. package/test/sap/ui/core/samples/databinding/DataBindingDeclarativeSyntax.js +55 -56
  504. package/test/sap/ui/core/samples/databinding/DatabindingDeclarativeSyntax.html +4 -4
  505. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  506. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  507. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  508. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  509. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  510. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  511. package/test/testsuite/js/testfwk.js +47 -64
  512. package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/MessagePopover.fragment.xml +0 -13
  513. package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/View.view.xml +0 -136
  514. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +0 -74
  515. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/MessagePopover.fragment.xml +0 -13
  516. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/View.view.xml +0 -58
  517. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +0 -11
  518. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/App.controller.js +0 -14
  519. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/BaseController.js +0 -55
  520. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +0 -56
  521. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/fragment/MessagePopover.fragment.xml +0 -13
  522. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/i18n/i18n.properties +0 -5
  523. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +0 -42
  524. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/view/NotFound.view.xml +0 -11
  525. package/test/sap/ui/core/qunit/app/beforeBootstrap.js +0 -19
  526. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +0 -24
  527. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/metadata.xml +0 -0
  528. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/mockdata/Employees.json +0 -0
  529. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/response/ODataErrorResponse.json +0 -0
  530. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/metadata.xml +0 -0
  531. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockdata/Employees.json +0 -0
  532. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockdata/Employees_3.json +0 -0
  533. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/response/ODataErrorResponseTemplate.json +0 -0
  534. /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/response/SAP-Message-Header.json +0 -0
@@ -345,7 +345,7 @@ sap.ui.define([
345
345
  * @returns {object} The target for the annotations
346
346
  */
347
347
  Annotatable.prototype.getTarget = function () {
348
- if (!this.mAnnotationsForTarget) {
348
+ if (!this.mAnnotationsForTarget) { // eslint-disable-line logical-assignment-operators
349
349
  this.mAnnotationsForTarget = this.oConverter.convertedV2Annotations[this.sPath] = {};
350
350
  }
351
351
  return this.mAnnotationsForTarget;
@@ -1465,8 +1465,7 @@ sap.ui.define([
1465
1465
  oToRole = oAssociation.roles[oAssociationSetTo.roleName];
1466
1466
 
1467
1467
  if (oToRole.propertyName) {
1468
- oEntitySet.$NavigationPropertyBinding
1469
- = oEntitySet.$NavigationPropertyBinding || {};
1468
+ oEntitySet.$NavigationPropertyBinding ??= {};
1470
1469
  oEntitySet.$NavigationPropertyBinding[oToRole.propertyName]
1471
1470
  = oAssociationSetTo.entitySetName;
1472
1471
  }
@@ -1526,7 +1525,7 @@ sap.ui.define([
1526
1525
  * @param {object} $$ The prototype for V4MetadataConverter
1527
1526
  */
1528
1527
  (function ($$) {
1529
- // Note: this function is executed at load time only!
1528
+ // Note: this function is run at load time only!
1530
1529
  var oStructuredTypeConfig;
1531
1530
 
1532
1531
  $$.sRootNamespace = sEdmxNamespace;
@@ -160,13 +160,11 @@ sap.ui.define([
160
160
  if (iPrecision > 0) {
161
161
  sPattern += "." + "".padEnd(iPrecision, "S");
162
162
  }
163
- if (!mPattern2Formatter[sPattern]) {
164
- mPattern2Formatter[sPattern] = DateFormat.getDateTimeInstance({
163
+ mPattern2Formatter[sPattern] ??= DateFormat.getDateTimeInstance({
165
164
  calendarType : CalendarType.Gregorian,
166
165
  pattern : sPattern,
167
166
  UTC : true
168
167
  });
169
- }
170
168
  // no need to use UI5Date.getInstance as only UTC is relevant
171
169
  return mPattern2Formatter[sPattern].format(new Date(iTicks)) + sOffset;
172
170
  };
@@ -910,15 +908,9 @@ sap.ui.define([
910
908
  * @private
911
909
  */
912
910
  _V2Requestor.getTypeForName = function (sName) {
913
- var oType;
914
-
915
- this.mTypesByName = this.mTypesByName || {};
916
- oType = this.mTypesByName[sName];
917
- if (!oType) {
918
- oType = this.mTypesByName[sName]
919
- = this.oModelInterface.fetchMetadata("/" + sName).getResult();
920
- }
921
- return oType;
911
+ this.mTypesByName ??= {};
912
+ this.mTypesByName[sName] ??= this.oModelInterface.fetchMetadata("/" + sName).getResult();
913
+ return this.mTypesByName[sName];
922
914
  };
923
915
 
924
916
  /**
@@ -545,7 +545,7 @@ sap.ui.define([
545
545
  * @param {object} $$ The prototype for V4MetadataConverter
546
546
  */
547
547
  (function ($$) {
548
- // Note: this function is executed at load time only!
548
+ // Note: this function is run at load time only!
549
549
  var oActionOrFunctionConfig,
550
550
  oEntitySetConfig,
551
551
  oStructuredTypeConfig;
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  *
228
228
  * @extends sap.ui.model.Model
229
229
  * @public
230
- * @version 1.122.1
230
+ * @version 1.123.1
231
231
  */
232
232
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
233
233
 
@@ -19,7 +19,7 @@ sap.ui.define(["sap/ui/core/Lib", 'sap/ui/model/SimpleType', 'sap/ui/model/Forma
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.122.1
22
+ * @version 1.123.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -8,6 +8,7 @@
8
8
  sap.ui.define([
9
9
  "sap/base/Log",
10
10
  "sap/base/util/each",
11
+ "sap/base/util/extend",
11
12
  "sap/base/util/isEmptyObject",
12
13
  "sap/ui/core/Lib",
13
14
  "sap/ui/core/format/NumberFormat",
@@ -15,7 +16,8 @@ sap.ui.define([
15
16
  "sap/ui/model/FormatException",
16
17
  "sap/ui/model/ParseException",
17
18
  "sap/ui/model/ValidateException"
18
- ], function(Log, each, isEmptyObject, Library, NumberFormat, CompositeType, FormatException, ParseException, ValidateException) {
19
+ ], function(Log, each, extend, isEmptyObject, Library, NumberFormat, CompositeType, FormatException, ParseException,
20
+ ValidateException) {
19
21
  "use strict";
20
22
 
21
23
  /**
@@ -32,7 +34,7 @@ sap.ui.define([
32
34
  * @extends sap.ui.model.CompositeType
33
35
  *
34
36
  * @author SAP SE
35
- * @version 1.122.1
37
+ * @version 1.123.1
36
38
  *
37
39
  * @public
38
40
  * @param {object} [oFormatOptions]
@@ -209,11 +211,15 @@ sap.ui.define([
209
211
 
210
212
  /**
211
213
  * Create formatters used by this type
214
+ *
212
215
  * @private
213
216
  */
214
- Currency.prototype._createFormats = function() {
217
+ Currency.prototype._createFormats = function () {
215
218
  var oSourceOptions = this.oFormatOptions.source;
216
- this.oOutputFormat = NumberFormat.getCurrencyInstance(this.oFormatOptions);
219
+ this.oOutputFormat = NumberFormat.getCurrencyInstance(this.iScale >= 0
220
+ // ensures that amount scale wins over the decimals for the unit
221
+ ? extend({}, {maxFractionDigits : this.iScale}, this.oFormatOptions)
222
+ : this.oFormatOptions);
217
223
  if (oSourceOptions) {
218
224
  if (isEmptyObject(oSourceOptions)) {
219
225
  oSourceOptions = {
@@ -276,6 +282,44 @@ sap.ui.define([
276
282
  return [];
277
283
  };
278
284
 
285
+ /**
286
+ * Gets the indices of the binding parts of this composite type in order to determine those parts
287
+ * whose types are required for formatting.
288
+ * If for example the type of the amount part is a {@link sap.ui.model.odata.type.Decimal} with a
289
+ * <code>scale</code> constraint less than the currency part's decimal places, then the amount's
290
+ * scale is used.
291
+ *
292
+ * @returns {int[]}
293
+ * The indices of the parts with a relevant type for this composite type, or an empty array if
294
+ * the format option <code>showNumber</code> is <code>false</code>
295
+ *
296
+ * @override sap.ui.model.CompositeType#getPartsListeningToTypeChanges
297
+ * @see #processPartTypes
298
+ */
299
+ Currency.prototype.getPartsListeningToTypeChanges = function () {
300
+ // Only the first part is of interest because it may have a type with another scale than the
301
+ // decimal places for the currency part
302
+ return this.bShowNumber ? [0] : [];
303
+ };
304
+
305
+ /**
306
+ * Processes the types of this composite type's parts. Remembers the <code>scale</code>
307
+ * constraint of the amount part's type to consider it while formatting.
308
+ *
309
+ * @param {sap.ui.model.SimpleType[]} aPartTypes The types of the composite binding parts
310
+ *
311
+ * @override sap.ui.model.CompositeType#processPartTypes
312
+ * @protected
313
+ * @since 1.123.0
314
+ */
315
+ Currency.prototype.processPartTypes = function (aPartTypes) {
316
+ const iOldScale = this.iScale;
317
+ this.iScale = aPartTypes[0]?.oConstraints?.scale;
318
+ if (iOldScale !== this.iScale) {
319
+ this._createFormats();
320
+ }
321
+ };
322
+
279
323
  return Currency;
280
324
 
281
325
  });
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.model.SimpleType
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.122.1
30
+ * @version 1.123.1
31
31
  *
32
32
  * @public
33
33
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.CompositeType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.122.1
28
+ * @version 1.123.1
29
29
  *
30
30
  * @alias sap.ui.model.type.DateInterval
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.122.1
22
+ * @version 1.123.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.122.1
22
+ * @version 1.123.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.122.1
28
+ * @version 1.123.1
29
29
  *
30
30
  * @public
31
31
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.122.1
29
+ * @version 1.123.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.122.1
29
+ * @version 1.123.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.122.1
28
+ * @version 1.123.1
29
29
  *
30
30
  * @alias sap.ui.model.type.String
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.122.1
22
+ * @version 1.123.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.122.1
22
+ * @version 1.123.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  *
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.122.1
52
+ * @version 1.123.1
53
53
  *
54
54
  * @public
55
55
  * @param {object} [oFormatOptions]
@@ -139,7 +139,7 @@ sap.ui.define([
139
139
 
140
140
  if (this.iScale >= 0) {
141
141
  // ensures that amount scale wins over the decimals for the unit
142
- oFormatOptionsMerged = extend({}, oFormatOptionsMerged, {maxFractionDigits: this.iScale});
142
+ oFormatOptionsMerged = extend({}, {maxFractionDigits: this.iScale}, oFormatOptionsMerged);
143
143
  }
144
144
  // Only subclasses of the Unit type use a NumberFormat instance cache.
145
145
  // By default a new NumberFormat instance is created everytime.
@@ -247,14 +247,15 @@ sap.ui.define([
247
247
  };
248
248
 
249
249
  /**
250
- * Gets the indices of the binding parts for which this type requires the binding's type for formatting or parsing.
250
+ * Gets the indices of the binding parts of this composite type in order to determine those parts
251
+ * whose types are required for formatting.
251
252
  * If for example the type of the amount part is a {@link sap.ui.model.odata.type.Decimal} with a
252
253
  * <code>scale</scale> constraint less than the unit part's decimal places, then the amount's scale is
253
254
  * used.
254
255
  *
255
256
  * @returns {int[]}
256
257
  * The indices of the parts with a relevant type for this composite type, or an empty array if
257
- * the format option <code>showNumber</code> is falsy
258
+ * the format option <code>showNumber</code> is <code>false</code>
258
259
  *
259
260
  * @override sap.ui.model.CompositeType#getPartsListeningToTypeChanges
260
261
  * @see #processPartTypes
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.122.1
50
+ * @version 1.123.1
51
51
  *
52
52
  * @param {XMLDocument|string} oData
53
53
  * Either the URL where to load the XML from or an XML document
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo", "sap/ui/core/Lib"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.122.1
56
+ * @version 1.123.1
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -10,6 +10,9 @@ sap.ui.define([ 'sap/ui/core/ElementRegistry', 'sap/ui/core/Control', "sap/ui/qu
10
10
  function(ElementRegistry, Control, nextUIUpdate) {
11
11
  "use strict";
12
12
 
13
+ /**
14
+ * @deprecated As of version 1.120, as sync code loading has been deprecated. The calling context must provide QUnit.
15
+ */
13
16
  if ( typeof QUnit === "undefined" ) {
14
17
  sap.ui.requireSync("sap/ui/qunit/qunit-css"); // legacy-relevant - sync fallback when caller did not load QUnit
15
18
  sap.ui.requireSync("sap/ui/thirdparty/qunit"); // legacy-relevant - sync fallback when caller did not load QUnit
@@ -27,7 +30,7 @@ sap.ui.define([ 'sap/ui/core/ElementRegistry', 'sap/ui/core/Control', "sap/ui/qu
27
30
  * @namespace
28
31
  *
29
32
  * @author SAP SE
30
- * @version 1.122.1
33
+ * @version 1.123.1
31
34
  *
32
35
  * @public
33
36
  * @since 1.48.0
@@ -22,6 +22,7 @@
22
22
  var Log,
23
23
  sClassName = "sap.ui.base.SyncPromise",
24
24
  iNo = 0,
25
+ rSearchParamWithoutValue = /(=)(?=&|$)/g,
25
26
  mUncaughtById = {},
26
27
  mUncaughtPromise2Reason = new Map();
27
28
 
@@ -343,12 +344,57 @@
343
344
  }
344
345
  });
345
346
 
347
+ const oParams = new URLSearchParams(document.location.search);
348
+
349
+ // add a button to clear the filter
350
+ if (oParams.has("filter")) {
351
+ const oClearFilter = document.createElement("button");
352
+
353
+ oClearFilter.innerText = "\u2715"; // X
354
+ oClearFilter.addEventListener("click", (ev) => {
355
+ ev.preventDefault();
356
+
357
+ oParams.delete("filter");
358
+ document.location.search = oParams.toString()
359
+ .replace(rSearchParamWithoutValue, '');
360
+
361
+ });
362
+ document.querySelector(".qunit-filter button")
363
+ .insertAdjacentElement("beforeBegin", oClearFilter);
364
+ }
365
+
366
+ // Add a hover effect to buttons (colors inspired by QUnit's own CSS)
367
+ const oStyle = document.createElement('style');
368
+ oStyle.innerText = `
369
+ button:hover {
370
+ background-color: #DDD !important;
371
+ }
372
+ button:focus {
373
+ box-shadow: 0 0 0 2px rgba(94, 116, 11, 0.5) !important;
374
+ }
375
+ `;
376
+ document.head.appendChild(oStyle);
377
+
346
378
  // remember which lines have been covered initially, at load time
347
379
  saveInitialCoverage();
348
380
  });
349
381
 
350
382
  QUnit.done(() => {
351
383
  filterCoverage();
384
+
385
+ // "Run all tests" in "Rerunning selected tests" case: Same href as document, but remove
386
+ // testId
387
+ const oParams = new URLSearchParams(document.location.search);
388
+ if (oParams.has("moduleId")) {
389
+ const oClearFilter = document.querySelector("#qunit-clearFilter");
390
+ if (oClearFilter) {
391
+ oParams.delete("testId");
392
+ const oRunModulesURL = new URL(document.location.href);
393
+ oRunModulesURL.search = oParams.toString()
394
+ .replace(rSearchParamWithoutValue, '');
395
+ oClearFilter.href = oRunModulesURL;
396
+ }
397
+ }
352
398
  });
353
399
  }
354
400
  }());
@@ -255,8 +255,8 @@ sap.ui.define(
255
255
  *
256
256
  * @param {sap.ui.test.Opa5} [oOpaInstance] the Opa5 instance to operate on
257
257
  * @param {sap.ui.test.Opa5.SingleControlSelector|sap.ui.test.Opa5.MultiControlSelector} [oOptions] the initial {@link sap.ui.test.Opa5#waitFor} options
258
- * @returns {sap.ui.test.OpaBuilder} this OpaBuilder instance
259
- * @alias sap.ui.test.OpaBuilder
258
+ * @returns {module:sap/ui/test/OpaBuilder} this OpaBuilder instance
259
+ * @alias module:sap/ui/test/OpaBuilder
260
260
  * @public
261
261
  */
262
262
  var OpaBuilder = function (oOpaInstance, oOptions) {
@@ -292,7 +292,7 @@ sap.ui.define(
292
292
  * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]} [vMatchers] additional matchers to filter target control(s)
293
293
  * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]} [vActions] the actions to be performed on target control(s)
294
294
  * @param {sap.ui.test.Opa5.SingleControlSelector|sap.ui.test.Opa5.MultiControlSelector} [oOptions] oOptions the {@link sap.ui.test.Opa5#waitFor} options to apply
295
- * @returns {sap.ui.test.OpaBuilder} a new OpaBuilder instance
295
+ * @returns {module:sap/ui/test/OpaBuilder} a new OpaBuilder instance
296
296
  * @public
297
297
  * @static
298
298
  */
@@ -503,7 +503,7 @@ sap.ui.define(
503
503
  /**
504
504
  * Adds a matcher that checks whether at least one child fulfilling given matcher(s).
505
505
  *
506
- * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|sap.ui.test.OpaBuilder}
506
+ * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|module:sap/ui/test/OpaBuilder}
507
507
  * [vBuilderOrMatcher] the matchers to filter child items
508
508
  * @param {boolean} [bDirect] specifies if the ancestor should be a direct ancestor (parent)
509
509
  * @returns {this} this OpaBuilder instance
@@ -514,7 +514,7 @@ sap.ui.define(
514
514
  };
515
515
 
516
516
  /**
517
- * Adds a matcher that checks states for given conditions. It is internally using {@link sap.ui.test.OpaBuilder.Matchers.conditional}.
517
+ * Adds a matcher that checks states for given conditions. It is internally using {@link module:sap/ui/test/OpaBuilder#Matchers.conditional}.
518
518
  *
519
519
  * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|boolean} vConditions conditions to pre-check
520
520
  * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|Object} vSuccessMatcher actual matcher that is executed if conditions are met
@@ -527,7 +527,7 @@ sap.ui.define(
527
527
  };
528
528
 
529
529
  /**
530
- * Adds a group of matchers that requires only one of them to actually match. It is internally using {@link sap.ui.test.OpaBuilder.Matchers.some}.
530
+ * Adds a group of matchers that requires only one of them to actually match. It is internally using {@link module:sap/ui/test/OpaBuilder#Matchers.some}.
531
531
  *
532
532
  * @param [aMatchers=[{sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]}]] aMatchers list of matchers where one must be met
533
533
  * @returns {this} this OpaBuilder instance
@@ -630,7 +630,7 @@ sap.ui.define(
630
630
  };
631
631
 
632
632
  /**
633
- * Add an action that is only performed if target control fulfills the conditions. It is internally using {@link sap.ui.test.OpaBuilder.Actions.conditional}.
633
+ * Add an action that is only performed if target control fulfills the conditions. It is internally using {@link module:sap/ui/test/OpaBuilder#Actions.conditional}.
634
634
  *
635
635
  * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|boolean}
636
636
  * vConditions target control is checked against these given conditions
@@ -702,7 +702,7 @@ sap.ui.define(
702
702
  * Executes a builder with matching controls being descendants of matching target control(s).
703
703
  * Children are any controls in the control tree beneath this target control(s).
704
704
  *
705
- * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|sap.ui.test.OpaBuilder} [vChildBuilderOrMatcher] the child builder or child matcher
705
+ * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|module:sap/ui/test/OpaBuilder} [vChildBuilderOrMatcher] the child builder or child matcher
706
706
  * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]}
707
707
  * [vActions] the actions to be performed on matching child items
708
708
  * @param {boolean} [bDirect] specifies if the ancestor should be a direct ancestor (parent)
@@ -742,7 +742,7 @@ sap.ui.define(
742
742
  /**
743
743
  * Adds a success message or function. When providing an OpaBuilder, the action will execute it.
744
744
  *
745
- * @param {string|function|sap.ui.test.OpaBuilder} vSuccess the message that will be shown (or function executed) on success
745
+ * @param {string|function|module:sap/ui/test/OpaBuilder} vSuccess the message that will be shown (or function executed) on success
746
746
  * @param {boolean} [bReplace] true to replace all previous defined success functions, false to add it (default)
747
747
  * @returns {this} this OpaBuilder instance
748
748
  * @public
@@ -797,10 +797,10 @@ sap.ui.define(
797
797
  };
798
798
 
799
799
  /**
800
- * Set the Opa5 instance to be used for {@link sap.ui.test.OpaBuilder#execute}.
800
+ * Set the Opa5 instance to be used for {@link module:sap/ui/test/OpaBuilder#execute}.
801
801
  * Please note that this function does not return the OpaBuilder instance and can therefore not be chained.
802
- * Use the <code>oOpaInstance</code> argument of {@link sap.ui.test.OpaBuilder.create}, {@link sap.ui.test.OpaBuilder#constructor}
803
- * or {@link sap.ui.test.OpaBuilder#execute} to provide the Opa5 instance within the builder chain.
802
+ * Use the <code>oOpaInstance</code> argument of {@link module:sap/ui/test/OpaBuilder#create}, {@link module:sap/ui/test/OpaBuilder#constructor}
803
+ * or {@link module:sap/ui/test/OpaBuilder#execute} to provide the Opa5 instance within the builder chain.
804
804
  * @param {sap.ui.test.Opa5} [oOpaInstance] the Opa5 instance to operate on
805
805
  * @public
806
806
  */
@@ -812,7 +812,7 @@ sap.ui.define(
812
812
  };
813
813
 
814
814
  /**
815
- * Get the Opa5 instance that will be used for {@link sap.ui.test.OpaBuilder#execute}.
815
+ * Get the Opa5 instance that will be used for {@link module:sap/ui/test/OpaBuilder#execute}.
816
816
  * If no {sap.ui.test.Opa5} instance was set before, this function creates a new one lazily.
817
817
  * @returns {sap.ui.test.Opa5} the Opa5 instance
818
818
  * @public
@@ -827,7 +827,7 @@ sap.ui.define(
827
827
  /**
828
828
  * A collection of predefined matchers.
829
829
  * See also {@link sap.ui.test.matchers}
830
- * @namespace sap.ui.test.OpaBuilder.Matchers
830
+ * @namespace module:sap/ui/test/OpaBuilder#Matchers
831
831
  * @public
832
832
  */
833
833
  OpaBuilder.Matchers = {
@@ -1061,7 +1061,7 @@ sap.ui.define(
1061
1061
  * Creates a matcher function that returns all children fulfilling given matcher(s).
1062
1062
  * The result will always be an array, even if only one child was found.
1063
1063
  *
1064
- * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|sap.ui.test.OpaBuilder}
1064
+ * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|module:sap/ui/test/OpaBuilder}
1065
1065
  * [vBuilderOrMatcher] the matchers to filter child items
1066
1066
  * @param {boolean} [bDirect] specifies if the ancestor should be a direct ancestor (parent)
1067
1067
  * @returns {function(sap.ui.core.Element):sap.ui.core.Element[]} matcher function returning all matching children
@@ -1088,7 +1088,7 @@ sap.ui.define(
1088
1088
  /**
1089
1089
  * Creates a matcher function that checks whether one children fulfilling given matcher(s).
1090
1090
  *
1091
- * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|sap.ui.test.OpaBuilder}
1091
+ * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|module:sap/ui/test/OpaBuilder}
1092
1092
  * [vBuilderOrMatcher] the matchers to filter child items
1093
1093
  * @param {boolean} [bDirect] specifies if the ancestor should be a direct ancestor (parent)
1094
1094
  * @returns {function(sap.ui.core.Element):boolean} matcher function
@@ -1352,7 +1352,7 @@ sap.ui.define(
1352
1352
 
1353
1353
  /**
1354
1354
  * A collection of predefined actions. See also {@link sap.ui.test.actions}.
1355
- * @namespace sap.ui.test.OpaBuilder.Actions
1355
+ * @namespace module:sap/ui/test/OpaBuilder#Actions
1356
1356
  * @public
1357
1357
  */
1358
1358
  OpaBuilder.Actions = {
@@ -1394,9 +1394,9 @@ sap.ui.define(
1394
1394
  *
1395
1395
  * @param {sap.ui.test.Opa5.Matcher|sap.ui.test.Opa5.Matcher[]|boolean}
1396
1396
  * vConditions target control is checked against these given conditions
1397
- * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]|sap.ui.test.OpaBuilder}
1397
+ * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]|module:sap/ui/test/OpaBuilder}
1398
1398
  * vSuccessBuilderOrOptions the actions to be performed when conditions are fulfilled
1399
- * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]|sap.ui.test.OpaBuilder}
1399
+ * @param {sap.ui.test.Opa5.Action|sap.ui.test.Opa5.Action[]|module:sap/ui/test/OpaBuilder}
1400
1400
  * [vElseBuilderOptions] the action(s) to be performed when conditions are not fulfilled
1401
1401
  * @returns {function(sap.ui.core.Element)} an action function
1402
1402
  * @public
@@ -5,8 +5,9 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
+ "sap/base/util/extend",
8
9
  "./WaiterBase"
9
- ], function(WaiterBase) {
10
+ ], function(extend, WaiterBase) {
10
11
  "use strict";
11
12
 
12
13
  var oState = {
@@ -15,10 +16,12 @@ sap.ui.define([
15
16
  CANCELLED: "CANCELLED"
16
17
  };
17
18
 
19
+ var iInitiatorId = null;
20
+
18
21
  var JSAnimationWaiter = WaiterBase.extend("sap.ui.test.autowaiter._jsAnimationWaiter", {
19
22
  constructor: function() {
20
23
  WaiterBase.apply(this, arguments);
21
- this._oTrackedAnimations = new Set();
24
+ this._oTrackedAnimations = new Map();
22
25
 
23
26
  if (window.requestAnimationFrame) {
24
27
  var fnOriginalRequestAnimationFrame = window.requestAnimationFrame;
@@ -26,8 +29,13 @@ sap.ui.define([
26
29
  var sId,
27
30
  aCallbackArgs = Array.prototype.slice.call(arguments, 1),
28
31
  wrappedCallback = function(iTimestamp) {
29
- callback(iTimestamp);
30
- this._deregister(sId, oState.EXECUTED);
32
+ iInitiatorId = sId;
33
+ try {
34
+ callback(iTimestamp);
35
+ } finally {
36
+ iInitiatorId = null;
37
+ this._deregister(sId, oState.EXECUTED);
38
+ }
31
39
  }.bind(this);
32
40
 
33
41
  sId = fnOriginalRequestAnimationFrame.apply(null, [wrappedCallback].concat(aCallbackArgs));
@@ -48,7 +56,8 @@ sap.ui.define([
48
56
 
49
57
  _register: function(sId, sReason) {
50
58
  this._oLogger.trace("register", "ID: " + sId + " Reason: " + sReason);
51
- this._oTrackedAnimations.add(sId);
59
+ var iStartTime = this._oTrackedAnimations.get(iInitiatorId)?.startTime || Date.now();
60
+ this._oTrackedAnimations.set(sId, {startTime: iStartTime});
52
61
  },
53
62
 
54
63
  _deregister: function(sId, sReason) {
@@ -56,8 +65,32 @@ sap.ui.define([
56
65
  this._oTrackedAnimations.delete(sId);
57
66
  },
58
67
 
68
+ _getDefaultConfig: function () {
69
+ return extend({
70
+ // animations that exceed the maxDuration will be ignored (considered as background processes)
71
+ maxDuration: 1000 // milliseconds
72
+ }, WaiterBase.prototype._getDefaultConfig.call(this));
73
+ },
74
+
75
+ _getValidationInfo: function () {
76
+ return extend({
77
+ maxDuration: "numeric"
78
+ }, WaiterBase.prototype._getValidationInfo.call(this));
79
+ },
80
+
59
81
  hasPending: function () {
60
- var bHasPending = this._oTrackedAnimations.size > 0;
82
+ var bHasPending = false,
83
+ iMaxDuration = this._getDefaultConfig().maxDuration,
84
+ iElapsedTime;
85
+ for (var oEntry of this._oTrackedAnimations.values()) {
86
+ iElapsedTime = Date.now() - oEntry.startTime;
87
+ // ignore animations that excede the <code>iMaxDuration</code>
88
+ // as these are considered background processes that never end
89
+ if (iElapsedTime < iMaxDuration) {
90
+ bHasPending = true;
91
+ }
92
+ }
93
+
61
94
  this._oLogger.trace("hasPending", bHasPending);
62
95
  if (bHasPending) {
63
96
  this._oHasPendingLogger.debug("jsAnimation in progress");