@openui5/sap.ui.core 1.120.2 → 1.120.3

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 (814) 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 +1 -1
  30. package/src/sap/base/i18n/ResourceBundle.js +1 -1
  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 +2 -2
  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 +2 -2
  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 +2 -2
  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/date/Buddhist.js +1 -1
  236. package/src/sap/ui/core/date/CalendarUtils.js +1 -1
  237. package/src/sap/ui/core/date/CalendarWeekNumbering.js +1 -1
  238. package/src/sap/ui/core/date/Gregorian.js +1 -1
  239. package/src/sap/ui/core/date/Islamic.js +1 -1
  240. package/src/sap/ui/core/date/Japanese.js +1 -1
  241. package/src/sap/ui/core/date/Persian.js +1 -1
  242. package/src/sap/ui/core/date/UI5Date.js +2 -2
  243. package/src/sap/ui/core/date/UniversalDate.js +1 -1
  244. package/src/sap/ui/core/date/UniversalDateUtils.js +1 -1
  245. package/src/sap/ui/core/date/_Calendars.js +1 -1
  246. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  247. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  248. package/src/sap/ui/core/designtime/ComponentContainer.designtime.js +1 -1
  249. package/src/sap/ui/core/designtime/CustomData.designtime.js +1 -1
  250. package/src/sap/ui/core/designtime/Icon.designtime.js +1 -1
  251. package/src/sap/ui/core/designtime/UIComponent.designtime.js +1 -1
  252. package/src/sap/ui/core/designtime/library.designtime.js +1 -1
  253. package/src/sap/ui/core/designtime/mvc/ControllerExtensionTemplate.js +1 -1
  254. package/src/sap/ui/core/designtime/mvc/View.designtime.js +1 -1
  255. package/src/sap/ui/core/designtime/mvc/XMLView.designtime.js +1 -1
  256. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  257. package/src/sap/ui/core/dnd/DragDropBase.js +2 -2
  258. package/src/sap/ui/core/dnd/DragDropInfo.js +2 -2
  259. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  260. package/src/sap/ui/core/dnd/DropInfo.js +2 -2
  261. package/src/sap/ui/core/format/DateFormat.js +1 -1
  262. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +1 -1
  263. package/src/sap/ui/core/format/FileSizeFormat.js +1 -1
  264. package/src/sap/ui/core/format/ListFormat.js +1 -1
  265. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  266. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  267. package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
  268. package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -2
  269. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +1 -1
  270. package/src/sap/ui/core/library.js +4 -4
  271. package/src/sap/ui/core/library.support.js +1 -1
  272. package/src/sap/ui/core/message/ControlMessageProcessor.js +2 -2
  273. package/src/sap/ui/core/message/Message.js +2 -2
  274. package/src/sap/ui/core/message/MessageManager.js +2 -2
  275. package/src/sap/ui/core/message/MessageMixin.js +1 -1
  276. package/src/sap/ui/core/message/MessageParser.js +2 -2
  277. package/src/sap/ui/core/message/MessageProcessor.js +2 -2
  278. package/src/sap/ui/core/message/MessageType.js +1 -1
  279. package/src/sap/ui/core/messagebundle_cnr.properties +352 -0
  280. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +297 -285
  281. package/src/sap/ui/core/mvc/Controller.js +1 -1
  282. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  283. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  284. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  285. package/src/sap/ui/core/mvc/EventHandlerResolver.js +1 -1
  286. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  287. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  288. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  289. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  290. package/src/sap/ui/core/mvc/JSView.js +2 -2
  291. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  292. package/src/sap/ui/core/mvc/OverrideExecution.js +1 -1
  293. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  294. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  295. package/src/sap/ui/core/mvc/View.js +2 -2
  296. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  297. package/src/sap/ui/core/mvc/ViewType.js +1 -1
  298. package/src/sap/ui/core/mvc/XMLProcessingMode.js +1 -1
  299. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  300. package/src/sap/ui/core/mvc/XMLViewRenderer.js +1 -1
  301. package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -2
  302. package/src/sap/ui/core/plugin/LessSupport.js +2 -2
  303. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -2
  304. package/src/sap/ui/core/postmessage/Bus.js +2 -2
  305. package/src/sap/ui/core/postmessage/confirmationDialog.js +2 -2
  306. package/src/sap/ui/core/routing/HashChanger.js +1 -1
  307. package/src/sap/ui/core/routing/HashChangerBase.js +1 -1
  308. package/src/sap/ui/core/routing/History.js +1 -1
  309. package/src/sap/ui/core/routing/Route.js +1 -1
  310. package/src/sap/ui/core/routing/Router.js +1 -1
  311. package/src/sap/ui/core/routing/RouterHashChanger.js +1 -1
  312. package/src/sap/ui/core/routing/Target.js +1 -1
  313. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  314. package/src/sap/ui/core/routing/Targets.js +1 -1
  315. package/src/sap/ui/core/routing/Views.js +1 -1
  316. package/src/sap/ui/core/routing/async/Route.js +1 -1
  317. package/src/sap/ui/core/routing/async/Target.js +1 -1
  318. package/src/sap/ui/core/routing/async/TargetCache.js +1 -1
  319. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  320. package/src/sap/ui/core/routing/sync/Route.js +1 -1
  321. package/src/sap/ui/core/routing/sync/Target.js +1 -1
  322. package/src/sap/ui/core/routing/sync/TargetCache.js +1 -1
  323. package/src/sap/ui/core/routing/sync/Targets.js +1 -1
  324. package/src/sap/ui/core/rules/App.support.js +1 -1
  325. package/src/sap/ui/core/rules/Config.support.js +1 -1
  326. package/src/sap/ui/core/rules/CoreHelper.support.js +1 -1
  327. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  328. package/src/sap/ui/core/rules/Model.support.js +1 -1
  329. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  330. package/src/sap/ui/core/rules/Theming.support.js +1 -1
  331. package/src/sap/ui/core/rules/View.support.js +1 -1
  332. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  333. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  334. package/src/sap/ui/core/service/Service.js +2 -2
  335. package/src/sap/ui/core/service/ServiceFactory.js +2 -2
  336. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +2 -2
  337. package/src/sap/ui/core/support/BootSupportTool.js +1 -1
  338. package/src/sap/ui/core/support/Hotkeys.js +1 -1
  339. package/src/sap/ui/core/support/Plugin.js +2 -2
  340. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
  341. package/src/sap/ui/core/support/Support.js +2 -2
  342. package/src/sap/ui/core/support/ToolsAPI.js +1 -1
  343. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  344. package/src/sap/ui/core/support/controls/InteractionSlider.js +1 -1
  345. package/src/sap/ui/core/support/controls/InteractionTree.js +1 -1
  346. package/src/sap/ui/core/support/controls/ObjectViewer.js +1 -1
  347. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  348. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  349. package/src/sap/ui/core/support/debugReboot.js +1 -1
  350. package/src/sap/ui/core/support/plugins/Breakpoint.js +1 -1
  351. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  352. package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
  353. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  354. package/src/sap/ui/core/support/plugins/LocalStorage.js +2 -2
  355. package/src/sap/ui/core/support/plugins/Performance.js +2 -2
  356. package/src/sap/ui/core/support/plugins/Selector.js +2 -2
  357. package/src/sap/ui/core/support/plugins/TechInfo.js +2 -2
  358. package/src/sap/ui/core/support/plugins/Trace.js +2 -2
  359. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  360. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
  361. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +1 -1
  362. package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
  363. package/src/sap/ui/core/support/trace/EppLib.js +1 -1
  364. package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
  365. package/src/sap/ui/core/syncStyleClass.js +1 -1
  366. package/src/sap/ui/core/themes/base/library.source.less +1 -1
  367. package/src/sap/ui/core/themes/sap_hcb/library.source.less +1 -1
  368. package/src/sap/ui/core/theming/Parameters.js +1 -1
  369. package/src/sap/ui/core/theming/ThemeHelper.js +1 -1
  370. package/src/sap/ui/core/theming/ThemeManager.js +1 -1
  371. package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
  372. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  373. package/src/sap/ui/core/tmpl/DOMElementRenderer.js +1 -1
  374. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
  375. package/src/sap/ui/core/tmpl/Template.js +2 -2
  376. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  377. package/src/sap/ui/core/tmpl/TemplateControlRenderer.js +1 -1
  378. package/src/sap/ui/core/tmpl/_parsePath.js +1 -1
  379. package/src/sap/ui/core/util/AsyncHintsHelper.js +2 -2
  380. package/src/sap/ui/core/util/DraftEnabledMockServer.js +1 -1
  381. package/src/sap/ui/core/util/Export.js +2 -2
  382. package/src/sap/ui/core/util/ExportCell.js +2 -2
  383. package/src/sap/ui/core/util/ExportColumn.js +2 -2
  384. package/src/sap/ui/core/util/ExportRow.js +2 -2
  385. package/src/sap/ui/core/util/ExportType.js +2 -2
  386. package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
  387. package/src/sap/ui/core/util/File.js +2 -2
  388. package/src/sap/ui/core/util/LibraryInfo.js +2 -2
  389. package/src/sap/ui/core/util/MockServer.js +2 -2
  390. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  391. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +1 -1
  392. package/src/sap/ui/core/util/ShortcutHelper.js +1 -1
  393. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
  394. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  395. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +16 -1
  396. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +12 -1
  397. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +15 -1
  398. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
  399. package/src/sap/ui/core/util/serializer/Serializer.js +2 -2
  400. package/src/sap/ui/core/util/serializer/ViewSerializer.js +2 -2
  401. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
  402. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +2 -2
  403. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  404. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  405. package/src/sap/ui/core/webc/WebComponent.js +2 -2
  406. package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -2
  407. package/src/sap/ui/core/webc/WebComponentRenderer.js +1 -1
  408. package/src/sap/ui/core/ws/ReadyState.js +2 -2
  409. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -2
  410. package/src/sap/ui/core/ws/WebSocket.js +2 -2
  411. package/src/sap/ui/debug/ControlTree.js +2 -2
  412. package/src/sap/ui/debug/DebugEnv.js +2 -2
  413. package/src/sap/ui/debug/Highlighter.js +1 -1
  414. package/src/sap/ui/debug/LogViewer.js +1 -1
  415. package/src/sap/ui/debug/PropertyList.js +2 -2
  416. package/src/sap/ui/dom/_ready.js +1 -1
  417. package/src/sap/ui/dom/containsOrEquals.js +1 -1
  418. package/src/sap/ui/dom/denormalizeScrollBeginRTL.js +1 -1
  419. package/src/sap/ui/dom/denormalizeScrollLeftRTL.js +1 -1
  420. package/src/sap/ui/dom/getComputedStyleFix.js +1 -1
  421. package/src/sap/ui/dom/getFirstEditableInput.js +1 -1
  422. package/src/sap/ui/dom/getOwnerWindow.js +1 -1
  423. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  424. package/src/sap/ui/dom/includeScript.js +1 -1
  425. package/src/sap/ui/dom/includeStylesheet.js +1 -1
  426. package/src/sap/ui/dom/isBehindOtherElement.js +1 -1
  427. package/src/sap/ui/dom/isHidden.js +1 -1
  428. package/src/sap/ui/dom/jquery/Aria.js +1 -1
  429. package/src/sap/ui/dom/jquery/Focusable.js +1 -1
  430. package/src/sap/ui/dom/jquery/Selection.js +1 -1
  431. package/src/sap/ui/dom/jquery/Selectors.js +1 -1
  432. package/src/sap/ui/dom/jquery/control.js +1 -1
  433. package/src/sap/ui/dom/jquery/cursorPos.js +1 -1
  434. package/src/sap/ui/dom/jquery/getSelectedText.js +1 -1
  435. package/src/sap/ui/dom/jquery/hasTabIndex.js +1 -1
  436. package/src/sap/ui/dom/jquery/parentByAttribute.js +1 -1
  437. package/src/sap/ui/dom/jquery/rect.js +1 -1
  438. package/src/sap/ui/dom/jquery/rectContains.js +1 -1
  439. package/src/sap/ui/dom/jquery/scrollLeftRTL.js +1 -1
  440. package/src/sap/ui/dom/jquery/scrollRightRTL.js +1 -1
  441. package/src/sap/ui/dom/jquery/selectText.js +1 -1
  442. package/src/sap/ui/dom/jquery/zIndex.js +1 -1
  443. package/src/sap/ui/dom/units/Rem.js +1 -1
  444. package/src/sap/ui/events/ControlEvents.js +1 -1
  445. package/src/sap/ui/events/F6Navigation.js +1 -1
  446. package/src/sap/ui/events/KeyCodes.js +1 -1
  447. package/src/sap/ui/events/PasteEventFix.js +1 -1
  448. package/src/sap/ui/events/PseudoEvents.js +1 -1
  449. package/src/sap/ui/events/TouchToMouseMapping.js +1 -1
  450. package/src/sap/ui/events/checkMouseEnterOrLeave.js +1 -1
  451. package/src/sap/ui/events/isMouseEventDelayed.js +1 -1
  452. package/src/sap/ui/events/isSpecialKey.js +1 -1
  453. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  454. package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
  455. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  456. package/src/sap/ui/model/Binding.js +1 -1
  457. package/src/sap/ui/model/BindingMode.js +1 -1
  458. package/src/sap/ui/model/ChangeReason.js +1 -1
  459. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  460. package/src/sap/ui/model/ClientListBinding.js +1 -1
  461. package/src/sap/ui/model/ClientModel.js +2 -2
  462. package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
  463. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  464. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  465. package/src/sap/ui/model/CompositeBinding.js +1 -1
  466. package/src/sap/ui/model/CompositeDataState.js +2 -2
  467. package/src/sap/ui/model/CompositeType.js +2 -2
  468. package/src/sap/ui/model/Context.js +1 -1
  469. package/src/sap/ui/model/ContextBinding.js +1 -1
  470. package/src/sap/ui/model/DataState.js +2 -2
  471. package/src/sap/ui/model/Filter.js +1 -1
  472. package/src/sap/ui/model/FilterOperator.js +1 -1
  473. package/src/sap/ui/model/FilterProcessor.js +1 -1
  474. package/src/sap/ui/model/FilterType.js +1 -1
  475. package/src/sap/ui/model/FormatException.js +1 -1
  476. package/src/sap/ui/model/ListBinding.js +1 -1
  477. package/src/sap/ui/model/ManagedObjectBindingSupport.js +1 -1
  478. package/src/sap/ui/model/MetaModel.js +2 -2
  479. package/src/sap/ui/model/Model.js +2 -2
  480. package/src/sap/ui/model/ParseException.js +1 -1
  481. package/src/sap/ui/model/PropertyBinding.js +1 -1
  482. package/src/sap/ui/model/SelectionModel.js +2 -2
  483. package/src/sap/ui/model/SimpleType.js +2 -2
  484. package/src/sap/ui/model/Sorter.js +1 -1
  485. package/src/sap/ui/model/SorterProcessor.js +1 -1
  486. package/src/sap/ui/model/StaticBinding.js +1 -1
  487. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  488. package/src/sap/ui/model/TreeBinding.js +1 -1
  489. package/src/sap/ui/model/TreeBindingAdapter.js +1 -1
  490. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
  491. package/src/sap/ui/model/TreeBindingUtils.js +1 -1
  492. package/src/sap/ui/model/Type.js +2 -2
  493. package/src/sap/ui/model/ValidateException.js +1 -1
  494. package/src/sap/ui/model/_Helper.js +1 -1
  495. package/src/sap/ui/model/analytics/AnalyticalBinding.js +1 -1
  496. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  497. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  498. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  499. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  500. package/src/sap/ui/model/analytics/odata4analytics.js +1 -1
  501. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  502. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -1
  503. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  504. package/src/sap/ui/model/json/JSONModel.js +2 -2
  505. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  506. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  507. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  508. package/src/sap/ui/model/message/MessageModel.js +2 -2
  509. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  510. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  511. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  512. package/src/sap/ui/model/odata/CountMode.js +1 -1
  513. package/src/sap/ui/model/odata/Filter.js +1 -1
  514. package/src/sap/ui/model/odata/MessageScope.js +1 -1
  515. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  516. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  517. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  518. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  519. package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
  520. package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
  521. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  522. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  523. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  524. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  525. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  526. package/src/sap/ui/model/odata/ODataUtils.js +11 -6
  527. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  528. package/src/sap/ui/model/odata/UpdateMethod.js +1 -1
  529. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  530. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  531. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
  532. package/src/sap/ui/model/odata/type/Boolean.js +2 -2
  533. package/src/sap/ui/model/odata/type/Byte.js +2 -2
  534. package/src/sap/ui/model/odata/type/Currency.js +2 -2
  535. package/src/sap/ui/model/odata/type/Date.js +2 -2
  536. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  537. package/src/sap/ui/model/odata/type/DateTimeBase.js +2 -2
  538. package/src/sap/ui/model/odata/type/DateTimeOffset.js +2 -2
  539. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -2
  540. package/src/sap/ui/model/odata/type/Decimal.js +2 -2
  541. package/src/sap/ui/model/odata/type/Double.js +2 -2
  542. package/src/sap/ui/model/odata/type/Guid.js +2 -2
  543. package/src/sap/ui/model/odata/type/Int.js +2 -2
  544. package/src/sap/ui/model/odata/type/Int16.js +2 -2
  545. package/src/sap/ui/model/odata/type/Int32.js +2 -2
  546. package/src/sap/ui/model/odata/type/Int64.js +2 -2
  547. package/src/sap/ui/model/odata/type/ODataType.js +2 -2
  548. package/src/sap/ui/model/odata/type/Raw.js +2 -2
  549. package/src/sap/ui/model/odata/type/SByte.js +2 -2
  550. package/src/sap/ui/model/odata/type/Single.js +2 -2
  551. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  552. package/src/sap/ui/model/odata/type/String.js +2 -2
  553. package/src/sap/ui/model/odata/type/Time.js +2 -2
  554. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  555. package/src/sap/ui/model/odata/type/Unit.js +2 -2
  556. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  557. package/src/sap/ui/model/odata/v2/BatchMode.js +1 -1
  558. package/src/sap/ui/model/odata/v2/Context.js +2 -2
  559. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  560. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
  561. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  562. package/src/sap/ui/model/odata/v2/ODataModel.js +2 -2
  563. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -10
  564. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +1 -1
  565. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
  566. package/src/sap/ui/model/odata/v4/Context.js +2 -2
  567. package/src/sap/ui/model/odata/v4/ODataBinding.js +1 -1
  568. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +19 -13
  569. package/src/sap/ui/model/odata/v4/ODataListBinding.js +2 -2
  570. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -9
  571. package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
  572. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +1 -1
  573. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  574. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  575. package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
  576. package/src/sap/ui/model/odata/v4/ValueListType.js +1 -1
  577. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  578. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +11 -5
  579. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  580. package/src/sap/ui/model/odata/v4/lib/_Batch.js +1 -1
  581. package/src/sap/ui/model/odata/v4/lib/_Cache.js +2 -2
  582. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +1 -1
  583. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  584. package/src/sap/ui/model/odata/v4/lib/_Helper.js +1 -1
  585. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +1 -1
  586. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  587. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  588. package/src/sap/ui/model/odata/v4/lib/_Parser.js +1 -1
  589. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
  590. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  591. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  592. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
  593. package/src/sap/ui/model/odata/v4/ts.js +1 -1
  594. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  595. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  596. package/src/sap/ui/model/type/Boolean.js +2 -2
  597. package/src/sap/ui/model/type/Currency.js +2 -2
  598. package/src/sap/ui/model/type/Date.js +2 -2
  599. package/src/sap/ui/model/type/DateInterval.js +2 -2
  600. package/src/sap/ui/model/type/DateTime.js +2 -2
  601. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  602. package/src/sap/ui/model/type/FileSize.js +2 -2
  603. package/src/sap/ui/model/type/Float.js +2 -2
  604. package/src/sap/ui/model/type/Integer.js +2 -2
  605. package/src/sap/ui/model/type/String.js +2 -2
  606. package/src/sap/ui/model/type/Time.js +2 -2
  607. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  608. package/src/sap/ui/model/type/Unit.js +2 -2
  609. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  610. package/src/sap/ui/model/xml/XMLModel.js +2 -2
  611. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  612. package/src/sap/ui/model/xml/XMLTreeBinding.js +1 -1
  613. package/src/sap/ui/performance/BeaconRequest.js +1 -1
  614. package/src/sap/ui/performance/Measurement.js +1 -1
  615. package/src/sap/ui/performance/XHRInterceptor.js +1 -1
  616. package/src/sap/ui/performance/trace/FESR.js +1 -1
  617. package/src/sap/ui/performance/trace/FESRHelper.js +1 -1
  618. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  619. package/src/sap/ui/performance/trace/Passport.js +1 -1
  620. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  621. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  622. package/src/sap/ui/qunit/qunit-2-css.js +1 -1
  623. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  624. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  625. package/src/sap/ui/qunit/qunit-css.js +1 -1
  626. package/src/sap/ui/qunit/qunit-junit.js +1 -1
  627. package/src/sap/ui/qunit/qunit-redirect.js +1 -1
  628. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  629. package/src/sap/ui/qunit/utils/ControlIterator.js +2 -2
  630. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +2 -2
  631. package/src/sap/ui/qunit/utils/createAndAppendDiv.js +1 -1
  632. package/src/sap/ui/qunit/utils/nextUIUpdate.js +1 -1
  633. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +1 -1
  634. package/src/sap/ui/security/FrameOptions.js +1 -1
  635. package/src/sap/ui/test/BlanketReporter.js +1 -1
  636. package/src/sap/ui/test/BranchTracking.js +1 -1
  637. package/src/sap/ui/test/ModuleTracking.js +1 -1
  638. package/src/sap/ui/test/Opa.js +1 -1
  639. package/src/sap/ui/test/Opa5.js +1 -1
  640. package/src/sap/ui/test/OpaBuilder.js +1 -1
  641. package/src/sap/ui/test/OpaExtension.js +1 -1
  642. package/src/sap/ui/test/OpaPlugin.js +1 -1
  643. package/src/sap/ui/test/PageObjectFactory.js +1 -1
  644. package/src/sap/ui/test/RecordReplay.js +1 -1
  645. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  646. package/src/sap/ui/test/TestUtils.js +1 -1
  647. package/src/sap/ui/test/_BrowserLogCollector.js +1 -1
  648. package/src/sap/ui/test/_ControlFinder.js +1 -1
  649. package/src/sap/ui/test/_FocusListener.js +1 -1
  650. package/src/sap/ui/test/_LogCollector.js +1 -1
  651. package/src/sap/ui/test/_OpaLogger.js +1 -1
  652. package/src/sap/ui/test/_OpaUriParameterParser.js +1 -1
  653. package/src/sap/ui/test/_ParameterValidator.js +1 -1
  654. package/src/sap/ui/test/_UsageReport.js +1 -1
  655. package/src/sap/ui/test/_ValidationParameters.js +1 -1
  656. package/src/sap/ui/test/actions/Action.js +1 -1
  657. package/src/sap/ui/test/actions/Drag.js +1 -1
  658. package/src/sap/ui/test/actions/Drop.js +1 -1
  659. package/src/sap/ui/test/actions/EnterText.js +1 -1
  660. package/src/sap/ui/test/actions/Press.js +1 -1
  661. package/src/sap/ui/test/actions/Scroll.js +1 -1
  662. package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -1
  663. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +1 -1
  664. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  665. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  666. package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +1 -1
  667. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +1 -1
  668. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +1 -1
  669. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +1 -1
  670. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +1 -1
  671. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -1
  672. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +1 -1
  673. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +1 -1
  674. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +1 -1
  675. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
  676. package/src/sap/ui/test/autowaiter/_utils.js +1 -1
  677. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -1
  678. package/src/sap/ui/test/generic/TestBase.js +2 -2
  679. package/src/sap/ui/test/generic/Utils.js +1 -1
  680. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -1
  681. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +1 -1
  682. package/src/sap/ui/test/gherkin/StepDefinitions.js +1 -1
  683. package/src/sap/ui/test/gherkin/dataTableUtils.js +1 -1
  684. package/src/sap/ui/test/gherkin/opa5TestHarness.js +1 -1
  685. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +1 -1
  686. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +1 -1
  687. package/src/sap/ui/test/launchers/componentLauncher.js +1 -1
  688. package/src/sap/ui/test/launchers/iFrameLauncher.js +1 -1
  689. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +1 -1
  690. package/src/sap/ui/test/matchers/AggregationEmpty.js +1 -1
  691. package/src/sap/ui/test/matchers/AggregationFilled.js +1 -1
  692. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +1 -1
  693. package/src/sap/ui/test/matchers/Ancestor.js +1 -1
  694. package/src/sap/ui/test/matchers/BindingPath.js +1 -1
  695. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  696. package/src/sap/ui/test/matchers/I18NText.js +1 -1
  697. package/src/sap/ui/test/matchers/Interactable.js +1 -1
  698. package/src/sap/ui/test/matchers/LabelFor.js +1 -1
  699. package/src/sap/ui/test/matchers/Matcher.js +1 -1
  700. package/src/sap/ui/test/matchers/MatcherFactory.js +1 -1
  701. package/src/sap/ui/test/matchers/Properties.js +1 -1
  702. package/src/sap/ui/test/matchers/PropertyStrictEquals.js +1 -1
  703. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  704. package/src/sap/ui/test/matchers/Visible.js +1 -1
  705. package/src/sap/ui/test/matchers/_Busy.js +1 -1
  706. package/src/sap/ui/test/matchers/_Editable.js +1 -1
  707. package/src/sap/ui/test/matchers/_Enabled.js +1 -1
  708. package/src/sap/ui/test/matchers/_Visitor.js +1 -1
  709. package/src/sap/ui/test/matchers/matchers.js +1 -1
  710. package/src/sap/ui/test/opaQunit.js +1 -1
  711. package/src/sap/ui/test/pipelines/ActionPipeline.js +1 -1
  712. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  713. package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -1
  714. package/src/sap/ui/test/qunitPause.js +1 -1
  715. package/src/sap/ui/test/selectors/_BindingPath.js +1 -1
  716. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +1 -1
  717. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  718. package/src/sap/ui/test/selectors/_ControlType.js +1 -1
  719. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -1
  720. package/src/sap/ui/test/selectors/_GlobalID.js +1 -1
  721. package/src/sap/ui/test/selectors/_LabelFor.js +1 -1
  722. package/src/sap/ui/test/selectors/_Properties.js +1 -1
  723. package/src/sap/ui/test/selectors/_Selector.js +1 -1
  724. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -1
  725. package/src/sap/ui/test/selectors/_ViewID.js +1 -1
  726. package/src/sap/ui/test/selectors/_selectors.js +1 -1
  727. package/src/sap/ui/test/starter/_configureLoader.js +1 -1
  728. package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
  729. package/src/sap/ui/test/starter/_utils.js +1 -1
  730. package/src/sap/ui/test/starter/createSuite.js +1 -1
  731. package/src/sap/ui/test/starter/runTest.js +1 -1
  732. package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
  733. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  734. package/src/sap/ui/util/ActivityDetection.js +1 -1
  735. package/src/sap/ui/util/Mobile.js +1 -1
  736. package/src/sap/ui/util/Storage.js +2 -2
  737. package/src/sap/ui/util/XMLHelper.js +1 -1
  738. package/src/sap/ui/util/_FeatureDetection.js +1 -1
  739. package/src/sap/ui/util/defaultLinkTypes.js +1 -1
  740. package/src/sap/ui/util/isCrossOriginURL.js +1 -1
  741. package/src/sap/ui/util/openWindow.js +1 -1
  742. package/src/sap-ui-boot.js +1 -1
  743. package/src/sap-ui-core-nojQuery.js +1 -1
  744. package/src/sap-ui-core.js +1 -1
  745. package/src/sap-ui-debug.js +1 -1
  746. package/src/ui5loader-autoconfig.js +1 -1
  747. package/src/ui5loader.js +1 -1
  748. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  749. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  750. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  751. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  752. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  753. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +2 -2
  754. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  755. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  756. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  757. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  758. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  759. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  760. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  761. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  762. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  763. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  764. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  765. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  766. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  767. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  768. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  769. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  770. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  771. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  772. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  773. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  774. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  775. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  776. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  777. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  778. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  779. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  780. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  781. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  782. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  783. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  784. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  785. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  786. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  787. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  788. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  789. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  790. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  791. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  792. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  793. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  794. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  795. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  796. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  797. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  798. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  799. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  800. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  801. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  802. package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +107 -0
  803. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +21 -0
  804. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +106 -0
  805. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +11 -5
  806. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +75 -27
  807. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +34 -16
  808. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +249 -53
  809. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +34 -14
  810. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +2 -2
  811. package/test/sap/ui/core/qunit/types/TimezoneUtil.qunit.js +114 -2
  812. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +20 -0
  813. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +20 -2
  814. package/test/sap/ui/core/relnotes/changes-1.120.json +21 -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,96 @@ 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 consequetively 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
