@openui5/sap.ui.core 1.141.2 → 1.143.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 (364) hide show
  1. package/.dtsgenrc +22 -0
  2. package/README.md +2 -2
  3. package/REUSE.toml +39 -1
  4. package/THIRDPARTY.txt +36 -3
  5. package/package.json +1 -1
  6. package/src/jquery.sap.global.js +1 -1
  7. package/src/jquery.sap.properties.js +1 -1
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +3 -3
  11. package/src/sap/base/Event.js +1 -1
  12. package/src/sap/base/Eventing.js +1 -1
  13. package/src/sap/base/config.js +1 -1
  14. package/src/sap/base/i18n/LanguageTag.js +1 -1
  15. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  16. package/src/sap/base/util/resolveReference.js +1 -1
  17. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  18. package/src/sap/base/util/restricted/_castArray.js +1 -1
  19. package/src/sap/base/util/restricted/_compact.js +1 -1
  20. package/src/sap/base/util/restricted/_curry.js +1 -1
  21. package/src/sap/base/util/restricted/_debounce.js +1 -1
  22. package/src/sap/base/util/restricted/_difference.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_flatten.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  31. package/src/sap/base/util/restricted/_intersection.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isNil.js +1 -1
  37. package/src/sap/base/util/restricted/_max.js +1 -1
  38. package/src/sap/base/util/restricted/_merge.js +1 -1
  39. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  40. package/src/sap/base/util/restricted/_min.js +1 -1
  41. package/src/sap/base/util/restricted/_omit.js +1 -1
  42. package/src/sap/base/util/restricted/_pick.js +1 -1
  43. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  44. package/src/sap/base/util/restricted/_throttle.js +1 -1
  45. package/src/sap/base/util/restricted/_toArray.js +1 -1
  46. package/src/sap/base/util/restricted/_union.js +1 -1
  47. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  48. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  49. package/src/sap/base/util/restricted/_uniq.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  52. package/src/sap/base/util/restricted/_without.js +1 -1
  53. package/src/sap/base/util/restricted/_xor.js +1 -1
  54. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  55. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  58. package/src/sap/ui/Device.js +3 -3
  59. package/src/sap/ui/Global.js +3 -3
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/Exception.js +9 -7
  63. package/src/sap/ui/base/ExpressionParser.js +8 -7
  64. package/src/sap/ui/base/Interface.js +1 -1
  65. package/src/sap/ui/base/ManagedObject.js +1 -1
  66. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +1 -1
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/core/.library +7 -7
  71. package/src/sap/ui/core/AppCacheBuster.js +21 -19
  72. package/src/sap/ui/core/BusyIndicator.js +1 -1
  73. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  74. package/src/sap/ui/core/Component.js +52 -40
  75. package/src/sap/ui/core/ComponentContainer.js +1 -1
  76. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  77. package/src/sap/ui/core/ComponentSupport.js +1 -1
  78. package/src/sap/ui/core/Configuration.js +1 -1
  79. package/src/sap/ui/core/Control.js +1 -1
  80. package/src/sap/ui/core/Core.js +6 -3
  81. package/src/sap/ui/core/CustomData.js +1 -1
  82. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  83. package/src/sap/ui/core/Element.js +3 -5
  84. package/src/sap/ui/core/ElementMetadata.js +1 -1
  85. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  86. package/src/sap/ui/core/EventBus.js +1 -1
  87. package/src/sap/ui/core/Fragment.js +1 -1
  88. package/src/sap/ui/core/HTML.js +1 -1
  89. package/src/sap/ui/core/History.js +1 -1
  90. package/src/sap/ui/core/Icon.js +1 -1
  91. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  92. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  93. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  94. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  95. package/src/sap/ui/core/InvisibleText.js +1 -1
  96. package/src/sap/ui/core/Item.js +1 -1
  97. package/src/sap/ui/core/LabelEnablement.js +6 -4
  98. package/src/sap/ui/core/LayoutData.js +1 -1
  99. package/src/sap/ui/core/Lib.js +1 -1
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +1 -1
  103. package/src/sap/ui/core/LocaleData.js +1 -1
  104. package/src/sap/ui/core/Manifest.js +21 -20
  105. package/src/sap/ui/core/Message.js +1 -1
  106. package/src/sap/ui/core/Popup.js +13 -6
  107. package/src/sap/ui/core/RenderManager.js +13 -2
  108. package/src/sap/ui/core/Renderer.js +1 -1
  109. package/src/sap/ui/core/ResizeHandler.js +1 -1
  110. package/src/sap/ui/core/ScrollBar.js +1 -1
  111. package/src/sap/ui/core/SeparatorItem.js +1 -1
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +1 -1
  115. package/src/sap/ui/core/UIComponent.js +1 -1
  116. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/_UrlResolver.js +31 -29
  122. package/src/sap/ui/core/date/UI5Date.js +1 -1
  123. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  124. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  126. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  128. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  129. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  130. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  131. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  132. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  133. package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +21 -2
  134. package/src/sap/ui/core/library.js +11 -11
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +1 -1
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/messagebundle.properties +2 -0
  141. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  142. package/src/sap/ui/core/messagebundle_bg.properties +1 -0
  143. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  144. package/src/sap/ui/core/messagebundle_cnr.properties +1 -0
  145. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  146. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  147. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  148. package/src/sap/ui/core/messagebundle_de.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  151. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  152. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  153. package/src/sap/ui/core/messagebundle_es.properties +21 -20
  154. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  155. package/src/sap/ui/core/messagebundle_et.properties +3 -2
  156. package/src/sap/ui/core/messagebundle_fi.properties +2 -1
  157. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  160. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_id.properties +3 -2
  163. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  164. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  165. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  166. package/src/sap/ui/core/messagebundle_kk.properties +9 -8
  167. package/src/sap/ui/core/messagebundle_ko.properties +1 -0
  168. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  169. package/src/sap/ui/core/messagebundle_lv.properties +1 -0
  170. package/src/sap/ui/core/messagebundle_mk.properties +1 -0
  171. package/src/sap/ui/core/messagebundle_ms.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_no.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  175. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  176. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  177. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  178. package/src/sap/ui/core/messagebundle_ru.properties +1 -0
  179. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  180. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  181. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  182. package/src/sap/ui/core/messagebundle_sr.properties +1 -0
  183. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  184. package/src/sap/ui/core/messagebundle_th.properties +2 -1
  185. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  186. package/src/sap/ui/core/messagebundle_uk.properties +2 -1
  187. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  188. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  189. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  190. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  191. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  192. package/src/sap/ui/core/mvc/JSView.js +1 -1
  193. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  194. package/src/sap/ui/core/mvc/View.js +1 -1
  195. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  196. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  197. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  198. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  199. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  200. package/src/sap/ui/core/routing/History.js +8 -4
  201. package/src/sap/ui/core/routing/Router.js +31 -33
  202. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  203. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  204. package/src/sap/ui/core/service/Service.js +1 -1
  205. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  206. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  207. package/src/sap/ui/core/support/Plugin.js +1 -1
  208. package/src/sap/ui/core/support/Support.js +1 -1
  209. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  210. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  211. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  212. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  213. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  214. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  215. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  216. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  217. package/src/sap/ui/core/themes/base/BlindLayer.less +4 -9
  218. package/src/sap/ui/core/themes/base/BrowserScrollbar.less +1 -1
  219. package/src/sap/ui/core/themes/base/BusyIndicator.less +322 -1
  220. package/src/sap/ui/core/themes/base/CommandShortcutHints.less +9 -9
  221. package/src/sap/ui/core/themes/base/DragAndDrop.less +21 -20
  222. package/src/sap/ui/core/themes/base/Icon.less +36 -35
  223. package/src/sap/ui/core/themes/base/library.source.less +0 -3
  224. package/src/sap/ui/core/themes/base/parameterClasses.less +32 -20
  225. package/src/sap/ui/core/themes/base/shared.less +5 -0
  226. package/src/sap/ui/core/theming/Parameters.js +6 -12
  227. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  228. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  229. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  230. package/src/sap/ui/core/tmpl/Template.js +1 -1
  231. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  232. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  233. package/src/sap/ui/core/util/Export.js +1 -1
  234. package/src/sap/ui/core/util/ExportCell.js +1 -1
  235. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  236. package/src/sap/ui/core/util/ExportRow.js +1 -1
  237. package/src/sap/ui/core/util/ExportType.js +1 -1
  238. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  239. package/src/sap/ui/core/util/File.js +1 -1
  240. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  241. package/src/sap/ui/core/util/MockServer.js +1 -1
  242. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  243. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  244. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  245. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  246. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  247. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  248. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  249. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  250. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  251. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  252. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  253. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  254. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  255. package/src/sap/ui/core/ws/WebSocket.js +7 -11
  256. package/src/sap/ui/debug/ControlTree.js +1 -1
  257. package/src/sap/ui/debug/DebugEnv.js +1 -1
  258. package/src/sap/ui/debug/PropertyList.js +1 -1
  259. package/src/sap/ui/events/FocusEventFix.js +36 -0
  260. package/src/sap/ui/model/ClientModel.js +1 -1
  261. package/src/sap/ui/model/ClientTreeBinding.js +50 -7
  262. package/src/sap/ui/model/CompositeDataState.js +1 -1
  263. package/src/sap/ui/model/CompositeType.js +1 -1
  264. package/src/sap/ui/model/DataState.js +1 -1
  265. package/src/sap/ui/model/MetaModel.js +1 -1
  266. package/src/sap/ui/model/Model.js +52 -3
  267. package/src/sap/ui/model/SelectionModel.js +1 -1
  268. package/src/sap/ui/model/SimpleType.js +1 -1
  269. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  270. package/src/sap/ui/model/Type.js +1 -1
  271. package/src/sap/ui/model/base/ManagedObjectModel.js +7 -4
  272. package/src/sap/ui/model/json/JSONModel.js +9 -4
  273. package/src/sap/ui/model/message/MessageModel.js +1 -1
  274. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  275. package/src/sap/ui/model/odata/ODataMessageParser.js +31 -64
  276. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  277. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  278. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  279. package/src/sap/ui/model/odata/type/Boolean.js +8 -4
  280. package/src/sap/ui/model/odata/type/Byte.js +8 -4
  281. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  282. package/src/sap/ui/model/odata/type/Date.js +2 -2
  283. package/src/sap/ui/model/odata/type/DateTime.js +2 -2
  284. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  285. package/src/sap/ui/model/odata/type/DateTimeOffset.js +8 -4
  286. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  287. package/src/sap/ui/model/odata/type/Decimal.js +50 -18
  288. package/src/sap/ui/model/odata/type/Double.js +8 -4
  289. package/src/sap/ui/model/odata/type/Guid.js +8 -4
  290. package/src/sap/ui/model/odata/type/Int.js +9 -4
  291. package/src/sap/ui/model/odata/type/Int16.js +8 -4
  292. package/src/sap/ui/model/odata/type/Int32.js +8 -4
  293. package/src/sap/ui/model/odata/type/Int64.js +8 -4
  294. package/src/sap/ui/model/odata/type/ODataType.js +6 -7
  295. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  296. package/src/sap/ui/model/odata/type/SByte.js +8 -4
  297. package/src/sap/ui/model/odata/type/Single.js +8 -4
  298. package/src/sap/ui/model/odata/type/Stream.js +2 -2
  299. package/src/sap/ui/model/odata/type/String.js +8 -4
  300. package/src/sap/ui/model/odata/type/Time.js +2 -2
  301. package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
  302. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  303. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  304. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  305. package/src/sap/ui/model/odata/v2/ODataModel.js +24 -16
  306. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +20 -7
  307. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +50 -50
  308. package/src/sap/ui/model/odata/v4/Context.js +44 -33
  309. package/src/sap/ui/model/odata/v4/ODataBinding.js +6 -3
  310. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -6
  311. package/src/sap/ui/model/odata/v4/ODataListBinding.js +63 -23
  312. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +37 -62
  313. package/src/sap/ui/model/odata/v4/ODataModel.js +58 -53
  314. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +18 -13
  315. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  316. package/src/sap/ui/model/odata/v4/ODataUtils.js +6 -6
  317. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +46 -46
  318. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +21 -1
  319. package/src/sap/ui/model/odata/v4/lib/_Cache.js +26 -27
  320. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +6 -7
  321. package/src/sap/ui/model/odata/v4/lib/_Helper.js +52 -38
  322. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +2 -1
  323. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +5 -5
  324. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +105 -38
  325. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +10 -3
  326. package/src/sap/ui/model/odata/v4/ts.js +2 -2
  327. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  328. package/src/sap/ui/model/type/Boolean.js +1 -1
  329. package/src/sap/ui/model/type/Currency.js +1 -1
  330. package/src/sap/ui/model/type/Date.js +1 -1
  331. package/src/sap/ui/model/type/DateInterval.js +1 -1
  332. package/src/sap/ui/model/type/DateTime.js +1 -1
  333. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  334. package/src/sap/ui/model/type/FileSize.js +1 -1
  335. package/src/sap/ui/model/type/Float.js +1 -1
  336. package/src/sap/ui/model/type/Integer.js +1 -1
  337. package/src/sap/ui/model/type/String.js +1 -1
  338. package/src/sap/ui/model/type/Time.js +1 -1
  339. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  340. package/src/sap/ui/model/type/Unit.js +1 -1
  341. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  342. package/src/sap/ui/model/xml/XMLTreeBinding.js +10 -0
  343. package/src/sap/ui/performance/Measurement.js +18 -24
  344. package/src/sap/ui/performance/trace/FESR.js +3 -2
  345. package/src/sap/ui/performance/trace/Interaction.js +35 -2
  346. package/src/sap/ui/performance/trace/_InteractionImpl.js +254 -166
  347. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  348. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  349. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  350. package/src/sap/ui/test/_BrowserLogCollector.js +1 -4
  351. package/src/sap/ui/test/generic/TestBase.js +1 -1
  352. package/src/sap/ui/test/launchers/componentLauncher.js +3 -2
  353. package/src/sap/ui/test/launchers/iFrameLauncher.js +3 -1
  354. package/src/sap/ui/test/starter/_setupAndStart.js +3 -1
  355. package/src/sap/ui/test/starter/_utils.js +5 -59
  356. package/src/sap/ui/test/starter/config.js +555 -0
  357. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +6 -0
  358. package/src/sap/ui/thirdparty/require.js +255 -162
  359. package/src/sap/ui/util/Storage.js +1 -1
  360. package/src/sap/ui/util/_URL.js +158 -0
  361. package/src/ui5loader.js +3 -9
  362. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +0 -293
  363. package/src/sap/ui/core/themes/base/Shadow.less +0 -3
  364. package/src/sap/ui/core/themes/base/TechnicalInfo.less +0 -157
