@openui5/sap.ui.core 1.131.1 → 1.132.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (772) hide show
  1. package/.dtsgenrc +17 -0
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.act.js +1 -1
  5. package/src/jquery.sap.dom.js +1 -1
  6. package/src/jquery.sap.encoder.js +1 -1
  7. package/src/jquery.sap.events.js +1 -1
  8. package/src/jquery.sap.global.js +2 -2
  9. package/src/jquery.sap.history.js +1 -1
  10. package/src/jquery.sap.keycodes.js +1 -1
  11. package/src/jquery.sap.mobile.js +1 -1
  12. package/src/jquery.sap.promise.js +1 -1
  13. package/src/jquery.sap.properties.js +2 -2
  14. package/src/jquery.sap.resources.js +2 -2
  15. package/src/jquery.sap.script.js +2 -2
  16. package/src/jquery.sap.sjax.js +1 -1
  17. package/src/jquery.sap.storage.js +4 -4
  18. package/src/jquery.sap.strings.js +1 -1
  19. package/src/jquery.sap.stubs.js +1 -1
  20. package/src/jquery.sap.trace.js +1 -1
  21. package/src/jquery.sap.ui.js +1 -1
  22. package/src/jquery.sap.xml.js +1 -1
  23. package/src/sap/base/Event.js +2 -2
  24. package/src/sap/base/Eventing.js +2 -2
  25. package/src/sap/base/Log.js +1 -1
  26. package/src/sap/base/assert.js +1 -1
  27. package/src/sap/base/config/MemoryConfigurationProvider.js +1 -1
  28. package/src/sap/base/config.js +2 -2
  29. package/src/sap/base/future.js +1 -1
  30. package/src/sap/base/i18n/Formatting.js +1 -1
  31. package/src/sap/base/i18n/LanguageTag.js +2 -2
  32. package/src/sap/base/i18n/Localization.js +2 -4
  33. package/src/sap/base/i18n/ResourceBundle.js +4 -3
  34. package/src/sap/base/i18n/date/CalendarType.js +1 -1
  35. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +1 -1
  36. package/src/sap/base/i18n/date/TimezoneUtils.js +2 -2
  37. package/src/sap/base/i18n/date/_EnumHelper.js +1 -1
  38. package/src/sap/base/security/URLListValidator.js +1 -1
  39. package/src/sap/base/security/URLWhitelist.js +1 -1
  40. package/src/sap/base/security/encodeCSS.js +1 -1
  41. package/src/sap/base/security/encodeJS.js +1 -1
  42. package/src/sap/base/security/encodeURL.js +1 -1
  43. package/src/sap/base/security/encodeURLParameters.js +1 -1
  44. package/src/sap/base/security/encodeXML.js +1 -1
  45. package/src/sap/base/security/sanitizeHTML.js +1 -1
  46. package/src/sap/base/strings/camelize.js +1 -1
  47. package/src/sap/base/strings/capitalize.js +1 -1
  48. package/src/sap/base/strings/escapeRegExp.js +1 -1
  49. package/src/sap/base/strings/formatMessage.js +1 -1
  50. package/src/sap/base/strings/hash.js +1 -1
  51. package/src/sap/base/strings/hyphenate.js +1 -1
  52. package/src/sap/base/strings/toHex.js +1 -1
  53. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  54. package/src/sap/base/util/Deferred.js +1 -1
  55. package/src/sap/base/util/JSTokenizer.js +1 -1
  56. package/src/sap/base/util/LoaderExtensions.js +1 -1
  57. package/src/sap/base/util/ObjectPath.js +1 -1
  58. package/src/sap/base/util/Properties.js +1 -1
  59. package/src/sap/base/util/UriParameters.js +1 -1
  60. package/src/sap/base/util/Version.js +1 -1
  61. package/src/sap/base/util/_merge.js +1 -1
  62. package/src/sap/base/util/array/diff.js +1 -1
  63. package/src/sap/base/util/array/uniqueSort.js +1 -1
  64. package/src/sap/base/util/clamp.js +1 -1
  65. package/src/sap/base/util/deepClone.js +1 -1
  66. package/src/sap/base/util/deepEqual.js +1 -1
  67. package/src/sap/base/util/deepExtend.js +1 -1
  68. package/src/sap/base/util/defineCoupledProperty.js +1 -1
  69. package/src/sap/base/util/defineLazyProperty.js +1 -1
  70. package/src/sap/base/util/each.js +1 -1
  71. package/src/sap/base/util/extend.js +1 -1
  72. package/src/sap/base/util/fetch.js +1 -1
  73. package/src/sap/base/util/includes.js +1 -1
  74. package/src/sap/base/util/isEmptyObject.js +1 -1
  75. package/src/sap/base/util/isPlainObject.js +1 -1
  76. package/src/sap/base/util/merge.js +1 -1
  77. package/src/sap/base/util/mixedFetch.js +1 -1
  78. package/src/sap/base/util/now.js +1 -1
  79. package/src/sap/base/util/resolveReference.js +1 -1
  80. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  81. package/src/sap/base/util/restricted/_castArray.js +2 -2
  82. package/src/sap/base/util/restricted/_compact.js +2 -2
  83. package/src/sap/base/util/restricted/_curry.js +2 -2
  84. package/src/sap/base/util/restricted/_debounce.js +2 -2
  85. package/src/sap/base/util/restricted/_difference.js +2 -2
  86. package/src/sap/base/util/restricted/_differenceBy.js +2 -2
  87. package/src/sap/base/util/restricted/_differenceWith.js +2 -2
  88. package/src/sap/base/util/restricted/_flatMap.js +2 -2
  89. package/src/sap/base/util/restricted/_flatMapDeep.js +2 -2
  90. package/src/sap/base/util/restricted/_flatMapDepth.js +2 -2
  91. package/src/sap/base/util/restricted/_flatten.js +2 -2
  92. package/src/sap/base/util/restricted/_flattenDeep.js +2 -2
  93. package/src/sap/base/util/restricted/_flattenDepth.js +2 -2
  94. package/src/sap/base/util/restricted/_intersection.js +2 -2
  95. package/src/sap/base/util/restricted/_intersectionBy.js +2 -2
  96. package/src/sap/base/util/restricted/_intersectionWith.js +2 -2
  97. package/src/sap/base/util/restricted/_isEqual.js +2 -2
  98. package/src/sap/base/util/restricted/_isEqualWith.js +2 -2
  99. package/src/sap/base/util/restricted/_isNil.js +2 -2
  100. package/src/sap/base/util/restricted/_max.js +2 -2
  101. package/src/sap/base/util/restricted/_merge.js +2 -2
  102. package/src/sap/base/util/restricted/_mergeWith.js +2 -2
  103. package/src/sap/base/util/restricted/_min.js +2 -2
  104. package/src/sap/base/util/restricted/_omit.js +2 -2
  105. package/src/sap/base/util/restricted/_pick.js +2 -2
  106. package/src/sap/base/util/restricted/_pickBy.js +2 -2
  107. package/src/sap/base/util/restricted/_throttle.js +2 -2
  108. package/src/sap/base/util/restricted/_toArray.js +2 -2
  109. package/src/sap/base/util/restricted/_union.js +2 -2
  110. package/src/sap/base/util/restricted/_unionBy.js +2 -2
  111. package/src/sap/base/util/restricted/_unionWith.js +2 -2
  112. package/src/sap/base/util/restricted/_uniq.js +2 -2
  113. package/src/sap/base/util/restricted/_uniqBy.js +2 -2
  114. package/src/sap/base/util/restricted/_uniqWith.js +2 -2
  115. package/src/sap/base/util/restricted/_without.js +2 -2
  116. package/src/sap/base/util/restricted/_xor.js +2 -2
  117. package/src/sap/base/util/restricted/_xorBy.js +2 -2
  118. package/src/sap/base/util/restricted/_xorWith.js +2 -2
  119. package/src/sap/base/util/restricted/_zipObject.js +2 -2
  120. package/src/sap/base/util/restricted/_zipObjectDeep.js +2 -2
  121. package/src/sap/base/util/syncFetch.js +1 -1
  122. package/src/sap/base/util/uid.js +1 -1
  123. package/src/sap/base/util/values.js +1 -1
  124. package/src/sap/ui/Device.js +65 -6
  125. package/src/sap/ui/Global.js +4 -4
  126. package/src/sap/ui/VersionInfo.js +1 -1
  127. package/src/sap/ui/base/BindingInfo.js +1 -1
  128. package/src/sap/ui/base/BindingParser.js +1 -1
  129. package/src/sap/ui/base/DataType.js +1 -1
  130. package/src/sap/ui/base/DesignTime.js +1 -1
  131. package/src/sap/ui/base/Event.js +2 -2
  132. package/src/sap/ui/base/EventProvider.js +2 -2
  133. package/src/sap/ui/base/Exception.js +1 -1
  134. package/src/sap/ui/base/ExpressionParser.js +1 -1
  135. package/src/sap/ui/base/Interface.js +2 -2
  136. package/src/sap/ui/base/ManagedObject.js +2 -2
  137. package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
  138. package/src/sap/ui/base/ManagedObjectObserver.js +1 -1
  139. package/src/sap/ui/base/ManagedObjectRegistry.js +1 -1
  140. package/src/sap/ui/base/Metadata.js +3 -4
  141. package/src/sap/ui/base/Object.js +2 -2
  142. package/src/sap/ui/base/ObjectPool.js +2 -2
  143. package/src/sap/ui/base/SyncPromise.js +1 -1
  144. package/src/sap/ui/base/syncXHRFix.js +1 -1
  145. package/src/sap/ui/core/.library +2 -2
  146. package/src/sap/ui/core/AccessKeysEnablement.js +1 -1
  147. package/src/sap/ui/core/AnimationMode.js +1 -1
  148. package/src/sap/ui/core/AppCacheBuster.js +1 -1
  149. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  150. package/src/sap/ui/core/BusyIndicator.js +2 -2
  151. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  152. package/src/sap/ui/core/CalendarType.js +3 -3
  153. package/src/sap/ui/core/CommandExecution.js +46 -42
  154. package/src/sap/ui/core/Component.js +20 -7
  155. package/src/sap/ui/core/ComponentContainer.js +2 -2
  156. package/src/sap/ui/core/ComponentContainerRenderer.js +1 -1
  157. package/src/sap/ui/core/ComponentHooks.js +51 -4
  158. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  159. package/src/sap/ui/core/ComponentRegistry.js +1 -1
  160. package/src/sap/ui/core/ComponentSupport.js +2 -2
  161. package/src/sap/ui/core/Configuration.js +2 -2
  162. package/src/sap/ui/core/ContextMenuSupport.js +1 -1
  163. package/src/sap/ui/core/Control.js +10 -8
  164. package/src/sap/ui/core/ControlBehavior.js +1 -1
  165. package/src/sap/ui/core/Core.js +3 -3
  166. package/src/sap/ui/core/CustomData.js +2 -2
  167. package/src/sap/ui/core/CustomStyleClassSupport.js +1 -1
  168. package/src/sap/ui/core/DeclarativeSupport.js +2 -2
  169. package/src/sap/ui/core/Element.js +10 -9
  170. package/src/sap/ui/core/ElementMetadata.js +2 -2
  171. package/src/sap/ui/core/ElementRegistry.js +1 -1
  172. package/src/sap/ui/core/EnabledPropagator.js +2 -2
  173. package/src/sap/ui/core/EventBus.js +2 -2
  174. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  175. package/src/sap/ui/core/FocusHandler.js +1 -1
  176. package/src/sap/ui/core/FocusMode.js +1 -1
  177. package/src/sap/ui/core/Fragment.js +188 -189
  178. package/src/sap/ui/core/HTML.js +2 -2
  179. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  180. package/src/sap/ui/core/History.js +2 -2
  181. package/src/sap/ui/core/Icon.js +5 -2
  182. package/src/sap/ui/core/IconPool.js +1 -1
  183. package/src/sap/ui/core/IconRenderer.js +1 -1
  184. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  185. package/src/sap/ui/core/IntervalTrigger.js +2 -2
  186. package/src/sap/ui/core/InvisibleMessage.js +2 -2
  187. package/src/sap/ui/core/InvisibleRenderer.js +2 -2
  188. package/src/sap/ui/core/InvisibleText.js +2 -2
  189. package/src/sap/ui/core/Item.js +2 -2
  190. package/src/sap/ui/core/LabelEnablement.js +3 -3
  191. package/src/sap/ui/core/LayoutData.js +2 -2
  192. package/src/sap/ui/core/Lib.js +13 -7
  193. package/src/sap/ui/core/ListItem.js +2 -2
  194. package/src/sap/ui/core/LocalBusyIndicator.js +2 -2
  195. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +1 -1
  196. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  197. package/src/sap/ui/core/Locale.js +2 -2
  198. package/src/sap/ui/core/LocaleData.js +2 -2
  199. package/src/sap/ui/core/Manifest.js +2 -2
  200. package/src/sap/ui/core/Message.js +2 -2
  201. package/src/sap/ui/core/Messaging.js +1 -1
  202. package/src/sap/ui/core/Patcher.js +1 -1
  203. package/src/sap/ui/core/Placeholder.js +1 -1
  204. package/src/sap/ui/core/Popup.js +37 -78
  205. package/src/sap/ui/core/RenderManager.js +12 -2
  206. package/src/sap/ui/core/Renderer.js +2 -2
  207. package/src/sap/ui/core/Rendering.js +9 -7
  208. package/src/sap/ui/core/ResizeHandler.js +2 -2
  209. package/src/sap/ui/core/ScrollBar.js +2 -2
  210. package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
  211. package/src/sap/ui/core/SeparatorItem.js +2 -2
  212. package/src/sap/ui/core/Shortcut.js +1 -1
  213. package/src/sap/ui/core/ShortcutHint.js +1 -1
  214. package/src/sap/ui/core/ShortcutHintsMixin.js +1 -1
  215. package/src/sap/ui/core/StashedControlSupport.js +1 -1
  216. package/src/sap/ui/core/StaticArea.js +1 -9
  217. package/src/sap/ui/core/Supportability.js +4 -4
  218. package/src/sap/ui/core/Title.js +2 -2
  219. package/src/sap/ui/core/TooltipBase.js +2 -2
  220. package/src/sap/ui/core/UIArea.js +3 -3
  221. package/src/sap/ui/core/UIAreaRegistry.js +1 -1
  222. package/src/sap/ui/core/UIComponent.js +6 -2
  223. package/src/sap/ui/core/UIComponentMetadata.js +2 -3
  224. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  225. package/src/sap/ui/core/VariantLayoutData.js +2 -2
  226. package/src/sap/ui/core/XMLComposite.js +2 -2
  227. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  228. package/src/sap/ui/core/XMLTemplateProcessor.js +4 -3
  229. package/src/sap/ui/core/_IconRegistry.js +1 -1
  230. package/src/sap/ui/core/_UrlResolver.js +1 -1
  231. package/src/sap/ui/core/boot/FieldHelpEndpoint.js +1 -1
  232. package/src/sap/ui/core/boot/_bootConfig.js +1 -1
  233. package/src/sap/ui/core/boot/_runBoot.js +1 -1
  234. package/src/sap/ui/core/boot/initDOM.js +1 -1
  235. package/src/sap/ui/core/boot/loadCalendar.js +1 -1
  236. package/src/sap/ui/core/boot/loadManifest.js +1 -1
  237. package/src/sap/ui/core/boot/loadModules.js +1 -1
  238. package/src/sap/ui/core/boot/onInit.js +1 -1
  239. package/src/sap/ui/core/boot.js +1 -1
  240. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  241. package/src/sap/ui/core/cache/CacheManagerNOP.js +1 -1
  242. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  243. package/src/sap/ui/core/date/Buddhist.js +1 -1
  244. package/src/sap/ui/core/date/CalendarUtils.js +1 -1
  245. package/src/sap/ui/core/date/CalendarWeekNumbering.js +1 -1
  246. package/src/sap/ui/core/date/Gregorian.js +1 -1
  247. package/src/sap/ui/core/date/Islamic.js +1 -1
  248. package/src/sap/ui/core/date/Japanese.js +1 -1
  249. package/src/sap/ui/core/date/Persian.js +1 -1
  250. package/src/sap/ui/core/date/UI5Date.js +2 -2
  251. package/src/sap/ui/core/date/UniversalDate.js +1 -1
  252. package/src/sap/ui/core/date/UniversalDateUtils.js +1 -1
  253. package/src/sap/ui/core/date/_Calendars.js +1 -1
  254. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  255. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  256. package/src/sap/ui/core/designtime/ComponentContainer.designtime.js +1 -1
  257. package/src/sap/ui/core/designtime/CustomData.designtime.js +1 -1
  258. package/src/sap/ui/core/designtime/Icon.designtime.js +1 -1
  259. package/src/sap/ui/core/designtime/UIComponent.designtime.js +1 -1
  260. package/src/sap/ui/core/designtime/library.designtime.js +1 -1
  261. package/src/sap/ui/core/designtime/mvc/ControllerExtensionTemplate.js +1 -1
  262. package/src/sap/ui/core/designtime/mvc/View.designtime.js +1 -1
  263. package/src/sap/ui/core/designtime/mvc/XMLView.designtime.js +1 -1
  264. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  265. package/src/sap/ui/core/dnd/DragDropBase.js +2 -2
  266. package/src/sap/ui/core/dnd/DragDropInfo.js +2 -2
  267. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  268. package/src/sap/ui/core/dnd/DropInfo.js +2 -2
  269. package/src/sap/ui/core/fieldhelp/FieldHelp.js +1 -1
  270. package/src/sap/ui/core/fieldhelp/FieldHelpCustomData.js +1 -1
  271. package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +1 -1
  272. package/src/sap/ui/core/format/DateFormat.js +8 -7
  273. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +1 -1
  274. package/src/sap/ui/core/format/FileSizeFormat.js +1 -1
  275. package/src/sap/ui/core/format/FormatUtils.js +2 -2
  276. package/src/sap/ui/core/format/ListFormat.js +1 -1
  277. package/src/sap/ui/core/format/NumberFormat.js +128 -15
  278. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  279. package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
  280. package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -2
  281. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +1 -1
  282. package/src/sap/ui/core/library.js +4 -4
  283. package/src/sap/ui/core/library.support.js +1 -1
  284. package/src/sap/ui/core/message/ControlMessageProcessor.js +2 -2
  285. package/src/sap/ui/core/message/Message.js +2 -2
  286. package/src/sap/ui/core/message/MessageManager.js +2 -2
  287. package/src/sap/ui/core/message/MessageMixin.js +1 -1
  288. package/src/sap/ui/core/message/MessageParser.js +2 -2
  289. package/src/sap/ui/core/message/MessageProcessor.js +2 -2
  290. package/src/sap/ui/core/message/MessageType.js +1 -1
  291. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +291 -294
  292. package/src/sap/ui/core/mvc/Controller.js +1 -1
  293. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  294. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  295. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  296. package/src/sap/ui/core/mvc/EventHandlerResolver.js +1 -1
  297. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  298. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  299. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  300. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  301. package/src/sap/ui/core/mvc/JSView.js +2 -2
  302. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  303. package/src/sap/ui/core/mvc/OverrideExecution.js +1 -1
  304. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  305. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  306. package/src/sap/ui/core/mvc/View.js +2 -2
  307. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  308. package/src/sap/ui/core/mvc/ViewType.js +1 -1
  309. package/src/sap/ui/core/mvc/XMLProcessingMode.js +1 -1
  310. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  311. package/src/sap/ui/core/mvc/XMLViewRenderer.js +1 -1
  312. package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -2
  313. package/src/sap/ui/core/plugin/LessSupport.js +2 -2
  314. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -2
  315. package/src/sap/ui/core/postmessage/Bus.js +2 -2
  316. package/src/sap/ui/core/postmessage/confirmationDialog.js +2 -2
  317. package/src/sap/ui/core/routing/HashChanger.js +1 -1
  318. package/src/sap/ui/core/routing/HashChangerBase.js +1 -1
  319. package/src/sap/ui/core/routing/History.js +1 -1
  320. package/src/sap/ui/core/routing/Route.js +1 -1
  321. package/src/sap/ui/core/routing/Router.js +1 -1
  322. package/src/sap/ui/core/routing/RouterHashChanger.js +1 -1
  323. package/src/sap/ui/core/routing/Target.js +1 -1
  324. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  325. package/src/sap/ui/core/routing/Targets.js +1 -1
  326. package/src/sap/ui/core/routing/Views.js +1 -1
  327. package/src/sap/ui/core/routing/async/Route.js +1 -1
  328. package/src/sap/ui/core/routing/async/Target.js +1 -2
  329. package/src/sap/ui/core/routing/async/TargetCache.js +1 -2
  330. package/src/sap/ui/core/routing/async/Targets.js +1 -2
  331. package/src/sap/ui/core/routing/sync/Route.js +1 -1
  332. package/src/sap/ui/core/routing/sync/Target.js +1 -1
  333. package/src/sap/ui/core/routing/sync/TargetCache.js +1 -1
  334. package/src/sap/ui/core/routing/sync/Targets.js +1 -1
  335. package/src/sap/ui/core/rules/App.support.js +1 -1
  336. package/src/sap/ui/core/rules/Config.support.js +1 -1
  337. package/src/sap/ui/core/rules/CoreHelper.support.js +1 -1
  338. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  339. package/src/sap/ui/core/rules/Model.support.js +1 -1
  340. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  341. package/src/sap/ui/core/rules/Theming.support.js +1 -1
  342. package/src/sap/ui/core/rules/View.support.js +1 -1
  343. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  344. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  345. package/src/sap/ui/core/service/Service.js +2 -2
  346. package/src/sap/ui/core/service/ServiceFactory.js +2 -2
  347. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +2 -2
  348. package/src/sap/ui/core/support/BootSupportTool.js +1 -1
  349. package/src/sap/ui/core/support/Hotkeys.js +1 -1
  350. package/src/sap/ui/core/support/Plugin.js +2 -2
  351. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
  352. package/src/sap/ui/core/support/Support.js +2 -2
  353. package/src/sap/ui/core/support/ToolsAPI.js +1 -1
  354. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  355. package/src/sap/ui/core/support/controls/InteractionSlider.js +1 -1
  356. package/src/sap/ui/core/support/controls/InteractionTree.js +1 -1
  357. package/src/sap/ui/core/support/controls/ObjectViewer.js +1 -1
  358. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  359. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  360. package/src/sap/ui/core/support/debugReboot.js +1 -1
  361. package/src/sap/ui/core/support/plugins/Breakpoint.js +1 -1
  362. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  363. package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
  364. package/src/sap/ui/core/support/plugins/Interaction.js +17 -6
  365. package/src/sap/ui/core/support/plugins/LocalStorage.js +2 -2
  366. package/src/sap/ui/core/support/plugins/Performance.js +2 -2
  367. package/src/sap/ui/core/support/plugins/Selector.js +2 -2
  368. package/src/sap/ui/core/support/plugins/TechInfo.js +2 -2
  369. package/src/sap/ui/core/support/plugins/Trace.js +2 -2
  370. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  371. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +5 -5
  372. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +1 -1
  373. package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
  374. package/src/sap/ui/core/support/trace/EppLib.js +1 -1
  375. package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
  376. package/src/sap/ui/core/syncStyleClass.js +1 -1
  377. package/src/sap/ui/core/themes/base/base.less +858 -404
  378. package/src/sap/ui/core/themes/base/global.less +117 -5
  379. package/src/sap/ui/core/themes/base/library.source.less +1 -1
  380. package/src/sap/ui/core/themes/base/shared.less +6 -2
  381. package/src/sap/ui/core/themes/base/skeleton.less +53 -3
  382. package/src/sap/ui/core/themes/sap_hcb/library.source.less +1 -1
  383. package/src/sap/ui/core/theming/Parameters.js +2 -2
  384. package/src/sap/ui/core/theming/ThemeHelper.js +1 -1
  385. package/src/sap/ui/core/theming/ThemeManager.js +1 -1
  386. package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
  387. package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
  388. package/src/sap/ui/core/tmpl/DOMElementRenderer.js +1 -1
  389. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
  390. package/src/sap/ui/core/tmpl/Template.js +2 -2
  391. package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
  392. package/src/sap/ui/core/tmpl/TemplateControlRenderer.js +1 -1
  393. package/src/sap/ui/core/tmpl/_parsePath.js +1 -1
  394. package/src/sap/ui/core/util/AsyncHintsHelper.js +2 -2
  395. package/src/sap/ui/core/util/DraftEnabledMockServer.js +1 -1
  396. package/src/sap/ui/core/util/Export.js +2 -2
  397. package/src/sap/ui/core/util/ExportCell.js +2 -2
  398. package/src/sap/ui/core/util/ExportColumn.js +2 -2
  399. package/src/sap/ui/core/util/ExportRow.js +2 -2
  400. package/src/sap/ui/core/util/ExportType.js +2 -2
  401. package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
  402. package/src/sap/ui/core/util/File.js +2 -2
  403. package/src/sap/ui/core/util/LibraryInfo.js +2 -2
  404. package/src/sap/ui/core/util/MockServer.js +2 -2
  405. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  406. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +1 -1
  407. package/src/sap/ui/core/util/ShortcutHelper.js +1 -1
  408. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
  409. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  410. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -1
  411. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +1 -1
  412. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  413. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
  414. package/src/sap/ui/core/util/serializer/Serializer.js +2 -2
  415. package/src/sap/ui/core/util/serializer/ViewSerializer.js +2 -2
  416. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
  417. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +2 -2
  418. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  419. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  420. package/src/sap/ui/core/webc/WebComponent.js +47 -5
  421. package/src/sap/ui/core/webc/WebComponentMetadata.js +6 -3
  422. package/src/sap/ui/core/webc/WebComponentRenderer.js +5 -3
  423. package/src/sap/ui/core/ws/ReadyState.js +2 -2
  424. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -2
  425. package/src/sap/ui/core/ws/WebSocket.js +2 -2
  426. package/src/sap/ui/debug/ControlTree.js +2 -2
  427. package/src/sap/ui/debug/DebugEnv.js +2 -2
  428. package/src/sap/ui/debug/Highlighter.js +1 -1
  429. package/src/sap/ui/debug/LogViewer.js +1 -1
  430. package/src/sap/ui/debug/PropertyList.js +2 -2
  431. package/src/sap/ui/dom/_ready.js +1 -1
  432. package/src/sap/ui/dom/containsOrEquals.js +1 -1
  433. package/src/sap/ui/dom/denormalizeScrollBeginRTL.js +1 -1
  434. package/src/sap/ui/dom/denormalizeScrollLeftRTL.js +1 -1
  435. package/src/sap/ui/dom/findTabbable.js +1 -1
  436. package/src/sap/ui/dom/getComputedStyleFix.js +1 -1
  437. package/src/sap/ui/dom/getFirstEditableInput.js +1 -1
  438. package/src/sap/ui/dom/getOwnerWindow.js +1 -1
  439. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  440. package/src/sap/ui/dom/includeScript.js +1 -1
  441. package/src/sap/ui/dom/includeStylesheet.js +1 -1
  442. package/src/sap/ui/dom/isBehindOtherElement.js +1 -1
  443. package/src/sap/ui/dom/isElementCovered.js +1 -1
  444. package/src/sap/ui/dom/isHidden.js +1 -1
  445. package/src/sap/ui/dom/jquery/Aria.js +1 -1
  446. package/src/sap/ui/dom/jquery/Focusable.js +1 -1
  447. package/src/sap/ui/dom/jquery/Selection.js +1 -1
  448. package/src/sap/ui/dom/jquery/Selectors.js +1 -1
  449. package/src/sap/ui/dom/jquery/control.js +1 -1
  450. package/src/sap/ui/dom/jquery/cursorPos.js +1 -1
  451. package/src/sap/ui/dom/jquery/getSelectedText.js +1 -1
  452. package/src/sap/ui/dom/jquery/hasTabIndex.js +1 -1
  453. package/src/sap/ui/dom/jquery/parentByAttribute.js +1 -1
  454. package/src/sap/ui/dom/jquery/rect.js +1 -1
  455. package/src/sap/ui/dom/jquery/rectContains.js +1 -1
  456. package/src/sap/ui/dom/jquery/scrollLeftRTL.js +1 -1
  457. package/src/sap/ui/dom/jquery/scrollRightRTL.js +1 -1
  458. package/src/sap/ui/dom/jquery/selectText.js +1 -1
  459. package/src/sap/ui/dom/jquery/zIndex.js +1 -1
  460. package/src/sap/ui/dom/units/Rem.js +1 -1
  461. package/src/sap/ui/events/ControlEvents.js +1 -1
  462. package/src/sap/ui/events/F6Navigation.js +1 -1
  463. package/src/sap/ui/events/KeyCodes.js +1 -1
  464. package/src/sap/ui/events/PasteEventFix.js +1 -1
  465. package/src/sap/ui/events/PseudoEvents.js +1 -1
  466. package/src/sap/ui/events/TouchToMouseMapping.js +1 -1
  467. package/src/sap/ui/events/checkMouseEnterOrLeave.js +1 -1
  468. package/src/sap/ui/events/isMouseEventDelayed.js +1 -1
  469. package/src/sap/ui/events/isSpecialKey.js +1 -1
  470. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  471. package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
  472. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  473. package/src/sap/ui/model/Binding.js +31 -12
  474. package/src/sap/ui/model/BindingMode.js +1 -1
  475. package/src/sap/ui/model/ChangeReason.js +1 -1
  476. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  477. package/src/sap/ui/model/ClientListBinding.js +1 -1
  478. package/src/sap/ui/model/ClientModel.js +2 -2
  479. package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
  480. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  481. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  482. package/src/sap/ui/model/CompositeBinding.js +13 -1
  483. package/src/sap/ui/model/CompositeDataState.js +2 -2
  484. package/src/sap/ui/model/CompositeType.js +2 -2
  485. package/src/sap/ui/model/Context.js +1 -1
  486. package/src/sap/ui/model/ContextBinding.js +1 -1
  487. package/src/sap/ui/model/DataState.js +2 -2
  488. package/src/sap/ui/model/Filter.js +1 -1
  489. package/src/sap/ui/model/FilterOperator.js +1 -1
  490. package/src/sap/ui/model/FilterProcessor.js +1 -1
  491. package/src/sap/ui/model/FilterType.js +1 -1
  492. package/src/sap/ui/model/FormatException.js +1 -1
  493. package/src/sap/ui/model/ListBinding.js +1 -1
  494. package/src/sap/ui/model/ManagedObjectBindingSupport.js +1 -1
  495. package/src/sap/ui/model/MetaModel.js +2 -2
  496. package/src/sap/ui/model/Model.js +2 -2
  497. package/src/sap/ui/model/ParseException.js +1 -1
  498. package/src/sap/ui/model/PropertyBinding.js +1 -1
  499. package/src/sap/ui/model/SelectionModel.js +2 -2
  500. package/src/sap/ui/model/SimpleType.js +2 -2
  501. package/src/sap/ui/model/Sorter.js +1 -1
  502. package/src/sap/ui/model/SorterProcessor.js +1 -1
  503. package/src/sap/ui/model/StaticBinding.js +3 -3
  504. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  505. package/src/sap/ui/model/TreeBinding.js +1 -1
  506. package/src/sap/ui/model/TreeBindingAdapter.js +1 -1
  507. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
  508. package/src/sap/ui/model/TreeBindingUtils.js +1 -1
  509. package/src/sap/ui/model/Type.js +2 -2
  510. package/src/sap/ui/model/ValidateException.js +1 -1
  511. package/src/sap/ui/model/_Helper.js +1 -1
  512. package/src/sap/ui/model/analytics/AnalyticalBinding.js +1 -1
  513. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  514. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  515. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  516. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  517. package/src/sap/ui/model/analytics/odata4analytics.js +1 -1
  518. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  519. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -1
  520. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  521. package/src/sap/ui/model/json/JSONModel.js +2 -2
  522. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  523. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  524. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  525. package/src/sap/ui/model/message/MessageModel.js +2 -2
  526. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  527. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  528. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  529. package/src/sap/ui/model/odata/CountMode.js +1 -1
  530. package/src/sap/ui/model/odata/Filter.js +1 -1
  531. package/src/sap/ui/model/odata/MessageScope.js +1 -1
  532. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  533. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  534. package/src/sap/ui/model/odata/ODataExpressionAddons.js +1 -1
  535. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  536. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  537. package/src/sap/ui/model/odata/ODataMetaModel.js +4 -4
  538. package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
  539. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  540. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  541. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  542. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  543. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  544. package/src/sap/ui/model/odata/ODataUtils.js +20 -1
  545. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  546. package/src/sap/ui/model/odata/UpdateMethod.js +1 -1
  547. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  548. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  549. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
  550. package/src/sap/ui/model/odata/type/Boolean.js +2 -2
  551. package/src/sap/ui/model/odata/type/Byte.js +3 -2
  552. package/src/sap/ui/model/odata/type/Currency.js +10 -4
  553. package/src/sap/ui/model/odata/type/Date.js +2 -2
  554. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  555. package/src/sap/ui/model/odata/type/DateTimeBase.js +2 -2
  556. package/src/sap/ui/model/odata/type/DateTimeOffset.js +2 -2
  557. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -2
  558. package/src/sap/ui/model/odata/type/Decimal.js +3 -2
  559. package/src/sap/ui/model/odata/type/Double.js +3 -2
  560. package/src/sap/ui/model/odata/type/Guid.js +2 -2
  561. package/src/sap/ui/model/odata/type/Int.js +3 -2
  562. package/src/sap/ui/model/odata/type/Int16.js +3 -2
  563. package/src/sap/ui/model/odata/type/Int32.js +3 -2
  564. package/src/sap/ui/model/odata/type/Int64.js +3 -2
  565. package/src/sap/ui/model/odata/type/ODataType.js +2 -2
  566. package/src/sap/ui/model/odata/type/Raw.js +2 -2
  567. package/src/sap/ui/model/odata/type/SByte.js +3 -2
  568. package/src/sap/ui/model/odata/type/Single.js +3 -2
  569. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  570. package/src/sap/ui/model/odata/type/String.js +2 -2
  571. package/src/sap/ui/model/odata/type/Time.js +2 -2
  572. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  573. package/src/sap/ui/model/odata/type/Unit.js +10 -4
  574. package/src/sap/ui/model/odata/type/UnitMixin.js +9 -3
  575. package/src/sap/ui/model/odata/v2/BatchMode.js +1 -1
  576. package/src/sap/ui/model/odata/v2/Context.js +2 -2
  577. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  578. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
  579. package/src/sap/ui/model/odata/v2/ODataListBinding.js +5 -3
  580. package/src/sap/ui/model/odata/v2/ODataModel.js +20 -5
  581. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +2 -2
  582. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +1 -1
  583. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
  584. package/src/sap/ui/model/odata/v4/Context.js +59 -28
  585. package/src/sap/ui/model/odata/v4/ODataBinding.js +16 -2
  586. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +24 -7
  587. package/src/sap/ui/model/odata/v4/ODataListBinding.js +42 -17
  588. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +57 -28
  589. package/src/sap/ui/model/odata/v4/ODataModel.js +10 -5
  590. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +23 -13
  591. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
  592. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  593. package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
  594. package/src/sap/ui/model/odata/v4/ValueListType.js +1 -1
  595. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  596. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +9 -20
  597. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +75 -51
  598. package/src/sap/ui/model/odata/v4/lib/_Batch.js +1 -1
  599. package/src/sap/ui/model/odata/v4/lib/_Cache.js +80 -24
  600. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +1 -1
  601. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  602. package/src/sap/ui/model/odata/v4/lib/_Helper.js +28 -13
  603. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +1 -1
  604. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  605. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
  606. package/src/sap/ui/model/odata/v4/lib/_Parser.js +1 -1
  607. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +29 -12
  608. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
  609. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  610. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  611. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
  612. package/src/sap/ui/model/odata/v4/ts.js +1 -1
  613. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  614. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  615. package/src/sap/ui/model/type/Boolean.js +2 -2
  616. package/src/sap/ui/model/type/Currency.js +3 -2
  617. package/src/sap/ui/model/type/Date.js +2 -2
  618. package/src/sap/ui/model/type/DateInterval.js +2 -2
  619. package/src/sap/ui/model/type/DateTime.js +2 -2
  620. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  621. package/src/sap/ui/model/type/FileSize.js +2 -2
  622. package/src/sap/ui/model/type/Float.js +3 -2
  623. package/src/sap/ui/model/type/Integer.js +3 -2
  624. package/src/sap/ui/model/type/String.js +2 -2
  625. package/src/sap/ui/model/type/Time.js +2 -2
  626. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  627. package/src/sap/ui/model/type/Unit.js +15 -7
  628. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  629. package/src/sap/ui/model/xml/XMLModel.js +2 -2
  630. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  631. package/src/sap/ui/model/xml/XMLTreeBinding.js +1 -1
  632. package/src/sap/ui/performance/BeaconRequest.js +1 -1
  633. package/src/sap/ui/performance/Measurement.js +8 -11
  634. package/src/sap/ui/performance/XHRInterceptor.js +1 -1
  635. package/src/sap/ui/performance/trace/FESR.js +4 -1
  636. package/src/sap/ui/performance/trace/FESRHelper.js +1 -1
  637. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  638. package/src/sap/ui/performance/trace/Passport.js +1 -1
  639. package/src/sap/ui/performance/trace/_InteractionImpl.js +4 -4
  640. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  641. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  642. package/src/sap/ui/qunit/qunit-2-css.js +1 -1
  643. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  644. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  645. package/src/sap/ui/qunit/qunit-css.js +1 -1
  646. package/src/sap/ui/qunit/qunit-junit.js +1 -1
  647. package/src/sap/ui/qunit/qunit-redirect.js +1 -1
  648. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  649. package/src/sap/ui/qunit/utils/ControlIterator.js +2 -2
  650. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +2 -2
  651. package/src/sap/ui/qunit/utils/createAndAppendDiv.js +1 -1
  652. package/src/sap/ui/qunit/utils/nextUIUpdate.js +1 -1
  653. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +1 -1
  654. package/src/sap/ui/security/FrameOptions.js +1 -1
  655. package/src/sap/ui/test/BlanketReporter.js +1 -1
  656. package/src/sap/ui/test/BranchTracking.js +1 -1
  657. package/src/sap/ui/test/ModuleTracking.js +1 -1
  658. package/src/sap/ui/test/Opa.js +1 -1
  659. package/src/sap/ui/test/Opa5.js +1 -1
  660. package/src/sap/ui/test/OpaBuilder.js +1 -1
  661. package/src/sap/ui/test/OpaExtension.js +1 -1
  662. package/src/sap/ui/test/OpaPlugin.js +1 -1
  663. package/src/sap/ui/test/PageObjectFactory.js +1 -1
  664. package/src/sap/ui/test/RecordReplay.js +1 -1
  665. package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
  666. package/src/sap/ui/test/TestUtils.js +1 -1
  667. package/src/sap/ui/test/_BrowserLogCollector.js +1 -1
  668. package/src/sap/ui/test/_ControlFinder.js +1 -1
  669. package/src/sap/ui/test/_FocusListener.js +1 -1
  670. package/src/sap/ui/test/_LogCollector.js +1 -1
  671. package/src/sap/ui/test/_OpaLogger.js +1 -1
  672. package/src/sap/ui/test/_OpaUriParameterParser.js +1 -1
  673. package/src/sap/ui/test/_ParameterValidator.js +1 -1
  674. package/src/sap/ui/test/_UsageReport.js +1 -1
  675. package/src/sap/ui/test/_ValidationParameters.js +1 -1
  676. package/src/sap/ui/test/actions/Action.js +1 -1
  677. package/src/sap/ui/test/actions/Drag.js +1 -1
  678. package/src/sap/ui/test/actions/Drop.js +1 -1
  679. package/src/sap/ui/test/actions/EnterText.js +1 -1
  680. package/src/sap/ui/test/actions/Press.js +1 -1
  681. package/src/sap/ui/test/actions/Scroll.js +1 -1
  682. package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -1
  683. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +1 -1
  684. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  685. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  686. package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +1 -1
  687. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +1 -1
  688. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +1 -1
  689. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +1 -1
  690. package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +1 -1
  691. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -1
  692. package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +1 -1
  693. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +1 -1
  694. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +1 -1
  695. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
  696. package/src/sap/ui/test/autowaiter/_utils.js +1 -1
  697. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -1
  698. package/src/sap/ui/test/generic/TestBase.js +2 -2
  699. package/src/sap/ui/test/generic/Utils.js +1 -1
  700. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -1
  701. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +1 -1
  702. package/src/sap/ui/test/gherkin/StepDefinitions.js +1 -1
  703. package/src/sap/ui/test/gherkin/dataTableUtils.js +1 -1
  704. package/src/sap/ui/test/gherkin/opa5TestHarness.js +1 -1
  705. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +1 -1
  706. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +1 -1
  707. package/src/sap/ui/test/launchers/componentLauncher.js +1 -1
  708. package/src/sap/ui/test/launchers/iFrameLauncher.js +1 -1
  709. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +1 -1
  710. package/src/sap/ui/test/matchers/AggregationEmpty.js +1 -1
  711. package/src/sap/ui/test/matchers/AggregationFilled.js +1 -1
  712. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +1 -1
  713. package/src/sap/ui/test/matchers/Ancestor.js +1 -1
  714. package/src/sap/ui/test/matchers/BindingPath.js +1 -1
  715. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  716. package/src/sap/ui/test/matchers/I18NText.js +1 -1
  717. package/src/sap/ui/test/matchers/Interactable.js +1 -1
  718. package/src/sap/ui/test/matchers/LabelFor.js +1 -1
  719. package/src/sap/ui/test/matchers/Matcher.js +1 -1
  720. package/src/sap/ui/test/matchers/MatcherFactory.js +1 -1
  721. package/src/sap/ui/test/matchers/Properties.js +1 -1
  722. package/src/sap/ui/test/matchers/PropertyStrictEquals.js +1 -1
  723. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  724. package/src/sap/ui/test/matchers/Visible.js +1 -1
  725. package/src/sap/ui/test/matchers/_Busy.js +1 -1
  726. package/src/sap/ui/test/matchers/_Editable.js +1 -1
  727. package/src/sap/ui/test/matchers/_Enabled.js +1 -1
  728. package/src/sap/ui/test/matchers/_Visitor.js +1 -1
  729. package/src/sap/ui/test/matchers/matchers.js +1 -1
  730. package/src/sap/ui/test/opaQunit.js +1 -1
  731. package/src/sap/ui/test/pipelines/ActionPipeline.js +1 -1
  732. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  733. package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -1
  734. package/src/sap/ui/test/qunitPause.js +1 -1
  735. package/src/sap/ui/test/selectors/_BindingPath.js +1 -1
  736. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +1 -1
  737. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  738. package/src/sap/ui/test/selectors/_ControlType.js +1 -1
  739. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -1
  740. package/src/sap/ui/test/selectors/_GlobalID.js +1 -1
  741. package/src/sap/ui/test/selectors/_LabelFor.js +1 -1
  742. package/src/sap/ui/test/selectors/_Properties.js +1 -1
  743. package/src/sap/ui/test/selectors/_Selector.js +1 -1
  744. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -1
  745. package/src/sap/ui/test/selectors/_ViewID.js +1 -1
  746. package/src/sap/ui/test/selectors/_selectors.js +1 -1
  747. package/src/sap/ui/test/starter/_configureLoader.js +1 -1
  748. package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
  749. package/src/sap/ui/test/starter/_utils.js +31 -14
  750. package/src/sap/ui/test/starter/createSuite.js +1 -1
  751. package/src/sap/ui/test/starter/runTest.js +1 -1
  752. package/src/sap/ui/test/utils/nextUIUpdate.js +1 -1
  753. package/src/sap/ui/test/utils/waitForThemeApplied.js +1 -1
  754. package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
  755. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  756. package/src/sap/ui/util/ActivityDetection.js +1 -1
  757. package/src/sap/ui/util/Mobile.js +1 -1
  758. package/src/sap/ui/util/Storage.js +2 -2
  759. package/src/sap/ui/util/XMLHelper.js +1 -1
  760. package/src/sap/ui/util/_FeatureDetection.js +1 -1
  761. package/src/sap/ui/util/_enforceNoReturnValue.js +1 -1
  762. package/src/sap/ui/util/defaultLinkTypes.js +1 -1
  763. package/src/sap/ui/util/isCrossOriginURL.js +1 -1
  764. package/src/sap/ui/util/openWindow.js +1 -1
  765. package/src/sap-ui-boot.js +1 -1
  766. package/src/sap-ui-core-nojQuery.js +1 -1
  767. package/src/sap-ui-core.js +1 -1
  768. package/src/sap-ui-debug.js +1 -1
  769. package/src/ui5loader-autoconfig.js +26 -6
  770. package/src/ui5loader.js +2 -3
  771. package/ui5.yaml +1 -0
  772. package/ui5lint.config.js +9 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