+ */
32523
+ const expect = (iRow, iSkip, iTop) => {
32524
+ if (iSkip !== undefined) {
32525
+ const aElements = [];
32526
+ for (let i = 0; i < iTop; i += 1) {
32527
+ aElements.push({DrillState : "leaf", ID : `E${iSkip + i}`});
32528
+ }
32529
+
32530
+ const sQuery = sBaseQuery + (bCount ? "&$count=true" : "");
32531
+ bCount = false;
32532
+ this.expectRequest(`EMPLOYEES?${sQuery}&$skip=${iSkip}&$top=${iTop}`, {
32533
+ "@odata.count" : "1000",
32534
+ value : aElements
32535
+ });
32536
+ }
32537
+ for (let i = 0; i < 3; i += 1) {
32538
+ this.expectChange("id", `E${iRow + i}`, iRow + i);
32539
+ }
32540
+ };
32541
+
32542
+ /**
32543
+ * Scrolls the table to the given row, expects request and change events and waits for them.
32544
+ *
32545
+ * @param {number} iRow - The new first visible row
32546
+ * @param {number} [iSkip] - $skip for the request; no request if undefined
32547
+ * @param {number} [iTop] - $top for the request
32548
+ */
32549
+ const scroll = async (iRow, iSkip, iTop) => {
32550
+ expect(iRow, iSkip, iTop);
32551
+ oTable.setFirstVisibleRow(iRow);
32552
+
32553
+ await this.waitForChanges(assert, `scroll to ${iRow}`);
32554
+ };
32555
+
32556
+ expect(0, 0, 8); // 3 visible, 5 after
32557
+
32558
+ await this.createView(assert, sView, oModel);
32559
+
32560
+ oTable = this.oView.byId("table");
32561
+ await scroll(30, 25, 13); // 5 before, 3 visible, 5 after
32562
+ // forward
32563
+ await scroll(31);
32564
+ await scroll(32);
32565
+ await scroll(33, 38, 3); // 3 after (> threshold/2)
32566
+ await scroll(34);
32567
+ await scroll(35);
32568
+ await scroll(36, 41, 3); // 3 after
32569
+ // backward
32570
+ await scroll(29);
32571
+ await scroll(28);
32572
+ await scroll(27, 22, 3); // 3 before
32573
+ await scroll(26);
32574
+ await scroll(25);
32575
+ await scroll(24, 19, 3); // 3 before
32576
+ });
32577
+ });
32578
+
32383
32579
  //*********************************************************************************************
