@openui5/sap.ui.core 1.136.1 → 1.138.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 (415) hide show
  1. package/.eslintrc.json +3 -3
  2. package/REUSE.toml +0 -28
  3. package/THIRDPARTY.txt +1 -25
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +1 -1
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/sap/base/Event.js +1 -1
  11. package/src/sap/base/Eventing.js +1 -1
  12. package/src/sap/base/config.js +1 -1
  13. package/src/sap/base/i18n/LanguageTag.js +1 -1
  14. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  15. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  16. package/src/sap/base/util/restricted/_castArray.js +1 -1
  17. package/src/sap/base/util/restricted/_compact.js +1 -1
  18. package/src/sap/base/util/restricted/_curry.js +1 -1
  19. package/src/sap/base/util/restricted/_debounce.js +1 -1
  20. package/src/sap/base/util/restricted/_difference.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_flatten.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_intersection.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isNil.js +1 -1
  35. package/src/sap/base/util/restricted/_max.js +1 -1
  36. package/src/sap/base/util/restricted/_merge.js +1 -1
  37. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  38. package/src/sap/base/util/restricted/_min.js +1 -1
  39. package/src/sap/base/util/restricted/_omit.js +1 -1
  40. package/src/sap/base/util/restricted/_pick.js +1 -1
  41. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  42. package/src/sap/base/util/restricted/_throttle.js +1 -1
  43. package/src/sap/base/util/restricted/_toArray.js +1 -1
  44. package/src/sap/base/util/restricted/_union.js +1 -1
  45. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  46. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  47. package/src/sap/base/util/restricted/_uniq.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  50. package/src/sap/base/util/restricted/_without.js +1 -1
  51. package/src/sap/base/util/restricted/_xor.js +1 -1
  52. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  53. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  56. package/src/sap/ui/Device.js +3 -3
  57. package/src/sap/ui/Global.js +3 -3
  58. package/src/sap/ui/base/BindingInfo.js +12 -8
  59. package/src/sap/ui/base/BindingParser.js +14 -7
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -8
  62. package/src/sap/ui/base/Interface.js +1 -1
  63. package/src/sap/ui/base/ManagedObject.js +15 -42
  64. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  65. package/src/sap/ui/base/Metadata.js +1 -1
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/base/_runWithOwner.js +43 -0
  69. package/src/sap/ui/core/.library +3 -30
  70. package/src/sap/ui/core/BusyIndicator.js +8 -8
  71. package/src/sap/ui/core/Component.js +61 -73
  72. package/src/sap/ui/core/ComponentContainer.js +22 -2
  73. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +2 -2
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +13 -11
  80. package/src/sap/ui/core/Element.js +1 -3
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  83. package/src/sap/ui/core/EventBus.js +1 -1
  84. package/src/sap/ui/core/ExtensionPoint.js +4 -4
  85. package/src/sap/ui/core/Fragment.js +4 -2
  86. package/src/sap/ui/core/HTML.js +1 -1
  87. package/src/sap/ui/core/History.js +1 -1
  88. package/src/sap/ui/core/Icon.js +1 -1
  89. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  90. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  91. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  92. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  93. package/src/sap/ui/core/InvisibleText.js +1 -1
  94. package/src/sap/ui/core/Item.js +1 -1
  95. package/src/sap/ui/core/LabelEnablement.js +1 -1
  96. package/src/sap/ui/core/LayoutData.js +1 -1
  97. package/src/sap/ui/core/ListItem.js +1 -1
  98. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  99. package/src/sap/ui/core/Locale.js +1 -1
  100. package/src/sap/ui/core/LocaleData.js +1 -1
  101. package/src/sap/ui/core/Manifest.js +1 -1
  102. package/src/sap/ui/core/Message.js +1 -1
  103. package/src/sap/ui/core/Popup.js +65 -180
  104. package/src/sap/ui/core/RenderManager.js +1 -1
  105. package/src/sap/ui/core/Renderer.js +1 -1
  106. package/src/sap/ui/core/ResizeHandler.js +1 -1
  107. package/src/sap/ui/core/ScrollBar.js +1 -1
  108. package/src/sap/ui/core/SeparatorItem.js +1 -1
  109. package/src/sap/ui/core/Theming.js +2 -2
  110. package/src/sap/ui/core/Title.js +1 -1
  111. package/src/sap/ui/core/TooltipBase.js +1 -1
  112. package/src/sap/ui/core/UIArea.js +1 -1
  113. package/src/sap/ui/core/UIComponent.js +11 -56
  114. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  115. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  116. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  117. package/src/sap/ui/core/XMLComposite.js +1 -1
  118. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  119. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -1
  120. package/src/sap/ui/core/_IconRegistry.js +2 -0
  121. package/src/sap/ui/core/date/UI5Date.js +1 -1
  122. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  123. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  124. package/src/sap/ui/core/dnd/DragDropBase.js +12 -2
  125. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  126. package/src/sap/ui/core/dnd/DragInfo.js +5 -3
  127. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  128. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  129. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  130. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  131. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  132. package/src/sap/ui/core/i18n/interaction_ar.xml +27 -0
  133. package/src/sap/ui/core/i18n/interaction_bg.xml +27 -0
  134. package/src/sap/ui/core/i18n/interaction_ca.xml +27 -0
  135. package/src/sap/ui/core/i18n/interaction_cnr.xml +27 -0
  136. package/src/sap/ui/core/i18n/interaction_cs.xml +27 -0
  137. package/src/sap/ui/core/i18n/interaction_cy.xml +27 -0
  138. package/src/sap/ui/core/i18n/interaction_da.xml +27 -0
  139. package/src/sap/ui/core/i18n/interaction_de.xml +27 -0
  140. package/src/sap/ui/core/i18n/interaction_el.xml +27 -0
  141. package/src/sap/ui/core/i18n/interaction_en.xml +27 -0
  142. package/src/sap/ui/core/i18n/interaction_en_GB.xml +27 -0
  143. package/src/sap/ui/core/i18n/interaction_en_US_saprigi.xml +27 -0
  144. package/src/sap/ui/core/i18n/interaction_es.xml +27 -0
  145. package/src/sap/ui/core/i18n/interaction_es_MX.xml +27 -0
  146. package/src/sap/ui/core/i18n/interaction_et.xml +27 -0
  147. package/src/sap/ui/core/i18n/interaction_fi.xml +27 -0
  148. package/src/sap/ui/core/i18n/interaction_fr.xml +27 -0
  149. package/src/sap/ui/core/i18n/interaction_fr_CA.xml +27 -0
  150. package/src/sap/ui/core/i18n/interaction_hi.xml +27 -0
  151. package/src/sap/ui/core/i18n/interaction_hr.xml +27 -0
  152. package/src/sap/ui/core/i18n/interaction_hu.xml +27 -0
  153. package/src/sap/ui/core/i18n/interaction_id.xml +27 -0
  154. package/src/sap/ui/core/i18n/interaction_it.xml +27 -0
  155. package/src/sap/ui/core/i18n/interaction_iw.xml +27 -0
  156. package/src/sap/ui/core/i18n/interaction_ja.xml +27 -0
  157. package/src/sap/ui/core/i18n/interaction_kk.xml +27 -0
  158. package/src/sap/ui/core/i18n/interaction_ko.xml +27 -0
  159. package/src/sap/ui/core/i18n/interaction_lt.xml +27 -0
  160. package/src/sap/ui/core/i18n/interaction_lv.xml +27 -0
  161. package/src/sap/ui/core/i18n/interaction_mk.xml +27 -0
  162. package/src/sap/ui/core/i18n/interaction_ms.xml +27 -0
  163. package/src/sap/ui/core/i18n/interaction_nl.xml +27 -0
  164. package/src/sap/ui/core/i18n/interaction_no.xml +27 -0
  165. package/src/sap/ui/core/i18n/interaction_pl.xml +27 -0
  166. package/src/sap/ui/core/i18n/interaction_pt.xml +27 -0
  167. package/src/sap/ui/core/i18n/interaction_pt_PT.xml +27 -0
  168. package/src/sap/ui/core/i18n/interaction_ro.xml +27 -0
  169. package/src/sap/ui/core/i18n/interaction_ru.xml +27 -0
  170. package/src/sap/ui/core/i18n/interaction_sh.xml +27 -0
  171. package/src/sap/ui/core/i18n/interaction_sk.xml +27 -0
  172. package/src/sap/ui/core/i18n/interaction_sl.xml +27 -0
  173. package/src/sap/ui/core/i18n/interaction_sr.xml +27 -0
  174. package/src/sap/ui/core/i18n/interaction_sv.xml +27 -0
  175. package/src/sap/ui/core/i18n/interaction_th.xml +27 -0
  176. package/src/sap/ui/core/i18n/interaction_tr.xml +27 -0
  177. package/src/sap/ui/core/i18n/interaction_uk.xml +27 -0
  178. package/src/sap/ui/core/i18n/interaction_vi.xml +27 -0
  179. package/src/sap/ui/core/i18n/interaction_zh_CN.xml +27 -0
  180. package/src/sap/ui/core/i18n/interaction_zh_TW.xml +27 -0
  181. package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +43 -7
  182. package/src/sap/ui/core/library.js +3 -3
  183. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  184. package/src/sap/ui/core/message/Message.js +1 -1
  185. package/src/sap/ui/core/message/MessageManager.js +1 -1
  186. package/src/sap/ui/core/message/MessageParser.js +1 -1
  187. package/src/sap/ui/core/message/MessageProcessor.js +6 -6
  188. package/src/sap/ui/core/messagebundle_ar.properties +21 -1
  189. package/src/sap/ui/core/messagebundle_bg.properties +21 -1
  190. package/src/sap/ui/core/messagebundle_ca.properties +21 -1
  191. package/src/sap/ui/core/messagebundle_cnr.properties +21 -1
  192. package/src/sap/ui/core/messagebundle_cs.properties +21 -1
  193. package/src/sap/ui/core/messagebundle_cy.properties +21 -1
  194. package/src/sap/ui/core/messagebundle_da.properties +21 -1
  195. package/src/sap/ui/core/messagebundle_de.properties +22 -2
  196. package/src/sap/ui/core/messagebundle_el.properties +21 -1
  197. package/src/sap/ui/core/messagebundle_en.properties +21 -1
  198. package/src/sap/ui/core/messagebundle_en_GB.properties +21 -1
  199. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +21 -1
  200. package/src/sap/ui/core/messagebundle_es.properties +23 -3
  201. package/src/sap/ui/core/messagebundle_es_MX.properties +21 -1
  202. package/src/sap/ui/core/messagebundle_et.properties +21 -1
  203. package/src/sap/ui/core/messagebundle_fi.properties +22 -2
  204. package/src/sap/ui/core/messagebundle_fr.properties +21 -1
  205. package/src/sap/ui/core/messagebundle_fr_CA.properties +21 -1
  206. package/src/sap/ui/core/messagebundle_hi.properties +21 -1
  207. package/src/sap/ui/core/messagebundle_hr.properties +21 -1
  208. package/src/sap/ui/core/messagebundle_hu.properties +21 -1
  209. package/src/sap/ui/core/messagebundle_id.properties +23 -3
  210. package/src/sap/ui/core/messagebundle_it.properties +21 -1
  211. package/src/sap/ui/core/messagebundle_iw.properties +21 -1
  212. package/src/sap/ui/core/messagebundle_ja.properties +21 -1
  213. package/src/sap/ui/core/messagebundle_kk.properties +23 -3
  214. package/src/sap/ui/core/messagebundle_ko.properties +21 -1
  215. package/src/sap/ui/core/messagebundle_lt.properties +21 -1
  216. package/src/sap/ui/core/messagebundle_lv.properties +21 -1
  217. package/src/sap/ui/core/messagebundle_mk.properties +24 -4
  218. package/src/sap/ui/core/messagebundle_ms.properties +21 -1
  219. package/src/sap/ui/core/messagebundle_nl.properties +21 -1
  220. package/src/sap/ui/core/messagebundle_no.properties +21 -1
  221. package/src/sap/ui/core/messagebundle_pl.properties +21 -1
  222. package/src/sap/ui/core/messagebundle_pt.properties +21 -1
  223. package/src/sap/ui/core/messagebundle_pt_PT.properties +21 -1
  224. package/src/sap/ui/core/messagebundle_ro.properties +21 -1
  225. package/src/sap/ui/core/messagebundle_ru.properties +23 -3
  226. package/src/sap/ui/core/messagebundle_sh.properties +21 -1
  227. package/src/sap/ui/core/messagebundle_sk.properties +21 -1
  228. package/src/sap/ui/core/messagebundle_sl.properties +23 -3
  229. package/src/sap/ui/core/messagebundle_sr.properties +21 -1
  230. package/src/sap/ui/core/messagebundle_sv.properties +21 -1
  231. package/src/sap/ui/core/messagebundle_th.properties +21 -1
  232. package/src/sap/ui/core/messagebundle_tr.properties +21 -1
  233. package/src/sap/ui/core/messagebundle_uk.properties +22 -2
  234. package/src/sap/ui/core/messagebundle_vi.properties +21 -1
  235. package/src/sap/ui/core/messagebundle_zh_CN.properties +21 -1
  236. package/src/sap/ui/core/messagebundle_zh_TW.properties +23 -3
  237. package/src/sap/ui/core/mvc/Controller.js +3 -1
  238. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  239. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  240. package/src/sap/ui/core/mvc/JSView.js +1 -1
  241. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  242. package/src/sap/ui/core/mvc/View.js +12 -181
  243. package/src/sap/ui/core/mvc/XMLView.js +2 -1
  244. package/src/sap/ui/core/mvc/_ViewFactory.js +192 -0
  245. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  246. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  247. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  248. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  249. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  250. package/src/sap/ui/core/routing/Route.js +197 -13
  251. package/src/sap/ui/core/routing/Router.js +19 -8
  252. package/src/sap/ui/core/routing/RouterHashChanger.js +12 -3
  253. package/src/sap/ui/core/routing/Target.js +714 -61
  254. package/src/sap/ui/core/routing/TargetCache.js +205 -25
  255. package/src/sap/ui/core/routing/Targets.js +162 -67
  256. package/src/sap/ui/core/routing/Views.js +1 -0
  257. package/src/sap/ui/core/routing/sync/Route.js +1 -1
  258. package/src/sap/ui/core/routing/sync/Target.js +11 -1
  259. package/src/sap/ui/core/routing/sync/TargetCache.js +3 -3
  260. package/src/sap/ui/core/routing/sync/Targets.js +1 -1
  261. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  262. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  263. package/src/sap/ui/core/service/Service.js +1 -48
  264. package/src/sap/ui/core/service/ServiceFactory.js +44 -4
  265. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  266. package/src/sap/ui/core/support/Plugin.js +1 -1
  267. package/src/sap/ui/core/support/Support.js +356 -353
  268. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  269. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  270. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  271. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  272. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  273. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  274. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  275. package/src/sap/ui/core/support/plugins/ViewInfo.js +4 -2
  276. package/src/sap/ui/core/themes/base/base.less +71 -29
  277. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  278. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  279. package/src/sap/ui/core/themes/base/global.less +4 -0
  280. package/src/sap/ui/core/themes/base/skeleton.less +9 -4
  281. package/src/sap/ui/core/theming/ThemeHelper.js +1 -18
  282. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  283. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  284. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +4 -4
  285. package/src/sap/ui/core/tmpl/Template.js +1 -1
  286. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  287. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  288. package/src/sap/ui/core/util/Export.js +1 -1
  289. package/src/sap/ui/core/util/ExportCell.js +1 -1
  290. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  291. package/src/sap/ui/core/util/ExportRow.js +1 -1
  292. package/src/sap/ui/core/util/ExportType.js +1 -1
  293. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  294. package/src/sap/ui/core/util/File.js +1 -1
  295. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  296. package/src/sap/ui/core/util/MockServer.js +1 -1
  297. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  298. package/src/sap/ui/core/util/XMLPreprocessor.js +8 -1
  299. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +4 -4
  300. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  301. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  302. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  303. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  304. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  305. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  306. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  307. package/src/sap/ui/core/webc/WebComponent.js +71 -3
  308. package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -3
  309. package/src/sap/ui/core/webc/WebComponentRenderer.js +1 -1
  310. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  311. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  312. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  313. package/src/sap/ui/debug/ControlTree.js +1 -1
  314. package/src/sap/ui/debug/DebugEnv.js +1 -1
  315. package/src/sap/ui/debug/PropertyList.js +1 -1
  316. package/src/sap/ui/model/ClientModel.js +1 -1
  317. package/src/sap/ui/model/CompositeDataState.js +1 -1
  318. package/src/sap/ui/model/CompositeType.js +1 -1
  319. package/src/sap/ui/model/DataState.js +1 -1
  320. package/src/sap/ui/model/MetaModel.js +1 -1
  321. package/src/sap/ui/model/Model.js +1 -1
  322. package/src/sap/ui/model/SelectionModel.js +1 -1
  323. package/src/sap/ui/model/SimpleType.js +1 -1
  324. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  325. package/src/sap/ui/model/Type.js +1 -1
  326. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -1
  327. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +2 -1
  328. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -1
  329. package/src/sap/ui/model/analytics/odata4analytics.js +2 -1
  330. package/src/sap/ui/model/json/JSONModel.js +1 -1
  331. package/src/sap/ui/model/message/MessageModel.js +1 -1
  332. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  333. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  334. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  335. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  336. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  337. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +2 -1
  338. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +3 -3
  339. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  340. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  341. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  342. package/src/sap/ui/model/odata/type/Date.js +1 -1
  343. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  344. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  345. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  346. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  347. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  348. package/src/sap/ui/model/odata/type/Double.js +1 -1
  349. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  350. package/src/sap/ui/model/odata/type/Int.js +1 -1
  351. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  352. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  353. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  354. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  355. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  356. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  357. package/src/sap/ui/model/odata/type/Single.js +1 -1
  358. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  359. package/src/sap/ui/model/odata/type/String.js +1 -1
  360. package/src/sap/ui/model/odata/type/Time.js +1 -1
  361. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  362. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  363. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  364. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  365. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  366. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  367. package/src/sap/ui/model/odata/v4/Context.js +4 -7
  368. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  369. package/src/sap/ui/model/odata/v4/ODataListBinding.js +9 -9
  370. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +57 -19
  371. package/src/sap/ui/model/odata/v4/ODataModel.js +8 -7
  372. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  373. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +3 -3
  374. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +118 -90
  375. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +29 -0
  376. package/src/sap/ui/model/odata/v4/lib/_Cache.js +33 -12
  377. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +10 -4
  378. package/src/sap/ui/model/odata/v4/lib/_Helper.js +5 -3
  379. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +47 -16
  380. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  381. package/src/sap/ui/model/type/Boolean.js +1 -1
  382. package/src/sap/ui/model/type/Currency.js +1 -1
  383. package/src/sap/ui/model/type/Date.js +1 -1
  384. package/src/sap/ui/model/type/DateInterval.js +1 -1
  385. package/src/sap/ui/model/type/DateTime.js +1 -1
  386. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  387. package/src/sap/ui/model/type/FileSize.js +1 -1
  388. package/src/sap/ui/model/type/Float.js +1 -1
  389. package/src/sap/ui/model/type/Integer.js +1 -1
  390. package/src/sap/ui/model/type/String.js +1 -1
  391. package/src/sap/ui/model/type/Time.js +1 -1
  392. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  393. package/src/sap/ui/model/type/Unit.js +1 -1
  394. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  395. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  396. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  397. package/src/sap/ui/test/Opa.js +14 -2
  398. package/src/sap/ui/test/Opa5.js +61 -10
  399. package/src/sap/ui/test/TestUtils.js +6 -2
  400. package/src/sap/ui/test/generic/TestBase.js +1 -1
  401. package/src/sap/ui/thirdparty/datajs.js +13 -10
  402. package/src/sap/ui/util/Storage.js +1 -1
  403. package/src/ui5loader-autoconfig.js +1 -18
  404. package/src/ui5loader.js +1 -1
  405. package/src/sap/ui/core/routing/async/Route.js +0 -186
  406. package/src/sap/ui/core/routing/async/Target.js +0 -712
  407. package/src/sap/ui/core/routing/async/TargetCache.js +0 -196
  408. package/src/sap/ui/core/routing/async/Targets.js +0 -130
  409. package/src/sap/ui/thirdparty/iscroll-lite.js +0 -603
  410. package/src/sap/ui/thirdparty/iscroll.js +0 -1104
  411. package/src/sap/ui/thirdparty/mobiscroll/css/mobiscroll-core.css +0 -416
  412. package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-core.js +0 -127
  413. package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-datetime.js +0 -818
  414. package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-scroller.js +0 -1264
  415. package/src/sap/ui/thirdparty/swipe-view.js +0 -560
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.odata.type.ODataType
93
93
  * @public