75
75
  * @public
76
76
  * @since 1.37.0
77
- * @version 1.131.1
77
+ * @version 1.132.0
78
78
  *
79
79
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -232,8 +232,10 @@ sap.ui.define([
232
232
  return that.refreshDependentBindings("", oGroupLock.getGroupId(), true);
233
233
  }
234
234
 
235
- oPromise = oMetaModel.fetchObject(sResolvedMetaPath + "/@$ui5.overload")
236
- .then(function (aOperationMetadata) {
235
+ oPromise = SyncPromise.all([
236
+ oMetaModel.fetchObject(sResolvedMetaPath + "/@$ui5.overload"),
237
+ this.ready2Inherit()
238
+ ]).then(function ([aOperationMetadata]) {
237
239
  var fnGetEntity, iIndex, sPath;
238
240
 
239
241
  if (!aOperationMetadata) {
@@ -626,7 +628,7 @@ sap.ui.define([
626
628
 
627
629
  oResult = fnOnStrictHandlingFailed(
628
630
  _Helper.extractMessages(oError).map(function (oRawMessage) {
629
- return that.oModel.createUI5Message(oRawMessage);
631
+ return oModel.createUI5Message(oRawMessage);
630
632
  })
631
633
  );
632
634
 
@@ -646,7 +648,7 @@ sap.ui.define([
646
648
  if (bAction && fnGetEntity) {
647
649
  vEntity = fnGetEntity();
648
650
  }
649
- if (bIgnoreETag && !(bAction && oOperationMetadata.$IsBound && vEntity)) {
651
+ if (bIgnoreETag && !(bAction && oOperationMetadata.$IsBound && vEntity !== null)) {
650
652
  throw new Error("Not a bound action: " + sPath);
651
653
  }
652
654
  if (this.bInheritExpandSelect
@@ -1292,7 +1294,8 @@ sap.ui.define([
1292
1294
  * request like '$auto' (since 1.121.0).
1293
1295
  * @param {boolean} [bIgnoreETag]
1294
1296
  * Whether the entity's ETag should be actively ignored (If-Match:*); supported for bound
1295
- * actions only, since 1.90.0. Ignored if there is no ETag (since 1.93.0).
1297
+ * actions only, since 1.90.0. This parameter is ignored if there is no ETag (since 1.93.0)
1298
+ * unless no data has been read so far (since 1.132.0).
1296
1299
  * @param {function(sap.ui.core.message.Message[]):Promise<boolean>} [fnOnStrictHandlingFailed]
1297
1300
  * If this callback is given for an action, the preference "handling=strict" is applied. If
1298
1301
  * the service responds with the HTTP status code 412 and a
@@ -1494,6 +1497,20 @@ sap.ui.define([
1494
1497
  && !oMetadata.$EntitySetPath.includes("/"); // case 3
1495
1498
  };
1496
1499
 
1500
+ /**
1501
+ * Returns a sync promise that tells whether we are ready to inherit $expand/$select.
1502
+ *
1503
+ * @returns {sap.ui.base.SyncPromise}
1504
+ * A sync promise that resolves without a defined result as soon as we are ready to inherit
1505
+ * $expand/$select
1506
+ *
1507
+ * @private
1508
+ */
1509
+ ODataContextBinding.prototype.ready2Inherit = function () {
1510
+ return this.bInheritExpandSelect && this.bRelative && this.oContext.getBinding?.().ready()
1511
+ || SyncPromise.resolve();
1512
+ };
1513
+
1497
1514
  /**
1498
1515
  * Refreshes all dependent bindings with the given parameters and waits for them to have
1499
1516
  * finished.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
60
60
  * @public
61
61
  * @since 1.37.0
62
- * @version 1.131.1
62
+ * @version 1.132.0
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
64
64
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
65
65
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -1867,8 +1867,19 @@ sap.ui.define([
1867
1867
  return SyncPromise.resolve(null);
1868
1868
  }
1869
1869
 
1870
+ const sMetaPath = _Helper.getMetaPath(this.getResolvedPath());
1871
+ // Note: All paths in mChildPathsReducedToParent start with the partner navigation property
1872
+ // of the last segment in the binding's path because they are backlinks. When wrapped, this
1873
+ // results in exactly one $expand.
1874
+ const mAdditionalExpand = {};
1875
+ for (const sChildPath in this.mChildPathsReducedToParent) {
1876
+ const mQueryOptions = _Helper.wrapChildQueryOptions(sMetaPath, sChildPath, {},
1877
+ this.oModel.oInterface.fetchMetadata, /*bDoNotSelectKeyProperties*/true);
1878
+ _Helper.aggregateExpandSelect(mAdditionalExpand, mQueryOptions);
1879
+ }
1880
+
1870
1881
  return this.withCache(function (oCache, sPath) {
1871
- return oCache.getDownloadUrl(sPath, mUriParameters);
1882
+ return oCache.getDownloadUrl(sPath, mUriParameters, mAdditionalExpand);
1872
1883
  });
1873
1884
  };
1874
1885
 
@@ -1878,6 +1889,8 @@ sap.ui.define([
1878
1889
  * {@link sap.ui.filter.Filter.NONE} is set as any of the dynamic filters, it will override
1879
1890
  * all static filters.
1880
1891
  *
1892
+ * As a side effect, this method computes <code>$$aggregation.$leafLevelAggregated</code>.
1893
+ *
1881
1894
  * @param {sap.ui.model.Context} oContext
1882
1895
  * The context instance to be used; it is given as a parameter and this.oContext is unused
1883
1896
  * because setContext calls this method (indirectly) before calling the superclass to ensure
@@ -1896,6 +1909,7 @@ sap.ui.define([
1896
1909
  * @private
1897
1910
  */
1898
1911
  ODataListBinding.prototype.fetchFilter = function (oContext, sStaticFilter) {
1912
+ let aFiltersNoThese;
1899
1913
  const oMetaModel = this.oModel.getMetaModel();
1900
1914
  const oMetaContext = oMetaModel.getMetaContext(this.oModel.resolve(this.sPath, oContext));
1901
1915
 
@@ -1917,7 +1931,7 @@ sap.ui.define([
1917
1931
  }
1918
1932
 
1919
1933
  bToLower = sEdmType === "Edm.String" && oFilter.bCaseSensitive === false;
1920
- sFilterPath = bThese
1934
+ sFilterPath = bThese && !aFiltersNoThese?.includes(oFilter)
1921
1935
  ? setCase(`$these/aggregate(${oFilter.sPath})`)
1922
1936
  : setCase(decodeURIComponent(oFilter.sPath));
1923
1937
  sValue = setCase(_Helper.formatLiteral(oFilter.oValue1, sEdmType));
@@ -2043,20 +2057,26 @@ sap.ui.define([
2043
2057
 
2044
2058
  const oCombinedFilter
2045
2059
  = FilterProcessor.combineFilters(this.aFilters, this.aApplicationFilters);
2046
- if (!oCombinedFilter) {
2047
- return SyncPromise.resolve([sStaticFilter]);
2048
- }
2049
- if (oCombinedFilter === Filter.NONE) {
2050
- return SyncPromise.resolve(["false"]);
2051
- }
2052
2060
 
2053
2061
  const oPromise = _Helper.isDataAggregation(this.mParameters)
2054
2062
  ? oMetaModel.fetchObject(oMetaContext.getPath() + "/")
2055
- : SyncPromise.resolve();
2063
+ : SyncPromise.resolve(); // Note: no oEntityType available below!
2056
2064
 
2057
2065
  return oPromise.then((oEntityType) => {
2058
- const aFilters = _AggregationHelper.splitFilter(oCombinedFilter,
2059
- this.mParameters.$$aggregation, oEntityType);
2066
+ const oAggregation = this.mParameters.$$aggregation;
2067
+ if (oEntityType) {
2068
+ oAggregation.$leafLevelAggregated
2069
+ = !oEntityType.$Key?.every((sKey) => sKey in oAggregation.group);
2070
+ }
2071
+
2072
+ if (!oCombinedFilter) {
2073
+ return [sStaticFilter];
2074
+ }
2075
+ if (oCombinedFilter === Filter.NONE) {
2076
+ return ["false"];
2077
+ }
2078
+ const aFilters = _AggregationHelper.splitFilter(oCombinedFilter, oAggregation);
2079
+ aFiltersNoThese = aFilters[3];
2060
2080
 
2061
2081
  return SyncPromise.all([
2062
2082
  fetchFilter(aFilters[0], {}, /*bWithinAnd*/sStaticFilter)
@@ -2509,7 +2529,7 @@ sap.ui.define([
2509
2529
  aElements = oCache.getElements(sPath);
2510
2530
  }, "", /*bSync*/true);
2511
2531
 
2512
- if (aElements && this.createContexts(0, aElements)) {
2532
+ if (aElements && this.createContexts(0, aElements, /*bCreateOnly*/true)) {
2513
2533
  // In the case that a control has requested new data and the data request is already
2514
2534
  // completed, but the new contexts are not yet created, we have to ensure that a change
2515
2535
  // event is fired to inform the control about these new contexts.
@@ -4379,7 +4399,7 @@ sap.ui.define([
4379
4399
  }
4380
4400
  }
4381
4401
  if (bSingle) {
4382
- this.oModel.withUnresolvedBindings("removeCachesAndMessages",
4402
+ oModel.withUnresolvedBindings("removeCachesAndMessages",
4383
4403
  oContext.getPath().slice(1));
4384
4404
 
4385
4405
  return this.refreshSingle(oContext, this.lockGroup(sGroupId), /*bAllowRemoval*/false,
@@ -4642,7 +4662,10 @@ sap.ui.define([
4642
4662
  * </ul>
4643
4663
  * @param {string[]} [oAggregation.groupLevels]
4644
4664
  * A list of groupable property names used to determine group levels. They may, but don't need
4645
- * to, be repeated in <code>oAggregation.group</code>. Group levels cannot be combined with:
4665
+ * to, be repeated in <code>oAggregation.group</code>. Since 1.132.0, the last group level is
4666
+ * interpreted as the leaf level in case there are no other groups than those given here. In
4667
+ * that case, {@link #getAggregation} returns a shorter <code>groupLevels</code> list.
4668
+ * Group levels cannot be combined with:
4646
4669
  * <ul>
4647
4670
  * <li> filtering for aggregated properties,
4648
4671
  * <li> "$search" (since 1.93.0),
@@ -4793,7 +4816,9 @@ sap.ui.define([
4793
4816
  this.oHeaderContext ??= Context.create(this.oModel, this, sResolvedPath);
4794
4817
  if (this.mParameters.$$aggregation) {
4795
4818
  _AggregationHelper.setPath(this.mParameters.$$aggregation, sResolvedPath);
4796
- } else if (this.bHasPathReductionToParent && this.oModel.bAutoExpandSelect) {
4819
+ } else if (!_Helper.isEmptyObject(this.mChildPathsReducedToParent)
4820
+ && this.oModel.bAutoExpandSelect) {
4821
+ // restart auto-$expand/$select
4797
4822
  this.mCanUseCachePromiseByChildPath = {};
4798
4823
  this.sChangeReason = "AddVirtualContext"; // JIRA: CPOUI5ODATAV4-848
4799
4824
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  }
59
59
  }),
60
60
  oBooleanType,
61
- mCodeListUrl2Promise = new Map(),
61
+ mCodeListUrl2Promise = {},
62
62
  DEBUG = Log.Level.DEBUG,
63
63
  aInt64Names = ["$count", "@$ui5.node.groupLevelCount", "@$ui5.node.level"],
64
64
  oInt64Type,
@@ -68,7 +68,6 @@ sap.ui.define([
68
68
  rPredicate = /\(.*\)$/,
69
69
  oRawType = new Raw(),
70
70
  rRightBraces = /\$\)/g,
71
- mSharedModelByUrl = new Map(),
72
71
  mSupportedEvents = {
73
72
  messageChange : true
74
73
  },
@@ -158,7 +157,7 @@ sap.ui.define([
158
157
  * @hideconstructor
159
158
  * @public
160
159
  * @since 1.37.0
161
- * @version 1.131.1
160
+ * @version 1.132.0
162
161
  */
163
162
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
164
163
  constructor : constructor
@@ -552,6 +551,7 @@ sap.ui.define([
552
551
  // "B." : {"/B/$metadata" : true} // namespace already read
553
552
  // }
554
553
  this.mSchema2MetadataUrl = {};
554
+ this.mSharedModelByUrl = {}; // see #getOrCreateSharedModel
555
555
  this.mSupportedBindingModes = {OneTime : true, OneWay : true};
556
556
  this.bSupportReferences = bSupportReferences !== false; // default is true
557
557
  // ClientListBinding#filter calls checkFilter on the model; ClientModel does
@@ -1009,6 +1009,8 @@ sap.ui.define([
1009
1009
  */
1010
1010
  ODataMetaModel.prototype.destroy = function () {
1011
1011
  this.oMetaModelForAnnotations = undefined;
1012
+ Object.values(this.mSharedModelByUrl).forEach((oModel) => oModel.destroy());
1013
+ this.mSharedModelByUrl = undefined;
1012
1014
 
1013
1015
  MetaModel.prototype.destroy.apply(this);
1014
1016
  };
@@ -2493,40 +2495,50 @@ sap.ui.define([
2493
2495
  /**
2494
2496
  * Creates an OData model for the given URL, normalizes the path, caches it, and retrieves it
2495
2497
  * from the cache upon further requests. The model is read-only ("OneWay") and can, thus, safely
2496
- * be shared. It shares this meta model's security token. The function expects that the metadata
2497
- * and the local annotation files have already been loaded.
2498
+ * be shared across multiple calls to this method (but not across multiple meta models). It
2499
+ * shares this meta model's security token and "Retry-After" handler. Annotations are copied if
2500
+ * requested; in this case it is expected that the metadata and the local annotation files have
2501
+ * already been loaded.
2498
2502
  *
2499
2503
  * @param {string} sUrl
2500
2504
  * The (relative) $metadata URL, for example "../ValueListService/$metadata"
2501
- * @param {string} [sGroupId]
2502
- * The group ID, for example "$direct"
2505
+ * @param {boolean} [bCopyAnnotations]
2506
+ * Whether to copy annotations to the shared model, which is a value list model - not a code
2507
+ * list model!
2503
2508
  * @param {boolean} [bAutoExpandSelect]
2504
2509
  * Whether the model is to be created with autoExpandSelect
2505
2510
  * @returns {sap.ui.model.odata.v4.ODataModel}
2506
- * The value list model
2511
+ * The shared model
2507
2512
  *
2508
2513
  * @private
2509
2514
  */
2510
- ODataMetaModel.prototype.getOrCreateSharedModel = function (sUrl, sGroupId, bAutoExpandSelect) {
2511
- var sCacheKey,
2512
- oSharedModel;
2513
-
2515
+ ODataMetaModel.prototype.getOrCreateSharedModel = function (sUrl, bCopyAnnotations,
2516
+ bAutoExpandSelect) {
2514
2517
  sUrl = this.getAbsoluteServiceUrl(sUrl);
2515
- sCacheKey = !!bAutoExpandSelect + sUrl;
2516
- oSharedModel = mSharedModelByUrl.get(sCacheKey);
2518
+ const sMapKey = !!bAutoExpandSelect + sUrl; // no separator needed as sUrl.startsWith("/")
2519
+ let mSharedModelByUrl = this.mSharedModelByUrl;
2520
+ if (!bCopyAnnotations) {
2521
+ // #requestCodeList must not fail, but no need to share if already destroyed
2522
+ mSharedModelByUrl ??= {};
2523
+ }
2524
+ let oSharedModel = mSharedModelByUrl[sMapKey];
2517
2525
  if (!oSharedModel) {
2518
2526
  oSharedModel = new this.oModel.constructor({
2519
2527
  autoExpandSelect : bAutoExpandSelect,
2520
- groupId : sGroupId,
2528
+ groupId : bCopyAnnotations ? undefined : "$direct",
2521
2529
  httpHeaders : this.oModel.getHttpHeaders(),
2522
2530
  metadataUrlParams : this.sLanguage && {"sap-language" : this.sLanguage},
2523
2531
  operationMode : OperationMode.Server,
2524
2532
  serviceUrl : sUrl,
2525
2533
  sharedRequests : true
2526
2534
  });
2527
- oSharedModel.getMetaModel()._copyAnnotations(this.oMetaModelForAnnotations ?? this);
2528
-
2529
- mSharedModelByUrl.set(sCacheKey, oSharedModel);
2535
+ if (bCopyAnnotations) {
2536
+ oSharedModel.getMetaModel()._copyAnnotations(this.oMetaModelForAnnotations ?? this);
2537
+ }
2538
+ oSharedModel.setRetryAfterHandler((oError) => {
2539
+ return this.oModel.getOrCreateRetryAfterPromise(oError);
2540
+ });
2541
+ mSharedModelByUrl[sMapKey] = oSharedModel;
2530
2542
  }
2531
2543
  return oSharedModel;
2532
2544
  };
@@ -2739,14 +2751,17 @@ sap.ui.define([
2739
2751
  return null;
2740
2752
  }
2741
2753
 
2742
- sUrl = _Helper.setLanguage(oCodeList.Url, that.sLanguage);
2743
- sCacheKey = that.getAbsoluteServiceUrl(sUrl) + "#" + oCodeList.CollectionPath;
2744
- oPromise = mCodeListUrl2Promise.get(sCacheKey);
2754
+ sUrl = that.getAbsoluteServiceUrl(
2755
+ _Helper.setLanguage(oCodeList.Url, that.sLanguage));
2756
+ // separator needed (Note: path must not include hash)
2757
+ sCacheKey = oCodeList.CollectionPath + "#" + sUrl;
2758
+ oPromise = mCodeListUrl2Promise[sCacheKey];
2745
2759
  if (oPromise) {
2746
2760
  return oPromise;
2747
2761
  }
2748
2762
 
2749
- oCodeListModel = that.getOrCreateSharedModel(sUrl, "$direct");
2763
+ const bDestroyAlreadyCalled = !that.mSharedModelByUrl;
2764
+ oCodeListModel = that.getOrCreateSharedModel(sUrl);
2750
2765
  oCodeListMetaModel = oCodeListModel.getMetaModel();
2751
2766
  sTypePath = "/" + oCodeList.CollectionPath + "/";
2752
2767
  oPromise = oCodeListMetaModel.requestObject(sTypePath).then(function (oType) {
@@ -2849,9 +2864,12 @@ sap.ui.define([
2849
2864
  return aContexts.reduce(addCustomizing, {});
2850
2865
  }).finally(function () {
2851
2866
  oCodeListBinding.destroy();
2867
+ if (bDestroyAlreadyCalled) {
2868
+ oCodeListModel.destroy();
2869
+ }
2852
2870
  });
2853
2871
  });
2854
- mCodeListUrl2Promise.set(sCacheKey, oPromise);
2872
+ mCodeListUrl2Promise[sCacheKey] = oPromise;
2855
2873
 
2856
2874
  return oPromise;
2857
2875
  });
@@ -3334,7 +3352,9 @@ sap.ui.define([
3334
3352
  * data model. Since 1.80.0, that model's parameter "sharedRequests" is set automatically (see
3335
3353
  * {@link sap.ui.model.odata.v4.ODataModel#constructor}). If the value list model is the data
3336
3354
  * model associated with this meta model, use the binding-specific parameter "$$sharedRequest"
3337
- * instead, see {@link sap.ui.model.odata.v4.ODataModel#bindList}.
3355
+ * instead, see {@link sap.ui.model.odata.v4.ODataModel#bindList}. Since 1.132.0, the data
3356
+ * model's {@link sap.ui.model.odata.v4.ODataModel#setRetryAfterHandler "Retry-After" handler}
3357
+ * is reused by default, but can of course be overwritten.
3338
3358
  *
3339
3359
  * For fixed values, only one mapping is expected and the qualifier is ignored. The mapping
3340
3360
  * is available with key "" and has an additional property "$qualifier" which is the original
@@ -3404,7 +3424,7 @@ sap.ui.define([
3404
3424
  function addMapping(mValueListMapping, sQualifier, sMappingUrl, oModel) {
3405
3425
  if ("CollectionRoot" in mValueListMapping) {
3406
3426
  oModel = that.getOrCreateSharedModel(mValueListMapping.CollectionRoot,
3407
- undefined, bAutoExpandSelect);
3427
+ /*bCopyAnnotations*/true, bAutoExpandSelect);
3408
3428
  if (oValueListInfo[sQualifier]
3409
3429
  && oValueListInfo[sQualifier].$model === oModel) {
3410
3430
  // same model -> allow overriding the qualifier
@@ -3438,8 +3458,8 @@ sap.ui.define([
3438
3458
 
3439
3459
  // fetch mappings for each entry and wait for all
3440
3460
  return Promise.all(aMappingUrls.map(function (sMappingUrl) {
3441
- var oValueListModel = that.getOrCreateSharedModel(sMappingUrl, undefined,
3442
- bAutoExpandSelect);
3461
+ var oValueListModel = that.getOrCreateSharedModel(sMappingUrl,
3462
+ /*bCopyAnnotations*/true, bAutoExpandSelect);
3443
3463
 
3444
3464
  // fetch the mappings for the given mapping URL
3445
3465
  return that.fetchValueListMappings(oValueListModel,
@@ -3666,5 +3686,14 @@ sap.ui.define([
3666
3686
  return mScope;
3667
3687
  };
3668
3688
 
3689
+ /**
3690
+ * Clears the cache used in {@link #requestCodeList}. To be used by test code only!
3691
+ *
3692
+ * @private
3693
+ */
3694
+ ODataMetaModel.clearCodeListsCache = function () {
3695
+ mCodeListUrl2Promise = {};
3696
+ };
3697
+
3669
3698
  return ODataMetaModel;
3670
3699
  });
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -240,7 +240,7 @@ sap.ui.define([
240
240
  * @extends sap.ui.model.Model
241
241
  * @public
242
242
  * @since 1.37.0
243
- * @version 1.131.1
243
+ * @version 1.132.0
244
244
  */
245
245
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
246
246
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -2627,13 +2627,17 @@ sap.ui.define([
2627
2627
  * parameter
2628
2628
  * @param {boolean} [bSilent]
2629
2629
  * Whether the created UI5 messages should only be returned without reporting them
2630
+ * @param {string} [sOriginalResourcePath]
2631
+ * The "original resource path" to be used to build the target path for bound messages that
2632
+ * do not address "$Parameter/...", useful in case of a return value context (R.V.C.)
2630
2633
  * @returns {sap.ui.core.message.Message[]|undefined}
2631
2634
  * An array of <code>aMessages</code> transformed to UI5 message instances, or
2632
2635
  * <code>undefined</code> in case there are no messages
2633
2636
  *
2634
2637
  * @private
2635
2638
  */
2636
- ODataModel.prototype.reportTransitionMessages = function (aMessages, sResourcePath, bSilent) {
2639
+ ODataModel.prototype.reportTransitionMessages = function (aMessages, sResourcePath, bSilent,
2640
+ sOriginalResourcePath) {
2637
2641
  var sContextPath, oOperationMetadata;
2638
2642
 
2639
2643
  if (!aMessages.length) {
@@ -2658,7 +2662,8 @@ sap.ui.define([
2658
2662
  if (oOperationMetadata) {
2659
2663
  oMessage = _Helper.clone(oMessage);
2660
2664
  // make targets absolute, will not be adjusted again in #createUI5Message
2661
- _Helper.adjustTargets(oMessage, oOperationMetadata, undefined, sContextPath);
2665
+ _Helper.adjustTargets(oMessage, oOperationMetadata, undefined, sContextPath,
2666
+ sOriginalResourcePath);
2662
2667
  }
2663
2668
  oMessage.transition = true;
2664
2669
 
@@ -3050,7 +3055,7 @@ sap.ui.define([
3050
3055
  // $$canonicalPath is not allowed, binding path and resource path are (almost) identical
3051
3056
  const oTemporaryBinding = this.mKeepAliveBindingsByPath[oBinding.getResolvedPath()];
3052
3057
  if (oTemporaryBinding) {
3053
- return oTemporaryBinding.oCachePromise;
3058
+ return oTemporaryBinding.ready();
3054
3059
  }
3055
3060
  }
3056
3061
  return SyncPromise.resolve();
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -35,8 +35,9 @@ sap.ui.define([
35
35
  // auto-$expand/$select: promises to wait until child bindings have provided
36
36
  // their path and query options
37
37
  this.aChildCanUseCachePromises = [];
38
- // whether the binding has a child with a path to the parent binding via path reduction
39
- this.bHasPathReductionToParent = false;
38
+ // the child paths that are handled by the parent binding due to path reduction, see
39
+ // #fetchIfChildCanUseCache and ODLB#fetchDownloadUrl
40
+ this.mChildPathsReducedToParent = {};
40
41
  // counts the sent but not yet completed PATCHes
41
42
  this.iPatchCounter = 0;
42
43
  // whether all sent PATCHes have been successfully processed
@@ -646,6 +647,8 @@ sap.ui.define([
646
647
  ODataParentBinding.prototype.destroy = function () {
647
648
  this.mAggregatedQueryOptions = undefined;
648
649
  this.aChildCanUseCachePromises = [];
650
+ // cannot be set to undefined, it might be modified after destruction
651
+ this.mChildPathsReducedToParent = {};
649
652
  this.removeReadGroupLock();
650
653
  this.oRefreshPromise = undefined;
651
654
  this.oResumePromise = undefined;
@@ -857,7 +860,7 @@ sap.ui.define([
857
860
 
858
861
  if (sReducedChildMetaPath === undefined) {
859
862
  // the child's data does not fit into this bindings's cache, try the parent
860
- that.bHasPathReductionToParent = true;
863
+ that.mChildPathsReducedToParent[sChildPath] = true;
861
864
  return oParentContext.getBinding().fetchIfChildCanUseCache(oParentContext,
862
865
  _Helper.getRelativePath(sResolvedChildPath, oParentContext.getPath()),
863
866
  mChildQueryOptions, bIsProperty);
@@ -971,7 +974,8 @@ sap.ui.define([
971
974
  mConvertedQueryOptions,
972
975
  sMetaPath,
973
976
  oModel = this.oModel,
974
- mQueryOptions = this.getQueryOptionsFromParameters();
977
+ mQueryOptions = this.getQueryOptionsFromParameters(),
978
+ that = this;
975
979
 
976
980
  if (!(oModel.bAutoExpandSelect && mQueryOptions.$select)) {
977
981
  return SyncPromise.resolve(mQueryOptions);
@@ -987,16 +991,22 @@ sap.ui.define([
987
991
  sMetaSelectPath = sMetaSelectPath.slice(0, -1);
988
992
  }
989
993
 
990
- return _Helper.fetchPropertyAndType(fnFetchMetadata, sMetaSelectPath).then(function () {
991
- var mWrappedQueryOptions = _Helper.wrapChildQueryOptions(
994
+ return _Helper.fetchPropertyAndType(fnFetchMetadata, sMetaSelectPath)
995
+ .then(function (oProperty) {
996
+ if (!oProperty && !sMetaSelectPath.endsWith("/*")) {
997
+ throw new Error("Invalid (navigation) property '" + sSelectPath
998
+ + "' in $select of " + that);
999
+ }
1000
+
1001
+ const mWrappedQueryOptions = _Helper.wrapChildQueryOptions(
992
1002
  sMetaPath, sSelectPath, {}, fnFetchMetadata);
993
1003
 
994
- if (mWrappedQueryOptions) {
995
- _Helper.aggregateExpandSelect(mConvertedQueryOptions, mWrappedQueryOptions);
996
- } else {
997
- _Helper.addToSelect(mConvertedQueryOptions, [sSelectPath]);
998
- }
999
- });
1004
+ if (mWrappedQueryOptions) {
1005
+ _Helper.aggregateExpandSelect(mConvertedQueryOptions, mWrappedQueryOptions);
1006
+ } else {
1007
+ _Helper.addToSelect(mConvertedQueryOptions, [sSelectPath]);
1008
+ }
1009
+ });
1000
1010
  })).then(function () {
1001
1011
  return mConvertedQueryOptions;
1002
1012
  });
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @mixes sap.ui.model.odata.v4.ODataBinding
43
43
  * @public
44
44
  * @since 1.37.0
45
- * @version 1.131.1
45
+ * @version 1.132.0
46
46
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
47
47
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
48
48
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * OpenUI5
3
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
3
+ * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
@@ -60,7 +60,9 @@ sap.ui.define([
60
60
  _Cache.call(this, oRequestor, sResourcePath, mQueryOptions, true);
61
61
 
62
62
  this.oAggregation = oAggregation;
63
- this.sDownloadUrl = _Cache.prototype.getDownloadUrl.call(this, "");
63
+ // #getDownloadUrl must be called early (for recursive hierarchy to determine
64
+ // $DistanceFromRoot and for data aggregation before adding $$leaves)
65
+ this.sToString = this.getDownloadUrl("");
64
66
  this.aElements = [];
65
67
  this.aElements.$byPredicate = {};
66
68
  this.aElements.$count = undefined;
@@ -1099,14 +1101,6 @@ sap.ui.define([
1099
1101
  return _AggregationHelper.buildApply(this.oAggregation, mQueryOptions, 0, true);
1100
1102
  };
1101
1103
 
1102
- /**
1103
- * @override
1104
- * @see sap.ui.model.odata.v4.lib._Cache#getDownloadUrl
1105
- */
1106
- _AggregationCache.prototype.getDownloadUrl = function (_sPath, _mCustomQueryOptions) {
1107
- return this.sDownloadUrl;
1108
- };
1109
-
1110
1104
  /**
1111
1105
  * Returns an array containing elements of this aggregation cache's flat list; the array is
1112
1106
  * annotated with the collection's $count. If no range is given, all elements are returned. If
@@ -2303,8 +2297,8 @@ sap.ui.define([
2303
2297
  // "super" call (like @borrows ...)
2304
2298
  const fnSuper = this.oFirstLevel.reset;
2305
2299
  fnSuper.call(this, aKeptElementPredicates, sGroupId, mQueryOptions);
2306
- // reset modifies the cache's query options => recalculate the download URL
2307
- this.sDownloadUrl = _Cache.prototype.getDownloadUrl.call(this, "");
2300
+ // reset modifies the cache's query options => recalculate result of #toString
2301
+ this.sToString = this.getDownloadUrl("");
2308
2302
  if (sGroupId) { // sGroupId means we are in a side-effects refresh
2309
2303
  this.oBackup.oCountPromise = this.oCountPromise;
2310
2304
  this.oBackup.oFirstLevel = this.oFirstLevel;
@@ -2422,16 +2416,11 @@ sap.ui.define([
2422
2416
  };
2423
2417
 
2424
2418
  /**
2425
- * Returns the cache's URL.
2426
- *
2427
- * @returns {string} The URL
2428
- *
2429
- * @public
2430
- * @see sap.ui.model.odata.v4.lib._AggregationCache#getDownloadUrl
2419
+ * @override
2420
+ * @see sap.ui.model.odata.v4.lib._Cache#toString
2431
2421
  */
2432
- // @override sap.ui.model.odata.v4.lib._Cache#toString
2433
2422
  _AggregationCache.prototype.toString = function () {
2434
- return this.sDownloadUrl;
2423
+ return this.sToString;
2435
2424
  };
2436
2425
 
2437
2426
  /**