@openui5/sap.ui.core 1.120.6 → 1.121.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 (1064) hide show
  1. package/.eslintrc.json +5 -3
  2. package/.reuse/dep5 +23 -21
  3. package/THIRDPARTY.txt +6 -43
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +7 -7
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/jquery.sap.trace.js +1 -1
  11. package/src/sap/base/Event.js +1 -1
  12. package/src/sap/base/Eventing.js +1 -1
  13. package/src/sap/base/config.js +1 -1
  14. package/src/sap/base/future.js +57 -0
  15. package/src/sap/base/i18n/Formatting.js +24 -19
  16. package/src/sap/base/i18n/LanguageTag.js +2 -2
  17. package/src/sap/base/i18n/Localization.js +2 -2
  18. package/src/sap/base/i18n/ResourceBundle.js +115 -9
  19. package/src/sap/base/i18n/date/TimezoneUtils.js +5 -6
  20. package/src/sap/base/util/now.js +8 -13
  21. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  22. package/src/sap/base/util/restricted/_castArray.js +1 -1
  23. package/src/sap/base/util/restricted/_compact.js +1 -1
  24. package/src/sap/base/util/restricted/_curry.js +1 -1
  25. package/src/sap/base/util/restricted/_debounce.js +1 -1
  26. package/src/sap/base/util/restricted/_difference.js +1 -1
  27. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  28. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  29. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  30. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_flatten.js +1 -1
  33. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  34. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  35. package/src/sap/base/util/restricted/_intersection.js +1 -1
  36. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  37. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  38. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  39. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  40. package/src/sap/base/util/restricted/_isNil.js +1 -1
  41. package/src/sap/base/util/restricted/_max.js +1 -1
  42. package/src/sap/base/util/restricted/_merge.js +1 -1
  43. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  44. package/src/sap/base/util/restricted/_min.js +1 -1
  45. package/src/sap/base/util/restricted/_omit.js +1 -1
  46. package/src/sap/base/util/restricted/_pick.js +1 -1
  47. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  48. package/src/sap/base/util/restricted/_throttle.js +1 -1
  49. package/src/sap/base/util/restricted/_toArray.js +1 -1
  50. package/src/sap/base/util/restricted/_union.js +1 -1
  51. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  52. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  53. package/src/sap/base/util/restricted/_uniq.js +1 -1
  54. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  55. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  56. package/src/sap/base/util/restricted/_without.js +1 -1
  57. package/src/sap/base/util/restricted/_xor.js +1 -1
  58. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  59. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  60. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  61. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  62. package/src/sap/ui/Device.js +6 -3
  63. package/src/sap/ui/Global.js +16 -15
  64. package/src/sap/ui/VersionInfo.js +15 -3
  65. package/src/sap/ui/base/BindingParser.js +25 -15
  66. package/src/sap/ui/base/DataType.js +21 -13
  67. package/src/sap/ui/base/Event.js +1 -1
  68. package/src/sap/ui/base/EventProvider.js +1 -1
  69. package/src/sap/ui/base/ExpressionParser.js +5 -0
  70. package/src/sap/ui/base/Interface.js +1 -1
  71. package/src/sap/ui/base/ManagedObject.js +25 -14
  72. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  73. package/src/sap/ui/base/Metadata.js +28 -13
  74. package/src/sap/ui/base/Object.js +1 -1
  75. package/src/sap/ui/base/ObjectPool.js +1 -1
  76. package/src/sap/ui/core/.library +8 -7
  77. package/src/sap/ui/core/BusyIndicator.js +1 -1
  78. package/src/sap/ui/core/Component.js +133 -56
  79. package/src/sap/ui/core/ComponentContainer.js +14 -17
  80. package/src/sap/ui/core/ComponentMetadata.js +7 -3
  81. package/src/sap/ui/core/ComponentSupport.js +32 -13
  82. package/src/sap/ui/core/Configuration.js +69 -67
  83. package/src/sap/ui/core/Control.js +34 -19
  84. package/src/sap/ui/core/Core.js +49 -45
  85. package/src/sap/ui/core/CustomData.js +1 -1
  86. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  87. package/src/sap/ui/core/Element.js +6 -8
  88. package/src/sap/ui/core/ElementMetadata.js +35 -20
  89. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  90. package/src/sap/ui/core/EventBus.js +1 -1
  91. package/src/sap/ui/core/ExtensionPoint.js +18 -11
  92. package/src/sap/ui/core/Fragment.js +69 -28
  93. package/src/sap/ui/core/HTML.js +3 -1
  94. package/src/sap/ui/core/History.js +1 -1
  95. package/src/sap/ui/core/Icon.js +1 -1
  96. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  97. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  98. package/src/sap/ui/core/InvisibleMessage.js +145 -125
  99. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  100. package/src/sap/ui/core/InvisibleText.js +6 -1
  101. package/src/sap/ui/core/Item.js +1 -1
  102. package/src/sap/ui/core/LabelEnablement.js +9 -2
  103. package/src/sap/ui/core/LayoutData.js +1 -1
  104. package/src/sap/ui/core/Lib.js +22 -13
  105. package/src/sap/ui/core/ListItem.js +1 -1
  106. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  107. package/src/sap/ui/core/Locale.js +2 -2
  108. package/src/sap/ui/core/LocaleData.js +16 -15
  109. package/src/sap/ui/core/Manifest.js +28 -28
  110. package/src/sap/ui/core/Message.js +1 -1
  111. package/src/sap/ui/core/Messaging.js +4 -4
  112. package/src/sap/ui/core/Popup.js +1 -47
  113. package/src/sap/ui/core/RenderManager.js +1 -1
  114. package/src/sap/ui/core/Renderer.js +12 -7
  115. package/src/sap/ui/core/Rendering.js +49 -42
  116. package/src/sap/ui/core/ResizeHandler.js +1 -1
  117. package/src/sap/ui/core/ScrollBar.js +7 -7
  118. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  119. package/src/sap/ui/core/SeparatorItem.js +1 -1
  120. package/src/sap/ui/core/Shortcut.js +1 -0
  121. package/src/sap/ui/core/ShortcutHintsMixin.js +1 -1
  122. package/src/sap/ui/core/StashedControlSupport.js +39 -40
  123. package/src/sap/ui/core/Theming.js +15 -25
  124. package/src/sap/ui/core/Title.js +1 -1
  125. package/src/sap/ui/core/TooltipBase.js +4 -3
  126. package/src/sap/ui/core/UIArea.js +5 -3
  127. package/src/sap/ui/core/UIComponent.js +6 -4
  128. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  129. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  130. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  131. package/src/sap/ui/core/XMLComposite.js +1 -1
  132. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -1
  133. package/src/sap/ui/core/XMLTemplateProcessor.js +44 -23
  134. package/src/sap/ui/core/cache/CacheManagerNOP.js +0 -1
  135. package/src/sap/ui/core/cldr/ar.json +47 -88
  136. package/src/sap/ui/core/cldr/ar_EG.json +47 -88
  137. package/src/sap/ui/core/cldr/ar_SA.json +48 -89
  138. package/src/sap/ui/core/cldr/bg.json +44 -156
  139. package/src/sap/ui/core/cldr/ca.json +265 -370
  140. package/src/sap/ui/core/cldr/cnr.json +545 -476
  141. package/src/sap/ui/core/cldr/cs.json +33 -467
  142. package/src/sap/ui/core/cldr/cy.json +36 -762
  143. package/src/sap/ui/core/cldr/da.json +43 -146
  144. package/src/sap/ui/core/cldr/de.json +47 -149
  145. package/src/sap/ui/core/cldr/de_AT.json +48 -150
  146. package/src/sap/ui/core/cldr/de_CH.json +86 -187
  147. package/src/sap/ui/core/cldr/el.json +28 -96
  148. package/src/sap/ui/core/cldr/el_CY.json +28 -96
  149. package/src/sap/ui/core/cldr/en.json +66 -27
  150. package/src/sap/ui/core/cldr/en_AU.json +314 -171
  151. package/src/sap/ui/core/cldr/en_GB.json +167 -33
  152. package/src/sap/ui/core/cldr/en_HK.json +57 -30
  153. package/src/sap/ui/core/cldr/en_IE.json +54 -27
  154. package/src/sap/ui/core/cldr/en_IN.json +139 -28
  155. package/src/sap/ui/core/cldr/en_NZ.json +55 -28
  156. package/src/sap/ui/core/cldr/en_PG.json +49 -22
  157. package/src/sap/ui/core/cldr/en_SG.json +51 -24
  158. package/src/sap/ui/core/cldr/en_ZA.json +61 -34
  159. package/src/sap/ui/core/cldr/es.json +25 -130
  160. package/src/sap/ui/core/cldr/es_AR.json +90 -191
  161. package/src/sap/ui/core/cldr/es_BO.json +63 -165
  162. package/src/sap/ui/core/cldr/es_CL.json +100 -202
  163. package/src/sap/ui/core/cldr/es_CO.json +54 -156
  164. package/src/sap/ui/core/cldr/es_MX.json +163 -258
  165. package/src/sap/ui/core/cldr/es_PE.json +65 -167
  166. package/src/sap/ui/core/cldr/es_UY.json +65 -167
  167. package/src/sap/ui/core/cldr/es_VE.json +43 -145
  168. package/src/sap/ui/core/cldr/et.json +44 -144
  169. package/src/sap/ui/core/cldr/fa.json +75 -80
  170. package/src/sap/ui/core/cldr/fi.json +38 -142
  171. package/src/sap/ui/core/cldr/fr.json +28 -22
  172. package/src/sap/ui/core/cldr/fr_BE.json +31 -25
  173. package/src/sap/ui/core/cldr/fr_CA.json +76 -69
  174. package/src/sap/ui/core/cldr/fr_CH.json +41 -35
  175. package/src/sap/ui/core/cldr/fr_LU.json +28 -22
  176. package/src/sap/ui/core/cldr/he.json +37 -426
  177. package/src/sap/ui/core/cldr/hi.json +40 -83
  178. package/src/sap/ui/core/cldr/hr.json +31 -286
  179. package/src/sap/ui/core/cldr/hu.json +46 -140
  180. package/src/sap/ui/core/cldr/id.json +31 -13
  181. package/src/sap/ui/core/cldr/it.json +59 -182
  182. package/src/sap/ui/core/cldr/it_CH.json +65 -188
  183. package/src/sap/ui/core/cldr/ja.json +103 -13
  184. package/src/sap/ui/core/cldr/kk.json +79 -67
  185. package/src/sap/ui/core/cldr/ko.json +29 -10
  186. package/src/sap/ui/core/cldr/lt.json +24 -366
  187. package/src/sap/ui/core/cldr/lv.json +30 -277
  188. package/src/sap/ui/core/cldr/mk.json +103 -198
  189. package/src/sap/ui/core/cldr/ms.json +30 -10
  190. package/src/sap/ui/core/cldr/nb.json +32 -133
  191. package/src/sap/ui/core/cldr/nl.json +37 -167
  192. package/src/sap/ui/core/cldr/nl_BE.json +108 -238
  193. package/src/sap/ui/core/cldr/pl.json +27 -384
  194. package/src/sap/ui/core/cldr/pt.json +37 -145
  195. package/src/sap/ui/core/cldr/pt_PT.json +32 -133
  196. package/src/sap/ui/core/cldr/ro.json +30 -289
  197. package/src/sap/ui/core/cldr/ru.json +27 -75
  198. package/src/sap/ui/core/cldr/ru_UA.json +27 -75
  199. package/src/sap/ui/core/cldr/sk.json +32 -438
  200. package/src/sap/ui/core/cldr/sl.json +131 -535
  201. package/src/sap/ui/core/cldr/sr.json +41 -332
  202. package/src/sap/ui/core/cldr/sr_Latn.json +192 -483
  203. package/src/sap/ui/core/cldr/sv.json +49 -137
  204. package/src/sap/ui/core/cldr/th.json +39 -20
  205. package/src/sap/ui/core/cldr/tr.json +33 -125
  206. package/src/sap/ui/core/cldr/uk.json +310 -252
  207. package/src/sap/ui/core/cldr/vi.json +458 -331
  208. package/src/sap/ui/core/cldr/zh_CN.json +39 -17
  209. package/src/sap/ui/core/cldr/zh_HK.json +49 -27
  210. package/src/sap/ui/core/cldr/zh_SG.json +53 -31
  211. package/src/sap/ui/core/cldr/zh_TW.json +31 -14
  212. package/src/sap/ui/core/date/CalendarUtils.js +11 -9
  213. package/src/sap/ui/core/date/Islamic.js +7 -2
  214. package/src/sap/ui/core/date/UI5Date.js +86 -34
  215. package/src/sap/ui/core/date/UniversalDate.js +16 -26
  216. package/src/sap/ui/core/date/UniversalDateUtils.js +14 -14
  217. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  218. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  219. package/src/sap/ui/core/dnd/DragAndDrop.js +4 -4
  220. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  221. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  222. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  223. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  224. package/src/sap/ui/core/format/DateFormat.js +37 -45
  225. package/src/sap/ui/core/format/FileSizeFormat.js +15 -16
  226. package/src/sap/ui/core/format/FormatUtils.js +36 -0
  227. package/src/sap/ui/core/format/ListFormat.js +4 -4
  228. package/src/sap/ui/core/format/NumberFormat.js +288 -125
  229. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  230. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  231. package/src/sap/ui/core/hyphenation/Hyphenation.js +16 -15
  232. package/src/sap/ui/core/library.js +26 -9
  233. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  234. package/src/sap/ui/core/message/Message.js +5 -5
  235. package/src/sap/ui/core/message/MessageManager.js +1 -1
  236. package/src/sap/ui/core/message/MessageMixin.js +1 -1
  237. package/src/sap/ui/core/message/MessageParser.js +1 -1
  238. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  239. package/src/sap/ui/core/messagebundle_mk.properties +1 -1
  240. package/src/sap/ui/core/mvc/Controller.js +49 -19
  241. package/src/sap/ui/core/mvc/ControllerExtension.js +5 -4
  242. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
  243. package/src/sap/ui/core/mvc/ControllerMetadata.js +3 -3
  244. package/src/sap/ui/core/mvc/EventHandlerResolver.js +6 -8
  245. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  246. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  247. package/src/sap/ui/core/mvc/JSView.js +1 -1
  248. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  249. package/src/sap/ui/core/mvc/View.js +8 -5
  250. package/src/sap/ui/core/mvc/XMLView.js +7 -5
  251. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  252. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  253. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  254. package/src/sap/ui/core/postmessage/Bus.js +5 -3
  255. package/src/sap/ui/core/postmessage/confirmationDialog.js +3 -3
  256. package/src/sap/ui/core/routing/HashChanger.js +21 -10
  257. package/src/sap/ui/core/routing/History.js +5 -5
  258. package/src/sap/ui/core/routing/Route.js +9 -7
  259. package/src/sap/ui/core/routing/Router.js +13 -7
  260. package/src/sap/ui/core/routing/Target.js +1 -1
  261. package/src/sap/ui/core/routing/Targets.js +5 -4
  262. package/src/sap/ui/core/routing/async/Target.js +10 -7
  263. package/src/sap/ui/core/routing/async/Targets.js +3 -3
  264. package/src/sap/ui/core/routing/sync/Target.js +4 -1
  265. package/src/sap/ui/core/rules/Config.support.js +3 -3
  266. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  267. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  268. package/src/sap/ui/core/service/Service.js +1 -1
  269. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  270. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  271. package/src/sap/ui/core/support/Plugin.js +1 -1
  272. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +9 -12
  273. package/src/sap/ui/core/support/Support.js +2 -2
  274. package/src/sap/ui/core/support/ToolsAPI.js +19 -6
  275. package/src/sap/ui/core/support/controls/InteractionTree.js +7 -7
  276. package/src/sap/ui/core/support/plugins/Breakpoint.js +8 -5
  277. package/src/sap/ui/core/support/plugins/ControlTree.js +26 -15
  278. package/src/sap/ui/core/support/plugins/Debugging.js +9 -6
  279. package/src/sap/ui/core/support/plugins/Interaction.js +9 -7
  280. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  281. package/src/sap/ui/core/support/plugins/Performance.js +6 -6
  282. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  283. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  284. package/src/sap/ui/core/support/plugins/Trace.js +4 -3
  285. package/src/sap/ui/core/support/plugins/ViewInfo.js +4 -2
  286. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
  287. package/src/sap/ui/core/support/trace/E2eTraceLib.js +5 -5
  288. package/src/sap/ui/core/themes/base/Icon.less +2 -1
  289. package/src/sap/ui/core/themes/base/base.less +370 -371
  290. package/src/sap/ui/core/theming/Parameters.js +9 -8
  291. package/src/sap/ui/core/theming/ThemeHelper.js +4 -3
  292. package/src/sap/ui/core/theming/ThemeManager.js +8 -6
  293. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  294. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  295. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +6 -3
  296. package/src/sap/ui/core/tmpl/Template.js +1 -1
  297. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  298. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  299. package/src/sap/ui/core/util/Export.js +1 -1
  300. package/src/sap/ui/core/util/ExportCell.js +1 -1
  301. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  302. package/src/sap/ui/core/util/ExportRow.js +1 -1
  303. package/src/sap/ui/core/util/ExportType.js +1 -1
  304. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  305. package/src/sap/ui/core/util/File.js +1 -1
  306. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  307. package/src/sap/ui/core/util/MockServer.js +23 -13
  308. package/src/sap/ui/core/util/PasteHelper.js +3 -3
  309. package/src/sap/ui/core/util/_LocalizationHelper.js +10 -1
  310. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +51 -5
  311. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +2 -2
  312. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -0
  313. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  314. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  315. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  316. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  317. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  318. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  319. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  320. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  321. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  322. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  323. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  324. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  325. package/src/sap/ui/debug/ControlTree.js +6 -6
  326. package/src/sap/ui/debug/DebugEnv.js +1 -1
  327. package/src/sap/ui/debug/PropertyList.js +1 -1
  328. package/src/sap/ui/dom/isBehindOtherElement.js +0 -1
  329. package/src/sap/ui/events/isMouseEventDelayed.js +6 -12
  330. package/src/sap/ui/events/jquery/EventSimulation.js +4 -3
  331. package/src/sap/ui/events/jquery/EventTriggerHook.js +2 -3
  332. package/src/sap/ui/model/Binding.js +1 -1
  333. package/src/sap/ui/model/ClientListBinding.js +2 -0
  334. package/src/sap/ui/model/ClientModel.js +1 -1
  335. package/src/sap/ui/model/ClientTreeBinding.js +1 -0
  336. package/src/sap/ui/model/CompositeDataState.js +1 -1
  337. package/src/sap/ui/model/CompositeType.js +1 -1
  338. package/src/sap/ui/model/DataState.js +1 -1
  339. package/src/sap/ui/model/Filter.js +34 -4
  340. package/src/sap/ui/model/ManagedObjectBindingSupport.js +6 -3
  341. package/src/sap/ui/model/MetaModel.js +1 -1
  342. package/src/sap/ui/model/Model.js +6 -2
  343. package/src/sap/ui/model/SelectionModel.js +1 -1
  344. package/src/sap/ui/model/SimpleType.js +1 -1
  345. package/src/sap/ui/model/Sorter.js +4 -4
  346. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  347. package/src/sap/ui/model/Type.js +1 -1
  348. package/src/sap/ui/model/_Helper.js +4 -2
  349. package/src/sap/ui/model/analytics/AnalyticalBinding.js +9 -0
  350. package/src/sap/ui/model/json/JSONModel.js +6 -2
  351. package/src/sap/ui/model/message/MessageModel.js +1 -1
  352. package/src/sap/ui/model/odata/AnnotationHelper.js +12 -7
  353. package/src/sap/ui/model/odata/ODataAnnotations.js +4 -4
  354. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -3
  355. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -2
  356. package/src/sap/ui/model/odata/ODataMetadata.js +34 -4
  357. package/src/sap/ui/model/odata/ODataModel.js +5 -5
  358. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -2
  359. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -0
  360. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +4 -2
  361. package/src/sap/ui/model/odata/ODataUtils.js +166 -131
  362. package/src/sap/ui/model/odata/type/Boolean.js +9 -7
  363. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  364. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  365. package/src/sap/ui/model/odata/type/Date.js +5 -4
  366. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  367. package/src/sap/ui/model/odata/type/DateTimeBase.js +4 -4
  368. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  369. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +4 -3
  370. package/src/sap/ui/model/odata/type/Decimal.js +5 -5
  371. package/src/sap/ui/model/odata/type/Double.js +4 -3
  372. package/src/sap/ui/model/odata/type/Guid.js +4 -3
  373. package/src/sap/ui/model/odata/type/Int.js +4 -4
  374. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  375. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  376. package/src/sap/ui/model/odata/type/Int64.js +4 -4
  377. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  378. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  379. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  380. package/src/sap/ui/model/odata/type/Single.js +4 -3
  381. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  382. package/src/sap/ui/model/odata/type/String.js +6 -5
  383. package/src/sap/ui/model/odata/type/Time.js +4 -4
  384. package/src/sap/ui/model/odata/type/TimeOfDay.js +5 -4
  385. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  386. package/src/sap/ui/model/odata/type/UnitMixin.js +3 -2
  387. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  388. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -4
  389. package/src/sap/ui/model/odata/v2/ODataModel.js +55 -25
  390. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -4
  391. package/src/sap/ui/model/odata/v4/Context.js +20 -7
  392. package/src/sap/ui/model/odata/v4/ODataBinding.js +11 -5
  393. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +8 -5
  394. package/src/sap/ui/model/odata/v4/ODataListBinding.js +56 -33
  395. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +7 -4
  396. package/src/sap/ui/model/odata/v4/ODataModel.js +25 -15
  397. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +10 -8
  398. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +9 -2
  399. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +4 -4
  400. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +195 -59
  401. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +16 -6
  402. package/src/sap/ui/model/odata/v4/lib/_Cache.js +22 -15
  403. package/src/sap/ui/model/odata/v4/lib/_Helper.js +19 -11
  404. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -11
  405. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +122 -0
  406. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  407. package/src/sap/ui/model/type/Boolean.js +4 -4
  408. package/src/sap/ui/model/type/Currency.js +5 -5
  409. package/src/sap/ui/model/type/Date.js +5 -5
  410. package/src/sap/ui/model/type/DateInterval.js +6 -5
  411. package/src/sap/ui/model/type/DateTime.js +1 -1
  412. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  413. package/src/sap/ui/model/type/FileSize.js +5 -4
  414. package/src/sap/ui/model/type/Float.js +5 -5
  415. package/src/sap/ui/model/type/Integer.js +6 -6
  416. package/src/sap/ui/model/type/String.js +4 -3
  417. package/src/sap/ui/model/type/Time.js +1 -1
  418. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  419. package/src/sap/ui/model/type/Unit.js +8 -7
  420. package/src/sap/ui/model/xml/XMLModel.js +11 -3
  421. package/src/sap/ui/performance/trace/Interaction.js +8 -16
  422. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  423. package/src/sap/ui/qunit/qunit-junit.js +415 -49
  424. package/src/sap/ui/qunit/utils/ControlIterator.js +4 -4
  425. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +3 -2
  426. package/src/sap/ui/qunit/utils/nextUIUpdate.js +15 -5
  427. package/src/sap/ui/test/OpaBuilder.js +3 -1
  428. package/src/sap/ui/test/OpaPlugin.js +103 -10
  429. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +4 -4
  430. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +3 -3
  431. package/src/sap/ui/test/generic/TestBase.js +1 -1
  432. package/src/sap/ui/test/launchers/iFrameLauncher.js +18 -6
  433. package/src/sap/ui/test/matchers/Descendant.js +2 -1
  434. package/src/sap/ui/test/matchers/I18NText.js +6 -2
  435. package/src/sap/ui/test/matchers/Interactable.js +2 -3
  436. package/src/sap/ui/test/matchers/LabelFor.js +5 -3
  437. package/src/sap/ui/test/matchers/Matcher.js +20 -0
  438. package/src/sap/ui/test/matchers/Sibling.js +2 -1
  439. package/src/sap/ui/test/matchers/_Visitor.js +2 -4
  440. package/src/sap/ui/test/qunitPause.js +6 -4
  441. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -3
  442. package/src/sap/ui/test/selectors/_Selector.js +3 -3
  443. package/src/sap/ui/test/starter/_setupAndStart.js +5 -18
  444. package/src/sap/ui/test/starter/_utils.js +15 -1
  445. package/src/sap/ui/test/starter/createSuite.js +2 -0
  446. package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
  447. package/src/sap/ui/thirdparty/crossroads.js +3 -0
  448. package/src/sap/ui/thirdparty/qunit-2.js +1 -2
  449. package/src/sap/ui/thirdparty/qunit-reporter-junit.js +30 -8
  450. package/src/sap/ui/thirdparty/qunit.js +1 -2
  451. package/src/sap/ui/util/Storage.js +1 -1
  452. package/src/ui5loader-autoconfig.js +18 -4
  453. package/src/ui5loader.js +15 -4
  454. package/test/sap/ui/core/DateFormat.controller.js +3 -3
  455. package/test/sap/ui/core/ILabelableInterface.html +21 -0
  456. package/test/sap/ui/core/ILabelableInterface.js +81 -0
  457. package/test/sap/ui/core/NumberFormat.controller.js +4 -4
  458. package/test/sap/ui/core/Strings.controller.js +4 -4
  459. package/test/sap/ui/core/demokit/docuindex.json +8 -2
  460. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  461. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/Component.js +2 -3
  462. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/css/style.css +3 -3
  463. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/categories/Component.js +2 -3
  464. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/products/Component.js +2 -3
  465. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/suppliers/Component.js +2 -3
  466. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/Component.js +20 -0
  467. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/controller/Home.controller.js +14 -0
  468. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/controller/Next.controller.js +21 -0
  469. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/manifest.json +94 -0
  470. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeContentDesktop.fragment.js +15 -0
  471. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeContentMobile.fragment.js +15 -0
  472. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeView.js +45 -0
  473. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/Next.view.xml +15 -0
  474. package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/RootView.js +22 -0
  475. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +5 -4
  476. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +8 -5
  477. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/ValueHelp.js +38 -35
  478. package/test/sap/ui/core/demokit/sample/common/Helper.js +7 -7
  479. package/test/sap/ui/core/demokit/sample/common/SandboxModelHelper.js +1 -1
  480. package/test/sap/ui/core/demokit/sample/common/pages/Any.js +5 -3
  481. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  482. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  483. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  484. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  485. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/DateTime.controller.js +3 -3
  486. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/DateTimeOffset.controller.js +3 -3
  487. package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/Time.controller.js +3 -3
  488. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/Date.controller.js +3 -3
  489. package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/DateTimeOffset.controller.js +3 -3
  490. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/TimeOfDay.controller.js +3 -3
  491. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +10 -0
  492. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +3 -0
  493. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +1 -2
  494. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.view.xml +6 -3
  495. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/formatRowHighlight.js +20 -0
  496. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +30 -24
  497. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +10 -8
  498. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.controller.js +1 -0
  499. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +1 -1
  500. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +6 -0
  501. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +16 -17
  502. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +8 -14
  503. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +65 -31
  504. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +1 -0
  505. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -1
  506. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  507. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  508. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  509. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  510. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  511. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  512. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  513. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  514. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  515. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  516. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  517. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  518. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  519. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  520. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  521. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  522. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  523. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  524. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  525. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  526. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  527. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  528. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  529. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  530. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  531. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  532. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  533. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  534. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  535. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  536. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  537. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  538. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  539. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  540. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  541. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  542. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  543. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +1 -1
  544. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  545. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +1 -1
  546. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  547. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +1 -1
  548. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  549. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +1 -1
  550. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  551. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +1 -1
  552. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  553. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -1
  554. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  555. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -1
  556. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  557. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -1
  558. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  559. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -1
  560. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  561. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -1
  562. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  563. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -1
  564. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  565. package/test/sap/ui/core/internal/samples/odata/twoFields/Main.controller.js +3 -1
  566. package/test/sap/ui/core/internal/samples/odata/twoFields/tests/pages/Main.js +3 -2
  567. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +5 -4
  568. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +4 -6
  569. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +6 -5
  570. package/test/sap/ui/core/qunit/AppCacheBuster.qunit.js +5 -5
  571. package/test/sap/ui/core/qunit/BindingParser.qunit.js +158 -24
  572. package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +3 -6
  573. package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +70 -81
  574. package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +13 -13
  575. package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +5 -4
  576. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +1 -1
  577. package/test/sap/ui/core/qunit/Core.qunit.js +42 -57
  578. package/test/sap/ui/core/qunit/Core_libraryPreloadFiles.qunit.js +10 -2
  579. package/test/sap/ui/core/qunit/Core_libraryPreloadFiles_unavoidablyUsingEval.qunit.js +2 -2
  580. package/test/sap/ui/core/qunit/Core_libraryTerminologies.qunit.js +4 -3
  581. package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +2 -3
  582. package/test/sap/ui/core/qunit/DataBinding.qunit.js +125 -65
  583. package/test/sap/ui/core/qunit/Element_base.qunit.js +4 -1
  584. package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -10
  585. package/test/sap/ui/core/qunit/Element_metadata_renderer.qunit.js +54 -43
  586. package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +1 -1
  587. package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +3 -2
  588. package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +5 -2
  589. package/test/sap/ui/core/qunit/FieldGroup.qunit.js +3 -2
  590. package/test/sap/ui/core/qunit/Fragment.qunit.js +18 -2
  591. package/test/sap/ui/core/qunit/HTML.qunit.js +3 -2
  592. package/test/sap/ui/core/qunit/Hyphenation.qunit.js +30 -6
  593. package/test/sap/ui/core/qunit/Icon.qunit.js +4 -3
  594. package/test/sap/ui/core/qunit/InvisibleText.qunit.js +6 -5
  595. package/test/sap/ui/core/qunit/Lib.qunit.js +156 -15
  596. package/test/sap/ui/core/qunit/ListBinding.qunit.js +7 -42
  597. package/test/sap/ui/core/qunit/QUnit.qunit.js +6 -0
  598. package/test/sap/ui/core/qunit/RenderManager.qunit.js +13 -10
  599. package/test/sap/ui/core/qunit/{CoreEvents.qunit.js → Rendering.qunit.js} +68 -7
  600. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +8 -7
  601. package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +65 -90
  602. package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +706 -0
  603. package/test/sap/ui/core/qunit/StaticBinding.qunit.js +49 -37
  604. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +15 -11
  605. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -5
  606. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +7 -7
  607. package/test/sap/ui/core/qunit/Theming.qunit.js +174 -1
  608. package/test/sap/ui/core/qunit/VersionInfo.qunit.js +3 -0
  609. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +58 -0
  610. package/test/sap/ui/core/qunit/analytics/o4aMetadata.js +3 -0
  611. package/test/sap/ui/core/qunit/app/ThemeClassParameters.qunit.js +4 -4
  612. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +1 -1
  613. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +276 -44
  614. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +173 -26
  615. package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +408 -3
  616. package/test/sap/ui/core/qunit/base/util/now.qunit.js +2 -30
  617. package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.beforeBootstrap.qunit.js +6 -4
  618. package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.qunit.js +4 -4
  619. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +1 -1
  620. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +15 -6
  621. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload_legacyAPIs.qunit.js +2 -3
  622. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +4 -4
  623. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.qunit.js +1 -1
  624. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery.qunit.js +2 -1
  625. package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTask.beforeBootstrap.qunit.js +8 -4
  626. package/test/sap/ui/core/qunit/bootstrap/{CalendarClassLoadingWithCustomBootTaskAndPreload.beforeBootstrap.qunit.js → CalendarClassLoadingWithCustomBootTask.beforeBootstrap_legacy.qunit.js} +5 -1
  627. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +32 -28
  628. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibNotLoaded.qunit.html → ConfigurationFlexibility_LibConfigured_legacyAPIs.qunit.html} +1 -1
  629. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibConfigured.qunit.js → ConfigurationFlexibility_LibConfigured_legacyAPIs.qunit.js} +5 -1
  630. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibConfigured.qunit.html → ConfigurationFlexibility_LibLoaded_legacyAPIs.qunit.html} +1 -1
  631. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibLoaded.qunit.js → ConfigurationFlexibility_LibLoaded_legacyAPIs.qunit.js} +5 -1
  632. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibLoaded.qunit.html → ConfigurationFlexibility_LibNotLoaded_legacyAPIs.qunit.html} +1 -1
  633. package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibNotLoaded.qunit.js → ConfigurationFlexibility_LibNotLoaded_legacyAPIs.qunit.js} +5 -1
  634. package/test/sap/ui/core/qunit/bootstrap/Configuration_language_via_URL.qunit.js +5 -0
  635. package/test/sap/ui/core/qunit/bootstrap/ControlBehavior.qunit.js +5 -0
  636. package/test/sap/ui/core/qunit/bootstrap/DebugMode.beforeBootstrap.qunit.js +2 -2
  637. package/test/sap/ui/core/qunit/bootstrap/DebugMode.qunit.js +8 -8
  638. package/test/sap/ui/core/qunit/bootstrap/PreloadCfg.qunit.js +4 -4
  639. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +11 -10
  640. package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +2 -2
  641. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +68 -13
  642. package/test/sap/ui/core/qunit/compat_legacyAPIs/jquery.sap.stubs.qunit.html +0 -1
  643. package/test/sap/ui/core/qunit/component/Component.qunit.js +40 -21
  644. package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +65 -39
  645. package/test/sap/ui/core/qunit/component/Component_containedInLibrary.qunit.js +25 -6
  646. package/test/sap/ui/core/qunit/component/Manifest.qunit.js +9 -9
  647. package/test/sap/ui/core/qunit/component/Metadata.qunit.js +5 -5
  648. package/test/sap/ui/core/qunit/component/Metadata_unavoidablySync.qunit.js +1 -2
  649. package/test/sap/ui/core/qunit/component/Models.qunit.js +295 -157
  650. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +3 -3
  651. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +3 -4
  652. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
  653. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +3 -4
  654. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +3 -4
  655. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
  656. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +3 -3
  657. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +3 -4
  658. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
  659. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +3 -4
  660. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/i18n/i18n.properties +3 -0
  661. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/manifest.json +3 -1
  662. package/test/sap/ui/core/qunit/component/testdata/v2models/parent/Component.js +1 -4
  663. package/test/sap/ui/core/qunit/component/testdata/v4models/Component.js +1 -2
  664. package/test/sap/ui/core/qunit/component/testdata/v4models/cacheTokens/Component.js +1 -2
  665. package/test/sap/ui/core/qunit/component/testdata/v4models/unsupportedVersion/Component.js +1 -2
  666. package/test/sap/ui/core/qunit/component/testdata/verticalLayout/Component.js +2 -3
  667. package/test/sap/ui/core/qunit/component/testdata/view/Main.controller.js +1 -1
  668. package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +3 -2
  669. package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +0 -1
  670. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +3 -3
  671. package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +2 -1
  672. package/test/sap/ui/core/qunit/format/FormatUtils.qunit.js +36 -0
  673. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +1 -1
  674. package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +2 -2
  675. package/test/sap/ui/core/qunit/i18n/Buddhist.qunit.js +6 -6
  676. package/test/sap/ui/core/qunit/i18n/CalendarUtils.qunit.js +3 -3
  677. package/test/sap/ui/core/qunit/i18n/GenericLocaleData.qunit.js +29 -29
  678. package/test/sap/ui/core/qunit/i18n/Japanese.qunit.js +6 -6
  679. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +92 -78
  680. package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +199 -33
  681. package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +111 -119
  682. package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +12 -38
  683. package/test/sap/ui/core/qunit/i18n/helper/_timezones.js +1 -1
  684. package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +29 -28
  685. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +2 -1
  686. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +3 -9
  687. package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +7 -0
  688. package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +4 -68
  689. package/test/sap/ui/core/qunit/json/JSONBinding.qunit.js +4 -6
  690. package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +0 -1
  691. package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +5 -18
  692. package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +15 -23
  693. package/test/sap/ui/core/qunit/json/JSONTreeBinding.qunit.js +6 -8
  694. package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +11 -13
  695. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.html +0 -2
  696. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +40 -34
  697. package/test/sap/ui/core/qunit/loader/{asyncMode_unavoidablySync.qunit.html → asyncMode_legacyAPIs.qunit.html} +1 -1
  698. package/test/sap/ui/core/qunit/loader/{asyncMode_unavoidablySync.qunit.js → asyncMode_legacyAPIs.qunit.js} +33 -4
  699. package/test/sap/ui/core/qunit/loader/conflictWithRequire.qunit.js +16 -16
  700. package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +2 -2
  701. package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +46 -2
  702. package/test/sap/ui/core/qunit/mockserver/MockServer.qunit.js +859 -245
  703. package/test/sap/ui/core/qunit/mockserver/testsuite.mockserver.qunit.js +8 -0
  704. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +3 -0
  705. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata_ItemCustomer.xml +5 -0
  706. package/test/sap/ui/core/qunit/model/Filter.qunit.js +135 -44
  707. package/test/sap/ui/core/qunit/model/Sorter.qunit.js +10 -10
  708. package/test/sap/ui/core/qunit/model/_Helper.qunit.js +3 -1
  709. package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +11 -3
  710. package/test/sap/ui/core/qunit/mvc/AsyncXMLView.qunit.js +5 -5
  711. package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +73 -47
  712. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +0 -4
  713. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +78 -7
  714. package/test/sap/ui/core/qunit/mvc/testdata/inner.view.xml +3 -0
  715. package/test/sap/ui/core/qunit/mvc/testdata/middle.view.xml +8 -0
  716. package/test/sap/ui/core/qunit/mvc/testdata/outer.view.xml +5 -0
  717. package/test/sap/ui/core/qunit/mvc/testdata/test.controller.js +1 -1
  718. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +3 -3
  719. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncHTMLView_legacyAPIs.qunit.js +6 -7
  720. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncXMLView_legacyAPIs.qunit.js +5 -7
  721. package/test/sap/ui/core/qunit/mvc_legacyAPIs/View_legacyAPIs.qunit.js +46 -1
  722. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +0 -4
  723. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +5 -5
  724. package/test/sap/ui/core/qunit/odata/AnnotationHelper.qunit.js +60 -62
  725. package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +9 -9
  726. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +12 -46
  727. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +4 -3
  728. package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +42 -0
  729. package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +40 -0
  730. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +365 -13
  731. package/test/sap/ui/core/qunit/odata/_AnnotationHelperExpression.qunit.js +7 -7
  732. package/test/sap/ui/core/qunit/odata/type/Boolean.qunit.js +5 -5
  733. package/test/sap/ui/core/qunit/odata/type/Currency.qunit.js +5 -5
  734. package/test/sap/ui/core/qunit/odata/type/Date.qunit.js +11 -11
  735. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +54 -55
  736. package/test/sap/ui/core/qunit/odata/type/DateTimeWithTimezone.qunit.js +8 -8
  737. package/test/sap/ui/core/qunit/odata/type/Decimal.qunit.js +7 -7
  738. package/test/sap/ui/core/qunit/odata/type/Double.qunit.js +7 -7
  739. package/test/sap/ui/core/qunit/odata/type/Int.qunit.js +7 -7
  740. package/test/sap/ui/core/qunit/odata/type/Int64.qunit.js +7 -7
  741. package/test/sap/ui/core/qunit/odata/type/Single.qunit.js +6 -6
  742. package/test/sap/ui/core/qunit/odata/type/Time.qunit.js +7 -7
  743. package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +12 -12
  744. package/test/sap/ui/core/qunit/odata/type/Unit.qunit.js +5 -5
  745. package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +1 -1
  746. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +580 -130
  747. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +79 -20
  748. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +23 -18
  749. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +24 -0
  750. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +25 -203
  751. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +55 -192
  752. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +47 -261
  753. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +9 -9
  754. package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +4 -1
  755. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -5
  756. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +15 -6
  757. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +7 -6
  758. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +142 -30
  759. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +8 -6
  760. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2317 -470
  761. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +12 -4
  762. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +75 -40
  763. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +43 -9
  764. package/test/sap/ui/core/qunit/odata/v4/ODataUtils.qunit.js +7 -7
  765. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +4 -0
  766. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +381 -182
  767. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +46 -29
  768. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +38 -26
  769. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +38 -10
  770. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +45 -4
  771. package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +134 -0
  772. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +7 -7
  773. package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -0
  774. package/test/sap/ui/core/qunit/opa/OpaBuilder.qunit.js +3 -1
  775. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +0 -1
  776. package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -1
  777. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +0 -1
  778. package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +4 -3
  779. package/test/sap/ui/core/qunit/opa/autowaiter/_XHRWaiter.js +1 -1
  780. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -5
  781. package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +20 -12
  782. package/test/sap/ui/core/qunit/opa/fixture/busyAfterStart.html +4 -4
  783. package/test/sap/ui/core/qunit/opa/fixture/emptySite.html +4 -2
  784. package/test/sap/ui/core/qunit/opa/fixture/emptySiteWithOpaExtensions.html +4 -2
  785. package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest-qunit1.html +4 -1
  786. package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest-qunit2.html +4 -1
  787. package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest.js +6 -3
  788. package/test/sap/ui/core/qunit/opa/fixture/miniUI5Site.html +5 -5
  789. package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest-qunit1.html +4 -2
  790. package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest-qunit2.html +4 -2
  791. package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest.js +4 -1
  792. package/test/sap/ui/core/qunit/opa/fixture/opaReportTest-qunit1.html +4 -2
  793. package/test/sap/ui/core/qunit/opa/fixture/opaReportTest-qunit2.html +4 -2
  794. package/test/sap/ui/core/qunit/opa/fixture/opaReportTest.js +4 -1
  795. package/test/sap/ui/core/qunit/opa/fixture/qunitPause-qunit1.html +3 -1
  796. package/test/sap/ui/core/qunit/opa/fixture/qunitPause-qunit2.html +3 -1
  797. package/test/sap/ui/core/qunit/opa/fixture/qunitPause.qunit.js +4 -1
  798. package/test/sap/ui/core/qunit/opa/fixture/uncaughtError.html +4 -3
  799. package/test/sap/ui/core/qunit/opa/fixture/uncaughtError.js +4 -1
  800. package/test/sap/ui/core/qunit/opa/matchers/I18NText.qunit.js +1 -1
  801. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +2 -1
  802. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +2 -1
  803. package/test/sap/ui/core/qunit/opa/opa5/iFrame.qunit.js +6 -5
  804. package/test/sap/ui/core/qunit/opa/opa5/iFrameLogging.qunit.js +26 -6
  805. package/test/sap/ui/core/qunit/opa/opa5/matchersInFrame.qunit.js +1 -1
  806. package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +2 -2
  807. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +3 -3
  808. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +5 -2
  809. package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +3 -2
  810. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +28 -18
  811. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +26 -12
  812. package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +5 -8
  813. package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +71 -64
  814. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +55 -2
  815. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +0 -1
  816. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +5 -1
  817. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +0 -1
  818. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +5 -1
  819. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +0 -1
  820. package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/Component.js +15 -0
  821. package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/manifest.json +37 -0
  822. package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/view/MyView1.view.xml +3 -0
  823. package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/view/RootView.view.xml +3 -0
  824. package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +9 -0
  825. package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +4 -7
  826. package/test/sap/ui/core/qunit/security/Security.qunit.js +133 -0
  827. package/test/sap/ui/core/qunit/service/Service.qunit.js +13 -10
  828. package/test/sap/ui/core/qunit/testdata/libraries/customBundle/custom-bundle.js +2 -2
  829. package/test/sap/ui/core/qunit/testdata/libraries/customBundle/lib2/library-preload.js +1 -1
  830. package/test/sap/ui/core/qunit/testdata/libraries/customBundle/lib3/library-preload.js +1 -1
  831. package/test/sap/ui/core/qunit/testdata/libraries/customCss/lib1/library.js +3 -4
  832. package/test/sap/ui/core/qunit/testdata/libraries/make.js +4 -4
  833. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library-preload.js +7 -4
  834. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library.js +7 -4
  835. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library-preload.json +1 -1
  836. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library.js +7 -4
  837. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library-preload.js +5 -4
  838. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library.js +5 -4
  839. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.js +3 -3
  840. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.json +1 -1
  841. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library.js +3 -3
  842. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library-preload.json +1 -1
  843. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library.js +3 -3
  844. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library-preload.js +3 -3
  845. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library.js +3 -3
  846. package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib7/library.js +3 -3
  847. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library-preload.js +7 -4
  848. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library.js +7 -4
  849. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library-preload.json +1 -1
  850. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library.js +7 -4
  851. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library-preload.js +5 -4
  852. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library.js +5 -4
  853. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.js +3 -3
  854. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.json +1 -1
  855. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library.js +3 -3
  856. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library-preload.json +1 -1
  857. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library.js +3 -3
  858. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library-preload.js +3 -3
  859. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library.js +3 -3
  860. package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib7/library.js +3 -3
  861. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library-preload.js +3 -3
  862. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library.js +3 -3
  863. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library-preload.js +3 -3
  864. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library.js +3 -3
  865. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library-preload.js +3 -3
  866. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library.js +3 -3
  867. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library-preload.js +3 -3
  868. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library.js +3 -3
  869. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library-preload.js +3 -3
  870. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library.js +3 -3
  871. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library-preload.js +3 -3
  872. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library.js +3 -3
  873. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library-preload.js +3 -3
  874. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library.js +3 -3
  875. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library-preload.js +3 -3
  876. package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library.js +3 -3
  877. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library-preload.js +6 -4
  878. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library.js +6 -4
  879. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library-preload.js +3 -3
  880. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library.js +3 -3
  881. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library-preload.json +1 -1
  882. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library.js +7 -4
  883. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library-preload.js +5 -4
  884. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library.js +5 -4
  885. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.js +3 -3
  886. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.json +1 -1
  887. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library.js +3 -3
  888. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library-preload.json +1 -1
  889. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library.js +3 -3
  890. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library-preload.js +3 -3
  891. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library.js +3 -3
  892. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library-preload.js +3 -3
  893. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library.js +3 -3
  894. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library-preload.js +5 -4
  895. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library.js +5 -4
  896. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library-preload.js +5 -4
  897. package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library.js +5 -4
  898. package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library-preload.js +3 -3
  899. package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library.js +3 -3
  900. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library-preload.js +7 -4
  901. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library.js +7 -4
  902. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library-preload.json +1 -1
  903. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library.js +7 -4
  904. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library-preload.js +5 -4
  905. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library.js +5 -4
  906. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.js +3 -3
  907. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.json +1 -1
  908. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library.js +3 -3
  909. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library-preload.json +1 -1
  910. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library.js +3 -3
  911. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library-preload.js +3 -3
  912. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library.js +3 -3
  913. package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib7/library.js +3 -3
  914. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library-preload.js +5 -4
  915. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library.js +5 -4
  916. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library-preload.json +1 -1
  917. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library.js +6 -4
  918. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library-preload.js +3 -3
  919. package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library.js +3 -3
  920. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library-preload.js +5 -4
  921. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library.js +5 -4
  922. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library-preload.json +1 -1
  923. package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library.js +5 -4
  924. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library-preload.js +7 -4
  925. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library.js +7 -4
  926. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library-preload.js +6 -4
  927. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library.js +6 -4
  928. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library-preload.js +5 -4
  929. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library.js +5 -4
  930. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.js +3 -3
  931. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.json +1 -1
  932. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library.js +3 -3
  933. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library-preload.json +1 -1
  934. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library.js +3 -3
  935. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library-preload.js +3 -3
  936. package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library.js +3 -3
  937. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library-preload.json +1 -1
  938. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library.js +3 -3
  939. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library-preload.json +1 -1
  940. package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library.js +3 -3
  941. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.js +3 -3
  942. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.json +1 -1
  943. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library.js +3 -3
  944. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library-preload.json +1 -1
  945. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library.js +3 -3
  946. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library-preload.js +3 -3
  947. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library.js +3 -3
  948. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library-preload.json +1 -1
  949. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library.js +3 -3
  950. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library-preload.js +3 -3
  951. package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library.js +3 -3
  952. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.js +3 -3
  953. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.json +1 -1
  954. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library.js +3 -3
  955. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library-preload.json +1 -1
  956. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library.js +3 -3
  957. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library-preload.js +3 -3
  958. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library.js +3 -3
  959. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library-preload.json +1 -1
  960. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library.js +3 -3
  961. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library-preload.js +3 -3
  962. package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library.js +3 -3
  963. package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library-preload.js +3 -3
  964. package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library.js +3 -3
  965. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/absoluteBundleUrl/library-preload.js +2 -2
  966. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/integration/lib/library-preload.js +1 -1
  967. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/notLoadedYet/library-preload.js +2 -2
  968. package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/library-preload.js +2 -2
  969. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/library.js +6 -4
  970. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/library.js +6 -4
  971. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/library.js +5 -3
  972. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/library.js +5 -3
  973. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/library.js +5 -3
  974. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/library.js +5 -3
  975. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/library.js +5 -3
  976. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/library.js +5 -3
  977. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/library.js +6 -3
  978. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/library.js +6 -4
  979. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/library.js +6 -4
  980. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/library.js +6 -4
  981. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/library.js +6 -4
  982. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/library.js +6 -4
  983. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/library.js +6 -4
  984. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/library.js +6 -4
  985. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/library.js +6 -4
  986. package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require.view.xml +0 -1
  987. package/test/sap/ui/core/qunit/testsuite.qunit.js +2 -2
  988. package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +35 -0
  989. package/test/sap/ui/core/qunit/testsuites/testsuite.eventing.qunit.js +0 -11
  990. package/test/sap/ui/core/qunit/testsuites/testsuite.security.qunit.js +7 -0
  991. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -0
  992. package/test/sap/ui/core/qunit/types/Date.qunit.js +5 -5
  993. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +92 -99
  994. package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +50 -50
  995. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +5 -5
  996. package/test/sap/ui/core/qunit/types/FileSizeFormat.qunit.js +74 -4
  997. package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +332 -166
  998. package/test/sap/ui/core/qunit/types/NumberFormatCurrencies.qunit.js +60 -24
  999. package/test/sap/ui/core/qunit/types/NumberFormatCurrenciesTrailing.qunit.js +21 -21
  1000. package/test/sap/ui/core/qunit/types/Types.qunit.js +51 -48
  1001. package/test/sap/ui/core/qunit/types/ValidationHooks.qunit.js +151 -78
  1002. package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +7 -17
  1003. package/test/sap/ui/core/qunit/{types → ui5classes}/DataType.qunit.js +174 -17
  1004. package/test/sap/ui/core/qunit/{ManagedObjectMetadata.qunit.js → ui5classes/ManagedObjectMetadata.qunit.js} +0 -1
  1005. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +1 -1
  1006. package/test/sap/ui/core/qunit/{ManagedObject_BindingParser.qunit.js → ui5classes/ManagedObject_BindingParser.qunit.js} +1 -1
  1007. package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.html +11 -0
  1008. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +62 -0
  1009. package/test/sap/ui/core/qunit/util/PasteHelper.qunit.js +5 -5
  1010. package/test/sap/ui/core/qunit/util/Popup.qunit.js +3 -71
  1011. package/test/sap/ui/core/qunit/util/ValueStateSupport.qunit.js +3 -3
  1012. package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +6 -0
  1013. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +31 -16
  1014. package/test/sap/ui/core/qunit/util/jquery.sap.trace.qunit.js +1 -1
  1015. package/test/sap/ui/core/qunit/util/postmessage/ConfirmationDialog.qunit.js +4 -6
  1016. package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +11 -2
  1017. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +4 -4
  1018. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +4 -4
  1019. package/test/sap/ui/core/qunit/util/support/SupportTool.qunit.js +3 -2
  1020. package/test/sap/ui/core/qunit/util/support/TechnicalInfo.opa.qunit.js +22 -83
  1021. package/test/sap/ui/core/qunit/util/support/TechnicalInfo.qunit.js +3 -3
  1022. package/test/sap/ui/core/qunit/util/support/TechnicalInfoDebugModules.opa.qunit.js +22 -83
  1023. package/test/sap/ui/core/qunit/xml/XMLBinding.qunit.js +0 -2
  1024. package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +3 -4
  1025. package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +12 -14
  1026. package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +4 -6
  1027. package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +8 -10
  1028. package/test/sap/ui/core/relnotes/changes-1.120.json +0 -490
  1029. package/test/sap/ui/core/relnotes/changes-1.121.json +604 -0
  1030. package/test/sap/ui/core/samples/components/config/modelPreloadAndEarlyRequests/manifest.json +3 -5
  1031. package/test/sap/ui/core/samples/databinding/UnitTable.controller.js +5 -5
  1032. package/test/sap/ui/core/terminologies/App.controller.js +3 -4
  1033. package/test/sap/ui/core/terminologies/main.js +4 -4
  1034. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  1035. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  1036. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  1037. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  1038. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  1039. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  1040. package/test/sap/ui/qunit/testrunner.html +5 -2
  1041. package/test/testsuite/js/samples.js +5 -4
  1042. package/test/testsuite/js/settings.js +1 -1
  1043. package/test/testsuite/js/testframe.js +1 -1
  1044. package/test/testsuite/welcome.html +1 -1
  1045. package/LICENSES/BSD-2-Clause.txt +0 -22
  1046. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Formatter.js +0 -22
  1047. package/test/sap/ui/core/qunit/ManagedObjectRegistry.qunit.js +0 -150
  1048. package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/.library +0 -17
  1049. package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/TestButton.js +0 -85
  1050. package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/TestButtonRenderer.js +0 -63
  1051. package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/library.js +0 -24
  1052. package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/themes/base/library.css +0 -26
  1053. package/test/sap/ui/core/qunit/testsuites/testsuite.managed.object.qunit.html +0 -12
  1054. package/test/sap/ui/core/qunit/testsuites/testsuite.managed.object.qunit.js +0 -76
  1055. /package/test/sap/ui/core/qunit/bootstrap/{DebugMode.qunit.html → DebugModeSync.qunit.html} +0 -0
  1056. /package/test/sap/ui/core/qunit/{types → ui5classes}/AlternativeTypes.qunit.js +0 -0
  1057. /package/test/sap/ui/core/qunit/{ManagedObject.qunit.js → ui5classes/ManagedObject.qunit.js} +0 -0
  1058. /package/test/sap/ui/core/qunit/{ManagedObjectObserver.qunit.js → ui5classes/ManagedObjectObserver.qunit.js} +0 -0
  1059. /package/test/sap/ui/core/qunit/{ManagedObject_forwardAggregation.qunit.js → ui5classes/ManagedObject_forwardAggregation.qunit.js} +0 -0
  1060. /package/test/sap/ui/core/qunit/{ManagedObject_isPropertyInitial.qunit.js → ui5classes/ManagedObject_isPropertyInitial.qunit.js} +0 -0
  1061. /package/test/sap/ui/core/qunit/{Metadata.qunit.js → ui5classes/Metadata.qunit.js} +0 -0
  1062. /package/test/sap/ui/core/qunit/{Object.qunit.js → ui5classes/Object.qunit.js} +0 -0
  1063. /package/test/sap/ui/core/qunit/{Object_legacyAPIs.qunit.js → ui5classes/Object_legacyAPIs.qunit.js} +0 -0
  1064. /package/test/sap/ui/core/qunit/{testdata → ui5classes/fixture}/customboot/common.configure.ui5.js +0 -0