94
94
  * @since 1.27.0
95
- * @version 1.136.1
95
+ * @version 1.138.0
96
96
  */
97
97
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
98
98
  constructor : function (oFormatOptions, oConstraints) {
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.model.odata.type.DateTimeBase
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.136.1
32
+ * @version 1.138.0
33
33
  *
34
34
  * @alias sap.ui.model.odata.type.DateTimeOffset
35
35
  * @param {object} [oFormatOptions]
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @public
47
47
  * @see {sap.ui.model.odata.v2.ODataModel#bindProperty}
48
48
  * @since 1.99.0
49
- * @version 1.136.1
49
+ * @version 1.138.0
50
50
  */
51
51
  var DateTimeWithTimezone = CompositeType.extend("sap.ui.model.odata.type.DateTimeWithTimezone",
52
52
  {
@@ -171,7 +171,7 @@ sap.ui.define([
171
171
  * @extends sap.ui.model.odata.type.ODataType
172
172
  *
173
173
  * @author SAP SE
174
- * @version 1.136.1
174
+ * @version 1.138.0
175
175
  *
176
176
  * @alias sap.ui.model.odata.type.Decimal
177
177
  * @param {object} [oFormatOptions]
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @extends sap.ui.model.odata.type.ODataType
75
75
  *
76
76
  * @author SAP SE
77
- * @version 1.136.1
77
+ * @version 1.138.0
78
78
  *
79
79
  * @alias sap.ui.model.odata.type.Double
80
80
  * @param {object} [oFormatOptions]
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.model.odata.type.ODataType
64
64
  *
65
65
  * @author SAP SE
66
- * @version 1.136.1
66
+ * @version 1.138.0
67
67
  *
68
68
  * @alias sap.ui.model.odata.type.Guid
69
69
  * @param {object} [oFormatOptions]
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.model.odata.type.ODataType
64
64
  *
65
65
  * @author SAP SE
66
- * @version 1.136.1
66
+ * @version 1.138.0
67
67
  *
68
68
  * @abstract
69
69
  * @alias sap.ui.model.odata.type.Int
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.136.1
27
+ * @version 1.138.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int16
30
30
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.136.1
27
+ * @version 1.138.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int32
30
30
  * @param {object} [oFormatOptions]
@@ -119,7 +119,7 @@ sap.ui.define([
119
119
  * @extends sap.ui.model.odata.type.ODataType
120
120
  *
121
121
  * @author SAP SE
122
- * @version 1.136.1
122
+ * @version 1.138.0
123
123
  *
124
124
  * @alias sap.ui.model.odata.type.Int64
125
125
  * @param {object} [oFormatOptions]
@@ -116,7 +116,7 @@ sap.ui.define([
116
116
  * @extends sap.ui.model.SimpleType
117
117
  *
118
118
  * @author SAP SE
119
- * @version 1.136.1
119
+ * @version 1.138.0
120
120
  *
121
121
  * @abstract
122
122
  * @alias sap.ui.model.odata.type.ODataType
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.model.odata.type.ODataType
31
31
  * @public
32
32
  * @since 1.37.0
33
- * @version 1.136.1
33
+ * @version 1.138.0
34
34
  */
35
35
  var Raw = ODataType.extend("sap.ui.model.odata.type.Raw", {
36
36
  constructor : function (oFormatOptions, oConstraints) {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.136.1
27
+ * @version 1.138.0
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @extends sap.ui.model.odata.type.ODataType
75
75
  *
76
76
  * @author SAP SE
77
- * @version 1.136.1
77
+ * @version 1.138.0
78
78
  *
79
79
  * @alias sap.ui.model.odata.type.Single
80
80
  * @param {object} [oFormatOptions]
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.model.odata.type.ODataType
61
61
  * @public
62
62
  * @since 1.51.0
63
- * @version 1.136.1
63
+ * @version 1.138.0
64
64
  */
65
65
  var Stream = ODataType.extend("sap.ui.model.odata.type.Stream", {
66
66
  constructor : function (oFormatOptions, oConstraints) {
@@ -85,7 +85,7 @@ sap.ui.define([
85
85
  * @extends sap.ui.model.odata.type.ODataType
86
86
  *
87
87
  * @author SAP SE
88
- * @version 1.136.1
88
+ * @version 1.138.0
89
89
  *
90
90
  * @alias sap.ui.model.odata.type.String
91
91
  * @param {object} [oFormatOptions]
@@ -138,7 +138,7 @@ sap.ui.define([
138
138
  * @extends sap.ui.model.odata.type.ODataType
139
139
  *
140
140
  * @author SAP SE
141
- * @version 1.136.1
141
+ * @version 1.138.0
142
142
  *
143
143
  * @alias sap.ui.model.odata.type.Time
144
144
  * @param {object} [oFormatOptions]
@@ -93,7 +93,7 @@ sap.ui.define([
93
93
  * @extends sap.ui.model.odata.type.ODataType
94
94
  * @public
95
95
  * @since 1.37.0
96
- * @version 1.136.1
96
+ * @version 1.138.0
97
97
  */
98
98
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
99
99
  constructor : function (oFormatOptions, oConstraints) {
@@ -72,7 +72,7 @@ sap.ui.define([
72
72
  * @extends sap.ui.model.type.Unit
73
73
  * @public
74
74
  * @since 1.63.0
75
- * @version 1.136.1
75
+ * @version 1.138.0
76
76
  */
77
77
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
78
78
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @hideconstructor
65
65
  * @public
66
66
  * @since 1.93.0
67
- * @version 1.136.1
67
+ * @version 1.138.0
68
68
  */
69
69
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
70
70
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive,
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @class Annotation loader for OData V2 services
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.136.1
39
+ * @version 1.138.0
40
40
  *
41
41
  * @public
42
42
  * @since 1.37.0
@@ -219,7 +219,7 @@ sap.ui.define([
219
219
  * This model is not prepared to be inherited from.
220
220
  *
221
221
  * @author SAP SE
222
- * @version 1.136.1
222
+ * @version 1.138.0
223
223
  *
224
224
  * @public
225
225
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -103,7 +103,7 @@ sap.ui.define([
103
103
  * @extends sap.ui.model.TreeBinding
104
104
  * @hideconstructor
105
105
  * @public
106
- * @version 1.136.1
106
+ * @version 1.138.0
107
107
  */
108
108
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
109
109
 
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @hideconstructor
43
43
  * @public
44
44
  * @since 1.39.0
45
- * @version 1.136.1
45
+ * @version 1.138.0
46
46
  */
47
47
  Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
48
48
  constructor : constructor
@@ -1328,8 +1328,7 @@ sap.ui.define([
1328
1328
  && this.oBinding.getHeaderContext?.()
1329
1329
  && this.oBinding.getHeaderContext().isSelected() !== this.isSelected()
1330
1330
  && (mParameters.$$ownRequest || !this.oBinding.isRelative())
1331
- && !_Helper.isDataAggregation(mParameters)
1332
- // check for key predicate in the last path segment
1331
+ // check for "key predicate" (not index) in the last path segment
1333
1332
  && this.sPath.indexOf("(", this.sPath.lastIndexOf("/")) > 0;
1334
1333
  };
1335
1334
 
@@ -2129,7 +2128,8 @@ sap.ui.define([
2129
2128
  oBinding = oCandidate.oBinding;
2130
2129
  sPath = oBinding.getPath();
2131
2130
  oParentContext = oBinding.getContext();
2132
- if (oBinding.oCache && (!oContext || oBinding.oCache.hasChangeListeners())) {
2131
+ if (oBinding.oCache?.hasChangeListeners() || !oContext && oBinding.oCache !== null) {
2132
+ // Note: undefined cache looks like a refresh in progress
2133
2133
  oContext = oCandidate; // active binding with own cache is a good target
2134
2134
  }
2135
2135
  if (oContext && sPath) {
@@ -2137,9 +2137,6 @@ sap.ui.define([
2137
2137
  break;
2138
2138
  }
2139
2139
  if (!oBinding.getBoundContext) {
2140
- if (oBinding.oCache === undefined) {
2141
- return undefined; // nothing to do - looks like a refresh in progress
2142
- }
2143
2140
  throw new Error("Not a context binding: " + oBinding);
2144
2141
  }
2145
2142
  oCandidate = oParentContext;
@@ -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.136.1
77
+ * @version 1.138.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
@@ -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.136.1
62
+ * @version 1.138.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
@@ -580,8 +580,8 @@ sap.ui.define([
580
580
  * <code>start</code> and <code>length</code> parameters can be used to retrieve the received
581
581
  * data via {@link #requestContexts}.
582
582
  *
583
- * If the request fails, the <code>errorMessage</code> is a UI5 message containing the back-end
584
- * error. It is reported to the message model by default unless
583
+ * If the request fails, the <code>messagesOnError</code> is an array of UI5 messages containing
584
+ * the back-end messages. They are reported to the message model by default unless
585
585
  * {@link sap.ui.base.Event#preventDefault} is called.
586
586
  *
587
587
  * @param {sap.ui.base.Event} oEvent
@@ -596,12 +596,12 @@ sap.ui.define([
596
596
  * The start index of the requested range
597
597
  * @param {number} oEvent.getParameters.length
598
598
  * The length of the requested range
599
- * @param {sap.ui.core.message.Message} [oEvent.getParameters.errorMessage]
600
- * A UI5 message of type {@link module:sap/ui/core/message/MessageType MessageType.Error}
599
+ * @param {sap.ui.core.message.Message[]} [oEvent.getParameters.messagesOnError]
600
+ * An array of UI5 messages if the request failed; <code>undefined</code> otherwise
601
601
  *
602
602
  * @event sap.ui.model.odata.v4.ODataListBinding#separateReceived
603
- * @experimental As of version 1.131.0
604
603
  * @public
604
+ * @since 1.137.0
605
605
  */
606
606
 
607
607
  /**
@@ -2532,14 +2532,14 @@ sap.ui.define([
2532
2532
  length : iEnd - iStart
2533
2533
  };
2534
2534
  if (oError) {
2535
- oParameters.errorMessage = this.oModel.reportTransitionMessages(
2536
- _Helper.extractMessages(oError), oError.resourcePath, /*bSilent*/true)[0];
2535
+ oParameters.messagesOnError = this.oModel.reportTransitionMessages(
2536
+ _Helper.extractMessages(oError), oError.resourcePath, /*bSilent*/true);
2537
2537
  }
2538
2538
 
2539
2539
  const bDefaultAction = this.fireEvent("separateReceived", oParameters, true);
2540
2540
 
2541
2541
  if (oError && bDefaultAction) {
2542
- Messaging.updateMessages(undefined, [oParameters.errorMessage]);
2542
+ Messaging.updateMessages(undefined, oParameters.messagesOnError);
2543
2543
  }
2544
2544
  };
2545
2545
 
@@ -60,6 +60,10 @@ sap.ui.define([
60
60
  oBooleanType,
61
61
  mCodeListUrl2Promise = {},
62
62
  DEBUG = Log.Level.DEBUG,
63
+ oDynamicProperty = Object.freeze({
64
+ $kind : "Property",
65
+ $Type : "Edm.Untyped" // inspired by 4.01
66
+ }),
63
67
  oGeoJSON = {
64
68
  $kind : "ComplexType",
65
69
  $OpenType : true,
@@ -195,7 +199,7 @@ sap.ui.define([
195
199
  * @hideconstructor
196
200
  * @public
197
201
  * @since 1.37.0
198
- * @version 1.136.1
202
+ * @version 1.138.0
199
203
  */
200
204
  ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
201
205
  constructor : constructor
@@ -570,6 +574,7 @@ sap.ui.define([
570
574
  ? [vAnnotationUri] : vAnnotationUri;
571
575
  this.sDefaultBindingMode = BindingMode.OneTime;
572
576
  this.mETags = {};
577
+ this.sForbiddenSchema = undefined; // data service's schema in case of a value help service
573
578
  this.sLanguage = sLanguage;
574
579
  // no need to use UI5Date.getInstance as only the timestamp is relevant
575
580
  this.oLastModified = new Date(0);
@@ -917,6 +922,21 @@ sap.ui.define([
917
922
  throw oError;
918
923
  };
919
924
 
925
+ /**
926
+ * Tells this meta model to not include the given schema. Use this to prevent inclusion of the
927
+ * data service's schema into a value help service, which would be possible due to a
928
+ * "cross-service reference" but would violate the constraints of {@link #requestValueListInfo}
929
+ * regarding "Unexpected annotation ... with namespace of data service ...".
930
+ *
931
+ * @param {string} sSchema
932
+ * A namespace of a schema, for example "foo.bar."
933
+ *
934
+ * @private
935
+ */
936
+ ODataMetaModel.prototype._setForbiddenSchema = function (sSchema) {
937
+ this.sForbiddenSchema = sSchema;
938
+ };
939
+
920
940
  /**
921
941
  * See {@link sap.ui.base.EventProvider#attachEvent}
922
942
  *
@@ -1184,6 +1204,7 @@ sap.ui.define([
1184
1204
  vLocation, // {string[]|string} location of indirection
1185
1205
  sName, // what "@sapui.name" refers to: OData or annotation name
1186
1206
  bODataMode, // OData navigation mode with scope lookup etc.
1207
+ bOpenType, // schema child is an open (entity or complex) type
1187
1208
  // parent for next "17.2 SimpleIdentifier"...
1188
1209
  // (normally the schema child containing the current object)
1189
1210
  oSchemaChild, // ...as object
@@ -1229,8 +1250,8 @@ sap.ui.define([
1229
1250
  if (vBindingParameterType) {
1230
1251
  oSchemaChild = aOverloads = vResult.filter(isRightOverload);
1231
1252
  if (aOverloads.length !== 1) {
1232
- return log(WARNING, "Expected a single overload, but found "
1233
- + aOverloads.length);
1253
+ return log(WARNING, "Expected a single overload, but found ",
1254
+ aOverloads.length);
1234
1255
  }
1235
1256
  if (vBindingParameterType !== UNBOUND) {
1236
1257
  sSignature = aOverloads[0].$Parameter[0].$isCollection
@@ -1443,6 +1464,10 @@ sap.ui.define([
1443
1464
  }
1444
1465
  // unknown qualified name: maybe schema is referenced and can be included?
1445
1466
  sSchema = schema(sQualifiedName);
1467
+ if (sSchema === that.sForbiddenSchema) {
1468
+ return logWithLocation(WARNING, "Must not access schema '", sSchema,
1469
+ "' from meta model for ", that.sUrl);
1470
+ }
1446
1471
  vResult = that._getOrFetchSchema(mScope, sSchema, logWithLocation);
1447
1472
  }
1448
1473
 
@@ -1450,6 +1475,7 @@ sap.ui.define([
1450
1475
  sTarget = sName = sSchemaChildName = sQualifiedName;
1451
1476
  vResult = oSchemaChild = mScope[sSchemaChildName];
1452
1477
  if (!SyncPromise.isThenable(vResult)) {
1478
+ bOpenType = vResult.$OpenType;
1453
1479
  return true; // qualified name found, steps may continue
1454
1480
  }
1455
1481
  }
@@ -1537,7 +1563,10 @@ sap.ui.define([
1537
1563
  return scopeLookup(sSegment);
1538
1564
  } else if (bResultIsObject && "$Type" in vResult) {
1539
1565
  // implicit $Type insertion, e.g. at (navigation) property
1540
- if (!scopeLookup(vResult.$Type, "$Type")) {
1566
+ if (bOpenType && vResult.$Type === "Edm.Untyped") {
1567
+ // no use to lookup, type continues to be open
1568
+ sName = undefined; // block "@sapui.name"
1569
+ } else if (!scopeLookup(vResult.$Type, "$Type")) {
1541
1570
  return false;
1542
1571
  }
1543
1572
  } else if (bResultIsObject && "$Action" in vResult) {
@@ -1651,9 +1680,9 @@ sap.ui.define([
1651
1680
  function terminal(vValue) {
1652
1681
  vResult = vValue;
1653
1682
  if (vResult === undefined) {
1654
- log(WARNING, "Unsupported path before " + sSegment);
1683
+ log(WARNING, "Unsupported path before ", sSegment);
1655
1684
  } else if (i + 1 < aSegments.length) {
1656
- log(WARNING, "Unsupported path after " + sSegment);
1685
+ log(WARNING, "Unsupported path after ", sSegment);
1657
1686
  }
1658
1687
  return false;
1659
1688
  }
@@ -1698,7 +1727,9 @@ sap.ui.define([
1698
1727
  }
1699
1728
  sName = bODataMode || sSegment[0] === "@" ? sSegment : undefined;
1700
1729
  sTarget = bODataMode ? sTarget + "/" + sSegment : undefined;
1701
- vResult = vResult[sSegment];
1730
+ vResult = bOpenType && !bInsideAnnotation && !(sSegment in vResult)
1731
+ ? oDynamicProperty
1732
+ : vResult[sSegment];
1702
1733
  }
1703
1734
  return true;
1704
1735
  }
@@ -1956,7 +1987,7 @@ sap.ui.define([
1956
1987
  sNavigationPath = _Helper.buildPath(sNavigationPath, sPropertyName);
1957
1988
  oProperty = bInsideAnnotation ? {} : oType[sPropertyName];
1958
1989
  if (!oProperty) {
1959
- if (sPropertyName.includes("@")) {
1990
+ if (sPropertyName.includes("@") || oType.$OpenType) {
1960
1991
  if (sPropertyName.includes("@$ui5.")
1961
1992
  && sPropertyName !== "@$ui5.context.isSelected") {
1962
1993
  error("Read-only path must not be updated");
@@ -2556,13 +2587,17 @@ sap.ui.define([
2556
2587
  * list model!
2557
2588
  * @param {boolean} [bAutoExpandSelect]
2558
2589
  * Whether the model is to be created with autoExpandSelect
2590
+ * @param {string} [sQualifiedParentName]
2591
+ * Only in case of a value list model: The qualified name of the structured type containing
2592
+ * the property or the operation containing the parameter where value list info was requested.
2593
+ * Used to derive the {@link #_setForbiddenSchema forbidden schema}.
2559
2594
  * @returns {sap.ui.model.odata.v4.ODataModel}
2560
2595
  * The shared model
2561
2596
  *
2562
2597
  * @private
2563
2598
  */
2564
2599
  ODataMetaModel.prototype.getOrCreateSharedModel = function (sUrl, bCopyAnnotations,
2565
- bAutoExpandSelect) {
2600
+ bAutoExpandSelect, sQualifiedParentName) {
2566
2601
  sUrl = this.getAbsoluteServiceUrl(sUrl);
2567
2602
  const sMapKey = !!bAutoExpandSelect + sUrl; // no separator needed as sUrl.startsWith("/")
2568
2603
  let mSharedModelByUrl = this.mSharedModelByUrl;
@@ -2584,6 +2619,9 @@ sap.ui.define([
2584
2619
  if (bCopyAnnotations) {
2585
2620
  oSharedModel.getMetaModel()._copyAnnotations(this.oMetaModelForAnnotations ?? this);
2586
2621
  }
2622
+ if (sQualifiedParentName) {
2623
+ oSharedModel.getMetaModel()._setForbiddenSchema(schema(sQualifiedParentName));
2624
+ }
2587
2625
  oSharedModel.setRetryAfterHandler((oError) => {
2588
2626
  return this.oModel.getOrCreateRetryAfterPromise(oError);
2589
2627
  });
@@ -3224,7 +3262,9 @@ sap.ui.define([
3224
3262
  * placeholder for one. In this way, "/EMPLOYEES/" addresses the same entity type as
3225
3263
  * "/EMPLOYEES/$Type/". That entity type in turn is a map of all its OData children (that is,
3226
3264
  * structural and navigation properties) and determines the set of possible child names that
3227
- * might be used after the trailing slash.
3265
+ * might be used after the trailing slash. Since 1.137.0, open (complex or entity) types are
3266
+ * supported as follows: A simple identifier that does not refer to an OData child is valid and
3267
+ * treated as a dynamic property of type "Edm.Untyped".
3228
3268
  *
3229
3269
  * "$" can be used as the last segment to continue a path and thus force scope lookup, but no
3230
3270
  * OData simple identifier preparations. In this way, it serves as a placeholder for a technical
@@ -3470,11 +3510,9 @@ sap.ui.define([
3470
3510
  // flag for "fixed values"
3471
3511
  this.requestObject(sPropertyMetaPath + sValueListWithFixedValues),
3472
3512
  this.requestObject(sParentMetaPath + "/@$ui5.overload")
3473
- ]).then(function (aResults) {
3474
- var mAnnotationByTerm = aResults[2],
3475
- bFixedValues = aResults[3],
3476
- mMappingUrlByQualifier = {},
3477
- oProperty = aResults[1],
3513
+ ]).then(function ([sQualifiedParentName, oProperty, mAnnotationByTerm, bFixedValues,
3514
+ aOverloads]) {
3515
+ var mMappingUrlByQualifier = {},
3478
3516
  oValueListInfo = {};
3479
3517
 
3480
3518
  /*
@@ -3489,7 +3527,7 @@ sap.ui.define([
3489
3527
  function addMapping(mValueListMapping, sQualifier, sMappingUrl, oModel) {
3490
3528
  if ("CollectionRoot" in mValueListMapping) {
3491
3529
  oModel = that.getOrCreateSharedModel(mValueListMapping.CollectionRoot,
3492
- /*bCopyAnnotations*/true, bAutoExpandSelect);
3530
+ /*bCopyAnnotations*/true, bAutoExpandSelect, sQualifiedParentName);
3493
3531
  if (oValueListInfo[sQualifier]
3494
3532
  && oValueListInfo[sQualifier].$model === oModel) {
3495
3533
  // same model -> allow overriding the qualifier
@@ -3524,11 +3562,11 @@ sap.ui.define([
3524
3562
  // fetch mappings for each entry and wait for all
3525
3563
  return Promise.all(aMappingUrls.map(function (sMappingUrl) {
3526
3564
  var oValueListModel = that.getOrCreateSharedModel(sMappingUrl,
3527
- /*bCopyAnnotations*/true, bAutoExpandSelect);
3565
+ /*bCopyAnnotations*/true, bAutoExpandSelect, sQualifiedParentName);
3528
3566
 
3529
3567
  // fetch the mappings for the given mapping URL
3530
- return that.fetchValueListMappings(oValueListModel,
3531
- /*sQualifiedParentName*/aResults[0], oProperty, /*aOverloads*/aResults[4]
3568
+ return that.fetchValueListMappings(oValueListModel, sQualifiedParentName,
3569
+ oProperty, aOverloads
3532
3570
  ).then(function (mValueListMappingByQualifier) {
3533
3571
  // enrich with oValueListModel
3534
3572
  return {
@@ -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.136.1
243
+ * @version 1.138.0
244
244
  */
245
245
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
246
246
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -962,11 +962,11 @@ sap.ui.define([
962
962
  * Whether the binding always uses an own service request to read its data; only the value
963
963
  * <code>true</code> is allowed.
964
964
  * @param {string[]} [mParameters.$$separate]
965
- * An array of navigation property names which are omitted from the main list request and
966
- * loaded in a separate request instead (@experimental as of version 1.129.0). This results in
967
- * the main list becoming available faster, while the separate properties are merged as soon
968
- * as the data is received. Note that the separate properties must be single valued and part
969
- * of the '$expand' system query option, either automatically via the "autoExpandSelect" model
965
+ * An array of navigation property names which are omitted from the main list request (since
966
+ * 1.137.0). Instead, each of them is loaded in a separate request. This results in the main
967
+ * list becoming available faster, while the separate properties are merged as soon as the
968
+ * data is received. Note that the separate properties must be single valued and part of the
969
+ * '$expand' system query option, either automatically via the "autoExpandSelect" model
970
970
  * parameter (see {@link #constructor}) or manually. The <code>$$separate</code> parameter
971
971
  * must not be combined with <code>$$aggregation</code>.
972
972
  * @param {boolean} [mParameters.$$sharedRequest]
@@ -2880,7 +2880,8 @@ sap.ui.define([
2880
2880
  * but take care to replace dashes with underscores.
2881
2881
  * @throws {Error}
2882
2882
  * If the given group ID is not a valid group ID or has
2883
- * {@link sap.ui.model.odata.v4.SubmitMode.Direct}
2883
+ * {@link sap.ui.model.odata.v4.SubmitMode.Direct} or if multiple requests that apply the
2884
+ * preference "handling=strict" already exist in the same change set of the batch request
2884
2885
  *
2885
2886
  * @private
2886
2887
  * @since 1.134.0
@@ -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.136.1
45
+ * @version 1.138.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
@@ -9,11 +9,11 @@
9
9
  sap.ui.define([
10
10
  "../_AnnotationHelperBasics",
11
11
  "sap/base/Log",
12
+ "sap/ui/base/BindingInfo",
12
13
  "sap/ui/base/BindingParser",
13
- "sap/ui/base/ManagedObject",
14
14
  "sap/ui/base/SyncPromise",
15
15
  "sap/ui/performance/Measurement"
16
- ], function (Basics, Log, BindingParser, ManagedObject, SyncPromise, Measurement) {
16
+ ], function (Basics, Log, BindingInfo, BindingParser, SyncPromise, Measurement) {
17
17
  "use strict";
18
18
 
19
19
  // see http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/abnf/odata-abnf-construction-rules.txt
@@ -680,7 +680,7 @@ sap.ui.define([
680
680
  Measurement.average(sPerformanceGetExpression, "", aPerformanceCategories);
681
681
 
682
682
  if (!bSimpleParserWarningLogged
683
- && ManagedObject.bindingParser === BindingParser.simpleParser) {
683
+ && BindingInfo.parse === BindingParser.simpleParser) {
684
684
  Log.warning("Complex binding syntax not active", null, sAnnotationHelper);
685
685
  bSimpleParserWarningLogged = true;
686
686
  }