@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
@@ -87,6 +87,7 @@
87
87
  <Property Name="CValue" Type="Edm.Int16"/>
88
88
  <NavigationProperty Name="CtoA" Partner="AtoCs" Type="special.cases.A"/>
89
89
  <NavigationProperty Name="CtoD" Partner="DtoC" Type="special.cases.D"/>
90
+ <NavigationProperty Name="CtoEs" Partner="EtoC" Type="Collection(special.cases.E)"/>
90
91
  </EntityType>
91
92
  <EntityType Name="D">
92
93
  <Key>
@@ -97,6 +98,14 @@
97
98
  <NavigationProperty Name="DtoB" Partner="BtoDs" Type="special.cases.B"/>
98
99
  <NavigationProperty Name="DtoC" Partner="CtoD" Type="special.cases.C"/>
99
100
  </EntityType>
101
+ <EntityType Name="E">
102
+ <Key>
103
+ <PropertyRef Name="EID"/>
104
+ </Key>
105
+ <Property Name="EID" Type="Edm.Int16" Nullable="false"/>
106
+ <Property Name="EValue" Type="Edm.Int16"/>
107
+ <NavigationProperty Name="EtoC" Partner="CtoEs" Type="special.cases.C"/>
108
+ </EntityType>
100
109
  <ComplexType Name="Address">
101
110
  <Property Name="City" Type="Edm.String"/>
102
111
  <Property Name="ZIP" Type="Edm.String" MaxLength="5" />
@@ -303,6 +312,24 @@
303
312
  </Collection>
304
313
  </Annotation>
305
314
  </Annotations>
315
+ <Annotations Target="special.cases.E/EValue">
316
+ <Annotation Term="com.sap.vocabularies.Common.v1.ValueList" Qualifier="same">
317
+ <Record>
318
+ <PropertyValue Property="Label" String="Same label ;-)" />
319
+ </Record>
320
+ </Annotation>
321
+ <Annotation Term="com.sap.vocabularies.Common.v1.ValueListRelevantQualifiers">
322
+ <Collection>
323
+ <If>
324
+ <Eq>
325
+ <Path>EtoC/CValue</Path>
326
+ <Path>EtoC/CtoA/AValue</Path>
327
+ </Eq>
328
+ <String>same</String>
329
+ </If>
330
+ </Collection>
331
+ </Annotation>
332
+ </Annotations>
306
333
  <Annotations Target="special.cases.ArtistsType">
307
334
  <Annotation Qualifier="OldChart" Term="Org.OData.Aggregation.V1.RecursiveHierarchy">
308
335
  <Record>