@@ -22,6 +22,7 @@ sap.ui.define([
22
22
  "./ODataTreeBinding",
23
23
  "sap/base/assert",
24
24
  "sap/base/Log",
25
+ "sap/base/i18n/Localization",
25
26
  "sap/base/security/encodeURL",
26
27
  "sap/base/util/deepEqual",
27
28
  "sap/base/util/deepExtend",
@@ -33,7 +34,6 @@ sap.ui.define([
33
34
  "sap/base/util/uid",
34
35
  "sap/base/util/UriParameters",
35
36
  "sap/ui/base/SyncPromise",
36
- "sap/ui/core/Configuration",
37
37
  "sap/ui/core/library",
38
38
  "sap/ui/core/Messaging",
39
39
  "sap/ui/core/message/Message",
@@ -57,8 +57,8 @@ sap.ui.define([
57
57
  "sap/ui/thirdparty/URI",
58
58
  "sap/ui/util/isCrossOriginURL"
59
59
  ], function(_CreatedContextsCache, Context, ODataAnnotations, ODataContextBinding, ODataListBinding,
60
- ODataTreeBinding, assert, Log, encodeURL, deepEqual, deepExtend, each, extend,
61
- isEmptyObject, isPlainObject, merge, uid, UriParameters, SyncPromise, Configuration,
60
+ ODataTreeBinding, assert, Log, Localization, encodeURL, deepEqual, deepExtend, each,
61
+ extend, isEmptyObject, isPlainObject, merge, uid, UriParameters, SyncPromise,
62
62
  coreLibrary, Messaging, Message, MessageParser, Supportability, _Helper, BindingMode,
63
63
  BaseContext, FilterProcessor, Model, CountMode, MessageScope, ODataMetadata, ODataMetaModel,
64
64
  ODataMessageParser, ODataPropertyBinding, ODataUtils, OperationMode, UpdateMethod, OData,
@@ -139,10 +139,9 @@ sap.ui.define([
139
139
  * @param {Object<string,string>} [mParameters.headers]
140
140
  * Map of custom headers (name/value pairs) like {"myHeader":"myHeaderValue",...}
141
141
  * @param {boolean} [mParameters.ignoreAnnotationsFromMetadata]
142
- * <b>Experimental</b> as of version 1.112.0; may change behavior or be removed in future versions.
143
142
  * Whether to ignore all annotations from service metadata, so that they are not available as V4 annotations
144
143
  * in this model's metamodel; see {@link #getMetaModel}. Only annotations from annotation files are loaded;
145
- * see the <code>annotationURI</code> parameter.
144
+ * see the <code>annotationURI</code> parameter. Supported since 1.121.0
146
145
  * @param {boolean} [mParameters.json=true]
147
146
  * If set to <code>true</code>, request payloads will be JSON, XML for <code>false</code>
148
147
  * @param {boolean} [mParameters.loadAnnotationsJoined]
@@ -218,7 +217,7 @@ sap.ui.define([
218
217
  * This model is not prepared to be inherited from.
219
218
  *
220
219
  * @author SAP SE
221
- * @version 1.120.6
220
+ * @version 1.121.0
222
221
  *
223
222
  * @public
224
223
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -507,7 +506,7 @@ sap.ui.define([
507
506
  this.securityTokenAvailable();
508
507
  }
509
508
  }
510
- this.oHeaders["Accept-Language"] = Configuration.getLanguageTag();
509
+ this.oHeaders["Accept-Language"] = Localization.getLanguageTag().toString();
511
510
 
512
511
  // set version to 2.0 because 1.0 does not support e.g. skip/top, inlinecount...
513
512
  // states the version of the Open Data Protocol used by the client to generate the request.
@@ -3153,9 +3152,13 @@ sap.ui.define([
3153
3152
  bUseUndefinedIfUnresolved) {
3154
3153
  var oChangedNode, oCodeListPromise, sCodeListTerm, sDataPath, sKey, oMetaContext,
3155
3154
  oMetaModel, sMetaPath, oOrigNode, sResolvedPath, iSeparator,
3156
- vUnresolvedDefault = bUseUndefinedIfUnresolved ? undefined : null,
3157
- oNode = this.isLegacySyntax() ? this.oData : vUnresolvedDefault;
3155
+ vUnresolvedDefault = bUseUndefinedIfUnresolved ? undefined : null;
3156
+ let oNode = vUnresolvedDefault;
3158
3157
 
3158
+ /** @deprecated As of version 1.88.0 */
3159
+ if (this.isLegacySyntax()) {
3160
+ oNode = this.oData;
3161
+ }
3159
3162
  sResolvedPath = this.resolve(sPath, oContext, this.bCanonicalRequests);
3160
3163
  if (!sResolvedPath && this.bCanonicalRequests) {
3161
3164
  sResolvedPath = this.resolve(sPath, oContext);
@@ -3961,7 +3964,7 @@ sap.ui.define([
3961
3964
  * @param {map} mRequests Request queue
3962
3965
  * @param {string} sGroupId ID of a request group; requests belonging to the same group will be bundled in one batch request
3963
3966
  * @param {string} [sChangeSetId] The changeSet Id
3964
- * @param {oRequest} oRequest The request
3967
+ * @param {object} oRequest The request
3965
3968
  * @param {function} fnSuccess The success callback function
3966
3969
  * @param {function} fnError The error callback function
3967
3970
  * @param {object} requestHandle Handle for the requests
@@ -5226,9 +5229,9 @@ sap.ui.define([
5226
5229
  */
5227
5230
  ODataModel.prototype.create = function(sPath, oData, mParameters) {
5228
5231
  var oRequest, sUrl, oEntityMetadata,
5229
- oContext, fnSuccess, fnError, mUrlParams, mRequests,
5230
- mHeaders, aUrlParams, sEtag, sGroupId, sMethod, sChangeSetId, bRefreshAfterChange,
5231
- bDeferred, that = this, sNormalizedPath, sDeepPath, bCanonical;
5232
+ oContext, fnSuccess, fnError, mUrlParams, mRequests,
5233
+ mHeaders, aUrlParams, sGroupId, sMethod, sChangeSetId, bRefreshAfterChange,
5234
+ bDeferred, that = this, sNormalizedPath, sDeepPath, bCanonical;
5232
5235
 
5233
5236
  // The object parameter syntax has been used.
5234
5237
  if (mParameters) {
@@ -5238,7 +5241,6 @@ sap.ui.define([
5238
5241
  fnError = mParameters.error;
5239
5242
  sGroupId = mParameters.groupId || mParameters.batchGroupId;
5240
5243
  sChangeSetId = mParameters.changeSetId;
5241
- sEtag = mParameters.eTag;
5242
5244
  mHeaders = mParameters.headers;
5243
5245
  bRefreshAfterChange = mParameters.refreshAfterChange;
5244
5246
  bCanonical = mParameters.canonicalRequest;
@@ -5259,7 +5261,7 @@ sap.ui.define([
5259
5261
 
5260
5262
  return this._processRequest(function(requestHandle) {
5261
5263
  sUrl = that._createRequestUrlWithNormalizedPath(sNormalizedPath, aUrlParams, that.bUseBatch);
5262
- oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, oData, sEtag);
5264
+ oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, oData);
5263
5265
  oRequest.created = true;
5264
5266
 
5265
5267
  oEntityMetadata = that.oMetadata._getEntityTypeByPath(sNormalizedPath);
@@ -5815,7 +5817,7 @@ sap.ui.define([
5815
5817
  * @private
5816
5818
  */
5817
5819
  ODataModel.prototype._read = function(sPath, mParameters, bSideEffects) {
5818
- var bCanonical, oContext, fnError, sETag, aFilters, sGroupId, mHeaders, sMethod, oRequest,
5820
+ var bCanonical, oContext, fnError, aFilters, sGroupId, mHeaders, sMethod, oRequest,
5819
5821
  aSorters, fnSuccess, bUpdateAggregatedMessages, aUrlParams, mUrlParams,
5820
5822
  that = this;
5821
5823
 
@@ -5847,7 +5849,6 @@ sap.ui.define([
5847
5849
  mHeaders = this._getHeaders(mHeaders, true);
5848
5850
 
5849
5851
  sMethod = "GET";
5850
- sETag = this._getETag(sPath, oContext);
5851
5852
 
5852
5853
  var oRequestHandle = {
5853
5854
  abort: function() {
@@ -5878,7 +5879,7 @@ sap.ui.define([
5878
5879
 
5879
5880
  sUrl = that._createRequestUrlWithNormalizedPath(sResourcePath, aUrlParams,
5880
5881
  that.bUseBatch);
5881
- oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, null, sETag,
5882
+ oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, null, /*sETag*/undefined,
5882
5883
  undefined, bUpdateAggregatedMessages, bSideEffects);
5883
5884
 
5884
5885
  mRequests = that.mRequests;
@@ -7189,7 +7190,7 @@ sap.ui.define([
7189
7190
  */
7190
7191
  ODataModel.prototype.createEntry = function (sPath, mParameters) {
7191
7192
  var bCanonical, sChangeSetId, oContext, fnCreated, pCreate, fnCreatedPromiseResolve,
7192
- bDeepCreate, sDeepPath, oEntityMetadata, fnError, sETag, sExpand, sGroupId, mHeaders,
7193
+ bDeepCreate, sDeepPath, oEntityMetadata, fnError, sExpand, sGroupId, mHeaders,
7193
7194
  bInactive, bIsCollection, sKey, sNormalizedPath, vProperties, bRefreshAfterChange,
7194
7195
  oRequest, mRequests, fnSuccess, sUrl, aUrlParams, mUrlParams,
7195
7196
  oEntity = {},
@@ -7243,8 +7244,9 @@ sap.ui.define([
7243
7244
  assert(oEntityMetadata, "No Metadata for collection " + sNormalizedPath + " found");
7244
7245
  return undefined;
7245
7246
  }
7247
+ oEntity = bDeepCreate ? {} : that.getForeignKeysFromReferentialConstraints(sNormalizedPath);
7246
7248
  if (typeof vProperties === "object" && !Array.isArray(vProperties)) {
7247
- oEntity = merge({}, vProperties);
7249
+ oEntity = merge(oEntity, vProperties);
7248
7250
  }
7249
7251
  sEntityType = "" + oEntityMetadata.entityType;
7250
7252
  oEntitySetMetadata = that.oMetadata._getEntitySetByType(oEntityMetadata);
@@ -7343,7 +7345,6 @@ sap.ui.define([
7343
7345
  created : {
7344
7346
  changeSetId : sChangeSetId,
7345
7347
  error : fnError,
7346
- eTag : sETag,
7347
7348
  groupId : sGroupId,
7348
7349
  headers : mHeaders,
7349
7350
  key : sNormalizedPath.substring(1), //store path for later POST
@@ -7379,7 +7380,7 @@ sap.ui.define([
7379
7380
  });
7380
7381
  oCreatedContext = addEntityToCacheAndCreateContext();
7381
7382
  sUrl = that._createRequestUrlWithNormalizedPath(sNormalizedPath, aUrlParams, that.bUseBatch);
7382
- oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, oEntity, sETag);
7383
+ oRequest = that._createRequest(sUrl, sDeepPath, sMethod, mHeaders, oEntity);
7383
7384
 
7384
7385
  if (sExpand) {
7385
7386
  mExpandHeaders = that._getHeaders(undefined, true);
@@ -7433,7 +7434,6 @@ sap.ui.define([
7433
7434
  fnSuccess = mParameters.success;
7434
7435
  fnError = mParameters.error;
7435
7436
  fnCreated = mParameters.created;
7436
- sETag = mParameters.eTag;
7437
7437
  mHeaders = mParameters.headers;
7438
7438
  mUrlParams = mParameters.urlParameters;
7439
7439
  bRefreshAfterChange = mParameters.refreshAfterChange;
@@ -7472,6 +7472,36 @@ sap.ui.define([
7472
7472
  return undefined;
7473
7473
  };
7474
7474
 
7475
+ /**
7476
+ * Gets an object with the values for the foreign keys defined by referential constraints for the given path.
7477
+ *
7478
+ * @param {string} sNormalizedPath
7479
+ * The absolute normalized path to create an entity, see {@link #_normalizePath}
7480
+ * @returns {Object<string, any>}
7481
+ * An object containing the values from the parent entity for the properties defined in the association's
7482
+ * referential constraints; if there are no referential constraints defined an empty object is returned
7483
+ * @private
7484
+ */
7485
+ ODataModel.prototype.getForeignKeysFromReferentialConstraints = function (sNormalizedPath) {
7486
+ const mSplitPath = this.oMetadata._splitByLastNavigationProperty(sNormalizedPath);
7487
+
7488
+ if (mSplitPath.lastNavigationProperty) {
7489
+ // check referential constraints
7490
+ const oParentEntityType = this.oMetadata._getEntityTypeByName(mSplitPath.pathBeforeLastNavigationProperty);
7491
+ const mSource2TargetProperty = this.oMetadata._getReferentialConstraintsMapping(oParentEntityType,
7492
+ mSplitPath.lastNavigationProperty.slice(1));
7493
+ const oData = this._getObject(mSplitPath.pathBeforeLastNavigationProperty);
7494
+ if (oData) {
7495
+ return Object.keys(mSource2TargetProperty).reduce((oResult, sSourcePropertyName) => {
7496
+ if (oData[sSourcePropertyName]) {
7497
+ oResult[mSource2TargetProperty[sSourcePropertyName]] = oData[sSourcePropertyName];
7498
+ }
7499
+ return oResult;
7500
+ }, {});
7501
+ }
7502
+ }
7503
+ return {};
7504
+ };
7475
7505
  /**
7476
7506
  * Returns whether the given entity has been created using createEntry.
7477
7507
  * @param {object} oEntity The entity to check
@@ -7827,9 +7857,9 @@ sap.ui.define([
7827
7857
  /**
7828
7858
  * Sets the {@link sap.ui.core.message.MessageParser} that is invoked upon every back-end request.
7829
7859
  *
7830
- * This message parser analyzes the response and notifies {@link sap.ui.core.Messaging} about added and deleted messages.
7860
+ * This message parser analyzes the response and notifies {@link module:sap/ui/core/Messaging} about added and deleted messages.
7831
7861
  *
7832
- * @param {object|null} [oParser] The {@link sap.ui.core.message.MessageParser} instance that parses the responses and adds messages to {@link sap.ui.core.Messaging}
7862
+ * @param {object|null} [oParser] The {@link sap.ui.core.message.MessageParser} instance that parses the responses and adds messages to {@link module:sap/ui/core/Messaging}
7833
7863
  * @return {this} Model instance for method chaining
7834
7864
  */
7835
7865
  ODataModel.prototype.setMessageParser = function(oParser) {
@@ -102,7 +102,7 @@ sap.ui.define([
102
102
  * @extends sap.ui.model.TreeBinding
103
103
  * @hideconstructor
104
104
  * @public
105
- * @version 1.120.6
105
+ * @version 1.121.0
106
106
  */
107
107
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
108
108
 
@@ -1999,7 +1999,8 @@ sap.ui.define([
1999
1999
  aNavPath.splice(0,1);
2000
2000
  }
2001
2001
 
2002
- var oRef = this.oModel._getObject(sPath);
2002
+ const oModel = this.getModel();
2003
+ var oRef = oModel._getObject(sPath);
2003
2004
  if (Array.isArray(oRef)) {
2004
2005
  this.oKeys[sPath] = oRef;
2005
2006
  this.oLengths[sPath] = oRef.length;
@@ -2012,8 +2013,8 @@ sap.ui.define([
2012
2013
  if (sNavPath && oObject[sNavPath]) {
2013
2014
  if (Array.isArray(oRef)) {
2014
2015
  oRef.forEach(function(sRef) {
2015
- var oObject = that.getModel().getData("/" + sRef);
2016
- that._processODataObject(oObject, "/" + sRef + "/" + sNavPath, aNavPath.join("/"));
2016
+ that._processODataObject(oModel.getProperty("/" + sRef), "/" + sRef + "/" + sNavPath,
2017
+ aNavPath.join("/"));
2017
2018
  });
2018
2019
  } else if (typeof oRef === "object") {
2019
2020
  that._processODataObject(oObject, sPath + "/" + sNavPath, aNavPath.join("/"));
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.120.6
45
+ * @version 1.121.0
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -258,7 +258,9 @@ sap.ui.define([
258
258
  * you can use <code>null</code> to prevent the DELETE request in case of a kept-alive context
259
259
  * that is not in the collection and of which you know that it does not exist on the server
260
260
  * anymore (for example, a draft after activation). Since 1.108.0 the usage of a group ID with
261
- * {@link sap.ui.model.odata.v4.SubmitMode.API} is possible.
261
+ * {@link sap.ui.model.odata.v4.SubmitMode.API} is possible. Since 1.121.0, you can use the
262
+ * '$single' group ID to send a DELETE request as fast as possible; it will be wrapped in a
263
+ * batch request as for a '$auto' group.
262
264
  * @param {boolean} [bDoNotRequestCount]
263
265
  * Whether not to request the new count from the server; useful in case of
264
266
  * {@link #replaceWith} where it is known that the count remains unchanged (since 1.97.0).
@@ -323,7 +325,7 @@ sap.ui.define([
323
325
  oEditUrlPromise = SyncPromise.resolve();
324
326
  bDoNotRequestCount = true;
325
327
  } else {
326
- _Helper.checkGroupId(sGroupId);
328
+ _Helper.checkGroupId(sGroupId, false, true);
327
329
  oEditUrlPromise = this.fetchCanonicalPath().then(function (sCanonicalPath) {
328
330
  return sCanonicalPath.slice(1);
329
331
  });
@@ -367,7 +369,7 @@ sap.ui.define([
367
369
  this.fnOnBeforeDestroy = undefined;
368
370
  fnOnBeforeDestroy();
369
371
  }
370
- this.oModel.getDependentBindings(this).forEach(function (oDependentBinding) {
372
+ this.oModel?.getDependentBindings(this).forEach(function (oDependentBinding) {
371
373
  oDependentBinding.setContext(undefined);
372
374
  });
373
375
  this.oBinding = undefined;
@@ -710,7 +712,7 @@ sap.ui.define([
710
712
  Context.prototype.getAndRemoveCollection = function (sPath) {
711
713
  return this.withCache(function (oCache, sCachePath) {
712
714
  return oCache.getAndRemoveCollection(sCachePath);
713
- }, sPath, true).getResult();
715
+ }, sPath, true).unwrap();
714
716
  };
715
717
 
716
718
  /**
@@ -1197,7 +1199,8 @@ sap.ui.define([
1197
1199
  * must happen while this move is pending! Omitting a new parent turns this node into a root
1198
1200
  * node (since 1.121.0).
1199
1201
  *
1200
- * This context's {@link #getIndex index} may change and it becomes "created persisted", with
1202
+ * This context's {@link #getIndex index} may change and, in case of
1203
+ * <code>oAggregation.expandTo : 1</code>, it becomes "created persisted", with
1201
1204
  * {@link #isTransient} returning <code>false</code> etc.
1202
1205
  *
1203
1206
  * @param {object} [oParameters] - A parameter object
@@ -1376,7 +1379,14 @@ sap.ui.define([
1376
1379
  * The header context of a list binding only delivers <code>$count</code> (wrapped in an object
1377
1380
  * if <code>sPath</code> is "").
1378
1381
  *
1379
- * If you want {@link #requestObject} to read fresh data, call {@link #refresh} first.
1382
+ * In case of a {@link sap.ui.model.odata.v4.ODataContextBinding#getBoundContext context
1383
+ * binding's bound context} that hasn't requested its data yet, this method causes an initial
1384
+ * back-end request using the binding's $expand and $select. Once any binding has requested its
1385
+ * data, this method does <strong>not</strong> cause requests anymore. If you want to read fresh
1386
+ * data, call {@link #refresh} first. In contrast to {@link #requestProperty}, it is
1387
+ * <strong>not</strong> possible to cause additional property requests. Access is only to the
1388
+ * data the context points to (or any part thereof), as defined by the binding's $expand and
1389
+ * $select (unless this is a header context, see above).
1380
1390
  *
1381
1391
  * @param {string} [sPath=""]
1382
1392
  * A path relative to this context
@@ -1772,6 +1782,9 @@ sap.ui.define([
1772
1782
  break;
1773
1783
  }
1774
1784
  if (!oBinding.getBoundContext) {
1785
+ if (oBinding.oCache === undefined) {
1786
+ return undefined; // nothing to do - looks like a refresh in progress
1787
+ }
1775
1788
  throw new Error("Not a context binding: " + oBinding);
1776
1789
  }
1777
1790
  oCandidate = oParentContext;
@@ -546,13 +546,19 @@ sap.ui.define([
546
546
  // for a virtual context or if below a transient context
547
547
  if (!that.prepareDeepCreate(oContext, mQueryOptions)) {
548
548
  return that.fetchResourcePath(oContext).then(function (sResourcePath) {
549
- var oError;
550
-
551
549
  // create cache only for the latest call to fetchCache
552
550
  if (that.oFetchCacheCallToken !== oCallToken) {
553
- oError = new Error("Cache discarded as a new cache has been created");
554
- oError.canceled = true;
555
- throw oError;
551
+ // a previous call waits for the current one to finish
552
+ return that.oCachePromise.then(function (oNewCache) {
553
+ // the previous call must fail if a new cache was created
554
+ if (oNewCache === oCallToken.oOldCache) {
555
+ return oNewCache;
556
+ }
557
+ const oError
558
+ = new Error("Cache discarded as a new cache has been created");
559
+ oError.canceled = true;
560
+ throw oError;
561
+ });
556
562
  }
557
563
  that.oFetchCacheCallToken = undefined; // cleanup
558
564
  return that.createAndSetCache(mQueryOptions, sResourcePath, oContext,
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
75
75
  * @public
76
76
  * @since 1.37.0
77
- * @version 1.120.6
77
+ * @version 1.121.0
78
78
  *
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -874,8 +874,10 @@ sap.ui.define([
874
874
  * used, see {@link sap.ui.model.odata.v4.ODataContextBinding#constructor} and
875
875
  * {@link #getGroupId}. To use the update group ID, see {@link #getUpdateGroupId}, it needs to
876
876
  * be specified explicitly.
877
- * Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
878
- * IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
877
+ * Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct', '$single', or
878
+ * application group IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}. If
879
+ * '$single' is used, the request will be sent as fast as '$direct', but wrapped in a batch
880
+ * request like '$auto' (since 1.121.0).
879
881
  * @param {boolean} [bIgnoreETag]
880
882
  * Whether the entity's ETag should be actively ignored (If-Match:*); supported for bound
881
883
  * actions only, since 1.90.0. Ignored if there is no ETag (since 1.93.0).
@@ -963,6 +965,7 @@ sap.ui.define([
963
965
  * a row context of a list binding which uses the <code>$$ownRequest</code> parameter (see
964
966
  * {@link sap.ui.model.odata.v4.ODataModel#bindList}) and no data aggregation (see
965
967
  * {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}).
968
+ * </ul>
966
969
  *
967
970
  * @public
968
971
  * @since 1.37.0
@@ -972,7 +975,7 @@ sap.ui.define([
972
975
  var sResolvedPath = this.getResolvedPath();
973
976
 
974
977
  this.checkSuspended();
975
- _Helper.checkGroupId(sGroupId);
978
+ _Helper.checkGroupId(sGroupId, false, true);
976
979
  if (!this.oOperation) {
977
980
  throw new Error("The binding must be deferred: " + this.sPath);
978
981
  }
@@ -1272,7 +1275,7 @@ sap.ui.define([
1272
1275
  * @returns {string|undefined} The path for the return value context or <code>undefined</code>
1273
1276
  * if it is not possible to create one
1274
1277
  *
1275
- * @privat
1278
+ * @private
1276
1279
  */
1277
1280
  ODataContextBinding.prototype.getReturnValueContextPath = function (oResponseEntity) {
1278
1281
  if (!this.hasReturnValueContext()) {
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
58
58
  * @public
59
59
  * @since 1.37.0
60
- * @version 1.120.6
60
+ * @version 1.121.0
61
61
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -437,7 +437,7 @@ sap.ui.define([
437
437
  * The context for the created entity
438
438
  * @param {boolean} oEvent.getParameters.success
439
439
  * Whether the POST was successfully processed; in case of an error, the error is already
440
- * reported to {@link sap.ui.core.Messaging}
440
+ * reported to {@link module:sap/ui/core/Messaging}
441
441
  *
442
442
  * @event sap.ui.model.odata.v4.ODataListBinding#createCompleted
443
443
  * @public
@@ -631,6 +631,9 @@ sap.ui.define([
631
631
  if (!this.oModel.bAutoExpandSelect) {
632
632
  throw new Error("Deep create is only supported with autoExpandSelect");
633
633
  }
634
+ if (ODataListBinding.isBelowAggregation(this.oContext)) {
635
+ throw new Error("Deep create is not supported with data aggregation");
636
+ }
634
637
  if (!this.oContext.isTransient()) {
635
638
  throw new Error("Unexpected ODataContextBinding in deep create");
636
639
  }
@@ -833,6 +836,7 @@ sap.ui.define([
833
836
  * {@link sap.ui.model.odata.v4.ODataModel#constructor model} is not set,
834
837
  * <li> or a context binding exists in the binding hierarchy between the binding and the
835
838
  * parent list binding,
839
+ * <li> the parent list binding uses {@link #setAggregation data aggregation},
836
840
  * <li> or its path contains more than a single navigation property (for example
837
841
  * "BP_2_SO/SO_2_SOITEM"),
838
842
  * </ul>
@@ -1348,7 +1352,11 @@ sap.ui.define([
1348
1352
  if (oOldCache && oOldCache.getResourcePath() === sResourcePath
1349
1353
  && oOldCache.$deepResourcePath === sDeepResourcePath) {
1350
1354
  aKeepAlivePredicates = this.getKeepAlivePredicates();
1351
- if (this.iCreatedContexts || this.iDeletedContexts || aKeepAlivePredicates.length) {
1355
+ if (this.iCreatedContexts || this.iDeletedContexts || aKeepAlivePredicates.length
1356
+ // the cache in a recursive hierarchy must be reused (to keep the tree state)
1357
+ // but immediately after #setAggregation it might still be a _CollectionCache
1358
+ || this.mParameters.$$aggregation?.hierarchyQualifier
1359
+ && oOldCache instanceof _AggregationCache) {
1352
1360
  // Note: #inheritQueryOptions as called below should not matter in case of own
1353
1361
  // requests, which are a precondition for kept-alive elements
1354
1362
  oOldCache.reset(aKeepAlivePredicates, sGroupId, mQueryOptions,
@@ -1503,6 +1511,9 @@ sap.ui.define([
1503
1511
  this.fireDataRequested();
1504
1512
  }
1505
1513
  ).then((iCount) => {
1514
+ if (iCount < 0) { // side-effects expand
1515
+ return this.requestSideEffects(this.getGroupId(), [""]);
1516
+ }
1506
1517
  if (iCount) {
1507
1518
  this.insertGap(oContext.getModelIndex(), iCount);
1508
1519
  if (!bSilent) {
@@ -1874,7 +1885,7 @@ sap.ui.define([
1874
1885
  * @param {boolean} [bAllowRequest]
1875
1886
  * Whether it is allowed to send a GET request to fetch the parent node's data
1876
1887
  * @returns {sap.ui.model.odata.v4.Context|null|undefined|
1877
- * Promise<sap.ui.model.odata.v4.Context>|sap.ui.base.SyncPromise}
1888
+ * Promise<sap.ui.model.odata.v4.Context>}
1878
1889
  * <ul>
1879
1890
  * <li> The parent node if already known,
1880
1891
  * <li> <code>null</code> if the given node is a root node and thus has no parent,
@@ -1902,20 +1913,17 @@ sap.ui.define([
1902
1913
  return null;
1903
1914
  }
1904
1915
 
1905
- if (iParentIndex === undefined && bAllowRequest) {
1906
- return this.oCache.fetchParent(oNode.iIndex, this.lockGroup()).then((oResult) => {
1907
- const sPath = this.getResolvedPath()
1908
- + _Helper.getPrivateAnnotation(oResult, "predicate");
1909
- const oParentContext = Context.create(this.oModel, this, sPath);
1910
- this.mPreviousContextsByPath[sPath] = oParentContext;
1911
-
1912
- return oParentContext;
1913
- });
1916
+ const requestContext = (iIndex) => {
1917
+ return this.requestContexts(iIndex, 1).then((aResult) => aResult[0]);
1918
+ };
1919
+ if (bAllowRequest) {
1920
+ if (iParentIndex === undefined) {
1921
+ return this.oCache.fetchParentIndex(oNode.iIndex, this.lockGroup())
1922
+ .then(requestContext);
1923
+ }
1924
+ return requestContext(iParentIndex);
1914
1925
  }
1915
-
1916
- return bAllowRequest
1917
- ? this.requestContexts(iParentIndex, 1).then((aResult) => aResult[0])
1918
- : this.aContexts[iParentIndex];
1926
+ return this.aContexts[iParentIndex];
1919
1927
  };
1920
1928
 
1921
1929
  /**
@@ -2011,11 +2019,13 @@ sap.ui.define([
2011
2019
  * Please use either the automatic grouping of filters (where applicable) or explicit
2012
2020
  * AND/OR filters, as a mixture of both is not supported.
2013
2021
  *
2014
- * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [vFilters]
2015
- * The dynamic filters to be used; replaces the dynamic filters given in
2016
- * {@link sap.ui.model.odata.v4.ODataModel#bindList}.
2017
- * The filter executed on the list is created from the following parts, which are combined
2018
- * with a logical 'and':
2022
+ * @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [vFilters=[]]
2023
+ * The dynamic filters to be used; in case of type {@link sap.ui.model.FilterType.Application}
2024
+ * this replaces the dynamic filters given in
2025
+ * {@link sap.ui.model.odata.v4.ODataModel#bindList}. A nullish or missing value is treated as
2026
+ * an empty array and thus removes all dynamic filters of the specified type. The filter
2027
+ * executed on the list is created from the following parts, which are combined with a logical
2028
+ * 'and':
2019
2029
  * <ul>
2020
2030
  * <li> Dynamic filters of type {@link sap.ui.model.FilterType.Application}
2021
2031
  * <li> Dynamic filters of type {@link sap.ui.model.FilterType.Control}
@@ -2957,11 +2967,11 @@ sap.ui.define([
2957
2967
  * @override
2958
2968
  * @see sap.ui.model.odata.v4.ODataBinding#hasPendingChangesForPath
2959
2969
  */
2960
- ODataListBinding.prototype.hasPendingChangesForPath = function (_sPath) {
2970
+ ODataListBinding.prototype.hasPendingChangesForPath = function (_sPath, bIgnoreKeptAlive) {
2961
2971
  if (this.oCache === undefined) {
2962
2972
  // as long as cache is not yet known there can be only changes caused by created
2963
2973
  // entities; sPath does not matter
2964
- return this.iActiveContexts > 0;
2974
+ return !bIgnoreKeptAlive && this.iActiveContexts > 0;
2965
2975
  }
2966
2976
  return asODataParentBinding.prototype.hasPendingChangesForPath.apply(this, arguments);
2967
2977
  };
@@ -3251,7 +3261,7 @@ sap.ui.define([
3251
3261
  if (!oAggregation || !oAggregation.hierarchyQualifier) {
3252
3262
  throw new Error("Missing recursive hierarchy");
3253
3263
  }
3254
- if (oAggregation.expandTo > 1 && oAggregation.expandTo < 999) {
3264
+ if (oAggregation.expandTo > 1 && oAggregation.expandTo < Number.MAX_SAFE_INTEGER) {
3255
3265
  throw new Error("Unsupported $$aggregation.expandTo: " + oAggregation.expandTo);
3256
3266
  } // Note: undefined is well allowed!
3257
3267
 
@@ -3283,7 +3293,7 @@ sap.ui.define([
3283
3293
  setIndices(iParentIndex + 1, iChildIndex);
3284
3294
  } // else: iChildIndex === iParentIndex + 1 => nothing to do
3285
3295
 
3286
- if (!oChildContext.created() && !(oAggregation.expandTo > 1)) {
3296
+ if (!oChildContext.created() && oAggregation.expandTo === 1) {
3287
3297
  oChildContext.setCreatedPersisted();
3288
3298
  }
3289
3299
 
@@ -3380,7 +3390,7 @@ sap.ui.define([
3380
3390
  // (in #adjustPredicate)
3381
3391
  this.mCacheQueryOptions = mQueryOptions;
3382
3392
 
3383
- if (!this.oModel.bAutoExpandSelect) {
3393
+ if (!this.oModel.bAutoExpandSelect || ODataListBinding.isBelowAggregation(oContext)) {
3384
3394
  // No deep create possible, but it must not create its own cache. It remains empty and
3385
3395
  // silent until the parent binding created the entity. Then it creates a cache (in
3386
3396
  // #adjustPredicate) and requests from the back end.
@@ -3997,7 +4007,7 @@ sap.ui.define([
3997
4007
  * @param {sap.ui.model.ChangeReason} [sChangeReason]
3998
4008
  * A change reason; if given, a refresh event with this reason is fired and the next
3999
4009
  * getContexts() fires a change event with this reason. Change reason "change" is ignored
4000
- * as long as the binding is still empty.
4010
+ * as long as the binding is still empty. Ignored for an unresolved binding.
4001
4011
  * @param {boolean} [bDrop]
4002
4012
  * By default, all created persisted contexts are dropped while transient ones are not.
4003
4013
  * (Deleted contexts are not affected here.) <code>true</code> also drops transient ones, and
@@ -4058,7 +4068,8 @@ sap.ui.define([
4058
4068
  // Note: the binding's length can be greater than this.iMaxLength due to iCreatedContexts!
4059
4069
  this.iMaxLength = Infinity;
4060
4070
  this.bLengthFinal = false;
4061
- if (sChangeReason && !(bEmpty && sChangeReason === ChangeReason.Change)) {
4071
+ if (sChangeReason && !(bEmpty && sChangeReason === ChangeReason.Change)
4072
+ && this.isResolved()) {
4062
4073
  this.sChangeReason = sChangeReason;
4063
4074
  this._fireRefresh({reason : sChangeReason});
4064
4075
  }
@@ -4423,11 +4434,11 @@ sap.ui.define([
4423
4434
  * {@link sap.ui.model.odata.v4.ODataModel#resetChanges} to reset the changes before calling
4424
4435
  * {@link #sort}.
4425
4436
  *
4426
- * @param {sap.ui.model.Sorter | sap.ui.model.Sorter[]} [vSorters]
4437
+ * @param {sap.ui.model.Sorter | sap.ui.model.Sorter[]} [vSorters=[]]
4427
4438
  * The dynamic sorters to be used; they replace the dynamic sorters given in
4428
- * {@link sap.ui.model.odata.v4.ODataModel#bindList}.
4429
- * Static sorters, as defined in the '$orderby' binding parameter, are always executed after
4430
- * the dynamic sorters.
4439
+ * {@link sap.ui.model.odata.v4.ODataModel#bindList}. A nullish or missing value is treated as
4440
+ * an empty array and thus removes all dynamic sorters. Static sorters, as defined in the
4441
+ * '$orderby' binding parameter, are always executed after the dynamic sorters.
4431
4442
  * @returns {this}
4432
4443
  * <code>this</code> to facilitate method chaining
4433
4444
  * @throws {Error}
@@ -4683,6 +4694,18 @@ sap.ui.define([
4683
4694
  return aFilters.length === 1 ? aFilters[0] : new Filter({and : true, filters : aFilters});
4684
4695
  };
4685
4696
 
4697
+ /**
4698
+ * Returns whether this binding is below an ODLB with data aggregation.
4699
+ *
4700
+ * @param {sap.ui.model.Context} [oContext] - The context
4701
+ * @returns {boolean} Whether this binding is below an ODLB with data aggregation
4702
+ *
4703
+ * @private
4704
+ */
4705
+ ODataListBinding.isBelowAggregation = function (oContext) {
4706
+ return !!oContext?.getBinding?.().getAggregation?.();
4707
+ };
4708
+
4686
4709
  /**
4687
4710
  * Returns whether the given context is created persisted or below a created persisted one.
4688
4711
  *
@@ -156,7 +156,7 @@ sap.ui.define([
156
156
  * @hideconstructor
157
157
  * @public
158
158
  * @since 1.37.0
159
- * @version 1.120.6
159
+ * @version 1.121.0
160
160
  */
161
161
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
162
162
  constructor : constructor
@@ -2979,9 +2979,12 @@ sap.ui.define([
2979
2979
  * The context to be used as a starting point in case of a relative path
2980
2980
  * @param {object} [mParameters]
2981
2981
  * Optional (binding) parameters; if they are given, <code>oContext</code> cannot be omitted
2982
- * @param {object} [mParameters.scope]
2983
- * Scope for lookup of aliases for computed annotations (since 1.43.0). Since 1.120.3 looking
2984
- * up a computed annotation via its global name is deprecated; always use this scope instead.
2982
+ * @param {Object<object|function>} [mParameters.scope]
2983
+ * Scope for lookup of aliases for computed annotations (since 1.43.0) as a map from alias to
2984
+ * a module (like <code>{AH : AnnotationHelper}</code>) or function (like
2985
+ * <code>{format : AnnotationHelper.format}</code>); the alias must not contain a dot.
2986
+ * Since 1.120.3 looking up a computed annotation via its global name is deprecated; always
2987
+ * use this scope instead.
2985
2988
  * @returns {Promise<any>}
2986
2989
  * A promise which is resolved with the requested metadata value as soon as it is available;
2987
2990
  * it is rejected if the requested metadata cannot be loaded