@@ -7,9 +7,6 @@
7
7
  /**
8
8
  * Model and related classes like bindings for OData V4.
9
9
  *
10
- * <b>Note:</b> Smart controls (<code>sap.ui.comp</code> library) do not support the SAPUI5 OData V4
11
- * model. Also controls such as {@link sap.ui.table.TreeTable} and
12
- * {@link sap.ui.table.AnalyticalTable} are not supported together with the SAPUI5 OData V4 model.
13
10
  * The interface for applications has been changed for easier and more efficient use of the model.
14
11
  * For a summary of these changes, see
15
12
  * {@link topic:abd4d7c7548d4c29ab8364d3904a6d74 Changes Compared to OData V2 Model}.
@@ -45,12 +42,11 @@ sap.ui.define([
45
42
  "sap/ui/model/BindingMode",
46
43
  "sap/ui/model/Context",
47
44
  "sap/ui/model/Model",
48
- "sap/ui/model/odata/OperationMode",
49
- "sap/ui/thirdparty/URI"
45
+ "sap/ui/model/odata/OperationMode"
50
46
  ], function (ODataContextBinding, ODataListBinding, ODataMetaModel, ODataPropertyBinding,
51
47
  SubmitMode, _GroupLock, _Helper, _MetadataRequestor, _Parser, _Requestor, assert, Log,
52
48
  Localization, SyncPromise, Messaging, Rendering, Supportability, CacheManager,
53
- Message, MessageType, BindingMode, BaseContext, Model, OperationMode, URI) {
49
+ Message, MessageType, BindingMode, BaseContext, Model, OperationMode) {
54
50
  "use strict";
55
51
 
56
52
  /**
@@ -155,7 +151,9 @@ sap.ui.define([
155
151
  * "sap-context-token" applies only to the service's root $metadata, but not to
156
152
  * "cross-service references". Supported since 1.81.0
157
153
  * @param {string} [mParameters.odataVersion="4.0"]
158
- * The version of the OData service. Supported values are "2.0" and "4.0".
154
+ * The version of the OData service. Supported values are "2.0", "4.0", and "4.01".
155
+ * <b>Note:</b> "2.0" is deprecated since 1.143.0. We recommend migrating your service to
156
+ * OData V4.
159
157
  * @param {sap.ui.model.odata.OperationMode} [mParameters.operationMode]
160
158
  * The operation mode for filtering and sorting. Since 1.39.0, the operation mode
161
159
  * {@link sap.ui.model.odata.OperationMode.Server} is supported. All other operation modes
@@ -167,8 +165,8 @@ sap.ui.define([
167
165
  * forward slash according to OData V4 specification ABNF, rule "serviceRoot". You may
168
166
  * append OData custom query options to the service root URL separated with a "?", for
169
167
  * example "/MyService/?custom=foo". See specification <a href=
170
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#_Custom_Query_Options"
171
- * >"OData Version 4.0 Part 2: URL Conventions", "5.2 Custom Query Options"</a>. OData
168
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31361050"
169
+ * >"OData Version 4.01. Part 2: URL Conventions", "5.2 Custom Query Options"</a>. OData
172
170
  * system query options and OData parameter aliases lead to an error.
173
171
  * @param {boolean} [mParameters.sharedRequests]
174
172
  * Whether all list bindings for the same resource path share their data, so that it is
@@ -209,9 +207,9 @@ sap.ui.define([
209
207
  *
210
208
  * Every resource path (relative to the service root URL, no query options) according to
211
209
  * <a href=
212
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#resource-pathurl4"
213
- * >"4 Resource Path"</a> in specification "OData Version 4.0 Part 2: URL Conventions" is
214
- * a valid data binding path within this model if a leading slash is added; for example
210
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31360928"
211
+ * >"4 Resource Path"</a> in specification "OData Version 4.01. Part 2: URL Conventions"
212
+ * is a valid data binding path within this model if a leading slash is added; for example
215
213
  * "/" + "SalesOrderList('A%2FB%26C')" to access an entity instance with key "A/B&C". Note
216
214
  * that appropriate URI encoding is necessary, see the example of
217
215
  * {@link sap.ui.model.odata.v4.ODataUtils.formatLiteral}. "4.5.1 Addressing Actions"
@@ -242,7 +240,7 @@ sap.ui.define([
242
240
  * @extends sap.ui.model.Model
243
241
  * @public
244
242
  * @since 1.37.0
245
- * @version 1.141.2
243
+ * @version 1.143.0
246
244
  */
