@openui5/sap.ui.core 1.120.2 → 1.120.4

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 (911) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.act.js +1 -1
  3. package/src/jquery.sap.dom.js +1 -1
  4. package/src/jquery.sap.encoder.js +1 -1
  5. package/src/jquery.sap.events.js +1 -1
  6. package/src/jquery.sap.global.js +2 -2
  7. package/src/jquery.sap.history.js +1 -1
  8. package/src/jquery.sap.keycodes.js +1 -1
  9. package/src/jquery.sap.mobile.js +1 -1
  10. package/src/jquery.sap.promise.js +1 -1
  11. package/src/jquery.sap.properties.js +2 -2
  12. package/src/jquery.sap.resources.js +2 -2
  13. package/src/jquery.sap.script.js +2 -2
  14. package/src/jquery.sap.sjax.js +1 -1
  15. package/src/jquery.sap.storage.js +4 -4
  16. package/src/jquery.sap.strings.js +1 -1
  17. package/src/jquery.sap.stubs.js +1 -1
  18. package/src/jquery.sap.trace.js +1 -1
  19. package/src/jquery.sap.ui.js +1 -1
  20. package/src/jquery.sap.xml.js +1 -1
  21. package/src/sap/base/Event.js +2 -2
  22. package/src/sap/base/Eventing.js +2 -2
  23. package/src/sap/base/Log.js +1 -1
  24. package/src/sap/base/assert.js +1 -1
  25. package/src/sap/base/config/MemoryConfigurationProvider.js +1 -1
  26. package/src/sap/base/config.js +2 -2
  27. package/src/sap/base/i18n/Formatting.js +1 -1
  28. package/src/sap/base/i18n/LanguageTag.js +2 -2
  29. package/src/sap/base/i18n/Localization.js +3 -2
  30. package/src/sap/base/i18n/ResourceBundle.js +17 -20
  31. package/src/sap/base/i18n/date/CalendarType.js +1 -1
  32. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +1 -1
  33. package/src/sap/base/i18n/date/TimezoneUtils.js +23 -10
  34. package/src/sap/base/security/URLListValidator.js +1 -1
  35. package/src/sap/base/security/URLWhitelist.js +1 -1
  36. package/src/sap/base/security/encodeCSS.js +1 -1
  37. package/src/sap/base/security/encodeJS.js +1 -1
  38. package/src/sap/base/security/encodeURL.js +1 -1
  39. package/src/sap/base/security/encodeURLParameters.js +1 -1
  40. package/src/sap/base/security/encodeXML.js +1 -1
  41. package/src/sap/base/security/sanitizeHTML.js +1 -1
  42. package/src/sap/base/strings/camelize.js +1 -1
  43. package/src/sap/base/strings/capitalize.js +1 -1
  44. package/src/sap/base/strings/escapeRegExp.js +1 -1
  45. package/src/sap/base/strings/formatMessage.js +1 -1
  46. package/src/sap/base/strings/hash.js +1 -1
  47. package/src/sap/base/strings/hyphenate.js +1 -1
  48. package/src/sap/base/strings/toHex.js +1 -1
  49. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  50. package/src/sap/base/util/Deferred.js +1 -1
  51. package/src/sap/base/util/JSTokenizer.js +1 -1
  52. package/src/sap/base/util/LoaderExtensions.js +1 -1
  53. package/src/sap/base/util/ObjectPath.js +1 -1
  54. package/src/sap/base/util/Properties.js +1 -1
  55. package/src/sap/base/util/UriParameters.js +1 -1
  56. package/src/sap/base/util/Version.js +1 -1
  57. package/src/sap/base/util/_merge.js +1 -1
  58. package/src/sap/base/util/array/diff.js +1 -1
  59. package/src/sap/base/util/array/uniqueSort.js +1 -1
  60. package/src/sap/base/util/deepClone.js +1 -1
  61. package/src/sap/base/util/deepEqual.js +1 -1
  62. package/src/sap/base/util/deepExtend.js +1 -1
  63. package/src/sap/base/util/defineCoupledProperty.js +1 -1
  64. package/src/sap/base/util/defineLazyProperty.js +1 -1
  65. package/src/sap/base/util/each.js +1 -1
  66. package/src/sap/base/util/extend.js +1 -1
  67. package/src/sap/base/util/fetch.js +1 -1
  68. package/src/sap/base/util/includes.js +1 -1
  69. package/src/sap/base/util/isEmptyObject.js +1 -1
  70. package/src/sap/base/util/isPlainObject.js +1 -1
  71. package/src/sap/base/util/merge.js +1 -1
  72. package/src/sap/base/util/mixedFetch.js +1 -1
  73. package/src/sap/base/util/now.js +1 -1
  74. package/src/sap/base/util/resolveReference.js +1 -1
  75. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  76. package/src/sap/base/util/restricted/_castArray.js +2 -2
  77. package/src/sap/base/util/restricted/_compact.js +2 -2
  78. package/src/sap/base/util/restricted/_curry.js +2 -2
  79. package/src/sap/base/util/restricted/_debounce.js +2 -2
  80. package/src/sap/base/util/restricted/_difference.js +2 -2
  81. package/src/sap/base/util/restricted/_differenceBy.js +2 -2
  82. package/src/sap/base/util/restricted/_differenceWith.js +2 -2
  83. package/src/sap/base/util/restricted/_flatMap.js +2 -2
  84. package/src/sap/base/util/restricted/_flatMapDeep.js +2 -2
  85. package/src/sap/base/util/restricted/_flatMapDepth.js +2 -2
  86. package/src/sap/base/util/restricted/_flatten.js +2 -2
  87. package/src/sap/base/util/restricted/_flattenDeep.js +2 -2
  88. package/src/sap/base/util/restricted/_flattenDepth.js +2 -2
  89. package/src/sap/base/util/restricted/_intersection.js +2 -2
  90. package/src/sap/base/util/restricted/_intersectionBy.js +2 -2
  91. package/src/sap/base/util/restricted/_intersectionWith.js +2 -2
  92. package/src/sap/base/util/restricted/_isEqual.js +2 -2
  93. package/src/sap/base/util/restricted/_isEqualWith.js +2 -2
  94. package/src/sap/base/util/restricted/_isNil.js +2 -2
  95. package/src/sap/base/util/restricted/_max.js +2 -2
  96. package/src/sap/base/util/restricted/_merge.js +2 -2
  97. package/src/sap/base/util/restricted/_mergeWith.js +2 -2
  98. package/src/sap/base/util/restricted/_min.js +2 -2
  99. package/src/sap/base/util/restricted/_omit.js +2 -2
  100. package/src/sap/base/util/restricted/_pick.js +2 -2
  101. package/src/sap/base/util/restricted/_pickBy.js +2 -2
  102. package/src/sap/base/util/restricted/_throttle.js +2 -2
  103. package/src/sap/base/util/restricted/_toArray.js +2 -2
  104. package/src/sap/base/util/restricted/_union.js +2 -2
  105. package/src/sap/base/util/restricted/_unionBy.js +2 -2
  106. package/src/sap/base/util/restricted/_unionWith.js +2 -2
  107. package/src/sap/base/util/restricted/_uniq.js +2 -2
  108. package/src/sap/base/util/restricted/_uniqBy.js +2 -2
  109. package/src/sap/base/util/restricted/_uniqWith.js +2 -2
  110. package/src/sap/base/util/restricted/_without.js +2 -2
  111. package/src/sap/base/util/restricted/_xor.js +2 -2
  112. package/src/sap/base/util/restricted/_xorBy.js +2 -2
  113. package/src/sap/base/util/restricted/_xorWith.js +2 -2
  114. package/src/sap/base/util/restricted/_zipObject.js +2 -2
  115. package/src/sap/base/util/restricted/_zipObjectDeep.js +2 -2
  116. package/src/sap/base/util/syncFetch.js +1 -1
  117. package/src/sap/base/util/uid.js +1 -1
  118. package/src/sap/base/util/values.js +1 -1
  119. package/src/sap/ui/Device.js +4 -4
  120. package/src/sap/ui/Global.js +5 -5
  121. package/src/sap/ui/VersionInfo.js +1 -1
  122. package/src/sap/ui/base/BindingInfo.js +1 -1
  123. package/src/sap/ui/base/BindingParser.js +1 -1
  124. package/src/sap/ui/base/DataType.js +1 -1
  125. package/src/sap/ui/base/DesignTime.js +1 -1
  126. package/src/sap/ui/base/Event.js +2 -2
  127. package/src/sap/ui/base/EventProvider.js +2 -2
  128. package/src/sap/ui/base/Exception.js +1 -1
  129. package/src/sap/ui/base/ExpressionParser.js +1 -1
  130. package/src/sap/ui/base/Interface.js +2 -2
  131. package/src/sap/ui/base/ManagedObject.js +2 -2
  132. package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
  133. package/src/sap/ui/base/ManagedObjectObserver.js +1 -1
  134. package/src/sap/ui/base/ManagedObjectRegistry.js +1 -1
  135. package/src/sap/ui/base/Metadata.js +2 -2
  136. package/src/sap/ui/base/Object.js +2 -2
  137. package/src/sap/ui/base/ObjectPool.js +2 -2
  138. package/src/sap/ui/base/SyncPromise.js +1 -1
  139. package/src/sap/ui/base/syncXHRFix.js +1 -1
  140. package/src/sap/ui/core/.library +3 -3
  141. package/src/sap/ui/core/AccessKeysEnablement.js +1 -1
  142. package/src/sap/ui/core/AnimationMode.js +1 -1
  143. package/src/sap/ui/core/AppCacheBuster.js +1 -1
  144. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  145. package/src/sap/ui/core/BusyIndicator.js +2 -2
  146. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  147. package/src/sap/ui/core/CalendarType.js +1 -1
  148. package/src/sap/ui/core/CommandExecution.js +1 -1
  149. package/src/sap/ui/core/Component.js +2 -2
  150. package/src/sap/ui/core/ComponentContainer.js +2 -2
  151. package/src/sap/ui/core/ComponentContainerRenderer.js +1 -1
  152. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  153. package/src/sap/ui/core/ComponentRegistry.js +1 -1
  154. package/src/sap/ui/core/ComponentSupport.js +2 -2
  155. package/src/sap/ui/core/Configuration.js +3 -3
  156. package/src/sap/ui/core/ContextMenuSupport.js +1 -1
  157. package/src/sap/ui/core/Control.js +2 -2
  158. package/src/sap/ui/core/ControlBehavior.js +1 -1
  159. package/src/sap/ui/core/Core.js +2 -2
  160. package/src/sap/ui/core/CustomData.js +2 -2
  161. package/src/sap/ui/core/CustomStyleClassSupport.js +1 -1
  162. package/src/sap/ui/core/DeclarativeSupport.js +2 -2
  163. package/src/sap/ui/core/Element.js +2 -2
  164. package/src/sap/ui/core/ElementMetadata.js +2 -2
  165. package/src/sap/ui/core/ElementRegistry.js +1 -1
  166. package/src/sap/ui/core/EnabledPropagator.js +2 -2
  167. package/src/sap/ui/core/EventBus.js +2 -2
  168. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  169. package/src/sap/ui/core/FocusHandler.js +1 -1
  170. package/src/sap/ui/core/Fragment.js +2 -2
  171. package/src/sap/ui/core/HTML.js +2 -2
  172. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  173. package/src/sap/ui/core/History.js +2 -2
  174. package/src/sap/ui/core/Icon.js +2 -2
  175. package/src/sap/ui/core/IconPool.js +1 -1
  176. package/src/sap/ui/core/IconRenderer.js +1 -1
  177. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  178. package/src/sap/ui/core/IntervalTrigger.js +2 -2
  179. package/src/sap/ui/core/InvisibleMessage.js +2 -2
  180. package/src/sap/ui/core/InvisibleRenderer.js +2 -2
  181. package/src/sap/ui/core/InvisibleText.js +2 -2
  182. package/src/sap/ui/core/Item.js +2 -2
  183. package/src/sap/ui/core/LabelEnablement.js +2 -2
  184. package/src/sap/ui/core/LayoutData.js +2 -2
  185. package/src/sap/ui/core/Lib.js +8 -1
  186. package/src/sap/ui/core/ListItem.js +2 -2
  187. package/src/sap/ui/core/LocalBusyIndicator.js +2 -2
  188. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +1 -1
  189. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  190. package/src/sap/ui/core/Locale.js +2 -2
  191. package/src/sap/ui/core/LocaleData.js +3 -3
  192. package/src/sap/ui/core/Manifest.js +2 -2
  193. package/src/sap/ui/core/Message.js +2 -2
  194. package/src/sap/ui/core/Messaging.js +1 -1
  195. package/src/sap/ui/core/Patcher.js +1 -1
  196. package/src/sap/ui/core/Placeholder.js +1 -1
  197. package/src/sap/ui/core/Popup.js +1 -1
  198. package/src/sap/ui/core/RenderManager.js +2 -2
  199. package/src/sap/ui/core/Renderer.js +2 -2
  200. package/src/sap/ui/core/Rendering.js +1 -1
  201. package/src/sap/ui/core/ResizeHandler.js +2 -2
  202. package/src/sap/ui/core/ScrollBar.js +2 -2
  203. package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
  204. package/src/sap/ui/core/SeparatorItem.js +2 -2
  205. package/src/sap/ui/core/Shortcut.js +1 -1
  206. package/src/sap/ui/core/ShortcutHint.js +1 -1
  207. package/src/sap/ui/core/ShortcutHintsMixin.js +1 -1
  208. package/src/sap/ui/core/StashedControlSupport.js +1 -1
  209. package/src/sap/ui/core/StaticArea.js +1 -1
  210. package/src/sap/ui/core/Supportability.js +1 -1
  211. package/src/sap/ui/core/Title.js +2 -2
  212. package/src/sap/ui/core/TooltipBase.js +2 -2
  213. package/src/sap/ui/core/UIArea.js +2 -2
  214. package/src/sap/ui/core/UIAreaRegistry.js +1 -1
  215. package/src/sap/ui/core/UIComponent.js +2 -2
  216. package/src/sap/ui/core/UIComponentMetadata.js +2 -2
  217. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  218. package/src/sap/ui/core/VariantLayoutData.js +2 -2
  219. package/src/sap/ui/core/XMLComposite.js +2 -2
  220. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  221. package/src/sap/ui/core/XMLTemplateProcessor.js +1 -1
  222. package/src/sap/ui/core/_IconRegistry.js +1 -1
  223. package/src/sap/ui/core/_UrlResolver.js +1 -1
  224. package/src/sap/ui/core/boot/_bootConfig.js +1 -1
  225. package/src/sap/ui/core/boot/_runBoot.js +1 -1
  226. package/src/sap/ui/core/boot/initDOM.js +1 -1
  227. package/src/sap/ui/core/boot/loadCalendar.js +1 -1
  228. package/src/sap/ui/core/boot/loadManifest.js +1 -1
  229. package/src/sap/ui/core/boot/loadModules.js +1 -1
  230. package/src/sap/ui/core/boot/onInit.js +1 -1
  231. package/src/sap/ui/core/boot.js +1 -1
  232. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  233. package/src/sap/ui/core/cache/CacheManagerNOP.js +1 -1
  234. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  235. package/src/sap/ui/core/cldr/ar.json +1 -0
  236. package/src/sap/ui/core/cldr/ar_EG.json +1 -0
  237. package/src/sap/ui/core/cldr/ar_SA.json +1 -0
  238. package/src/sap/ui/core/cldr/bg.json +1 -0
  239. package/src/sap/ui/core/cldr/ca.json +1 -0
  240. package/src/sap/ui/core/cldr/cnr.json +6169 -0
  241. package/src/sap/ui/core/cldr/cs.json +1 -0
  242. package/src/sap/ui/core/cldr/cy.json +1 -0
  243. package/src/sap/ui/core/cldr/da.json +1 -0
  244. package/src/sap/ui/core/cldr/de.json +1 -0
  245. package/src/sap/ui/core/cldr/de_AT.json +1 -0
  246. package/src/sap/ui/core/cldr/de_CH.json +1 -0
  247. package/src/sap/ui/core/cldr/el.json +1 -0
  248. package/src/sap/ui/core/cldr/el_CY.json +1 -0
  249. package/src/sap/ui/core/cldr/en.json +1 -0
  250. package/src/sap/ui/core/cldr/en_AU.json +1 -0
  251. package/src/sap/ui/core/cldr/en_GB.json +1 -0
  252. package/src/sap/ui/core/cldr/en_HK.json +1 -0
  253. package/src/sap/ui/core/cldr/en_IE.json +1 -0
  254. package/src/sap/ui/core/cldr/en_IN.json +1 -0
  255. package/src/sap/ui/core/cldr/en_NZ.json +1 -0
  256. package/src/sap/ui/core/cldr/en_PG.json +1 -0
  257. package/src/sap/ui/core/cldr/en_SG.json +1 -0
  258. package/src/sap/ui/core/cldr/en_ZA.json +1 -0
  259. package/src/sap/ui/core/cldr/es.json +1 -0
  260. package/src/sap/ui/core/cldr/es_AR.json +1 -0
  261. package/src/sap/ui/core/cldr/es_BO.json +1 -0
  262. package/src/sap/ui/core/cldr/es_CL.json +1 -0
  263. package/src/sap/ui/core/cldr/es_CO.json +1 -0
  264. package/src/sap/ui/core/cldr/es_MX.json +1 -0
  265. package/src/sap/ui/core/cldr/es_PE.json +1 -0
  266. package/src/sap/ui/core/cldr/es_UY.json +1 -0
  267. package/src/sap/ui/core/cldr/es_VE.json +1 -0
  268. package/src/sap/ui/core/cldr/et.json +1 -0
  269. package/src/sap/ui/core/cldr/fa.json +2 -0
  270. package/src/sap/ui/core/cldr/fi.json +1 -0
  271. package/src/sap/ui/core/cldr/fr.json +1 -0
  272. package/src/sap/ui/core/cldr/fr_BE.json +1 -0
  273. package/src/sap/ui/core/cldr/fr_CA.json +1 -0
  274. package/src/sap/ui/core/cldr/fr_CH.json +1 -0
  275. package/src/sap/ui/core/cldr/fr_LU.json +1 -0
  276. package/src/sap/ui/core/cldr/he.json +2 -0
  277. package/src/sap/ui/core/cldr/hi.json +1 -0
  278. package/src/sap/ui/core/cldr/hr.json +1 -0
  279. package/src/sap/ui/core/cldr/hu.json +1 -0
  280. package/src/sap/ui/core/cldr/id.json +1 -0
  281. package/src/sap/ui/core/cldr/it.json +1 -0
  282. package/src/sap/ui/core/cldr/it_CH.json +1 -0
  283. package/src/sap/ui/core/cldr/ja.json +1 -0
  284. package/src/sap/ui/core/cldr/kk.json +1 -0
  285. package/src/sap/ui/core/cldr/ko.json +1 -0
  286. package/src/sap/ui/core/cldr/lt.json +1 -0
  287. package/src/sap/ui/core/cldr/lv.json +1 -0
  288. package/src/sap/ui/core/cldr/mk.json +6045 -0
  289. package/src/sap/ui/core/cldr/ms.json +1 -0
  290. package/src/sap/ui/core/cldr/nb.json +2 -0
  291. package/src/sap/ui/core/cldr/nl.json +1 -0
  292. package/src/sap/ui/core/cldr/nl_BE.json +1 -0
  293. package/src/sap/ui/core/cldr/pl.json +1 -0
  294. package/src/sap/ui/core/cldr/pt.json +1 -0
  295. package/src/sap/ui/core/cldr/pt_PT.json +1 -0
  296. package/src/sap/ui/core/cldr/ro.json +1 -0
  297. package/src/sap/ui/core/cldr/ru.json +1 -0
  298. package/src/sap/ui/core/cldr/ru_UA.json +1 -0
  299. package/src/sap/ui/core/cldr/sk.json +1 -0
  300. package/src/sap/ui/core/cldr/sl.json +1 -0
  301. package/src/sap/ui/core/cldr/sr.json +1 -0
  302. package/src/sap/ui/core/cldr/sr_Latn.json +1 -0
  303. package/src/sap/ui/core/cldr/sv.json +1 -0
  304. package/src/sap/ui/core/cldr/th.json +1 -0
  305. package/src/sap/ui/core/cldr/tr.json +1 -0
  306. package/src/sap/ui/core/cldr/uk.json +1 -0
  307. package/src/sap/ui/core/cldr/vi.json +1 -0
  308. package/src/sap/ui/core/cldr/zh_CN.json +1 -0
  309. package/src/sap/ui/core/cldr/zh_HK.json +2 -0
  310. package/src/sap/ui/core/cldr/zh_SG.json +2 -0
  311. package/src/sap/ui/core/cldr/zh_TW.json +21 -20
  312. package/src/sap/ui/core/date/Buddhist.js +1 -1
  313. package/src/sap/ui/core/date/CalendarUtils.js +1 -1
  314. package/src/sap/ui/core/date/CalendarWeekNumbering.js +1 -1
  315. package/src/sap/ui/core/date/Gregorian.js +1 -1
  316. package/src/sap/ui/core/date/Islamic.js +1 -1
  317. package/src/sap/ui/core/date/Japanese.js +1 -1
  318. package/src/sap/ui/core/date/Persian.js +1 -1
  319. package/src/sap/ui/core/date/UI5Date.js +2 -2
  320. package/src/sap/ui/core/date/UniversalDate.js +1 -1
  321. package/src/sap/ui/core/date/UniversalDateUtils.js +1 -1
  322. package/src/sap/ui/core/date/_Calendars.js +1 -1
  323. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  324. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  325. package/src/sap/ui/core/designtime/ComponentContainer.designtime.js +1 -1
  326. package/src/sap/ui/core/designtime/CustomData.designtime.js +1 -1
  327. package/src/sap/ui/core/designtime/Icon.designtime.js +1 -1
  328. package/src/sap/ui/core/designtime/UIComponent.designtime.js +1 -1
  329. package/src/sap/ui/core/designtime/library.designtime.js +1 -1
  330. package/src/sap/ui/core/designtime/mvc/ControllerExtensionTemplate.js +1 -1
  331. package/src/sap/ui/core/designtime/mvc/View.designtime.js +1 -1
  332. package/src/sap/ui/core/designtime/mvc/XMLView.designtime.js +1 -1
  333. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  334. package/src/sap/ui/core/dnd/DragDropBase.js +2 -2
  335. package/src/sap/ui/core/dnd/DragDropInfo.js +2 -2
  336. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  337. package/src/sap/ui/core/dnd/DropInfo.js +2 -2
  338. package/src/sap/ui/core/format/DateFormat.js +1 -1
  339. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +1 -1
  340. package/src/sap/ui/core/format/FileSizeFormat.js +2 -2
  341. package/src/sap/ui/core/format/ListFormat.js +1 -1
  342. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  343. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  344. package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
  345. package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -2
  346. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +1 -1
  347. package/src/sap/ui/core/library.js +4 -4
  348. package/src/sap/ui/core/library.support.js +1 -1
  349. package/src/sap/ui/core/message/ControlMessageProcessor.js +2 -2
  350. package/src/sap/ui/core/message/Message.js +2 -2
  351. package/src/sap/ui/core/message/MessageManager.js +2 -2
  352. package/src/sap/ui/core/message/MessageMixin.js +1 -1
  353. package/src/sap/ui/core/message/MessageParser.js +2 -2
  354. package/src/sap/ui/core/message/MessageProcessor.js +2 -2
  355. package/src/sap/ui/core/message/MessageType.js +1 -1
  356. package/src/sap/ui/core/messagebundle_cnr.properties +352 -0
  357. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +297 -285
  358. package/src/sap/ui/core/messagebundle_it.properties +2 -2
  359. package/src/sap/ui/core/messagebundle_ja.properties +2 -2
  360. package/src/sap/ui/core/messagebundle_mk.properties +2 -2
  361. package/src/sap/ui/core/messagebundle_sh.properties +67 -67
  362. package/src/sap/ui/core/messagebundle_sk.properties +1 -1
  363. package/src/sap/ui/core/messagebundle_sr.properties +352 -0
  364. package/src/sap/ui/core/messagebundle_uk.properties +2 -2
  365. package/src/sap/ui/core/messagebundle_vi.properties +2 -2
  366. package/src/sap/ui/core/mvc/Controller.js +1 -1
  367. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  368. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  369. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  370. package/src/sap/ui/core/mvc/EventHandlerResolver.js +1 -1
  371. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  372. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  373. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  374. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  375. package/src/sap/ui/core/mvc/JSView.js +2 -2
  376. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  377. package/src/sap/ui/core/mvc/OverrideExecution.js +1 -1
  378. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  379. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  380. package/src/sap/ui/core/mvc/View.js +2 -2
  381. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  382. package/src/sap/ui/core/mvc/ViewType.js +1 -1
  383. package/src/sap/ui/core/mvc/XMLProcessingMode.js +1 -1
  384. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  385. package/src/sap/ui/core/mvc/XMLViewRenderer.js +1 -1
  386. package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -2
  387. package/src/sap/ui/core/plugin/LessSupport.js +2 -2
  388. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -2
  389. package/src/sap/ui/core/postmessage/Bus.js +2 -2
  390. package/src/sap/ui/core/postmessage/confirmationDialog.js +2 -2
  391. package/src/sap/ui/core/routing/HashChanger.js +1 -1
  392. package/src/sap/ui/core/routing/HashChangerBase.js +1 -1
  393. package/src/sap/ui/core/routing/History.js +1 -1
  394. package/src/sap/ui/core/routing/Route.js +1 -1
  395. package/src/sap/ui/core/routing/Router.js +1 -1
  396. package/src/sap/ui/core/routing/RouterHashChanger.js +1 -1
  397. package/src/sap/ui/core/routing/Target.js +1 -1
  398. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  399. package/src/sap/ui/core/routing/Targets.js +1 -1
  400. package/src/sap/ui/core/routing/Views.js +1 -1
  401. package/src/sap/ui/core/routing/async/Route.js +1 -1
  402. package/src/sap/ui/core/routing/async/Target.js +1 -1
  403. package/src/sap/ui/core/routing/async/TargetCache.js +1 -1
  404. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  405. package/src/sap/ui/core/routing/sync/Route.js +1 -1
  406. package/src/sap/ui/core/routing/sync/Target.js +1 -1
  407. package/src/sap/ui/core/routing/sync/TargetCache.js +1 -1
  408. package/src/sap/ui/core/routing/sync/Targets.js +1 -1
  409. package/src/sap/ui/core/rules/App.support.js +1 -1
  410. package/src/sap/ui/core/rules/Config.support.js +1 -1
  411. package/src/sap/ui/core/rules/CoreHelper.support.js +1 -1
  412. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  413. package/src/sap/ui/core/rules/Model.support.js +1 -1
  414. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  415. package/src/sap/ui/core/rules/Theming.support.js +1 -1
  416. package/src/sap/ui/core/rules/View.support.js +1 -1
  417. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  418. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  419. package/src/sap/ui/core/service/Service.js +2 -2
  420. package/src/sap/ui/core/service/ServiceFactory.js +2 -2
  421. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +2 -2
  422. package/src/sap/ui/core/support/BootSupportTool.js +1 -1
  423. package/src/sap/ui/core/support/Hotkeys.js +1 -1
  424. package/src/sap/ui/core/support/Plugin.js +2 -2
  425. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
  426. package/src/sap/ui/core/support/Support.js +2 -2
  427. package/src/sap/ui/core/support/ToolsAPI.js +1 -1
  428. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  429. package/src/sap/ui/core/support/controls/InteractionSlider.js +1 -1
  430. package/src/sap/ui/core/support/controls/InteractionTree.js +1 -1
  431. package/src/sap/ui/core/support/controls/ObjectViewer.js +1 -1
  432. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  433. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  434. package/src/sap/ui/core/support/debugReboot.js +1 -1
  435. package/src/sap/ui/core/support/plugins/Breakpoint.js +1 -1
  436. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  437. package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
  438. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  439. package/src/sap/ui/core/support/plugins/LocalStorage.js +2 -2
  440. package/src/sap/ui/core/support/plugins/Performance.js +2 -2
  441. package/src/sap/ui/core/support/plugins/Selector.js +2 -2
  442. package/src/sap/ui/core/support/plugins/TechInfo.js +2 -2
  443. package/src/sap/ui/core/support/plugins/Trace.js +2 -2
  444. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  445. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
  446. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +1 -1
  447. package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
  448. package/src/sap/ui/core/support/trace/EppLib.js +1 -1
  449. package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
  450. package/src/sap/ui/core/syncStyleClass.js +1 -1
  451. package/src/sap/ui/core/themes/base/library.source.less +1 -1
  452. package/src/sap/ui/core/themes/sap_hcb/library.source.less +1 -1
  453. package/src/sap/ui/core/theming/Parameters.js +1 -1
  454. package/src/sap/ui/core/theming/ThemeHelper.js +1 -1
  455. package/src/sap/ui/core/theming/ThemeManager.js +1 -1
  456. package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
  457. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  458. package/src/sap/ui/core/tmpl/DOMElementRenderer.js +1 -1
  459. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
  460. package/src/sap/ui/core/tmpl/Template.js +2 -2
  461. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  462. package/src/sap/ui/core/tmpl/TemplateControlRenderer.js +1 -1
  463. package/src/sap/ui/core/tmpl/_parsePath.js +1 -1
  464. package/src/sap/ui/core/util/AsyncHintsHelper.js +2 -2
  465. package/src/sap/ui/core/util/DraftEnabledMockServer.js +1 -1
  466. package/src/sap/ui/core/util/Export.js +2 -2
  467. package/src/sap/ui/core/util/ExportCell.js +2 -2
  468. package/src/sap/ui/core/util/ExportColumn.js +2 -2
  469. package/src/sap/ui/core/util/ExportRow.js +2 -2
  470. package/src/sap/ui/core/util/ExportType.js +2 -2
  471. package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
  472. package/src/sap/ui/core/util/File.js +2 -2
  473. package/src/sap/ui/core/util/LibraryInfo.js +2 -2
  474. package/src/sap/ui/core/util/MockServer.js +2 -2
  475. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  476. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +1 -1
  477. package/src/sap/ui/core/util/ShortcutHelper.js +1 -1
  478. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
  479. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  480. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +16 -1
  481. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +12 -1
  482. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +15 -1
  483. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
  484. package/src/sap/ui/core/util/serializer/Serializer.js +2 -2
  485. package/src/sap/ui/core/util/serializer/ViewSerializer.js +2 -2
  486. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
  487. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +2 -2
  488. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  489. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  490. package/src/sap/ui/core/webc/WebComponent.js +2 -2
  491. package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -2
  492. package/src/sap/ui/core/webc/WebComponentRenderer.js +1 -1
  493. package/src/sap/ui/core/ws/ReadyState.js +2 -2
  494. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -2
  495. package/src/sap/ui/core/ws/WebSocket.js +2 -2
  496. package/src/sap/ui/debug/ControlTree.js +2 -2
  497. package/src/sap/ui/debug/DebugEnv.js +2 -2
  498. package/src/sap/ui/debug/Highlighter.js +1 -1
  499. package/src/sap/ui/debug/LogViewer.js +1 -1
  500. package/src/sap/ui/debug/PropertyList.js +2 -2
  501. package/src/sap/ui/dom/_ready.js +1 -1
  502. package/src/sap/ui/dom/containsOrEquals.js +1 -1
  503. package/src/sap/ui/dom/denormalizeScrollBeginRTL.js +1 -1
  504. package/src/sap/ui/dom/denormalizeScrollLeftRTL.js +1 -1
  505. package/src/sap/ui/dom/getComputedStyleFix.js +1 -1
  506. package/src/sap/ui/dom/getFirstEditableInput.js +1 -1
  507. package/src/sap/ui/dom/getOwnerWindow.js +1 -1
  508. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  509. package/src/sap/ui/dom/includeScript.js +1 -1
  510. package/src/sap/ui/dom/includeStylesheet.js +1 -1
  511. package/src/sap/ui/dom/isBehindOtherElement.js +1 -1
  512. package/src/sap/ui/dom/isHidden.js +1 -1
  513. package/src/sap/ui/dom/jquery/Aria.js +1 -1
  514. package/src/sap/ui/dom/jquery/Focusable.js +1 -1
  515. package/src/sap/ui/dom/jquery/Selection.js +1 -1
  516. package/src/sap/ui/dom/jquery/Selectors.js +1 -1
  517. package/src/sap/ui/dom/jquery/control.js +1 -1
  518. package/src/sap/ui/dom/jquery/cursorPos.js +1 -1
  519. package/src/sap/ui/dom/jquery/getSelectedText.js +1 -1
  520. package/src/sap/ui/dom/jquery/hasTabIndex.js +1 -1
  521. package/src/sap/ui/dom/jquery/parentByAttribute.js +1 -1
  522. package/src/sap/ui/dom/jquery/rect.js +1 -1
  523. package/src/sap/ui/dom/jquery/rectContains.js +1 -1
  524. package/src/sap/ui/dom/jquery/scrollLeftRTL.js +1 -1
  525. package/src/sap/ui/dom/jquery/scrollRightRTL.js +1 -1
  526. package/src/sap/ui/dom/jquery/selectText.js +1 -1
  527. package/src/sap/ui/dom/jquery/zIndex.js +1 -1
  528. package/src/sap/ui/dom/units/Rem.js +1 -1
  529. package/src/sap/ui/events/ControlEvents.js +1 -1
  530. package/src/sap/ui/events/F6Navigation.js +1 -1
  531. package/src/sap/ui/events/KeyCodes.js +1 -1
  532. package/src/sap/ui/events/PasteEventFix.js +1 -1
  533. package/src/sap/ui/events/PseudoEvents.js +1 -1
  534. package/src/sap/ui/events/TouchToMouseMapping.js +1 -1
  535. package/src/sap/ui/events/checkMouseEnterOrLeave.js +1 -1
  536. package/src/sap/ui/events/isMouseEventDelayed.js +1 -1
  537. package/src/sap/ui/events/isSpecialKey.js +1 -1
  538. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  539. package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
  540. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  541. package/src/sap/ui/model/Binding.js +1 -1
  542. package/src/sap/ui/model/BindingMode.js +1 -1
  543. package/src/sap/ui/model/ChangeReason.js +1 -1
  544. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  545. package/src/sap/ui/model/ClientListBinding.js +1 -1
  546. package/src/sap/ui/model/ClientModel.js +2 -2
  547. package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
  548. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  549. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  550. package/src/sap/ui/model/CompositeBinding.js +1 -1
  551. package/src/sap/ui/model/CompositeDataState.js +2 -2
  552. package/src/sap/ui/model/CompositeType.js +2 -2
  553. package/src/sap/ui/model/Context.js +1 -1
  554. package/src/sap/ui/model/ContextBinding.js +1 -1
  555. package/src/sap/ui/model/DataState.js +2 -2
  556. package/src/sap/ui/model/Filter.js +1 -1
  557. package/src/sap/ui/model/FilterOperator.js +1 -1
  558. package/src/sap/ui/model/FilterProcessor.js +1 -1
  559. package/src/sap/ui/model/FilterType.js +1 -1
  560. package/src/sap/ui/model/FormatException.js +1 -1
  561. package/src/sap/ui/model/ListBinding.js +1 -1
  562. package/src/sap/ui/model/ManagedObjectBindingSupport.js +1 -1
  563. package/src/sap/ui/model/MetaModel.js +2 -2
  564. package/src/sap/ui/model/Model.js +2 -2
  565. package/src/sap/ui/model/ParseException.js +1 -1
  566. package/src/sap/ui/model/PropertyBinding.js +1 -1
  567. package/src/sap/ui/model/SelectionModel.js +2 -2
  568. package/src/sap/ui/model/SimpleType.js +2 -2
  569. package/src/sap/ui/model/Sorter.js +1 -1
  570. package/src/sap/ui/model/SorterProcessor.js +1 -1
  571. package/src/sap/ui/model/StaticBinding.js +1 -1
  572. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  573. package/src/sap/ui/model/TreeBinding.js +1 -1
  574. package/src/sap/ui/model/TreeBindingAdapter.js +1 -1
  575. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
  576. package/src/sap/ui/model/TreeBindingUtils.js +1 -1
  577. package/src/sap/ui/model/Type.js +2 -2
  578. package/src/sap/ui/model/ValidateException.js +1 -1
  579. package/src/sap/ui/model/_Helper.js +1 -1
  580. package/src/sap/ui/model/analytics/AnalyticalBinding.js +62 -21
  581. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  582. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  583. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  584. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  585. package/src/sap/ui/model/analytics/odata4analytics.js +1 -1
  586. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  587. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -1
  588. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  589. package/src/sap/ui/model/json/JSONModel.js +2 -2
  590. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  591. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  592. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  593. package/src/sap/ui/model/message/MessageModel.js +2 -2
  594. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  595. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  596. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  597. package/src/sap/ui/model/odata/CountMode.js +1 -1
  598. package/src/sap/ui/model/odata/Filter.js +1 -1
  599. package/src/sap/ui/model/odata/MessageScope.js +1 -1
  600. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  601. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  602. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  603. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  604. package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
  605. package/src/sap/ui/model/odata/ODataMetadata.js +29 -15
  606. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  607. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  608. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  609. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  610. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  611. package/src/sap/ui/model/odata/ODataUtils.js +16 -10
  612. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  613. package/src/sap/ui/model/odata/UpdateMethod.js +1 -1
  614. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  615. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  616. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +2 -2
  617. package/src/sap/ui/model/odata/type/Boolean.js +2 -2
  618. package/src/sap/ui/model/odata/type/Byte.js +2 -2
  619. package/src/sap/ui/model/odata/type/Currency.js +2 -2
  620. package/src/sap/ui/model/odata/type/Date.js +2 -2
  621. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  622. package/src/sap/ui/model/odata/type/DateTimeBase.js +2 -2
  623. package/src/sap/ui/model/odata/type/DateTimeOffset.js +2 -2
  624. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -2
  625. package/src/sap/ui/model/odata/type/Decimal.js +2 -2
  626. package/src/sap/ui/model/odata/type/Double.js +2 -2
  627. package/src/sap/ui/model/odata/type/Guid.js +2 -2
  628. package/src/sap/ui/model/odata/type/Int.js +2 -2
  629. package/src/sap/ui/model/odata/type/Int16.js +2 -2
  630. package/src/sap/ui/model/odata/type/Int32.js +2 -2
  631. package/src/sap/ui/model/odata/type/Int64.js +2 -2
  632. package/src/sap/ui/model/odata/type/ODataType.js +2 -2
  633. package/src/sap/ui/model/odata/type/Raw.js +2 -2
  634. package/src/sap/ui/model/odata/type/SByte.js +2 -2
  635. package/src/sap/ui/model/odata/type/Single.js +2 -2
  636. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  637. package/src/sap/ui/model/odata/type/String.js +2 -2
  638. package/src/sap/ui/model/odata/type/Time.js +2 -2
  639. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  640. package/src/sap/ui/model/odata/type/Unit.js +2 -2
  641. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  642. package/src/sap/ui/model/odata/v2/BatchMode.js +1 -1
  643. package/src/sap/ui/model/odata/v2/Context.js +2 -2
  644. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  645. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
  646. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  647. package/src/sap/ui/model/odata/v2/ODataModel.js +2 -2
  648. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -10
  649. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +1 -1
  650. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
  651. package/src/sap/ui/model/odata/v4/Context.js +5 -3
  652. package/src/sap/ui/model/odata/v4/ODataBinding.js +1 -1
  653. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +19 -13
  654. package/src/sap/ui/model/odata/v4/ODataListBinding.js +2 -2
  655. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +41 -18
  656. package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
  657. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +1 -1
  658. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  659. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  660. package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
  661. package/src/sap/ui/model/odata/v4/ValueListType.js +1 -1
  662. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  663. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +24 -6
  664. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +9 -1
  665. package/src/sap/ui/model/odata/v4/lib/_Batch.js +1 -1
  666. package/src/sap/ui/model/odata/v4/lib/_Cache.js +21 -2
  667. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +1 -1
  668. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  669. package/src/sap/ui/model/odata/v4/lib/_Helper.js +1 -1
  670. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +1 -1
  671. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  672. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  673. package/src/sap/ui/model/odata/v4/lib/_Parser.js +1 -1
  674. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
  675. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  676. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  677. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
  678. package/src/sap/ui/model/odata/v4/ts.js +1 -1
  679. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  680. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  681. package/src/sap/ui/model/type/Boolean.js +2 -2
  682. package/src/sap/ui/model/type/Currency.js +2 -2
  683. package/src/sap/ui/model/type/Date.js +2 -2
  684. package/src/sap/ui/model/type/DateInterval.js +2 -2
  685. package/src/sap/ui/model/type/DateTime.js +2 -2
  686. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  687. package/src/sap/ui/model/type/FileSize.js +2 -2
  688. package/src/sap/ui/model/type/Float.js +2 -2
  689. package/src/sap/ui/model/type/Integer.js +2 -2
  690. package/src/sap/ui/model/type/String.js +2 -2
  691. package/src/sap/ui/model/type/Time.js +2 -2
  692. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  693. package/src/sap/ui/model/type/Unit.js +2 -2
  694. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  695. package/src/sap/ui/model/xml/XMLModel.js +2 -2
  696. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  697. package/src/sap/ui/model/xml/XMLTreeBinding.js +1 -1
  698. package/src/sap/ui/performance/BeaconRequest.js +1 -1
  699. package/src/sap/ui/performance/Measurement.js +1 -1
  700. package/src/sap/ui/performance/XHRInterceptor.js +1 -1
  701. package/src/sap/ui/performance/trace/FESR.js +1 -1
  702. package/src/sap/ui/performance/trace/FESRHelper.js +1 -1
  703. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  704. package/src/sap/ui/performance/trace/Passport.js +1 -1
  705. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  706. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  707. package/src/sap/ui/qunit/qunit-2-css.js +1 -1
  708. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  709. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  710. package/src/sap/ui/qunit/qunit-css.js +1 -1
  711. package/src/sap/ui/qunit/qunit-junit.js +1 -1
  712. package/src/sap/ui/qunit/qunit-redirect.js +1 -1
  713. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  714. package/src/sap/ui/qunit/utils/ControlIterator.js +2 -2
  715. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +2 -2
  716. package/src/sap/ui/qunit/utils/createAndAppendDiv.js +1 -1
  717. package/src/sap/ui/qunit/utils/nextUIUpdate.js +1 -1
  718. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +1 -1
  719. package/src/sap/ui/security/FrameOptions.js +1 -1
  720. package/src/sap/ui/test/BlanketReporter.js +1 -1
  721. package/src/sap/ui/test/BranchTracking.js +1 -1
  722. package/src/sap/ui/test/ModuleTracking.js +1 -1
  723. package/src/sap/ui/test/Opa.js +1 -1
  724. package/src/sap/ui/test/Opa5.js +1 -1
  725. package/src/sap/ui/test/OpaBuilder.js +1 -1
  726. package/src/sap/ui/test/OpaExtension.js +1 -1
  727. package/src/sap/ui/test/OpaPlugin.js +1 -1
  728. package/src/sap/ui/test/PageObjectFactory.js +1 -1
  729. package/src/sap/ui/test/RecordReplay.js +1 -1
  730. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  731. package/src/sap/ui/test/TestUtils.js +1 -1
  732. package/src/sap/ui/test/_BrowserLogCollector.js +1 -1
  733. package/src/sap/ui/test/_ControlFinder.js +1 -1
  734. package/src/sap/ui/test/_FocusListener.js +1 -1
  735. package/src/sap/ui/test/_LogCollector.js +1 -1
  736. package/src/sap/ui/test/_OpaLogger.js +1 -1
  737. package/src/sap/ui/test/_OpaUriParameterParser.js +1 -1
  738. package/src/sap/ui/test/_ParameterValidator.js +1 -1
  739. package/src/sap/ui/test/_UsageReport.js +1 -1
  740. package/src/sap/ui/test/_ValidationParameters.js +1 -1
  741. package/src/sap/ui/test/actions/Action.js +1 -1
  742. package/src/sap/ui/test/actions/Drag.js +1 -1
  743. package/src/sap/ui/test/actions/Drop.js +1 -1
  744. package/src/sap/ui/test/actions/EnterText.js +1 -1
  745. package/src/sap/ui/test/actions/Press.js +1 -1
  746. package/src/sap/ui/test/actions/Scroll.js +1 -1
  747. package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -1
  748. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +1 -1
  749. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  750. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  751. package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +1 -1
  752. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +1 -1
  753. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +1 -1
  754. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +1 -1
  755. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +1 -1
  756. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -1
  757. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +1 -1
  758. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +1 -1
  759. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +1 -1
  760. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
  761. package/src/sap/ui/test/autowaiter/_utils.js +1 -1
  762. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -1
  763. package/src/sap/ui/test/generic/TestBase.js +2 -2
  764. package/src/sap/ui/test/generic/Utils.js +1 -1
  765. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -1
  766. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +1 -1
  767. package/src/sap/ui/test/gherkin/StepDefinitions.js +1 -1
  768. package/src/sap/ui/test/gherkin/dataTableUtils.js +1 -1
  769. package/src/sap/ui/test/gherkin/opa5TestHarness.js +1 -1
  770. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +1 -1
  771. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +1 -1
  772. package/src/sap/ui/test/launchers/componentLauncher.js +1 -1
  773. package/src/sap/ui/test/launchers/iFrameLauncher.js +1 -1
  774. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +1 -1
  775. package/src/sap/ui/test/matchers/AggregationEmpty.js +1 -1
  776. package/src/sap/ui/test/matchers/AggregationFilled.js +1 -1
  777. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +1 -1
  778. package/src/sap/ui/test/matchers/Ancestor.js +1 -1
  779. package/src/sap/ui/test/matchers/BindingPath.js +1 -1
  780. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  781. package/src/sap/ui/test/matchers/I18NText.js +1 -1
  782. package/src/sap/ui/test/matchers/Interactable.js +1 -1
  783. package/src/sap/ui/test/matchers/LabelFor.js +1 -1
  784. package/src/sap/ui/test/matchers/Matcher.js +1 -1
  785. package/src/sap/ui/test/matchers/MatcherFactory.js +1 -1
  786. package/src/sap/ui/test/matchers/Properties.js +1 -1
  787. package/src/sap/ui/test/matchers/PropertyStrictEquals.js +1 -1
  788. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  789. package/src/sap/ui/test/matchers/Visible.js +1 -1
  790. package/src/sap/ui/test/matchers/_Busy.js +1 -1
  791. package/src/sap/ui/test/matchers/_Editable.js +1 -1
  792. package/src/sap/ui/test/matchers/_Enabled.js +1 -1
  793. package/src/sap/ui/test/matchers/_Visitor.js +1 -1
  794. package/src/sap/ui/test/matchers/matchers.js +1 -1
  795. package/src/sap/ui/test/opaQunit.js +1 -1
  796. package/src/sap/ui/test/pipelines/ActionPipeline.js +1 -1
  797. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  798. package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -1
  799. package/src/sap/ui/test/qunitPause.js +1 -1
  800. package/src/sap/ui/test/selectors/_BindingPath.js +1 -1
  801. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +1 -1
  802. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  803. package/src/sap/ui/test/selectors/_ControlType.js +1 -1
  804. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -1
  805. package/src/sap/ui/test/selectors/_GlobalID.js +1 -1
  806. package/src/sap/ui/test/selectors/_LabelFor.js +1 -1
  807. package/src/sap/ui/test/selectors/_Properties.js +1 -1
  808. package/src/sap/ui/test/selectors/_Selector.js +1 -1
  809. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -1
  810. package/src/sap/ui/test/selectors/_ViewID.js +1 -1
  811. package/src/sap/ui/test/selectors/_selectors.js +1 -1
  812. package/src/sap/ui/test/starter/_configureLoader.js +1 -1
  813. package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
  814. package/src/sap/ui/test/starter/_utils.js +1 -1
  815. package/src/sap/ui/test/starter/createSuite.js +1 -1
  816. package/src/sap/ui/test/starter/runTest.js +1 -1
  817. package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
  818. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  819. package/src/sap/ui/util/ActivityDetection.js +1 -1
  820. package/src/sap/ui/util/Mobile.js +1 -1
  821. package/src/sap/ui/util/Storage.js +2 -2
  822. package/src/sap/ui/util/XMLHelper.js +1 -1
  823. package/src/sap/ui/util/_FeatureDetection.js +1 -1
  824. package/src/sap/ui/util/defaultLinkTypes.js +1 -1
  825. package/src/sap/ui/util/isCrossOriginURL.js +1 -1
  826. package/src/sap/ui/util/openWindow.js +1 -1
  827. package/src/sap-ui-boot.js +1 -1
  828. package/src/sap-ui-core-nojQuery.js +1 -1
  829. package/src/sap-ui-core.js +1 -1
  830. package/src/sap-ui-debug.js +1 -1
  831. package/src/ui5loader-autoconfig.js +1 -1
  832. package/src/ui5loader.js +1 -1
  833. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  834. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  835. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  836. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  837. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  838. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +2 -2
  839. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  840. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  841. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  842. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  843. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  844. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  845. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  846. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  847. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  848. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  849. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  850. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  851. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  852. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  853. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  854. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  855. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  856. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  857. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  858. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  859. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  860. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  861. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  862. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  863. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  864. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  865. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  866. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  867. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  868. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  869. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  870. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  871. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  872. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  873. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  874. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  875. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  876. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  877. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  878. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  879. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  880. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  881. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  882. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  883. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  884. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  885. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  886. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  887. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +217 -6
  888. package/test/sap/ui/core/qunit/analytics/o4aMetadata.js +2 -0
  889. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +1 -1
  890. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +34 -1
  891. package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +51 -4
  892. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +42 -116
  893. package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +107 -0
  894. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
  895. package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +154 -0
  896. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +29 -0
  897. package/test/sap/ui/core/qunit/odata/_ODataMetaModelUtils.qunit.js +4 -4
  898. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +371 -0
  899. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +11 -5
  900. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +26 -2
  901. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +75 -27
  902. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +84 -31
  903. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +474 -53
  904. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +27 -0
  905. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +73 -19
  906. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +27 -2
  907. package/test/sap/ui/core/qunit/types/FileSizeFormat.qunit.js +19 -1
  908. package/test/sap/ui/core/qunit/types/TimezoneUtil.qunit.js +114 -2
  909. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +20 -0
  910. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +20 -2
  911. package/test/sap/ui/core/relnotes/changes-1.120.json +52 -0