@@ -4,6 +4,7 @@
4
4
  sap.ui.define([
5
5
  "sap/base/Log",
6
6
  "sap/ui/base/SyncPromise",
7
+ "sap/ui/model/odata/ODataUtils",
7
8
  "sap/ui/model/odata/v4/lib/_AggregationCache",
8
9
  "sap/ui/model/odata/v4/lib/_AggregationHelper",
9
10
  "sap/ui/model/odata/v4/lib/_Cache",
@@ -11,8 +12,8 @@ sap.ui.define([
11
12
  "sap/ui/model/odata/v4/lib/_GroupLock",
12
13
  "sap/ui/model/odata/v4/lib/_Helper",
13
14
  "sap/ui/model/odata/v4/lib/_MinMaxHelper"
14
- ], function (Log, SyncPromise, _AggregationCache, _AggregationHelper, _Cache, _ConcatHelper,
15
- _GroupLock, _Helper, _MinMaxHelper) {
15
+ ], function (Log, SyncPromise, ODataUtils, _AggregationCache, _AggregationHelper, _Cache,
16
+ _ConcatHelper, _GroupLock, _Helper, _MinMaxHelper) {
16
17
  /*eslint no-sparse-arrays: 0 */
17
18
  "use strict";
18
19
 
@@ -1547,7 +1548,7 @@ sap.ui.define([
1547
1548
  oGrandTotal = {},
1548
1549
  oGrandTotalCopy = {},
1549
1550
  iOffset = oFixture.bHasGrandTotal && oFixture.grandTotalAtBottomOnly !== true ? 1 : 0,
1550
- iPrefetchLength = 100,
1551
+ iPrefetchLength = 20,
1551
1552
  oReadResult = {
1552
1553
  value : []
1553
1554
  },
@@ -1563,12 +1564,12 @@ sap.ui.define([
1563
1564
  oCache.oGrandTotalPromise = SyncPromise.resolve(oGrandTotal);
1564
1565
  _Helper.setPrivateAnnotation(oGrandTotal, "copy", oGrandTotalCopy);
1565
1566
  }
1566
- for (i = 0; i < iFirstLevelLength; i += 1) {
1567
+ for (i = 0; i < Math.min(iFirstLevelLength + iPrefetchLength, 42); i += 1) {
1567
1568
  oReadResult.value.push({});
1568
1569
  }
1569
1570
  oReadResult.value.$count = 42;
1570
1571
  this.mock(oCache.oFirstLevel).expects("read")
1571
- .withExactArgs(iFirstLevelIndex, iFirstLevelLength, iPrefetchLength,
1572
+ .withExactArgs(iFirstLevelIndex, iFirstLevelLength + iPrefetchLength, 0,
1572
1573
  "~oGroupLock~", "~fnDataRequested~")
1573
1574
  .returns(SyncPromise.resolve(Promise.resolve(oReadResult)));
1574
1575
  if (oFixture.bHasGrandTotal) {
@@ -1604,7 +1605,7 @@ sap.ui.define([
1604
1605
  .withExactArgs(iExpectedLevel, i, sinon.match.same(oCache.oFirstLevel))
1605
1606
  .returns("~placeholder~" + i);
1606
1607
  }
1607
- for (i = iFirstLevelIndex + iFirstLevelLength; i < 42; i += 1) {
1608
+ for (i = iFirstLevelIndex + iFirstLevelLength + iPrefetchLength; i < 42; i += 1) {
1608
1609
  oAggregationHelperMock.expects("createPlaceholder")
1609
1610
  .withExactArgs(iExpectedLevel, i, sinon.match.same(oCache.oFirstLevel))
1610
1611
  .returns("~placeholder~" + i);
@@ -1618,7 +1619,7 @@ sap.ui.define([
1618
1619
  for (i = 0; i < iFirstLevelIndex; i += 1) {
1619
1620
  assert.strictEqual(oCache.aElements[iOffset + i], "~placeholder~" + i);
1620
1621
  }
1621
- for (i = iFirstLevelIndex + iFirstLevelLength; i < 42; i += 1) {
1622
+ for (i = iFirstLevelIndex + iFirstLevelLength + iPrefetchLength; i < 42; i += 1) {
1622
1623
  assert.strictEqual(oCache.aElements[iOffset + i], "~placeholder~" + i);
1623
1624
  }
1624
1625
 
@@ -1721,47 +1722,94 @@ sap.ui.define([
1721
1722
  },
1722
1723
  oGroupLockMock = this.mock(oGroupLock),
1723
1724
  aReadResult0 = [{}, {}],
1724
- aReadResult1 = [{}];
1725
+ aReadResult1 = [{}, {}, {}, {}];
1725
1726
 
1726
1727
  oCache.aElements = [
1727
1728
  {/* expanded node */},
1728
1729
  oFirstLeaf,
1729
1730
  _AggregationHelper.createPlaceholder(1, 1, "~oGroupLevelCache~"),
1730
1731
  _AggregationHelper.createPlaceholder(1, 2, "~oGroupLevelCache~"),
1731
- _AggregationHelper.createPlaceholder(0, 1, "~oFirstLevelCache~")
1732
+ _AggregationHelper.createPlaceholder(0, 1, "~oFirstLevelCache~"),
1733
+ _AggregationHelper.createPlaceholder(0, 2, "~oFirstLevelCache~"),
1734
+ _AggregationHelper.createPlaceholder(0, 3, "~oFirstLevelCache~"),
1735
+ _AggregationHelper.createPlaceholder(0, 4, "~oFirstLevelCache~")
1732
1736
  ];
1733
1737
  oCache.aElements.$byPredicate = {};
1734
- oCache.aElements.$count = 42;
1738
+ oCache.aElements.$count = 7;
1735
1739
 
1740
+ const oReadRangeExpectation = this.mock(ODataUtils).expects("_getReadRange")
1741
+ .withExactArgs(sinon.match.same(oCache.aElements), 1, 4, 5, sinon.match.func)
1742
+ .returns({length : 9, start : 1}); // note: beyond $count
1736
1743
  oGroupLockMock.expects("getUnlockedCopy").withExactArgs().returns("~oGroupLockCopy0~");
1737
1744
  oGroupLockMock.expects("getUnlockedCopy").withExactArgs().returns("~oGroupLockCopy1~");
1738
1745
  oCacheMock.expects("readGap")
1739
1746
  .withExactArgs("~oGroupLevelCache~", 2, 4, "~oGroupLockCopy0~", "~fnDataRequested~")
1740
1747
  .returns(addElementsLater(oCache, aReadResult0, 2));
1741
1748
  oCacheMock.expects("readGap")
1742
- .withExactArgs("~oFirstLevelCache~", 4, 5, "~oGroupLockCopy1~", "~fnDataRequested~")
1749
+ .withExactArgs("~oFirstLevelCache~", 4, 8, "~oGroupLockCopy1~", "~fnDataRequested~")
1743
1750
  .returns(addElementsLater(oCache, aReadResult1, 4));
1744
1751
  oGroupLockMock.expects("unlock").withExactArgs();
1745
1752
 
1746
1753
  // code under test
1747
- return oCache.read(1, 4, 0, oGroupLock, "~fnDataRequested~").then(function (oResult) {
1754
+ return oCache.read(1, 4, 5, oGroupLock, "~fnDataRequested~").then((oResult) => {
1748
1755
  assert.strictEqual(oResult.value.length, 4);
1749
1756
  assert.strictEqual(oResult.value[0], oFirstLeaf);
1750
1757
  assert.strictEqual(oResult.value[1], aReadResult0[0]);
1751
1758
  assert.strictEqual(oResult.value[2], aReadResult0[1]);
1752
1759
  assert.strictEqual(oResult.value[3], aReadResult1[0]);
1753
- assert.strictEqual(oResult.value.$count, 42);
1760
+ assert.strictEqual(oResult.value.$count, 7);
1754
1761
 
1755
1762
  assert.strictEqual(oCache.aElements[1], oFirstLeaf);
1756
1763
  assert.strictEqual(oCache.aElements[2], aReadResult0[0]);
1757
1764
  assert.strictEqual(oCache.aElements[3], aReadResult0[1]);
1758
1765
  assert.strictEqual(oCache.aElements[4], aReadResult1[0]);
1766
+ assert.strictEqual(oCache.aElements[5], aReadResult1[1]);
1767
+ assert.strictEqual(oCache.aElements[6], aReadResult1[2]);
1768
+ assert.strictEqual(oCache.aElements[7], aReadResult1[3]);
1769
+
1770
+ const fnReadRangeCallback = oReadRangeExpectation.args[0][4];
1771
+
1772
+ // code under test
1773
+ assert.notOk(fnReadRangeCallback({}));
1774
+
1775
+ const oGroupLevelCache = {isMissing : mustBeMocked};
1776
+ this.mock(oGroupLevelCache).expects("isMissing").withExactArgs(0).returns("~");
1777
+ let oEntity = {
1778
+ "@$ui5._" : {
1779
+ parent : oGroupLevelCache,
1780
+ placeholder : true,
1781
+ rank : 0
1782
+ }
1783
+ };
1784
+
1785
+ // code under test
1786
+ assert.strictEqual(fnReadRangeCallback(oEntity), "~");
1787
+
1788
+ oEntity = {
1789
+ "@$ui5._" : {
1790
+ placeholder : 1,
1791
+ predicate : "('~')"
1792
+ }
1793
+ };
1794
+ oCache.aElements.$byPredicate["('~')"] = oEntity;
1795
+
1796
+ // code under test
1797
+ assert.ok(fnReadRangeCallback(oEntity));
1798
+
1799
+ oCache.aElements.$byPredicate["('~')"] = SyncPromise.resolve();
1800
+
1801
+ // code under test
1802
+ assert.notOk(fnReadRangeCallback(oEntity));
1759
1803
  });
1760
1804
  });
1761
1805
 
1762
1806
  //*********************************************************************************************
1763
- [1, 2].forEach(function (iLength) {
1764
- QUnit.test("read: gap at start, iLength = " + iLength, function (assert) {
1807
+ [
1808
+ {iStart : 0, iLength : 1, iPrefetchLength : 0},
1809
+ {iStart : 0, iLength : 2, iPrefetchLength : 0},
1810
+ {iStart : 1, iLength : 1, iPrefetchLength : 1}
1811
+ ].forEach(function (oFixture) {
1812
+ QUnit.test("read: gap at start " + JSON.stringify(oFixture), function (assert) {
1765
1813
  var oAggregation = { // filled before by buildApply
1766
1814
  aggregate : {},
1767
1815
  group : {},
@@ -1782,6 +1830,10 @@ sap.ui.define([
1782
1830
  oCache.aElements.$byPredicate = {};
1783
1831
  oCache.aElements.$count = 42;
1784
1832
 
1833
+ this.mock(ODataUtils).expects("_getReadRange")
1834
+ .withExactArgs(sinon.match.same(oCache.aElements), oFixture.iStart, oFixture.iLength,
1835
+ oFixture.iPrefetchLength, sinon.match.func)
1836
+ .returns({length : 2, start : 0});
1785
1837
  this.mock(oGroupLock).expects("getUnlockedCopy").withExactArgs()
1786
1838
  .returns("~oGroupLockCopy~");
1787
1839
  this.mock(oCache).expects("readGap")
@@ -1790,10 +1842,12 @@ sap.ui.define([
1790
1842
  this.mock(oGroupLock).expects("unlock").withExactArgs();
1791
1843
 
1792
1844
  // code under test
1793
- return oCache.read(0, iLength, 0, oGroupLock, "~fnDataRequested~").then(function (oResult) {
1794
- assert.strictEqual(oResult.value.length, iLength);
1795
- assert.strictEqual(oResult.value[0], aReadResult[0]);
1796
- if (iLength > 1) {
1845
+ return oCache.read(oFixture.iStart, oFixture.iLength, oFixture.iPrefetchLength, oGroupLock,
1846
+ "~fnDataRequested~"
1847
+ ).then(function (oResult) {
1848
+ assert.strictEqual(oResult.value.length, oFixture.iLength);
1849
+ assert.strictEqual(oResult.value[0], oFixture.iStart ? oFirstLeaf : aReadResult[0]);
1850
+ if (oFixture.iLength > 1) {
1797
1851
  assert.strictEqual(oResult.value[1], oFirstLeaf);
1798
1852
  }
1799
1853
  assert.strictEqual(oResult.value.$count, 42);
@@ -8585,7 +8585,7 @@ sap.ui.define([
8585
8585
  this.mock(oCountChangeListener).expects("onChange");
8586
8586
  this.mock(oCache).expects("visitResponse")
8587
8587
  .withExactArgs(sinon.match.same(oPostResult), sinon.match.same(mTypeForMetaPath),
8588
- "/TEAMS/TEAM_2_EMPLOYEES", sPathInCache + sTransientPredicate);
8588
+ "/TEAMS/TEAM_2_EMPLOYEES", sPathInCache + sTransientPredicate, undefined, true);
8589
8589
  // simulate a lack of key predicate => the transient predicate is kept
8590
8590
  oHelperMock.expects("getPrivateAnnotation")
8591
8591
  .withExactArgs(sinon.match.same(oPostResult), "predicate")
@@ -9108,7 +9108,7 @@ sap.ui.define([
9108
9108
  .returns({});
9109
9109
  oCacheMock.expects("visitResponse")
9110
9110
  .withExactArgs(sinon.match.same(oPostResult), sinon.match.same(mTypeForMetaPath),
9111
- "/Employees", sTransientPredicate);
9111
+ "/Employees", sTransientPredicate, undefined, true);
9112
9112
  oHelperMock.expects("updateSelected")
9113
9113
  .withExactArgs(sinon.match.same(oCache.mChangeListeners), sTransientPredicate,
9114
9114
  sinon.match.same(oCache.aElements[0]), sinon.match.same(oPostResult), undefined,
@@ -12941,6 +12941,31 @@ sap.ui.define([
12941
12941
  assert.strictEqual(oCache.iLimit, 3);
12942
12942
  });
12943
12943
 
12944
+ //*********************************************************************************************
12945
+ QUnit.test("CollectionCache#isMissing", function (assert) {
12946
+ const oCache = _Cache.create(this.oRequestor, "SalesOrders");
12947
+
12948
+ oCache.aElements = [{}];
12949
+
12950
+ // code under test
12951
+ assert.notOk(oCache.isMissing(0));
12952
+ assert.ok(oCache.isMissing(1));
12953
+
12954
+ oCache.$tail = Promise.resolve();
12955
+ oCache.aReadRequests = [{iStart : 5, iEnd : 8}, {iStart : 20, iEnd : 10000}];
12956
+
12957
+ // code under test
12958
+ assert.notOk(oCache.isMissing(0));
12959
+ assert.ok(oCache.isMissing(4));
12960
+ assert.notOk(oCache.isMissing(5));
12961
+ assert.notOk(oCache.isMissing(7));
12962
+ assert.ok(oCache.isMissing(8));
12963
+ assert.ok(oCache.isMissing(19));
12964
+ assert.notOk(oCache.isMissing(20));
12965
+ assert.notOk(oCache.isMissing(9999));
12966
+ assert.ok(oCache.isMissing(10000));
12967
+ });
12968
+
12944
12969
  //*********************************************************************************************
12945
12970
  QUnit.test("from$skip", function (assert) {
12946
12971
  var aCollection = [];
@@ -1,5 +1,10 @@
1
1
  /*global QUnit */
2
- sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], function (FileSizeFormat, Locale) {
2
+ sap.ui.define([
3
+ "sap/base/Log",
4
+ "sap/base/i18n/Localization",
5
+ "sap/ui/core/Locale",
6
+ "sap/ui/core/format/FileSizeFormat"
7
+ ], function (Log, Localization, Locale, FileSizeFormat) {
3
8
  "use strict";
4
9
 
5
10
  var oFormatBinary = FileSizeFormat.getInstance({ binaryFilesize: true, maxFractionDigits: 2 }, new Locale("en"));
@@ -10,6 +15,7 @@ sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], funct
10
15
  var aDecimalUnitNames = ["Kilobyte", "Megabyte", "Gigabyte", "Terabyte", "Petabyte", "Exabyte", "Zettabyte", "Yottabyte"];
11
16
  var aBinaryUnits;
12
17
  var aDecimalUnits;
18
+ const sDefaultLanguage = Localization.getLanguage();
13
19
 
14
20
  function extractUnits(names) {
15
21
  return names.map(function (name) {
@@ -91,6 +97,15 @@ sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], funct
91
97
  QUnit.module("sap.ui.core.format.FileSizeFormat", {
92
98
  before() {
93
99
  this.__ignoreIsolatedCoverage__ = true;
100
+ },
101
+ beforeEach() {
102
+ this.oLogMock = this.mock(Log);
103
+ this.oLogMock.expects("warning").never();
104
+ this.oLogMock.expects("error").never();
105
+ Localization.setLanguage("en-US");
106
+ },
107
+ afterEach() {
108
+ Localization.setLanguage(sDefaultLanguage);
94
109
  }
95
110
  });
96
111
 
@@ -108,6 +123,7 @@ sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], funct
108
123
  checkFormat("binary", "1", "1 Byte");
109
124
  checkFormat("binary", "0x1", "1 Byte");
110
125
  checkFormat("binary", 1048575, "1 MiB");
126
+ checkFormat("binary", NaN, " Byte"); // NumberFormat by default formats NaN to empty string
111
127
  });
112
128
 
113
129
  QUnit.test("format decimal", function (assert) {
@@ -124,6 +140,7 @@ sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], funct
124
140
  checkFormat("decimal", "1", "1 Byte");
125
141
  checkFormat("decimal", "0x1", "1 Byte");
126
142
  checkFormat("decimal", 999999, "1 MB");
143
+ checkFormat("binary", NaN, " Byte");
127
144
  });
128
145
 
129
146
  QUnit.test("format default", function (assert) {
@@ -139,6 +156,7 @@ sap.ui.define(["sap/ui/core/format/FileSizeFormat", "sap/ui/core/Locale"], funct
139
156
  checkFormat("default", 1, "1 Byte");
140
157
  checkFormat("default", "1", "1 Byte");
141
158
  checkFormat("default", "0x1", "1 Byte");
159
+ checkFormat("binary", NaN, " Byte");
142
160
  });
143
161
 
144
162
  QUnit.test("parse binary", function (assert) {
@@ -353,6 +353,12 @@ sap.ui.define([
353
353
  {
354
354
  targetDate: Date.UTC(2011, 11, 30, 0),
355
355
  targetTimezone: "Pacific/Apia",
356
+ // even if time zone offset is +14:00, timezoneDiff has to be 10 otherwise we get a wrong date
357
+ timezoneDiff: 10
358
+ },
359
+ {
360
+ targetDate: Date.UTC(2011, 11, 31, 0),
361
+ targetTimezone: "Pacific/Apia",
356
362
  timezoneDiff: -14
357
363
  }
358
364
  ].forEach(function (oFixture) {
@@ -619,5 +625,111 @@ sap.ui.define([
619
625
  year: "1970"
620
626
  });
621
627
  });
622
- }
623
- );
628
+
629
+ //*********************************************************************************************
630
+ [
631
+ {oDate: new Date(Date.UTC(2023, 8, 30, 15)), iExpectedOffset: -10},
632
+ {oDate: new Date(Date.UTC(2023, 9, 1, 3)), iExpectedOffset: -11},
633
+ {oDate: new Date(Date.UTC(2023, 9, 1, 2)), iExpectedOffset: -10},
634
+ {oDate: new Date(Date.UTC(2023, 8, 30, 16)), iExpectedOffset: -10},
635
+ {oDate: new Date(Date.UTC(2024, 3, 6, 15)), iExpectedOffset: -11},
636
+ {oDate: new Date(Date.UTC(2024, 3, 7, 14)), iExpectedOffset: -10},
637
+ {oDate: new Date(Date.UTC(2024, 3, 6, 17)), iExpectedOffset: -11}
638
+ ].forEach((oFixture, i) => {
639
+ QUnit.test("calculateOffset: Australia/Hobart, #" + i, function (assert) {
640
+ assert.strictEqual(TimezoneUtil.calculateOffset(oFixture.oDate, "Australia/Hobart"),
641
+ oFixture.iExpectedOffset * 3600);
642
+ });
643
+ });
644
+
645
+ //*********************************************************************************************
646
+ [
647
+ {oDate: new Date(Date.UTC(2023, 8, 2, 21)), iExpectedOffset: 6},
648
+ {oDate: new Date(Date.UTC(2023, 8, 2, 22)), iExpectedOffset: 6},
649
+ {oDate: new Date(Date.UTC(2023, 8, 2, 23)), iExpectedOffset: 5},
650
+ {oDate: new Date(Date.UTC(2023, 8, 3, 10)), iExpectedOffset: 5},
651
+ {oDate: new Date(Date.UTC(2024, 3, 6, 21)), iExpectedOffset: 5},
652
+ {oDate: new Date(Date.UTC(2024, 3, 7, 2)), iExpectedOffset: 6},
653
+ {oDate: new Date(Date.UTC(2024, 3, 8, 10)), iExpectedOffset: 6}
654
+ ].forEach((oFixture, i) => {
655
+ QUnit.test("calculateOffset: Pacific/Easter, #" + i, function (assert) {
656
+ assert.strictEqual(TimezoneUtil.calculateOffset(oFixture.oDate, "Pacific/Easter"),
657
+ oFixture.iExpectedOffset * 3600);
658
+ });
659
+ });
660
+
661
+ //*********************************************************************************************
662
+ QUnit.test("calculateOffset: Daylight Saving Time (DST) switch far away", function (assert) {
663
+ const oDate = {getTime() {}};
664
+ const oDateInTimezone = {getTime() {}};
665
+ const sTimezone = "~sTimezone";
666
+ const oTimezoneUtilMock = this.mock(TimezoneUtil);
667
+ this.mock(oDate).expects("getTime").returns(42000);
668
+ this.mock(oDateInTimezone).expects("getTime").returns(13000);
669
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(sinon.match.same(oDate), sTimezone)
670
+ .returns(oDateInTimezone);
671
+ // -> iInitialOffset = 42000 - 13000 = 29000
672
+ const oFirstGuessInTimezone = {getTime() {}};
673
+ this.mock(oFirstGuessInTimezone).expects("getTime").returns(42000);
674
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(new Date(/*42000 + 29000*/71000), sTimezone)
675
+ .returns(oFirstGuessInTimezone);
676
+ // -> iSecondOffset = 71000 - 42000 = 29000
677
+
678
+ // code under test - both time zone offsets are equal
679
+ assert.strictEqual(TimezoneUtil.calculateOffset(oDate, sTimezone), 29);
680
+ });
681
+
682
+ //*********************************************************************************************
683
+ QUnit.test("calculateOffset: DST switch, second guess matches", function (assert) {
684
+ const oDate = {getTime() {}};
685
+ const oDateInTimezone = {getTime() {}};
686
+ const sTimezone = "~sTimezone";
687
+ const oTimezoneUtilMock = this.mock(TimezoneUtil);
688
+ this.mock(oDate).expects("getTime").returns(42000);
689
+ this.mock(oDateInTimezone).expects("getTime").returns(13000);
690
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(sinon.match.same(oDate), sTimezone)
691
+ .returns(oDateInTimezone);
692
+ // -> iInitialOffset = 42000 - 13000 = 29000
693
+ const oFirstGuessInTimezone = {getTime() {}};
694
+ this.mock(oFirstGuessInTimezone).expects("getTime").returns(38000);
695
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(new Date(/*42000 + 29000*/71000), sTimezone)
696
+ .returns(oFirstGuessInTimezone);
697
+ // -> iSecondOffset = 71000 - 38000 = 33000
698
+ const oSecondGuessInTimezone = {getTime() {}};
699
+ this.mock(oSecondGuessInTimezone).expects("getTime").returns(42000);
700
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(new Date(/*42000 + 33000*/75000), sTimezone)
701
+ .returns(oSecondGuessInTimezone);
702
+
703
+ // code under test - both time zone offsets are equal
704
+ assert.strictEqual(TimezoneUtil.calculateOffset(oDate, sTimezone), 33);
705
+ });
706
+
707
+ //*********************************************************************************************
708
+ [true, false].forEach((bUseFirstOffset) => {
709
+ const sTitle = "calculateOffset: DST switch, second guess doesn't match, use "
710
+ + (bUseFirstOffset ? "first" : "second") + " offset";
711
+ QUnit.test(sTitle, function (assert) {
712
+ const oDate = {getTime() {}};
713
+ const oDateInTimezone = {getTime() {}};
714
+ const sTimezone = "~sTimezone";
715
+ const oTimezoneUtilMock = this.mock(TimezoneUtil);
716
+ this.mock(oDate).expects("getTime").returns(42000);
717
+ this.mock(oDateInTimezone).expects("getTime").returns(13000);
718
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(sinon.match.same(oDate), sTimezone)
719
+ .returns(oDateInTimezone);
720
+ // -> iInitialOffset = 42000 - 13000 = 29000
721
+ const oFirstGuessInTimezone = {getTime() {}};
722
+ this.mock(oFirstGuessInTimezone).expects("getTime").returns(38000);
723
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(new Date(/*42000 + 29000*/71000), sTimezone)
724
+ .returns(oFirstGuessInTimezone);
725
+ // -> iSecondOffset = 71000 - 38000 = 33000
726
+ const oSecondGuessInTimezone = {getTime() {}};
727
+ this.mock(oSecondGuessInTimezone).expects("getTime").returns(bUseFirstOffset ? 34000 : 44000);
728
+ oTimezoneUtilMock.expects("convertToTimezone").withExactArgs(new Date(/*42000 + 33000*/75000), sTimezone)
729
+ .returns(oSecondGuessInTimezone);
730
+
731
+ // code under test - both time zone offsets are equal
732
+ assert.strictEqual(TimezoneUtil.calculateOffset(oDate, sTimezone), bUseFirstOffset ? 29 : 33);
733
+ });
734
+ });
735
+ });
@@ -243,6 +243,26 @@ sap.ui.define([
243
243
  assert.strictEqual(oContentAggregation[1], oMovedButton);
244
244
  });
245
245
 
246
+ QUnit.test("replaceAllAggregation", async function(assert) {
247
+ const oHBox = this.oXmlView.byId("hbox1");
248
+ const aNewControls = [
249
+ new Button("button4"),
250
+ new Button("button5"),
251
+ new Button("button6")
252
+ ];
253
+ const aOldControls = oHBox.getItems();
254
+ await JsControlTreeModifier.replaceAllAggregation(oHBox, "items", aNewControls);
255
+ const aItems = oHBox.getItems();
256
+ assert.strictEqual(aItems.length, 3, "the aggregation has 3 items");
257
+ assert.strictEqual(aItems[0].getId(), "button4", "the items are the new ones");
258
+ assert.strictEqual(aItems[1].getId(), "button5", "the items are the new ones");
259
+ assert.strictEqual(aItems[2].getId(), "button6", "the items are the new ones");
260
+
261
+ aOldControls.forEach((oControl) => {
262
+ oControl.destroy();
263
+ });
264
+ });
265
+
246
266
  QUnit.test("createAndAddCustomData adds Custom Data properly", function(assert) {
247
267
  var oCreateStub = sandbox.stub(JsControlTreeModifier, "createControl").resolves("foo");
248
268
  var oSetPropertyStub = sandbox.stub(JsControlTreeModifier, "setProperty");
@@ -207,8 +207,8 @@ sap.ui.define([
207
207
  assert.equal(aDefaultAggregationElements.length, 2);
208
208
  assert.equal(aDefaultAggregationElements[0].localName, "Label");
209
209
  assert.equal(aDefaultAggregationElements[0].namespaceURI, "sap.m");
210
- assert.equal(aDefaultAggregationElements[0].localName, "Label");
211
- assert.equal(aDefaultAggregationElements[0].namespaceURI, "sap.m");
210
+ assert.equal(aDefaultAggregationElements[1].localName, "Label");
211
+ assert.equal(aDefaultAggregationElements[1].namespaceURI, "sap.m");
212
212
  });
213
213
  });
214
214
 
@@ -485,6 +485,24 @@ sap.ui.define([
485
485
  });
486
486
  });
487
487
 
488
+ [0, 1].forEach(function(iIndex) {
489
+ QUnit.test(`replaceAllAggregation ${iIndex}`, async function(assert) {
490
+ const oVBox = XmlTreeModifier._children(this.oXmlView)[iIndex];
491
+ const oNewItem1 = await XmlTreeModifier.createControl("sap.m.Text", this.oComponent, this.oXmlView2);
492
+ const oNewItem2 = await XmlTreeModifier.createControl("sap.m.Text", this.oComponent, this.oXmlView2);
493
+ const oNewItem3 = await XmlTreeModifier.createControl("sap.m.Text", this.oComponent, this.oXmlView2);
494
+ await XmlTreeModifier.replaceAllAggregation(oVBox, "items", [oNewItem1, oNewItem2, oNewItem3]);
495
+ const oNewAggregation = await XmlTreeModifier.getAggregation(oVBox, "items");
496
+ assert.strictEqual(oNewAggregation.length, 3, "three items are in the aggregation");
497
+ assert.strictEqual(oNewAggregation[0].localName, "Text");
498
+ assert.strictEqual(oNewAggregation[0].namespaceURI, "sap.m");
499
+ assert.strictEqual(oNewAggregation[1].localName, "Text");
500
+ assert.strictEqual(oNewAggregation[1].namespaceURI, "sap.m");
501
+ assert.strictEqual(oNewAggregation[2].localName, "Text");
502
+ assert.strictEqual(oNewAggregation[2].namespaceURI, "sap.m");
503
+ });
504
+ });
505
+
488
506
  QUnit.test("getVisible", function (assert) {
489
507
  var oVBox = XmlTreeModifier._children(this.oXmlView)[0];
490
508
  var aChildNodes = XmlTreeModifier._children(oVBox);
@@ -663,5 +663,57 @@
663
663
  ]
664
664
  }
665
665
  ]
666
+ },
667
+ "1.120.3": {
668
+ "date": "January 2024",
669
+ "notes": [
670
+ {
671
+ "id": "f4688297e2b2df8f83eb5c8c533d3ac72d9e0cda",
672
+ "type": "FIX",
673
+ "text": " sap.ui.model.odata.v2.ODataTreeBinding: consider deep path for context"
674
+ },
675
+ {
676
+ "id": "f8667e5865f4f831d6019ce3be63818a29c36f49",
677
+ "type": "FIX",
678
+ "text": " sap.base.i18n.date.TimezoneUtils.calculateOffset: Fix Daylight Saving Time issues",
679
+ "references": [
680
+ {
681
+ "type": "BCP",
682
+ "reference": "2370140369"
683
+ }
684
+ ]
685
+ }
686
+ ]
687
+ },
688
+ "1.120.4": {
689
+ "date": "January 2024",
690
+ "notes": [
691
+ {
692
+ "id": "af61e41ea8060843c7d3d2d0cf4a3fd62f2077f7",
693
+ "type": "FIX",
694
+ "text": " sap/ui/model/odata/ODataMetadata#_getPropertyMetadata: fix for complex type property"
695
+ },
696
+ {
697
+ "id": "c22c5b0911ca2a9af5a5488e69e4d3a6f484ad1b",
698
+ "type": "FIX",
699
+ "text": " sap.ui.core.cldr.zh_TW.json: Replace \"B\" to \"a\" in default timeFormats",
700
+ "references": [
701
+ {
702
+ "type": "BCP",
703
+ "reference": "2380141822"
704
+ }
705
+ ]
706
+ },
707
+ {
708
+ "id": "3473d4adbd3220a2f1251663d5f1955a95b09c30",
709
+ "type": "FIX",
710
+ "text": " sap/ui/model/odata/_ODataMetaModelUtils#merge: liftSAPData is called with correct parameters"
711
+ },
712
+ {
713
+ "id": "b3b59d532ae43e5f230f21449e85c89d702156a6",
714
+ "type": "FIX",
715
+ "text": " sap.ui.model.analytics.AnalyticalBinding: handle properties of type Edm.time in grouping"
716
+ }
717
+ ]
666
718
  }
667
719
  }