247
245
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
248
246
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -273,8 +271,8 @@ sap.ui.define([
273
271
  sParameter,
274
272
  mQueryParams,
275
273
  sServiceUrl,
276
- oUri,
277
274
  mUriParameters,
275
+ sUrlParameters,
278
276
  that = this;
279
277
 
280
278
  // do not pass any parameters to Model
@@ -286,7 +284,7 @@ sap.ui.define([
286
284
  }
287
285
  sODataVersion = mParameters.odataVersion || "4.0";
288
286
  this.sODataVersion = sODataVersion;
289
- if (sODataVersion !== "4.0" && sODataVersion !== "2.0") {
287
+ if (sODataVersion !== "4.01" && sODataVersion !== "4.0" && sODataVersion !== "2.0") {
290
288
  throw new Error("Unsupported value for parameter odataVersion: " + sODataVersion);
291
289
  }
292
290
  for (sParameter in mParameters) {
@@ -298,8 +296,10 @@ sap.ui.define([
298
296
  if (!sServiceUrl) {
299
297
  throw new Error("Missing service root URL");
300
298
  }
301
- oUri = new URI(sServiceUrl);
302
- if (oUri.path()[oUri.path().length - 1] !== "/") {
299
+ // we don't expect the sServiceUrl to contain a "#" hash part, because it is not relevant
300
+ // for OData requests
301
+ [sServiceUrl, sUrlParameters] = sServiceUrl.split("?");
302
+ if (sServiceUrl.at(-1) !== "/") {
303
303
  throw new Error("Service root URL must end with '/'");
304
304
  }
305
305
  if (mParameters.operationMode && mParameters.operationMode !== OperationMode.Server) {
@@ -307,15 +307,16 @@ sap.ui.define([
307
307
  + mParameters.operationMode);
308
308
  }
309
309
  this.sOperationMode = mParameters.operationMode;
310
+ mUriParameters = _Helper.getUrlParameters(sUrlParameters);
310
311
  // Note: strict checking for model's URI parameters, but "sap-*" is allowed
311
- mUriParameters = this.buildQueryOptions(oUri.query(true), false, true);
312
+ mUriParameters = this.buildQueryOptions(mUriParameters, false, true);
312
313
  // BEWARE: these are shared across all bindings!
313
314
  this.mUriParameters = mUriParameters;
314
315
  if (Supportability.isStatisticsEnabled()) {
315
316
  // Note: this way, "sap-statistics" is not sent within $batch
316
317
  mUriParameters = Object.assign({"sap-statistics" : true}, mUriParameters);
317
318
  }
318
- this.sServiceUrl = oUri.query("").toString();
319
+ this.sServiceUrl = sServiceUrl;
319
320
  this.sGroupId = mParameters.groupId;
320
321
  if (this.sGroupId === undefined) {
321
322
  this.sGroupId = "$auto";
@@ -748,8 +749,8 @@ sap.ui.define([
748
749
  * The context which is required as base for a relative path
749
750
  * @param {object} [mParameters]
750
751
  * Map of binding parameters which can be OData query options as specified in <a href=
751
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html"
752
- * >"OData Version 4.0 Part 2: URL Conventions"</a> or the binding-specific parameters as
752
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html"
753
+ * >"OData Version 4.01. Part 2: URL Conventions"</a> or the binding-specific parameters as
753
754
  * specified below.
754
755
  * Note: The binding creates its own data service request if it is absolute or if it has any
755
756
  * parameters or if it is relative and has a context created via
@@ -766,7 +767,7 @@ sap.ui.define([
766
767
  * All other query options lead to an error.
767
768
  * Query options specified for the binding overwrite model query options.
768
769
  * @param {string|object} [mParameters.$expand]
769
- * The value for the "5.1.2 System Query Option $expand" or an object which determines that
770
+ * The value for the "5.1.3 System Query Option $expand" or an object which determines that
770
771
  * value. The object is a map from expand path to expand options, where the options are again
771
772
  * maps of system query options, typically with string values. $count can also be given as a
772
773
  * <code>boolean</code> value, $expand can recursively be given as a map, $levels can also be
@@ -775,9 +776,9 @@ sap.ui.define([
775
776
  * <code>true</code>. See also {@link topic:1ab4f62de6ab467096a2a98b363a1373 Parameters}.
776
777
  * @param {string|string[]} [mParameters.$select]
777
778
  * A comma separated list or an array of items which determine the value for the
778
- * "5.1.3 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
779
+ * "5.1.4 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
779
780
  * parameter (see {@link #constructor}), paths with navigation properties can be included and
780
- * will contribute to the "5.1.2 System Query Option $expand".
781
+ * will contribute to the "5.1.3 System Query Option $expand".
781
782
  * @param {boolean} [mParameters.$$canonicalPath]
782
783
  * Whether a binding relative to an {@link sap.ui.model.odata.v4.Context} uses the canonical
783
784
  * path computed from its context's path for data service requests; only the value
@@ -874,8 +875,8 @@ sap.ui.define([
874
875
  * Supported since 1.39.0.
875
876
  * @param {object} [mParameters]
876
877
  * Map of binding parameters which can be OData query options as specified in <a href=
877
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html"
878
- * >"OData Version 4.0 Part 2: URL Conventions"</a> or binding-specific parameters as
878
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html"
879
+ * >"OData Version 4.01. Part 2: URL Conventions"</a> or binding-specific parameters as
879
880
  * specified below.
880
881
  * Note: The binding creates its own data service request if it is absolute or if it has any
881
882
  * parameters or if it is relative and has a context created via {@link #createBindingContext}
@@ -895,10 +896,10 @@ sap.ui.define([
895
896
  * Extension for Data Aggregation Version 4.0</a>) as an alternative to
896
897
  * <code>$$aggregation</code>
897
898
  * @param {string|boolean} [mParameters.$count]
898
- * The value for the "5.1.6 System Query Option $count", useful for creation at the end and
899
+ * The value for the "5.1.7 System Query Option $count", useful for creation at the end and
899
900
  * {@link sap.ui.model.odata.v4.ODataListBinding#getCount}
900
901
  * @param {string|object} [mParameters.$expand]
901
- * The value for the "5.1.2 System Query Option $expand" or an object which determines that
902
+ * The value for the "5.1.3 System Query Option $expand" or an object which determines that
902
903
  * value. The object is a map from expand path to expand options, where the options are again
903
904
  * maps of system query options, typically with string values. $count can also be given as a
904
905
  * <code>boolean</code> value, $expand can recursively be given as a map, $levels can also be
@@ -906,20 +907,20 @@ sap.ui.define([
906
907
  * without navigation paths). An empty map can also be given as <code>null</code> or
907
908
  * <code>true</code>. See also {@link topic:1ab4f62de6ab467096a2a98b363a1373 Parameters}.
908
909
  * @param {string} [mParameters.$filter]
909
- * The value for the "5.1.1 System Query Option $filter" used in addition to
910
+ * The value for the "5.1.2 System Query Option $filter" used in addition to
910
911
  * <code>vFilters</code>
911
912
  * @param {string|number} [mParameters.$orderby]
912
- * The value for the "5.1.4 System Query Option $orderby" used in addition to
913
+ * The value for the "5.1.5 System Query Option $orderby" used in addition to
913
914
  * <code>vSorters</code>
914
915
  * @param {string} [mParameters.$search]
915
- * The value for the "5.1.7 System Query Option $search"; see also
916
+ * The value for the "5.1.8 System Query Option $search"; see also
916
917
  * <code>oAggregation.search</code> at
917
918
  * {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} and the note there!
918
919
  * @param {string|string[]} [mParameters.$select]
919
920
  * A comma separated list or an array of items which determine the value for the
920
- * "5.1.3 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
921
+ * "5.1.4 System Query Option $select". Since 1.75.0, when using the "autoExpandSelect" model
921
922
  * parameter (see {@link #constructor}), paths with navigation properties can be included and
922
- * will contribute to the "5.1.2 System Query Option $expand".
923
+ * will contribute to the "5.1.3 System Query Option $expand".
923
924
  * @param {object} [mParameters.$$aggregation]
924
925
  * An object holding the information needed for data aggregation, see
925
926
  * {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details.
@@ -967,10 +968,10 @@ sap.ui.define([
967
968
  * An array of navigation property names which are omitted from the main list request (since
968
969
  * 1.137.0). Instead, each of them is loaded in a separate request. This results in the main
969
970
  * list becoming available faster, while the separate properties are merged as soon as the
970
- * data is received. Note that the separate properties must be single valued and part of the
971
- * '$expand' system query option, either automatically via the "autoExpandSelect" model
972
- * parameter (see {@link #constructor}) or manually. The <code>$$separate</code> parameter
973
- * must not be combined with <code>$$aggregation</code>.
971
+ * data is received. Note that the separate properties must be single valued. If they are not
972
+ * part of the '$expand' system query option, either automatically via the "autoExpandSelect"
973
+ * model parameter (see {@link #constructor}) or manually, they are ignored. The
974
+ * <code>$$separate</code> parameter must not be combined with <code>$$aggregation</code>.
974
975
  * @param {boolean} [mParameters.$$sharedRequest]
975
976
  * Whether multiple bindings for the same resource path share the data, so that it is
976
977
  * requested only once.
@@ -1065,8 +1066,8 @@ sap.ui.define([
1065
1066
  * The context which is required as base for a relative path
1066
1067
  * @param {object} [mParameters]
1067
1068
  * Map of binding parameters which can be OData query options as specified in <a href=
1068
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html"
1069
- * >"OData Version 4.0 Part 2: URL Conventions"</a> or the binding-specific parameters as
1069
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html"
1070
+ * >"OData Version 4.01. Part 2: URL Conventions"</a> or the binding-specific parameters as
1070
1071
  * specified below. The following OData query options are allowed:
1071
1072
  * <ul>
1072
1073
  * <li> All "5.2 Custom Query Options" except for those with a name starting with "sap-"
@@ -1085,10 +1086,10 @@ sap.ui.define([
1085
1086
  * <a href="https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/">OData
1086
1087
  * Extension for Data Aggregation Version 4.0</a>), if the path ends with a "$count" segment
1087
1088
  * @param {string} [mParameters.$filter]
1088
- * The value for the "5.1.1 System Query Option $filter", if the path ends with a "$count"
1089
+ * The value for the "5.1.2 System Query Option $filter", if the path ends with a "$count"
1089
1090
  * segment
1090
1091
  * @param {string} [mParameters.$search]
1091
- * The value for the "5.1.7 System Query Option $search", if the path ends with a "$count"
1092
+ * The value for the "5.1.8 System Query Option $search", if the path ends with a "$count"
1092
1093
  * segment
1093
1094
  * @param {string} [mParameters.$$groupId]
1094
1095
  * The group ID to be used for <b>read</b> requests initiated by this binding; if not
@@ -1243,10 +1244,13 @@ sap.ui.define([
1243
1244
  if (mParameters) {
1244
1245
  for (sParameterName in mParameters) {
1245
1246
  if (a401DenyList.includes(sParameterName.toLowerCase())) {
1246
- Log.warning("[FUTURE FATAL] Custom query option " + sParameterName
1247
- + " will not be supported with OData 4.01, see"
1248
- + " https://sdk.openui5.org/topic/cda632b01c1e4a988ccecab759d19380",
1249
- undefined, sClassName);
1247
+ const sMessage = "Custom query option " + sParameterName
1248
+ + " not supported with OData 4.01, see"
1249
+ + " https://sdk.openui5.org/topic/cda632b01c1e4a988ccecab759d19380";
1250
+ if (this.sODataVersion === "4.01") {
1251
+ throw new Error(sMessage);
1252
+ }
1253
+ Log.warning("[FUTURE FATAL] " + sMessage, undefined, sClassName);
1250
1254
  }
1251
1255
  if (sParameterName.startsWith("$$")) { // binding-specific parameter
1252
1256
  delete mTransformedOptions[sParameterName];
@@ -1274,9 +1278,9 @@ sap.ui.define([
1274
1278
  * and missing headers remain unchanged. The following headers must not be used:
1275
1279
  * <ul>
1276
1280
  * <li> OData V4 requests headers as specified in <a href=
1277
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html#_Common_Headers"
1278
- * >"8.1 Common Headers"</a> and "8.2 Request Headers" of the specification "OData Version
1279
- * 4.0 Part 1: Protocol"
1281
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#_Toc31358857"
1282
+ * >"8.1 Common Headers"</a> and "8.2 Request Headers" of the specification
1283
+ * "OData Version 4.01. Part 1: Protocol"
1280
1284
  * <li> OData V2 request headers as specified in "2.2.5 HTTP Header Fields" of the
1281
1285
  * specification "OData Version 2 v10.1"
1282
1286
  * <li> The headers "Content-Id" and "Content-Transfer-Encoding"
@@ -2695,11 +2699,12 @@ sap.ui.define([
2695
2699
  /**
2696
2700
  * Returns a promise for the "canonical path" of the entity for the given context.
2697
2701
  * According to <a href=
2698
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#canonical-urlurl4.1.1"
2699
- * >"4.3.1 Canonical URL"</a> of the specification "OData Version 4.0 Part 2: URL Conventions",
2700
- * this is the "name of the entity set associated with the entity followed by the key predicate
2701
- * identifying the entity within the collection". Use the canonical path in
2702
- * {@link sap.ui.core.Element#bindElement} to create an element binding.
2702
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31360932"
2703
+ * >"4.3.1 Canonical URL"</a> of the specification
2704
+ * "OData Version 4.01. Part 2: URL Conventions", this is the "name of the entity set associated
2705
+ * with the entity followed by the key predicate identifying the entity within the collection".
2706
+ * Use the canonical path in {@link sap.ui.core.Element#bindElement} to create an element
2707
+ * binding.
2703
2708
  *
2704
2709
  * @param {sap.ui.model.odata.v4.Context} oEntityContext
2705
2710
  * A context in this model which must point to a non-contained OData entity
@@ -130,8 +130,8 @@ sap.ui.define([
130
130
  *
131
131
  * Note: * is an item in <code>$select</code> and <code>$expand</code> just as others, that is
132
132
  * it must be part of the array of items and one must not ignore the other items if * is
133
- * provided. See "5.1.2 System Query Option $expand" and "5.1.3 System Query Option $select" in
134
- * specification "OData Version 4.0 Part 2: URL Conventions".
133
+ * provided. See "5.1.3 System Query Option $expand" and "5.1.4 System Query Option $select" in
134
+ * specification "OData Version 4.01. Part 2: URL Conventions".
135
135
  *
136
136
  * @param {object} mQueryOptions - The query options to be merged
137
137
  * @param {string} sBaseMetaPath - This binding's meta path
@@ -731,11 +731,11 @@ sap.ui.define([
731
731
  /**
732
732
  * Binding specific code for suspend.
733
733
  *
734
+ * @abstract
735
+ * @function
736
+ * @name sap.ui.model.odata.v4.ODataParentBinding#doSuspend
734
737
  * @private
735
738
  */
736
- ODataParentBinding.prototype.doSuspend = function () {
737
- // nothing to do here
738
- };
739
739
 
740
740
  /**
741
741
  * Determines whether a child binding with the given context and path can use
@@ -823,9 +823,15 @@ sap.ui.define([
823
823
 
824
824
  if (bDependsOnOperation && !sResolvedChildPath.includes("/$Parameter/")
825
825
  || this.isRootBindingSuspended()
826
- || _Helper.isDataAggregation(this.mParameters)) {
827
- // With data aggregation, no auto-$expand/$select is needed, but the child may still use
828
- // the parent's cache
826
+ || _Helper.isDataAggregation(this.mParameters)
827
+ && (oContext === this.getHeaderContext?.() || oContext.isAggregated()
828
+ || this.mParameters.$$aggregation.aggregate[sChildPath]?.name)) {
829
+ // In general there is no need for auto-$expand/$select, if the given context is a
830
+ // header context. But exiting here always, if a header context is used, changes the
831
+ // timing.
832
+ // With data aggregation, no auto-$expand/$select is needed for a header context, a
833
+ // context referencing aggregated data, or a dynamic property, but the child may still
834
+ // use the parent's cache; in case of a single record auto-$expand/$select is used.
829
835
  // Note: Operation bindings do not support auto-$expand/$select yet
830
836
  return SyncPromise.resolve(sResolvedChildPath);
831
837
  }
@@ -891,8 +897,7 @@ sap.ui.define([
891
897
  mChildQueryOptions, bIsProperty);
892
898
  }
893
899
 
894
- if (oProperty?.["@$ui5.$count"]
895
- && oContext !== oContext.getBinding().getHeaderContext?.()
900
+ if (oProperty?.["@$ui5.$count"] && oContext !== that.getHeaderContext?.()
896
901
  // avoid new $count handling in case of "manual" $expand
897
902
  // Note: sChildPath.slice(0, -7) is the navigation property name
898
903
  && !mLocalQueryOptions.$expand?.[sChildPath.slice(0, -7)]) {
@@ -1361,9 +1366,9 @@ sap.ui.define([
1361
1366
  * @param {string} sGroupId
1362
1367
  * The group ID to be used for requesting side effects
1363
1368
  * @param {string[]} aPaths
1364
- * The "14.5.11 Expression edm:NavigationPropertyPath" or
1365
- * "14.5.13 Expression edm:PropertyPath" strings describing which properties need to be loaded
1366
- * because they may have changed due to side effects of a previous update
1369
+ * The "14.4.1.5 Expression edm:NavigationPropertyPath" or
1370
+ * "14.4.1.6 Expression edm:PropertyPath" strings describing which properties need to be
1371
+ * loaded because they may have changed due to side effects of a previous update
1367
1372
  * @param {sap.ui.model.odata.v4.Context} [oContext]
1368
1373
  * The context for which to request side effects; if this parameter is missing or if it is the
1369
1374
  * header context of a list binding, the whole binding is affected
@@ -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.141.2
45
+ * @version 1.143.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
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  ], function (CalendarType, DateFormat, BaseODataUtils, _Batch, _Helper) {
15
15
  "use strict";
16
16
 
17
- // see https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/abnf/
17
+ // see https://docs.oasis-open.org/odata/odata/v4.01/os/abnf/
18
18
  var oDateFormatter,
19
19
  oDateTimeOffsetFormatter,
20
20
  sDateValue = "\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])",
@@ -140,15 +140,15 @@ sap.ui.define([
140
140
  *
141
141
  * @param {any} vValue
142
142
  * The value according to <a href=
143
- * "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html#_Primitive_Value"
144
- * >"OData JSON Format Version 4.0" section "7.1 Primitive Value"</a>
143
+ * "https://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#sec_PrimitiveValue"
144
+ * >"OData JSON Format Version 4.01" section "7.1 Primitive Value"</a>
145
145
  * @param {string} sType
146
146
  * The OData primitive type, for example "Edm.String"
147
147
  * @returns {string}
148
148
  * The literal according to <a href=
149
- * "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html"
150
- * >"OData Version 4.0 Part 2: URL Conventions"</a> section
151
- * "5.1.1.11.1 Primitive Literals"
149
+ * "https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31361028"
150
+ * >"OData Version 4.01. Part 2: URL Conventions"</a> section
151
+ * "5.1.1.14.1 Primitive Literals"
152
152
  * @throws {Error}
153
153
  * If the value is undefined or the type is not supported
154
154
  *
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  ], function (Basics, Log, BindingInfo, BindingParser, SyncPromise, Measurement) {
17
17
  "use strict";
18
18
 
19
- // see https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/abnf/
19
+ // see https://docs.oasis-open.org/odata/odata/v4.01/os/abnf/
20
20
  var sAnnotationHelper = "sap.ui.model.odata.v4.AnnotationHelper",
21
21
  aPerformanceCategories = [sAnnotationHelper],
22
22
  sPerformanceGetExpression = sAnnotationHelper + "/getExpression",
@@ -165,7 +165,7 @@ sap.ui.define([
165
165
  },
166
166
 
167
167
  /**
168
- * Handling of "14.5.3 Expression edm:Apply".
168
+ * Handling of "14.4.4 Expression edm:Apply".
169
169
  *
170
170
  * @param {object} oPathValue
171
171
  * path and value information pointing to the apply (see Expression object)
@@ -178,11 +178,11 @@ sap.ui.define([
178
178
  var oFunction = Basics.descend(oPathValue, "$Function", "string");
179
179
 
180
180
  switch (oFunction.value) {
181
- case "odata.concat": // 14.5.3.1.1 Function odata.concat
181
+ case "odata.concat": // 14.4.4.1 Function odata.concat
182
182
  return Expression.concat(oParameters);
183
- case "odata.fillUriTemplate": // 14.5.3.1.2 Function odata.fillUriTemplate
183
+ case "odata.fillUriTemplate": // 14.4.4.2 Function odata.fillUriTemplate
184
184
  return Expression.fillUriTemplate(oParameters);
185
- case "odata.uriEncode": // 14.5.3.1.3 Function odata.uriEncode
185
+ case "odata.uriEncode": // 14.4.4.4 Function odata.uriEncode
186
186
  return Expression.uriEncode(oParameters);
187
187
  default:
188
188
  return asyncError(oFunction, "unknown function: " + oFunction.value);
@@ -190,7 +190,7 @@ sap.ui.define([
190
190
  },
191
191
 
192
192
  /**
193
- * Handling of "14.5.5 Expression edm:Collection".
193
+ * Handling of "14.4.6 Expression edm:Collection".
194
194
  *
195
195
  * @param {object} oPathValue
196
196
  * path and value information pointing to the array (see Expression object)
@@ -221,7 +221,7 @@ sap.ui.define([
221
221
  },
222
222
 
223
223
  /**
224
- * Handling of "14.5.3.1.1 Function odata.concat".
224
+ * Handling of "odata.concat" from "14.4.4.1 Canonical Functions".
225
225
  *
226
226
  * @param {object} oPathValue
227
227
  * path and value information pointing to the parameter array (see Expression object)
@@ -270,7 +270,7 @@ sap.ui.define([
270
270
  },
271
271
 
272
272
  /**
273
- * Handling of "14.5.6 Expression edm:If".
273
+ * Handling of "14.4.7 Expression edm:If".
274
274
  *
275
275
  * @param {object} oPathValue
276
276
  * path and value information pointing to the parameter array (see Expression object).
@@ -278,8 +278,8 @@ sap.ui.define([
278
278
  * Edm.Boolean. The second and third child elements are the expressions, which are
279
279
  * evaluated conditionally.
280
280
  * @param {boolean} [bInCollection]
281
- * Whether "14.5.6 Expression edm:If" appears as a direct child of
282
- * "14.5.5 Expression edm:Collection" and thus needs no third child element ("else")
281
+ * Whether "14.4.7 Expression edm:If" appears as a direct child of
282
+ * "14.4.6 Expression edm:Collection" and thus needs no third child element ("else")
283
283
  * @returns {sap.ui.base.SyncPromise<object>}
284
284
  * a sync promise which resolves with the result object or is rejected with an error
285
285
  */
@@ -330,17 +330,17 @@ sap.ui.define([
330
330
  },
331
331
 
332
332
  /**
333
- * Handling of "14.4 Constant Expressions", i.e.
333
+ * Handling of "14.3 Constant Expressions", i.e.
334
334
  * <ul>
335
- * <li> "14.4.2 Expression edm:Bool",
336
- * <li> "14.4.3 Expression edm:Date",
337
- * <li> "14.4.4 Expression edm:DateTimeOffset",
338
- * <li> "14.4.5 Expression edm:Decimal",
339
- * <li> "14.4.8 Expression edm:Float",
340
- * <li> "14.4.9 Expression edm:Guid",
341
- * <li> "14.4.10 Expression edm:Int",
342
- * <li> "14.4.11 Expression edm:String",
343
- * <li> "14.4.12 Expression edm:TimeOfDay".
335
+ * <li> "14.3.2 Expression edm:Bool",
336
+ * <li> "14.3.3 Expression edm:Date",
337
+ * <li> "14.3.4 Expression edm:DateTimeOffset",
338
+ * <li> "14.3.5 Expression edm:Decimal",
339
+ * <li> "14.3.8 Expression edm:Float",
340
+ * <li> "14.3.9 Expression edm:Guid",
341
+ * <li> "14.3.10 Expression edm:Int",
342
+ * <li> "14.3.11 Expression edm:String",
343
+ * <li> "14.3.12 Expression edm:TimeOfDay".
344
344
  * </ul>
345
345
  *
346
346
  * @param {object} oPathValue
@@ -378,7 +378,7 @@ sap.ui.define([
378
378
  * path and value information pointing to the expression (see Expression object)
379
379
  * @param {boolean} [bInCollection]
380
380
  * Whether the current expression appears as a direct child of
381
- * "14.5.5 Expression edm:Collection"
381
+ * "14.4.6 Expression edm:Collection"
382
382
  * @returns {sap.ui.base.SyncPromise<object>}
383
383
  * a sync promise which resolves with the result object or is rejected with an error
384
384
  */
@@ -397,7 +397,7 @@ sap.ui.define([
397
397
  : "Float";
398
398
  } else if (typeof oRawValue === "string") {
399
399
  sType = "String";
400
- } else if (Array.isArray(oRawValue)) { // 14.5.5 Expression edm:Collection
400
+ } else if (Array.isArray(oRawValue)) { // 14.4.6 Expression edm:Collection
401
401
  return Expression.collection(oPathValue);
402
402
  } else {
403
403
  Basics.expectType(oPathValue, "object");
@@ -420,29 +420,29 @@ sap.ui.define([
420
420
  }
421
421
 
422
422
  switch (sType) {
423
- case "Apply": // 14.5.3 Expression edm:Apply
423
+ case "Apply": // 14.4.4 Expression edm:Apply
424
424
  return Expression.apply(oPathValue, oSubPathValue);
425
425
 
426
- case "If": // 14.5.6 Expression edm:If
426
+ case "If": // 14.4.7 Expression edm:If
427
427
  return Expression.conditional(oSubPathValue, bInCollection);
428
428
 
429
- case "Name": // 12.4.1 Attribute Name
430
- case "Path": // 14.5.12 Expression edm:Path
431
- case "PropertyPath": // 14.5.13 Expression edm:PropertyPath
429
+ case "Name": // 12.9 Attribute Name
430
+ case "Path": // 14.4.1.7 Expression edm:Path
431
+ case "PropertyPath": // 14.4.1.6 Expression edm:PropertyPath
432
432
  return Expression.path(oSubPathValue);
433
433
 
434
- case "Date": // 14.4.3 Expression edm:Date
435
- case "DateTimeOffset": // 14.4.4 Expression edm:DateTimeOffset
436
- case "Decimal": // 14.4.5 Expression edm:Decimal
437
- case "Guid": // 14.4.9 Expression edm:Guid
438
- case "Int": // 14.4.10 Expression edm:Int
439
- case "String": // 14.4.11 Expression edm:String
440
- case "TimeOfDay": // 14.4.12 Expression edm:TimeOfDay
434
+ case "Date": // 14.3.3 Expression edm:Date
435
+ case "DateTimeOffset": // 14.3.4 Expression edm:DateTimeOffset
436
+ case "Decimal": // 14.3.5 Expression edm:Decimal
437
+ case "Guid": // 14.3.9 Expression edm:Guid
438
+ case "Int": // 14.3.10 Expression edm:Int
439
+ case "String": // 14.3.11 Expression edm:String
440
+ case "TimeOfDay": // 14.3.12 Expression edm:TimeOfDay
441
441
  Basics.expectType(oSubPathValue, "string");
442
442
  // fall through
443
- case "Bool": // 14.4.2 Expression edm:Bool
444
- case "Float": // 14.4.8 Expression edm:Float
445
- case "Int32": // 14.4.10 Expression edm:Int
443
+ case "Bool": // 14.3.2 Expression edm:Bool
444
+ case "Float": // 14.3.8 Expression edm:Float
445
+ case "Int32": // 14.3.10 Expression edm:Int
446
446
  return SyncPromise.resolve(Expression.constant(oSubPathValue, sType));
447
447
 
448
448
  case "And":
@@ -453,20 +453,20 @@ sap.ui.define([
453
453
  case "Lt":
454
454
  case "Ne":
455
455
  case "Or":
456
- // 14.5.1 Comparison and Logical Operators
456
+ // 14.4.2 Comparison and Logical Operators
457
457
  return Expression.operator(oSubPathValue, sType);
458
458
 
459
- case "Not": // 14.5.1 Comparison and Logical Operators
459
+ case "Not": // 14.4.2 Comparison and Logical Operators
460
460
  return Expression.not(oSubPathValue);
461
461
 
462
- case "Null": // 14.5.10 Expression edm:Null
462
+ case "Null": // 14.4.11 Expression edm:Null
463
463
  return SyncPromise.resolve({
464
464
  result : "constant",
465
465
  type : "edm:Null",
466
466
  value : null
467
467
  });
468
468
 
469
- // case "LabeledElement": 14.5.8 Expression edm:LabeledElement
469
+ // case "LabeledElement": 14.4.9 Expression edm:LabeledElement
470
470
  default:
471
471
  return asyncError(oPathValue, "Unsupported OData expression");
472
472
  }
@@ -589,7 +589,7 @@ sap.ui.define([
589
589
  },
590
590
 
591
591
  /**
592
- * Handling of "14.5.3.1.2 Function odata.fillUriTemplate".
592
+ * Handling of "14.4.4.2 Function odata.fillUriTemplate".
593
593
  *
594
594
  * @param {object} oPathValue
595
595
  * path and value information pointing to the parameter array (see Expression object)
@@ -699,7 +699,7 @@ sap.ui.define([
699
699
  },
700
700
 
701
701
  /**
702
- * Handling of "14.5.1 Comparison and Logical Operators": <code>edm:Not</code>.
702
+ * Handling of "14.4.2 Comparison and Logical Operators": <code>edm:Not</code>.
703
703
  *
704
704
  * @param {object} oPathValue
705
705
  * path and value information pointing to the parameter (see Expression object)
@@ -722,7 +722,7 @@ sap.ui.define([
722
722
  },
723
723
 
724
724
  /**
725
- * Handling of "14.5.1 Comparison and Logical Operators" except <code>edm:Not</code>.
725
+ * Handling of "14.4.2 Comparison and Logical Operators" except <code>edm:Not</code>.
726
726
  *
727
727
  * @param {object} oPathValue
728
728
  * path and value information pointing to the parameter array (see Expression object)
@@ -811,7 +811,7 @@ sap.ui.define([
811
811
  },
812
812
 
813
813
  /**
814
- * Handling of "14.5.12 Expression edm:Path" and "14.5.13 Expression edm:PropertyPath".
814
+ * Handling of "14.4.1.7 Expression edm:Path" and "14.4.1.6 Expression edm:PropertyPath".
815
815
  * If <code>oPathValue.path</code> references a property which has an
816
816
  * <code>Org.OData.Measures.V1.ISOCurrency</code> annotation, a composite result object for
817
817
  * a <code>sap.ui.model.odata.type.Currency</code> type with the currency, the currency code
@@ -892,7 +892,7 @@ sap.ui.define([
892
892
  },
893
893
 
894
894
  /**
895
- * Handling of "14.5.3.1.3 Function odata.uriEncode".
895
+ * Handling of "14.4.4.4 Function odata.uriEncode".
896
896
  *
897
897
  * @param {object} oPathValue
898
898
  * path and value information pointing to the parameter array (see Expression object)