@@ -2027,7 +2027,42 @@ sap.ui.define([
2027
2027
 
2028
2028
  /**
2029
2029
  * The following code (either {@link #createView} or anything before
2030
- * {@link #waitForChanges}) is expected to report exactly the given messages. All expected
2030
+ * {@link #waitForChanges}) is expected to report at least the given message. All expected
2031
+ * messages should have a different message text.
2032
+ *
2033
+ * @param {object} oExpectedMessage The expected message with properties corresponding
2034
+ * to the getters of sap.ui.core.message.Message: message and type are required; code,
2035
+ * descriptionUrl, persistent (default false), target (default ""), technical (default
2036
+ * false) are optional; technicalDetails is only compared if given
2037
+ * @param {boolean} [bHasMatcher] Whether the expected message has a Sinon.JS matcher
2038
+ * @returns {object} The test instance for chaining
2039
+ *
2040
+ * @see #expectMessages
2041
+ */
2042
+ expectMessage : function (oExpectedMessage, bHasMatcher) {
2043
+ const aTargets = oExpectedMessage.targets || [oExpectedMessage.target || ""];
2044
+ const oClone = Object.assign({
2045
+ code : undefined,
2046
+ descriptionUrl : undefined,
2047
+ persistent : false,
2048
+ targets : aTargets,
2049
+ technical : false
2050
+ }, oExpectedMessage);
2051
+
2052
+ if (oExpectedMessage.target && oExpectedMessage.targets) {
2053
+ throw new Error("Use either target or targets, not both!");
2054
+ }
2055
+ delete oClone.target;
2056
+
2057
+ this.aMessages.push(oClone);
2058
+ this.aMessages.bHasMatcher ||= bHasMatcher;
2059
+
2060
+ return this;
2061
+ },
2062
+
2063
+ /**
2064
+ * The following code (either {@link #createView} or anything before
2065
+ * {@link #waitForChanges}) is expected to report *exactly* the given messages. All expected
2031
2066
  * messages should have a different message text.
2032
2067
  *
2033
2068
  * @param {object[]} aExpectedMessages The expected messages with properties corresponding
@@ -2036,26 +2071,13 @@ sap.ui.define([
2036
2071
  * false) are optional; technicalDetails is only compared if given
2037
2072
  * @param {boolean} [bHasMatcher] Whether the expected messages have a Sinon.JS matcher
2038
2073
  * @returns {object} The test instance for chaining
2074
+ *
2075
+ * @see #expectMessage
2039
2076
  */
2040
2077
  expectMessages : function (aExpectedMessages, bHasMatcher) {
2041
- this.aMessages = aExpectedMessages.map(function (oMessage) {
2042
- var aTargets = oMessage.targets || [oMessage.target || ""],
2043
- oClone = Object.assign({
2044
- code : undefined,
2045
- descriptionUrl : undefined,
2046
- persistent : false,
2047
- targets : aTargets,
2048
- technical : false
2049
- }, oMessage);
2050
-
2051
- if (oMessage.target && oMessage.targets) {
2052
- throw new Error("Use either target or targets, not both!");
2053
- }
2054
- delete oClone.target;
2055
-
2056
- return oClone;
2057
- });
2058
- this.aMessages.bHasMatcher = bHasMatcher;
2078
+ this.aMessages = [];
2079
+ this.aMessages.bHasMatcher = false;
2080
+ aExpectedMessages.forEach((oMessage) => this.expectMessage(oMessage, bHasMatcher));
2059
2081
 
2060
2082
  return this;
2061
2083
  },
@@ -8342,7 +8364,14 @@ sap.ui.define([
8342
8364
  // check that no messages in the message model are touched.
8343
8365
  //
8344
8366
  // JIRA: CPOUI5ODATAV4-717
8345
- QUnit.test("requestFilterForMessages on a relative list binding", function (assert) {
8367
+ //
8368
+ // Optionally create a new item beforehand, with the POST response containing a (possibly empty)
8369
+ // messages array. This must not confuse the following message handling.
8370
+ // BCP: 2380140928
8371
+ [0, 1, 2].forEach((iCase) => { // 0: no POST // 1: POST w/o messages // 2: POST w/ messages
8372
+ const sTitle = "requestFilterForMessages on a relative list binding #" + iCase;
8373
+
8374
+ QUnit.test(sTitle, function (assert) {
8346
8375
  var oBinding,
8347
8376
  oModel = this.createSalesOrdersModel({autoExpandSelect : true}),
8348
8377
  sView = '\
@@ -8399,12 +8428,46 @@ sap.ui.define([
8399
8428
  return this.createView(assert, sView, oModel).then(function () {
8400
8429
  oBinding = that.oView.byId("table").getBinding("items");
8401
8430
 
8431
+ if (iCase > 0) {
8432
+ that.expectChange("quantity", [,, "5.000"])
8433
+ .expectRequest({
8434
+ method : "POST",
8435
+ url : "SalesOrderList('42')/SO_2_SOITEM",
8436
+ payload : {Quantity : "5"}
8437
+ }, {
8438
+ ItemPosition : "0030",
8439
+ Messages : iCase > 1 ? [{
8440
+ message : "Well done!",
8441
+ numericSeverity : 1,
8442
+ target : "Quantity"
8443
+ }] : [],
8444
+ SalesOrderID : "42",
8445
+ Quantity : "5"
8446
+ });
8447
+ if (iCase > 1) {
8448
+ that.expectMessage({
8449
+ message : "Well done!",
8450
+ target : "/SalesOrderList('42')"
8451
+ + "/SO_2_SOITEM(SalesOrderID='42',ItemPosition='0030')/Quantity",
8452
+ type : "Success"
8453
+ });
8454
+ }
8455
+
8456
+ return Promise.all([
8457
+ // code under test
8458
+ oBinding.create({Quantity : "5"}, /*bSkipRefresh*/true, /*bAtEnd*/true)
8459
+ .created(),
8460
+ that.waitForChanges(assert, "create new item")
8461
+ ]);
8462
+ }
8463
+ }).then(function () {
8402
8464
  // code under test
8403
8465
  return oBinding.requestFilterForMessages();
8404
8466
  }).then(function (oFilter) {
8405
8467
  that.expectRequest("SalesOrderList('42')/SO_2_SOITEM"
8406
8468
  + "?$select=ItemPosition,Quantity,SalesOrderID"
8407
8469
  + "&$filter=SalesOrderID eq '42' and ItemPosition eq '0010'"
8470
+ + (iCase > 1 ? " or SalesOrderID eq '42' and ItemPosition eq '0030'" : "")
8408
8471
  + "&$skip=0&$top=100", {
8409
8472
  value : [{
8410
8473
  ItemPosition : "0010",
@@ -8419,6 +8482,7 @@ sap.ui.define([
8419
8482
  return that.waitForChanges(assert);
8420
8483
  });
8421
8484
  });
8485
+ });
8422
8486
 
8423
8487
  //*********************************************************************************************
8424
8488
  // Scenario: Request Late property with navigation properties in entity with key aliases
@@ -13029,8 +13093,9 @@ sap.ui.define([
13029
13093
  });
13030
13094
 
13031
13095
  //*********************************************************************************************
13032
- // Scenario: Avoid duplicate call to computed annotation
13033
- QUnit.test("Avoid duplicate call to computed annotation", function (assert) {
13096
+ // Scenario: Avoid duplicate call to computed annotation (via global path)
13097
+ /** @deprecated as of version 1.120 */
13098
+ QUnit.test("Avoid duplicate call to computed annotation, global path", function (assert) {
13034
13099
  var oModel = this.createTeaBusiModel().getMetaModel(),
13035
13100
  sView = '\
13036
13101
  <Text id="text"\
@@ -13042,6 +13107,22 @@ sap.ui.define([
13042
13107
  return this.createView(assert, sView, oModel);
13043
13108
  });
13044
13109
 
13110
+ //*********************************************************************************************
13111
+ // Scenario: Computed annotation via ODMM#requestObject with scope
13112
+ // JIRA: CPOUI5ODATAV4-2398
13113
+ QUnit.test("Computed annotation via ODMM#requestObject with scope", async function (assert) {
13114
+ const oModel = this.createTeaBusiModel().getMetaModel();
13115
+
13116
+ await this.createView(assert, "", oModel);
13117
+
13118
+ this.mock(AnnotationHelper).expects("getValueListType").returns("foo");
13119
+
13120
+ const sResult = await oModel.requestObject("/MANAGERS/TEAM_ID@@AH.getValueListType",
13121
+ undefined, {scope : {AH : AnnotationHelper}}
13122
+ );
13123
+ assert.strictEqual(sResult, "foo");
13124
+ });
13125
+
13045
13126
  //*********************************************************************************************
13046
13127
  // Scenario: Enable autoExpandSelect mode for an ODataContextBinding with relative
13047
13128
  // ODataPropertyBindings where the paths of the relative bindings lead to a $expand
@@ -13547,56 +13628,74 @@ sap.ui.define([
13547
13628
  //*********************************************************************************************
13548
13629
  // Scenario: Call bound action on a context of a relative ListBinding.
13549
13630
  //
13550
- // Ensure that a Return Value Context is created and the structure of the path is same like the
13551
- // binding parameter
13552
- // JIRA: CPOUI5ODATAV4-2096
13553
- QUnit.test("Read entity for a relative ListBinding, call bound action", function (assert) {
13554
- var oModel = this.createTeaBusiModel(),
13555
- that = this,
13631
+ // Ensure that no Return Value Context is created, because the back end does not return the
13632
+ // needed key properties.
13633
+ // SNOW: DINC0010118
13634
+ [{ID : "2"}, {EMPLOYEE_2_TEAM : {Team_Id : "TEAM_02"}}].forEach(function (oPredicates, i) {
13635
+ var sTitle = "Read entity for a relative ListBinding, call bound action, key for the "
13636
+ + (i ? "first" : "second") + " segment is missing";
13637
+
13638
+ QUnit.test(sTitle, function (assert) {
13639
+ var that = this,
13556
13640
  sView = '\
13557
13641
  <FlexBox id="form" binding="{path : \'/TEAMS(\\\'42\\\')\',\
13558
- parameters : {$expand : {TEAM_2_EMPLOYEES : {$select : \'ID\'}}}}">\
13642
+ parameters : {\
13643
+ $expand : {TEAM_2_EMPLOYEES : {$select : \'ID,__CT__FAKE__Message/__FAKE__Messages\'}}}}">\
13559
13644
  <Table id="table" items="{TEAM_2_EMPLOYEES}">\
13560
13645
  <Text id="id" text="{ID}"/>\
13561
13646
  </Table>\
13562
13647
  </FlexBox>';
13563
13648
 
13564
- this.expectRequest("TEAMS('42')?$expand=TEAM_2_EMPLOYEES($select=ID)", {
13649
+ this.expectRequest("TEAMS('42')"
13650
+ + "?$expand=TEAM_2_EMPLOYEES($select=ID,__CT__FAKE__Message/__FAKE__Messages)", {
13565
13651
  TEAM_2_EMPLOYEES : [{ID : "2"}]
13566
13652
  })
13567
13653
  .expectChange("id", ["2"]);
13568
13654
 
13569
- return this.createView(assert, sView, oModel).then(function () {
13655
+ return this.createView(assert, sView).then(function () {
13570
13656
  var oEmployeeContext = that.oView.byId("table").getItems()[0].getBindingContext(),
13571
- oAction = that.oModel.bindContext(
13572
- "com.sap.gateway.default.iwbep.tea_busi.v0001.AcChangeTeamOfEmployee(...)",
13573
- oEmployeeContext);
13657
+ sAction = "com.sap.gateway.default.iwbep.tea_busi.v0001.AcChangeTeamOfEmployee",
13658
+ oAction = that.oModel.bindContext(sAction + "(...)",
13659
+ oEmployeeContext, {$$inheritExpandSelect : true}),
13660
+ oResponse = Object.assign({
13661
+ __CT__FAKE__Message : {
13662
+ __FAKE__Messages : [{
13663
+ code : "1",
13664
+ message : "Text",
13665
+ numericSeverity : 3,
13666
+ target : "Name",
13667
+ transition : false
13668
+ }]
13669
+ }
13670
+ }, oPredicates);
13574
13671
 
13575
13672
  that.expectRequest({
13576
13673
  method : "POST",
13577
13674
  url : "TEAMS('42')/TEAM_2_EMPLOYEES('2')/"
13578
13675
  + "com.sap.gateway.default.iwbep.tea_busi.v0001.AcChangeTeamOfEmployee"
13579
- + "?$expand=EMPLOYEE_2_TEAM($select=Team_Id)",
13676
+ + "?$select=ID,__CT__FAKE__Message/__FAKE__Messages"
13677
+ + "&$expand=EMPLOYEE_2_TEAM($select=Team_Id)",
13580
13678
  payload : {TeamID : "TEAM_02"}
13581
- }, {
13582
- EMPLOYEE_2_TEAM : {
13583
- Team_Id : "TEAM_02"
13584
- },
13585
- ID : "2"
13586
- });
13679
+ }, oResponse)
13680
+ .expectMessages([{
13681
+ code : "1",
13682
+ message : "Text",
13683
+ target : "/TEAMS('42')/TEAM_2_EMPLOYEES('2')/" + sAction + "(...)/Name",
13684
+ type : "Warning"
13685
+ }]);
13587
13686
  oAction.setParameter("TeamID", "TEAM_02");
13588
13687
 
13589
13688
  return Promise.all([
13590
13689
  // code under test
13591
- oAction.execute().then(function (oReturnValueContext) {
13592
- assert.strictEqual(
13593
- oReturnValueContext.getPath(),
13594
- "/TEAMS('TEAM_02')/TEAM_2_EMPLOYEES('2')");
13690
+ oAction.execute().then(function (oResult) {
13691
+ assert.strictEqual(oResult, undefined,
13692
+ "no R.V.C. because EMPLOYEE_2_TEAM is missing");
13595
13693
  }),
13596
13694
  that.waitForChanges(assert)
13597
13695
  ]);
13598
13696
  });
13599
13697
  });
13698
+ });
13600
13699
 
13601
13700
  //*********************************************************************************************
13602
13701
  // Scenario: Execute a bound action for an entity in a list binding and afterwards call refresh
@@ -26784,6 +26883,7 @@ sap.ui.define([
26784
26883
  // BCP: 2370011296
26785
26884
  //
26786
26885
  // Use a filter with spaces (BCP: 2380032202).
26886
+ // Check prefetch for expand (JIRA: CPOUI5ODATAV4-2432)
26787
26887
  QUnit.test("Recursive Hierarchy: expand root, w/ filter, search & orderby", function (assert) {
26788
26888
  var oModel = this.createTeaBusiModel123({autoExpandSelect : true, groupId : "$direct"}),
26789
26889
  oTable,
@@ -26799,7 +26899,7 @@ sap.ui.define([
26799
26899
  $count : true,\
26800
26900
  $filter : \'Is_Manager\',\
26801
26901
  $orderby : \'AGE desc\'\
26802
- }}">\
26902
+ }}" threshold="4" visibleRowCount="2">\
26803
26903
  <Text id="id" text="{ID}"/>\
26804
26904
  </t:Table>',
26805
26905
  that = this;
@@ -26810,7 +26910,7 @@ sap.ui.define([
26810
26910
  + ",filter(AGE ge 0 and (Is_Manager))/search(covfefe),keep start)"
26811
26911
  + "/orderby(AGE desc)/com.sap.vocabularies.Hierarchy.v1.TopLevels("
26812
26912
  + "HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID'"
26813
- + ",Levels=1)&$select=DrillState,ID&$count=true&$skip=0&$top=110", {
26913
+ + ",Levels=1)&$select=DrillState,ID&$count=true&$skip=0&$top=6", {
26814
26914
  "@odata.count" : "1",
26815
26915
  value : [{
26816
26916
  DrillState : "collapsed",
@@ -26852,12 +26952,12 @@ sap.ui.define([
26852
26952
  + ",filter(AGE ge 0 and (Is_Manager))/search(covfefe),keep start)"
26853
26953
  + "/descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
26854
26954
  + "/orderby(AGE desc)"
26855
- + "&$select=DrillState,ID&$count=true&$skip=0&$top=110", {
26856
- "@odata.count" : "1",
26857
- value : [{
26858
- DrillState : "leaf",
26859
- ID : "1"
26860
- }]
26955
+ + "&$select=DrillState,ID&$count=true&$skip=0&$top=6", {
26956
+ "@odata.count" : "2",
26957
+ value : [
26958
+ {DrillState : "leaf", ID : "1"},
26959
+ {DrillState : "leaf", ID : "2"}
26960
+ ]
26861
26961
  })
26862
26962
  .expectChange("id", [, "1"]);
26863
26963
 
@@ -26865,6 +26965,12 @@ sap.ui.define([
26865
26965
  oRoot.expand();
26866
26966
 
26867
26967
  return that.waitForChanges(assert, "expand root");
26968
+ }).then(function () {
26969
+ that.expectChange("id", [, "1", "2"]);
26970
+
26971
+ oTable.setFirstVisibleRow(1);
26972
+
26973
+ return that.waitForChanges(assert, "scroll down");
26868
26974
  });
26869
26975
  });
26870
26976
 
@@ -32380,6 +32486,234 @@ make root = ${bMakeRoot}`;
32380
32486
  });
32381
32487
  });
32382
32488
 
32489
+ //*********************************************************************************************
32490
+ // Scenario: Paging with prefetch (threshold is 5, intentionally odd). Set first visible row to
32491
+ // 30. Then consecutively increase resp. decrease it by one and see that requests only occur
32492
+ // after threshold/2 has been surmounted.
32493
+ // JIRA: CPOUI5ODATAV4-2432
32494
+ [false, true].forEach(function (bAggregation) {
32495
+ const sTitle = "CPOUI5ODATAV4-2432: " + (bAggregation ? "Recursive Hierarchy: " : "")
32496
+ + "Paging w/ Prefetch";
32497
+ QUnit.test(sTitle, async function (assert) {
32498
+ var oTable;
32499
+
32500
+ const oModel = this.createTeaBusiModel({autoExpandSelect : true});
32501
+ const sParameters = bAggregation
32502
+ ? "{$$aggregation : {hierarchyQualifier : 'OrgChart'}}"
32503
+ : "{$count : true}";
32504
+ const sBaseQuery = bAggregation
32505
+ ? "$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
32506
+ + "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart'"
32507
+ + ",NodeProperty='ID',Levels=1)&$select=DrillState,ID"
32508
+ : "$count=true&$select=ID";
32509
+ const sView = `
32510
+ <t:Table id="table" rows="{path : '/EMPLOYEES', parameters : ${sParameters}}"
32511
+ threshold="5" visibleRowCount="3">
32512
+ <Text id="id" text="{ID}"/>
32513
+ </t:Table>`;
32514
+ let bCount = bAggregation;
32515
+
32516
+ /**
32517
+ * Expects request (if iSkip and iTop are given) and change events.
32518
+ *
32519
+ * @param {number} iRow - The first visible row
32520
+ * @param {number} [iSkip] - $skip for the request; no request if undefined
32521
+ * @param {number} [iTop] - $top for the request
32522
+ * @param {boolean} [bNoChangeEvents] - Whether no change events are to be expected
32523
+ */
32524
+ const expect = (iRow, iSkip, iTop, bNoChangeEvents) => {
32525
+ if (iSkip !== undefined) {
32526
+ const aElements = [];
32527
+ for (let i = 0; i < iTop; i += 1) {
32528
+ aElements.push({DrillState : "leaf", ID : `E${iSkip + i}`});
32529
+ }
32530
+
32531
+ const sQuery = sBaseQuery + (bCount ? "&$count=true" : "");
32532
+ bCount = false;
32533
+ this.expectRequest(`EMPLOYEES?${sQuery}&$skip=${iSkip}&$top=${iTop}`,
32534
+ resolveLater({
32535
+ "@odata.count" : "100",
32536
+ value : aElements
32537
+ })
32538
+ );
32539
+ }
32540
+ if (!bNoChangeEvents) {
32541
+ for (let i = 0; i < 3; i += 1) {
32542
+ this.expectChange("id", `E${iRow + i}`, iRow + i);
32543
+ }
32544
+ }
32545
+ };
32546
+
32547
+ /**
32548
+ * Scrolls the table to the given row, expects request and change events and waits for them.
32549
+ *
32550
+ * @param {number} iRow - The new first visible row
32551
+ * @param {number} [iSkip] - $skip for the request; no request if undefined
32552
+ * @param {number} [iTop] - $top for the request
32553
+ * @param {boolean} [bNoWait] - Whether to wait for request and changes
32554
+ */
32555
+ const scroll = async (iRow, iSkip, iTop, bNoWait) => {
32556
+ expect(iRow, iSkip, iTop, bNoWait);
32557
+ oTable.setFirstVisibleRow(iRow);
32558
+
32559
+ if (!bNoWait) {
32560
+ await this.waitForChanges(assert, `scroll to ${iRow}`);
32561
+ }
32562
+ };
32563
+
32564
+ expect(0, 0, 8); // 3 visible, 5 after
32565
+
32566
+ await this.createView(assert, sView, oModel);
32567
+
32568
+ oTable = this.oView.byId("table");
32569
+ await scroll(30, 25, 13); // 5 before, 3 visible, 5 after
32570
+ // forward
32571
+ await scroll(31);
32572
+ await scroll(32);
32573
+ await scroll(33, 38, 3); // 3 after (> threshold/2)
32574
+ await scroll(34);
32575
+ await scroll(35);
32576
+ scroll(36, 41, 3, true); // 3 after
32577
+ await Promise.resolve();
32578
+ // this scroll happens before the response arrived, because we did not wait for the changes
32579
+ await scroll(37);
32580
+ // backward
32581
+ await scroll(29);
32582
+ await scroll(28);
32583
+ await scroll(27, 22, 3); // 3 before
32584
+ await scroll(26);
32585
+ await scroll(25);
32586
+ await scroll(24, 19, 3); // 3 before
32587
+ });
32588
+ });
32589
+
32590
+ //*********************************************************************************************
32591
+ // Scenario: Recursive Hierarchy, prefetch and nodes w/o "rank"
32592
+ // (1) Initially the table only contains root nodes Alpha, Delta, Epsilon...
32593
+ // (2) Create two children Beta, Gamma of Alpha
32594
+ // (3) Collapse Alpha
32595
+ // (4) Request side effects
32596
+ // (5) Scroll to 5
32597
+ // (6) Expand Alpha again; Beta and Gamma are now invisible placeholders w/o rank
32598
+ // (7) Quickly scroll to 4 and 3; Gamma must not be requested twice
32599
+ // JIRA: CPOUI5ODATAV4-2432
32600
+ QUnit.test("CPOUI5ODATAV4-2432: Recursive Hierarchy, prefetch, rank", async function (assert) {
32601
+ const oModel = this.createTeaBusiModel({autoExpandSelect : true});
32602
+ const sView = `
32603
+ <t:Table id="table" rows="{path : '/EMPLOYEES',
32604
+ parameters : {$$aggregation : {hierarchyQualifier : 'OrgChart'}}}"
32605
+ threshold="4" visibleRowCount="2">
32606
+ <Text id="name" text="{Name}"/>
32607
+ </t:Table>`;
32608
+
32609
+ this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels("
32610
+ + "HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart'"
32611
+ + ",NodeProperty='ID',Levels=1)"
32612
+ + "&$select=DrillState,ID,Name&$count=true&$skip=0&$top=6", {
32613
+ "@odata.count" : "20",
32614
+ value : [
32615
+ {DrillState : "leaf", ID : "0", Name : "Alpha"},
32616
+ {DrillState : "leaf", ID : "1", Name : "Delta"},
32617
+ {DrillState : "leaf", ID : "2", Name : "Epsilon"},
32618
+ {DrillState : "leaf", ID : "3", Name : "Zeta"},
32619
+ {DrillState : "leaf", ID : "4", Name : "Eta"},
32620
+ {DrillState : "leaf", ID : "5", Name : "Theta"}
32621
+ ]
32622
+ })
32623
+ .expectChange("name", ["Alpha", "Delta"]);
32624
+
32625
+ await this.createView(assert, sView, oModel);
32626
+
32627
+ this.expectChange("name", [, "Beta"])
32628
+ .expectRequest({
32629
+ method : "POST",
32630
+ url : "EMPLOYEES",
32631
+ payload : {"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('0')", Name : "Gamma"}
32632
+ }, {DrillState : "leaf", ID : "0.1", Name : "Gamma"})
32633
+ .expectRequest({
32634
+ method : "POST",
32635
+ url : "EMPLOYEES",
32636
+ payload : {"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('0')", Name : "Beta"}
32637
+ }, {DrillState : "leaf", ID : "0.0", Name : "Beta"});
32638
+
32639
+ const oTable = this.oView.byId("table");
32640
+ const oBinding = oTable.getBinding("rows");
32641
+ const oAlpha = oBinding.getCurrentContexts()[0];
32642
+ const oGamma = oBinding.create({
32643
+ "@$ui5.node.parent" : oAlpha,
32644
+ Name : "Gamma"
32645
+ }, true);
32646
+ const oBeta = oBinding.create({
32647
+ "@$ui5.node.parent" : oAlpha,
32648
+ Name : "Beta"
32649
+ }, true);
32650
+
32651
+ await Promise.all([
32652
+ oBeta.created(),
32653
+ oGamma.created(),
32654
+ this.waitForChanges(assert, "(2) create Beta & Gamma")
32655
+ ]);
32656
+
32657
+ this.expectChange("name", [, "Delta"]);
32658
+
32659
+ oAlpha.collapse();
32660
+
32661
+ await this.waitForChanges(assert, "(3) collapse Alpha");
32662
+
32663
+ this.expectRequest("EMPLOYEES?$select=ID,Name&$filter=ID eq '0' or ID eq '1'&$top=2", {
32664
+ value : [
32665
+ {ID : "0", Name : "Alpha*"},
32666
+ {ID : "1", Name : "Delta*"}
32667
+ ]
32668
+ })
32669
+ .expectChange("name", ["Alpha*", "Delta*"]);
32670
+
32671
+ await Promise.all([
32672
+ oBinding.getHeaderContext().requestSideEffects(["Name"]),
32673
+ this.waitForChanges(assert, "(4) side effects")
32674
+ ]);
32675
+
32676
+ this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels("
32677
+ + "HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart'"
32678
+ + ",NodeProperty='ID',Levels=1)"
32679
+ + "&$select=DrillState,ID,Name&$skip=2&$top=9", {
32680
+ value : [
32681
+ {DrillState : "leaf", ID : "2", Name : "Epsilon*"},
32682
+ {DrillState : "leaf", ID : "3", Name : "Zeta*"},
32683
+ {DrillState : "leaf", ID : "4", Name : "Eta*"},
32684
+ {DrillState : "leaf", ID : "5", Name : "Theta*"},
32685
+ {DrillState : "leaf", ID : "6", Name : "Iota*"},
32686
+ {DrillState : "leaf", ID : "7", Name : "Kappa*"},
32687
+ {DrillState : "leaf", ID : "8", Name : "Lambda*"},
32688
+ {DrillState : "leaf", ID : "9", Name : "Mu*"},
32689
+ {DrillState : "leaf", ID : "10", Name : "Nu*"}
32690
+ ]
32691
+ })
32692
+ .expectChange("name", [,,,,, "Theta*", "Iota*"]);
32693
+
32694
+ oTable.setFirstVisibleRow(5);
32695
+
32696
+ await this.waitForChanges(assert, "(5) scroll to 5");
32697
+
32698
+ this.expectChange("name", [,,,,, "Zeta*", "Eta*"]);
32699
+
32700
+ oAlpha.expand();
32701
+
32702
+ await this.waitForChanges(assert, "(6) expand Alpha");
32703
+
32704
+ this.expectRequest("EMPLOYEES('0.0')?$select=DrillState,ID,Name",
32705
+ {DrillState : "leaf", ID : "0.0", Name : "Beta*"})
32706
+ .expectRequest("EMPLOYEES('0.1')?$select=DrillState,ID,Name",
32707
+ {DrillState : "leaf", ID : "0.1", Name : "Gamma*"})
32708
+ .expectChange("name", [,,, "Delta*", "Epsilon*"]);
32709
+
32710
+ oTable.setFirstVisibleRow(4);
32711
+ await Promise.resolve();
32712
+ oTable.setFirstVisibleRow(3);
32713
+
32714
+ await this.waitForChanges(assert, "(7) quickly scroll to 4 and 3");
32715
+ });
32716
+
32383
32717
  //*********************************************************************************************
32384
32718
  // Scenario: Application tries to overwrite client-side instance annotations.
32385
32719
  // JIRA: CPOUI5UISERVICESV3-1220
@@ -47331,6 +47665,41 @@ make root = ${bMakeRoot}`;
47331
47665
  });
47332
47666
  });
47333
47667
 
47668
+ //*********************************************************************************************
47669
+ // A list binding for a complex type is refreshed, while a context (last segment of path without
47670
+ // key predicate) is selected
47671
+ // SNOW: DINC0029552
47672
+ QUnit.test("DINC0029552", async function (assert) {
47673
+ const oModel = this.createSalesOrdersModel();
47674
+ const sView = `
47675
+ <Table id="list" items="{/SalesOrderList('0')/Messages}">
47676
+ <Text id="code" text="{code}"/>
47677
+ </Table>`;
47678
+
47679
+ this.expectRequest("SalesOrderList('0')/Messages?$skip=0&$top=100", {
47680
+ value : [{code : "42"}]
47681
+ })
47682
+ .expectChange("code", ["42"]);
47683
+
47684
+ await this.createView(assert, sView, oModel);
47685
+
47686
+ const oTableBinding = this.oView.byId("list").getBinding("items");
47687
+ oTableBinding.getCurrentContexts()[0].setSelected(true);
47688
+
47689
+ assert.strictEqual(oTableBinding.getCurrentContexts()[0].getPath(),
47690
+ "/SalesOrderList('0')/Messages/0");
47691
+
47692
+ this.expectRequest("SalesOrderList('0')/Messages?$skip=0&$top=100", {
47693
+ value : [{code : "23"}]
47694
+ })
47695
+ .expectChange("code", ["23"]);
47696
+
47697
+ // code under test
47698
+ oModel.refresh();
47699
+
47700
+ await this.waitForChanges(assert);
47701
+ });
47702
+
47334
47703
  //*********************************************************************************************
47335
47704
  // Scenario: Multiple creation rows, grid table
47336
47705
  //
@@ -48763,6 +49132,58 @@ make root = ${bMakeRoot}`;
48763
49132
  });
48764
49133
  });
48765
49134
 
49135
+ //*********************************************************************************************
49136
+ // Scenario: Evaluate "ValueListRelevantQualifiers" annotation with Partner NavigationProperty.
49137
+ // BCP: 2380132332
49138
+ [0, 1].forEach(function (iValue) {
49139
+ QUnit.test("BCP: 2380132332, value=" + iValue, async function (assert) {
49140
+ const oModel = this.createSpecialCasesModel({autoExpandSelect : true});
49141
+ const sView = `
49142
+ <FlexBox id="outer" binding="{/As(0)}">
49143
+ <Text id="aid" text="{AID}"/>
49144
+ <Text id="avalue" text="{AValue}"/>
49145
+ <FlexBox id="inner" binding="{AtoCs(1)}">
49146
+ <Text id="cid" text="{CID}"/>
49147
+ <Text id="cvalue" text="{CValue}"/>
49148
+ </FlexBox>
49149
+ </FlexBox>`;
49150
+
49151
+ //TODO why is all of AtoCs expanded here?
49152
+ this.expectRequest("As(0)?$select=AID,AValue&$expand=AtoCs($select=CID,CValue)", {
49153
+ AID : 0,
49154
+ AValue : iValue,
49155
+ AtoCs : [{
49156
+ CID : 1,
49157
+ CValue : 1
49158
+ }]
49159
+ })
49160
+ .expectChange("aid", "0")
49161
+ .expectChange("avalue", "" + iValue)
49162
+ .expectChange("cid", "1")
49163
+ .expectChange("cvalue", "1");
49164
+
49165
+ await this.createView(assert, sView, oModel);
49166
+
49167
+ const oContext = this.oView.byId("inner").getBindingContext();
49168
+ assert.strictEqual(oContext.getPath(), "/As(0)/AtoCs(1)");
49169
+
49170
+ // code under test
49171
+ const mQualifier2ValueListType = await oModel.getMetaModel()
49172
+ .requestValueListInfo("/As/AtoCs/CtoEs/EValue", true, oContext);
49173
+
49174
+ if (iValue === 1) {
49175
+ delete mQualifier2ValueListType["same"]?.$model;
49176
+ assert.deepEqual(mQualifier2ValueListType, {
49177
+ same : {
49178
+ Label : "Same label ;-)"
49179
+ }
49180
+ });
49181
+ } else {
49182
+ assert.deepEqual(mQualifier2ValueListType, {}, "empty");
49183
+ }
49184
+ });
49185
+ });
49186
+
48766
49187
  //*********************************************************************************************
48767
49188
  // Scenario: With the binding parameter <code>$$ignoreMessages</code> the application developer
48768
49189
  // can control whether messages are displayed at the control. It works for