32384
32580
  // Scenario: Application tries to overwrite client-side instance annotations.
32385
32581
  // JIRA: CPOUI5UISERVICESV3-1220
@@ -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
 
@@ -1721,47 +1722,60 @@ 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
+ 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(function (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]);
1759
1769
  });
1760
1770
  });
1761
1771
 
1762
1772
  //*********************************************************************************************
1763
- [1, 2].forEach(function (iLength) {
1764
- QUnit.test("read: gap at start, iLength = " + iLength, function (assert) {
1773
+ [
1774
+ {iStart : 0, iLength : 1, iPrefetchLength : 0},
1775
+ {iStart : 0, iLength : 2, iPrefetchLength : 0},
1776
+ {iStart : 1, iLength : 1, iPrefetchLength : 1}
1777
+ ].forEach(function (oFixture) {
1778
+ QUnit.test("read: gap at start " + JSON.stringify(oFixture), function (assert) {
1765
1779
  var oAggregation = { // filled before by buildApply
1766
1780
  aggregate : {},
1767
1781
  group : {},
@@ -1782,6 +1796,10 @@ sap.ui.define([
1782
1796
  oCache.aElements.$byPredicate = {};
1783
1797
  oCache.aElements.$count = 42;
1784
1798
 
1799
+ this.mock(ODataUtils).expects("_getReadRange")
1800
+ .withExactArgs(sinon.match.same(oCache.aElements), oFixture.iStart, oFixture.iLength,
1801
+ oFixture.iPrefetchLength, sinon.match.func)
1802
+ .returns({length : 2, start : 0});
1785
1803
  this.mock(oGroupLock).expects("getUnlockedCopy").withExactArgs()
1786
1804
  .returns("~oGroupLockCopy~");
1787
1805
  this.mock(oCache).expects("readGap")
@@ -1790,10 +1808,12 @@ sap.ui.define([
1790
1808
  this.mock(oGroupLock).expects("unlock").withExactArgs();
1791
1809
 
1792
1810
  // 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) {
1811
+ return oCache.read(oFixture.iStart, oFixture.iLength, oFixture.iPrefetchLength, oGroupLock,
1812
+ "~fnDataRequested~"
1813
+ ).then(function (oResult) {
1814
+ assert.strictEqual(oResult.value.length, oFixture.iLength);
1815
+ assert.strictEqual(oResult.value[0], oFixture.iStart ? oFirstLeaf : aReadResult[0]);
1816
+ if (oFixture.iLength > 1) {
1797
1817
  assert.strictEqual(oResult.value[1], oFirstLeaf);
1798
1818
  }
1799
1819
  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,