@openui5/sap.ui.core 1.141.2 → 1.142.1

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 (360) 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/Interface.js +1 -1
  63. package/src/sap/ui/base/ManagedObject.js +1 -1
  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/core/.library +6 -6
  69. package/src/sap/ui/core/AppCacheBuster.js +21 -19
  70. package/src/sap/ui/core/BusyIndicator.js +1 -1
  71. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  72. package/src/sap/ui/core/Component.js +46 -35
  73. package/src/sap/ui/core/ComponentContainer.js +1 -1
  74. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  75. package/src/sap/ui/core/ComponentSupport.js +1 -1
  76. package/src/sap/ui/core/Configuration.js +1 -1
  77. package/src/sap/ui/core/Control.js +1 -1
  78. package/src/sap/ui/core/Core.js +2 -2
  79. package/src/sap/ui/core/CustomData.js +1 -1
  80. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  81. package/src/sap/ui/core/Element.js +3 -5
  82. package/src/sap/ui/core/ElementMetadata.js +1 -1
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/Fragment.js +1 -1
  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/Lib.js +1 -1
  98. package/src/sap/ui/core/ListItem.js +1 -1
  99. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  100. package/src/sap/ui/core/Locale.js +1 -1
  101. package/src/sap/ui/core/LocaleData.js +1 -1
  102. package/src/sap/ui/core/Manifest.js +21 -20
  103. package/src/sap/ui/core/Message.js +1 -1
  104. package/src/sap/ui/core/Popup.js +13 -6
  105. package/src/sap/ui/core/RenderManager.js +13 -2
  106. package/src/sap/ui/core/Renderer.js +1 -1
  107. package/src/sap/ui/core/ResizeHandler.js +1 -1
  108. package/src/sap/ui/core/ScrollBar.js +1 -1
  109. package/src/sap/ui/core/SeparatorItem.js +1 -1
  110. package/src/sap/ui/core/ShortcutHintsMixin.js +13 -1
  111. package/src/sap/ui/core/Title.js +1 -1
  112. package/src/sap/ui/core/TooltipBase.js +1 -1
  113. package/src/sap/ui/core/UIArea.js +1 -1
  114. package/src/sap/ui/core/UIComponent.js +1 -1
  115. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  116. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  117. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  118. package/src/sap/ui/core/XMLComposite.js +1 -1
  119. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  120. package/src/sap/ui/core/_UrlResolver.js +31 -29
  121. package/src/sap/ui/core/date/UI5Date.js +1 -1
  122. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  123. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  124. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  126. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  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/interaction/KeyboardInteractionDisplay.js +21 -2
  133. package/src/sap/ui/core/library.js +3 -3
  134. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  135. package/src/sap/ui/core/message/Message.js +1 -1
  136. package/src/sap/ui/core/message/MessageManager.js +1 -1
  137. package/src/sap/ui/core/message/MessageParser.js +1 -1
  138. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  139. package/src/sap/ui/core/messagebundle.properties +2 -0
  140. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  141. package/src/sap/ui/core/messagebundle_bg.properties +1 -0
  142. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  143. package/src/sap/ui/core/messagebundle_cnr.properties +1 -0
  144. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  145. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  146. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  147. package/src/sap/ui/core/messagebundle_de.properties +1 -0
  148. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  151. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  152. package/src/sap/ui/core/messagebundle_es.properties +1 -0
  153. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  154. package/src/sap/ui/core/messagebundle_et.properties +3 -2
  155. package/src/sap/ui/core/messagebundle_fi.properties +2 -1
  156. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  157. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  160. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_id.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  163. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  164. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  165. package/src/sap/ui/core/messagebundle_kk.properties +9 -8
  166. package/src/sap/ui/core/messagebundle_ko.properties +1 -0
  167. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  168. package/src/sap/ui/core/messagebundle_lv.properties +1 -0
  169. package/src/sap/ui/core/messagebundle_mk.properties +1 -0
  170. package/src/sap/ui/core/messagebundle_ms.properties +1 -0
  171. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_no.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  175. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  176. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  177. package/src/sap/ui/core/messagebundle_ru.properties +1 -0
  178. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  179. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  180. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  181. package/src/sap/ui/core/messagebundle_sr.properties +1 -0
  182. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  183. package/src/sap/ui/core/messagebundle_th.properties +2 -1
  184. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  185. package/src/sap/ui/core/messagebundle_uk.properties +2 -1
  186. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  187. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  188. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  189. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  190. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  191. package/src/sap/ui/core/mvc/JSView.js +1 -1
  192. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  193. package/src/sap/ui/core/mvc/View.js +1 -1
  194. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  195. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  196. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  197. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  198. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  199. package/src/sap/ui/core/routing/Router.js +31 -33
  200. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  201. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  202. package/src/sap/ui/core/service/Service.js +1 -1
  203. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  204. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  205. package/src/sap/ui/core/support/Plugin.js +1 -1
  206. package/src/sap/ui/core/support/Support.js +1 -1
  207. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  208. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  209. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  210. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  211. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  212. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  213. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  214. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  215. package/src/sap/ui/core/themes/base/BlindLayer.less +4 -9
  216. package/src/sap/ui/core/themes/base/BusyIndicator.less +322 -1
  217. package/src/sap/ui/core/themes/base/CommandShortcutHints.less +9 -9
  218. package/src/sap/ui/core/themes/base/Icon.less +36 -35
  219. package/src/sap/ui/core/themes/base/library.source.less +0 -3
  220. package/src/sap/ui/core/themes/base/parameterClasses.less +32 -20
  221. package/src/sap/ui/core/themes/base/shared.less +5 -0
  222. package/src/sap/ui/core/theming/Parameters.js +6 -12
  223. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  224. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  225. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  226. package/src/sap/ui/core/tmpl/Template.js +1 -1
  227. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  228. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  229. package/src/sap/ui/core/util/Export.js +1 -1
  230. package/src/sap/ui/core/util/ExportCell.js +1 -1
  231. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  232. package/src/sap/ui/core/util/ExportRow.js +1 -1
  233. package/src/sap/ui/core/util/ExportType.js +1 -1
  234. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  235. package/src/sap/ui/core/util/File.js +1 -1
  236. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  237. package/src/sap/ui/core/util/MockServer.js +1 -1
  238. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  239. package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
  240. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +2 -2
  241. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +1 -1
  242. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +2 -2
  243. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  244. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  245. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  246. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  247. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  248. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  249. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  250. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  251. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  252. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  253. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  254. package/src/sap/ui/core/ws/WebSocket.js +7 -11
  255. package/src/sap/ui/debug/ControlTree.js +1 -1
  256. package/src/sap/ui/debug/DebugEnv.js +1 -1
  257. package/src/sap/ui/debug/PropertyList.js +1 -1
  258. package/src/sap/ui/events/FocusEventFix.js +36 -0
  259. package/src/sap/ui/model/ClientModel.js +1 -1
  260. package/src/sap/ui/model/CompositeDataState.js +1 -1
  261. package/src/sap/ui/model/CompositeType.js +1 -1
  262. package/src/sap/ui/model/DataState.js +1 -1
  263. package/src/sap/ui/model/MetaModel.js +1 -1
  264. package/src/sap/ui/model/Model.js +52 -3
  265. package/src/sap/ui/model/SelectionModel.js +1 -1
  266. package/src/sap/ui/model/SimpleType.js +1 -1
  267. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  268. package/src/sap/ui/model/Type.js +1 -1
  269. package/src/sap/ui/model/base/ManagedObjectModel.js +7 -4
  270. package/src/sap/ui/model/json/JSONModel.js +8 -3
  271. package/src/sap/ui/model/message/MessageModel.js +1 -1
  272. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  273. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  274. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  275. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  276. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  277. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  278. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  279. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  280. package/src/sap/ui/model/odata/type/Date.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  283. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  284. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  285. package/src/sap/ui/model/odata/type/Decimal.js +43 -15
  286. package/src/sap/ui/model/odata/type/Double.js +1 -1
  287. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  290. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  291. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  292. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  293. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  294. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  295. package/src/sap/ui/model/odata/type/Single.js +1 -1
  296. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  297. package/src/sap/ui/model/odata/type/String.js +1 -1
  298. package/src/sap/ui/model/odata/type/Time.js +1 -1
  299. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  300. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  301. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  302. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  303. package/src/sap/ui/model/odata/v2/ODataModel.js +19 -6
  304. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +20 -7
  305. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +50 -50
  306. package/src/sap/ui/model/odata/v4/Context.js +43 -33
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -3
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -6
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +47 -24
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +31 -34
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +42 -38
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +5 -5
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  314. package/src/sap/ui/model/odata/v4/ODataUtils.js +6 -6
  315. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +46 -46
  316. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +10 -5
  317. package/src/sap/ui/model/odata/v4/lib/_Cache.js +21 -24
  318. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +6 -7
  319. package/src/sap/ui/model/odata/v4/lib/_Helper.js +7 -7
  320. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +2 -1
  321. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +5 -5
  322. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +105 -38
  323. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +10 -3
  324. package/src/sap/ui/model/odata/v4/ts.js +2 -2
  325. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  326. package/src/sap/ui/model/type/Boolean.js +1 -1
  327. package/src/sap/ui/model/type/Currency.js +1 -1
  328. package/src/sap/ui/model/type/Date.js +1 -1
  329. package/src/sap/ui/model/type/DateInterval.js +1 -1
  330. package/src/sap/ui/model/type/DateTime.js +1 -1
  331. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  332. package/src/sap/ui/model/type/FileSize.js +1 -1
  333. package/src/sap/ui/model/type/Float.js +1 -1
  334. package/src/sap/ui/model/type/Integer.js +1 -1
  335. package/src/sap/ui/model/type/String.js +1 -1
  336. package/src/sap/ui/model/type/Time.js +1 -1
  337. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  338. package/src/sap/ui/model/type/Unit.js +1 -1
  339. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  340. package/src/sap/ui/performance/Measurement.js +18 -24
  341. package/src/sap/ui/performance/trace/FESR.js +3 -2
  342. package/src/sap/ui/performance/trace/Interaction.js +35 -2
  343. package/src/sap/ui/performance/trace/_InteractionImpl.js +254 -166
  344. package/src/sap/ui/qunit/qunit-coverage.js +1 -1
  345. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  346. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  347. package/src/sap/ui/test/_BrowserLogCollector.js +1 -4
  348. package/src/sap/ui/test/generic/TestBase.js +1 -1
  349. package/src/sap/ui/test/launchers/componentLauncher.js +3 -2
  350. package/src/sap/ui/test/launchers/iFrameLauncher.js +3 -1
  351. package/src/sap/ui/test/starter/_setupAndStart.js +3 -1
  352. package/src/sap/ui/test/starter/_utils.js +5 -59
  353. package/src/sap/ui/test/starter/config.js +555 -0
  354. package/src/sap/ui/thirdparty/require.js +255 -162
  355. package/src/sap/ui/util/Storage.js +1 -1
  356. package/src/sap/ui/util/_URL.js +158 -0
  357. package/src/ui5loader.js +2 -2
  358. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +0 -293
  359. package/src/sap/ui/core/themes/base/Shadow.less +0 -3
  360. package/src/sap/ui/core/themes/base/TechnicalInfo.less +0 -157
@@ -76,6 +76,8 @@ sap.ui.define([
76
76
  * {@link sap.ui.model.odata.v4.lib._Helper.buildQuery}; used only to request the CSRF token
77
77
  * @param {object} oModelInterface
78
78
  * An interface allowing to call back to the owning model (see {@link .create})
79
+ * @param {string} sODataVersion
80
+ * The version of the OData service. Supported values are "2.0", "4.0", and "4.01".
79
81
  * @param {boolean} [bWithCredentials]
80
82
  * Whether the XHR should be called with <code>withCredentials</code>
81
83
  *
@@ -83,12 +85,14 @@ sap.ui.define([
83
85
  * @constructor
84
86
  * @private
85
87
  */
86
- function _Requestor(sServiceUrl, mHeaders, mQueryParams, oModelInterface, bWithCredentials) {
88
+ function _Requestor(sServiceUrl, mHeaders, mQueryParams, oModelInterface, sODataVersion,
89
+ bWithCredentials) {
87
90
  this.mBatchQueue = {};
88
91
  this.bBatchSent = false;
89
92
  this.mHeaders = mHeaders || {};
90
93
  this.aLockedGroupLocks = [];
91
94
  this.oModelInterface = oModelInterface;
95
+ this.sODataVersion = sODataVersion;
92
96
  this.oOptimisticBatch = null; // optimistic batch processing off
93
97
  this.sQueryParams = _Helper.buildQuery(mQueryParams); // Used for $batch and CSRF token only
94
98
  this.mRunningChangeRequests = {}; // map from group ID to a SyncPromise[]
@@ -98,36 +102,52 @@ sap.ui.define([
98
102
  this.vStatistics = mQueryParams && mQueryParams["sap-statistics"];
99
103
  this.bWithCredentials = bWithCredentials;
100
104
  this.processSecurityTokenHandlers(); // sets this.oSecurityTokenPromise
105
+
106
+ if (sODataVersion === "4.01") {
107
+ this.mPredefinedRequestHeaders = Object.freeze({
108
+ ...this.mPredefinedRequestHeaders,
109
+ "OData-MaxVersion" : "4.01",
110
+ "OData-Version" : "4.01"
111
+ });
112
+ }
101
113
  }
102
114
 
103
115
  /**
104
116
  * Final (cannot be overridden) request headers for OData V4.
117
+ *
118
+ * @private
105
119
  */
106
- _Requestor.prototype.mFinalHeaders = {
120
+ _Requestor.prototype.mFinalHeaders = Object.freeze({
107
121
  "Content-Type" : "application/json;charset=UTF-8;IEEE754Compatible=true"
108
- };
122
+ });
109
123
 
110
124
  /**
111
125
  * Predefined request headers in $batch parts for OData V4.
126
+ *
127
+ * @private
112
128
  */
113
- _Requestor.prototype.mPredefinedPartHeaders = {
129
+ _Requestor.prototype.mPredefinedPartHeaders = Object.freeze({
114
130
  Accept : "application/json;odata.metadata=minimal;IEEE754Compatible=true"
115
- };
131
+ });
116
132
 
117
133
  /**
118
134
  * Predefined request headers for all requests for OData V4.
135
+ *
136
+ * @private
119
137
  */
120
- _Requestor.prototype.mPredefinedRequestHeaders = {
138
+ _Requestor.prototype.mPredefinedRequestHeaders = Object.freeze({
121
139
  Accept : "application/json;odata.metadata=minimal;IEEE754Compatible=true",
122
- "OData-MaxVersion" : "4.0",
123
- "OData-Version" : "4.0",
140
+ "OData-MaxVersion" : "4.0", // Note: may be "overridden" in c'tor
141
+ "OData-Version" : "4.0", // dito
124
142
  "X-CSRF-Token" : "Fetch"
125
- };
143
+ });
126
144
 
127
145
  /**
128
146
  * OData V4 request headers reserved for internal use.
147
+ *
148
+ * @private
129
149
  */
130
- _Requestor.prototype.mReservedHeaders = {
150
+ _Requestor.prototype.mReservedHeaders = Object.freeze({
131
151
  accept : true,
132
152
  "accept-charset" : true,
133
153
  "content-encoding" : true,
@@ -144,7 +164,7 @@ sap.ui.define([
144
164
  "odata-version" : true,
145
165
  prefer : true,
146
166
  "sap-contextid" : true
147
- };
167
+ });
148
168
 
149
169
  /**
150
170
  * Adds a change set to the batch queue for the given group. All modifying requests created
@@ -757,7 +777,7 @@ sap.ui.define([
757
777
  };
758
778
 
759
779
  /**
760
- * Checks whether the "OData-Version" header is set to "4.0" otherwise an error is thrown.
780
+ * Checks whether the "OData-Version" header is as expected, otherwise an error is thrown.
761
781
  *
762
782
  * @param {function} fnGetHeader
763
783
  * A callback function to get a header attribute for a given header name with case-insensitive
@@ -767,7 +787,8 @@ sap.ui.define([
767
787
  * @param {boolean} [bVersionOptional]
768
788
  * Indicates whether the OData service version is optional, which is the case for responses
769
789
  * contained in a response for a $batch request
770
- * @throws {Error} If the "OData-Version" header is not "4.0"
790
+ * @returns {string} The response's "OData-Version" header value
791
+ * @throws {Error} If the "OData-Version" header is not as expected
771
792
  *
772
793
  * @private
773
794
  */
@@ -781,8 +802,9 @@ sap.ui.define([
781
802
  + " 'DataServiceVersion' header with value '" + vDataServiceVersion
782
803
  + "' in response for " + this.sServiceUrl + sResourcePath);
783
804
  }
784
- if (sODataVersion === "4.0" || !sODataVersion && bVersionOptional) {
785
- return;
805
+ if (!sODataVersion && bVersionOptional || sODataVersion === this.sODataVersion
806
+ || sODataVersion === "4.0") {
807
+ return sODataVersion;
786
808
  }
787
809
  throw new Error("Expected 'OData-Version' header with value '4.0' but received value '"
788
810
  + sODataVersion + "' in response for " + this.sServiceUrl + sResourcePath);
@@ -932,12 +954,12 @@ sap.ui.define([
932
954
  * Formats a given internal value into a literal suitable for usage in URLs.
933
955
  *
934
956
  * @param {any} vValue
935
- * The value according to "OData JSON Format Version 4.0" section "7.1 Primitive Value"
957
+ * The value according to "OData JSON Format Version 4.01" section "7.1 Primitive Value"
936
958
  * @param {object} oProperty
937
959
  * The OData property
938
960
  * @returns {string}
939
- * The literal according to "OData Version 4.0 Part 2: URL Conventions" section
940
- * "5.1.1.6.1 Primitive Literals"
961
+ * The literal according to "OData Version 4.01 Part 2: URL Conventions" section
962
+ * "5.1.1.14.1 Primitive Literals"
941
963
  * @throws {Error}
942
964
  * If the value is undefined or the type is not supported
943
965
  *
@@ -1413,9 +1435,13 @@ sap.ui.define([
1413
1435
  that.oModelInterface.onHttpResponse(vResponse.headers);
1414
1436
  if (vResponse.responseText) {
1415
1437
  try {
1416
- that.doCheckVersionHeader(getResponseHeader.bind(vResponse),
1417
- vRequest.url, true);
1418
- oResponse = that.doConvertResponse(JSON.parse(vResponse.responseText),
1438
+ const sODataVersion = that.doCheckVersionHeader(
1439
+ getResponseHeader.bind(vResponse), vRequest.url, true);
1440
+ const fnReviver = sODataVersion === "4.01"
1441
+ ? _Requestor.reviver
1442
+ : undefined;
1443
+ oResponse = that.doConvertResponse(
1444
+ JSON.parse(vResponse.responseText, fnReviver),
1419
1445
  vRequest.$metaPath);
1420
1446
  } catch (oErr) {
1421
1447
  vRequest.$reject(oErr);
@@ -1427,7 +1453,7 @@ sap.ui.define([
1427
1453
  oResponse = vRequest.method === "GET" ? null : {};
1428
1454
  }
1429
1455
  that.reportHeaderMessages(vRequest.$resourcePath,
1430
- getResponseHeader.call(vResponse, "sap-messages"), oResponse);
1456
+ getResponseHeader.call(vResponse, "sap-messages"), oResponse, vRequest.url);
1431
1457
  sETag = getResponseHeader.call(vResponse, "ETag");
1432
1458
  if (sETag) {
1433
1459
  oResponse["@odata.etag"] = sETag;
@@ -1781,7 +1807,8 @@ sap.ui.define([
1781
1807
 
1782
1808
  /**
1783
1809
  * Reports OData messages from the "sap-messages" response header (or forwards them via the
1784
- * response object).
1810
+ * response object). When reporting, the longtext URL is already resolved w.r.t. the request URL
1811
+ * and the original message is preserved early on.
1785
1812
  *
1786
1813
  * @param {string} sResourcePath
1787
1814
  * The resource path of the request whose response contained the messages, see also
@@ -1791,15 +1818,24 @@ sap.ui.define([
1791
1818
  * @param {object} oResponse
1792
1819
  * The response object, needed in case <code>sResourcePath === "R#V#C"</code> as described
1793
1820
  * at {@link #request}
1821
+ * @param {string} [sRequestUrl]
1822
+ * A resource path relative to the service URL for which this requestor has been created
1794
1823
  *
1795
1824
  * @private
1796
1825
  */
1797
- _Requestor.prototype.reportHeaderMessages = function (sResourcePath, sMessages, oResponse) {
1826
+ _Requestor.prototype.reportHeaderMessages = function (sResourcePath, sMessages, oResponse,
1827
+ sRequestUrl) {
1798
1828
  if (sMessages) {
1799
1829
  const aMessages = JSON.parse(sMessages);
1800
1830
  if (sResourcePath === "R#V#C") {
1801
1831
  _Helper.setPrivateAnnotation(oResponse, "headerMessages", aMessages);
1802
1832
  } else {
1833
+ const sAbsoluteRequestUrl = this.sServiceUrl + sRequestUrl;
1834
+ aMessages.forEach((oMessage) => {
1835
+ oMessage["@$ui5.originalMessage"] = _Helper.clone(oMessage);
1836
+ oMessage.longtextUrl
1837
+ &&= _Helper.makeAbsolute(oMessage.longtextUrl, sAbsoluteRequestUrl);
1838
+ });
1803
1839
  this.oModelInterface.reportTransitionMessages(aMessages, sResourcePath);
1804
1840
  }
1805
1841
  }
@@ -1823,8 +1859,8 @@ sap.ui.define([
1823
1859
  * other group ID values, the request is added to the given group and you can use
1824
1860
  * {@link #submitBatch} to send all requests in that group. This group lock will be unlocked
1825
1861
  * immediately, even if the request itself is queued. The request is rejected if the lock is
1826
- * already canceled. For a group lock w/o a serial number, a non-GET is put into a change set
1827
- * of its own (unless <code>bAtFront</code> is used).
1862
+ * already canceled. For a group lock with a negative serial number, a non-GET is put into a
1863
+ * change set of its own (unless <code>bAtFront</code> is used).
1828
1864
  * @param {object} [mHeaders]
1829
1865
  * Map of request-specific headers, overriding both the mandatory OData V4 headers and the
1830
1866
  * default headers given to the factory. This map of headers must not contain
@@ -1881,6 +1917,7 @@ sap.ui.define([
1881
1917
  * <li>the {@link #checkConflictingStrictRequest rules for strict handling} w.r.t. change
1882
1918
  * sets are violated
1883
1919
  * </ul>
1920
+ *
1884
1921
  * @public
1885
1922
  */
1886
1923
  _Requestor.prototype.request = function (sMethod, sResourcePath, oGroupLock, mHeaders, oPayload,
@@ -1946,18 +1983,19 @@ sap.ui.define([
1946
1983
  } else if (bAtFront) { // add at front of first change set
1947
1984
  aRequests[0].unshift(oRequest);
1948
1985
  } else { // push into change set which was current when the request was initiated
1949
- if (!iRequestSerialNumber && aRequests[aRequests.iChangeSet].length) {
1950
- that.addChangeSet(sGroupId);
1951
- }
1952
1986
  iChangeSetNo = aRequests.iChangeSet;
1953
- while (aRequests[iChangeSetNo].iSerialNumber > iRequestSerialNumber) {
1987
+ while (aRequests[iChangeSetNo].iSerialNumber > Math.abs(iRequestSerialNumber)) {
1954
1988
  iChangeSetNo -= 1;
1955
1989
  }
1990
+ if (iRequestSerialNumber < 0) {
1991
+ iChangeSetNo += 1; // insert own change set *afterwards*
1992
+ const aChangeSet = [];
1993
+ aChangeSet.iSerialNumber = -iRequestSerialNumber;
1994
+ aRequests.iChangeSet += 1;
1995
+ aRequests.splice(iChangeSetNo, 0, aChangeSet);
1996
+ }
1956
1997
  that.checkConflictingStrictRequest(oRequest, aRequests, iChangeSetNo);
1957
1998
  aRequests[iChangeSetNo].push(oRequest);
1958
- if (!iRequestSerialNumber) {
1959
- that.addChangeSet(sGroupId);
1960
- }
1961
1999
  }
1962
2000
  if (sGroupId === "$single") {
1963
2001
  that.submitBatch("$single").catch(that.oModelInterface.getReporter());
@@ -1989,7 +2027,8 @@ sap.ui.define([
1989
2027
  // Note: "text/plain" used for $count
1990
2028
  typeof oResponse.body === "string" ? JSON.parse(oResponse.body) : oResponse.body,
1991
2029
  sMetaPath);
1992
- that.reportHeaderMessages(sOriginalResourcePath, oResponse.messages, oResult);
2030
+ that.reportHeaderMessages(sOriginalResourcePath, oResponse.messages, oResult,
2031
+ sResourcePath);
1993
2032
  return oResult;
1994
2033
  });
1995
2034
  };
@@ -2012,7 +2051,7 @@ sap.ui.define([
2012
2051
  this.oModelInterface.isIgnoreETag()
2013
2052
  );
2014
2053
 
2015
- return this.processOptimisticBatch(aRequests, sGroupId)
2054
+ return !bHasChanges && this.processOptimisticBatch(aRequests, sGroupId)
2016
2055
  || this.sendRequest("POST", "$batch" + this.sQueryParams,
2017
2056
  Object.assign(oBatchRequest.headers, mBatchHeaders,
2018
2057
  bHasChanges ? undefined : {"sap-cancel-on-close" : "true"},
@@ -2354,6 +2393,8 @@ sap.ui.define([
2354
2393
  * @param {string} sOptimisticGroupId The group ID of the optimistic batch
2355
2394
  * @returns {boolean}
2356
2395
  * Whether the actual batch requests and group ID matches the optimistic one
2396
+ *
2397
+ * @private
2357
2398
  */
2358
2399
  _Requestor.matchesOptimisticBatch = function (aActualRequests, sActualGroupId,
2359
2400
  aOptimisticRequests, sOptimisticGroupId) {
@@ -2441,17 +2482,19 @@ sap.ui.define([
2441
2482
  * A map of query parameters as described in
2442
2483
  * {@link sap.ui.model.odata.v4.lib._Helper.buildQuery}; used only to request the CSRF
2443
2484
  * token
2444
- * @param {string} [sODataVersion="4.0"]
2445
- * The version of the OData service. Supported values are "2.0" and "4.0".
2485
+ * @param {string} sODataVersion
2486
+ * The version of the OData service. Supported values are "2.0", "4.0", and "4.01".
2446
2487
  * @param {boolean} [bWithCredentials]
2447
2488
  * Whether the XHR should be called with <code>withCredentials</code>
2448
2489
  * @returns {object}
2449
2490
  * A new <code>_Requestor</code> instance
2491
+ *
2492
+ * @public
2450
2493
  */
2451
2494
  _Requestor.create = function (sServiceUrl, oModelInterface, mHeaders, mQueryParams,
2452
2495
  sODataVersion, bWithCredentials) {
2453
2496
  var oRequestor = new _Requestor(sServiceUrl, mHeaders, mQueryParams, oModelInterface,
2454
- bWithCredentials);
2497
+ sODataVersion, bWithCredentials);
2455
2498
 
2456
2499
  if (sODataVersion === "2.0") {
2457
2500
  asV2Requestor(oRequestor);
@@ -2460,5 +2503,29 @@ sap.ui.define([
2460
2503
  return oRequestor;
2461
2504
  };
2462
2505
 
2506
+ /**
2507
+ * A "reviver" function to be used by JSON.parse in order to transform 4.01 control information
2508
+ * back to 4.0 format by adding missing "odata." infixes and missing hashes for "@odata.type".
2509
+ *
2510
+ * @param {string} sProperty - The current property's name
2511
+ * @param {any} vPropertyValue - The current property's value
2512
+ * @returns {any|undefined}
2513
+ * The current property's value or <code>undefined</code> in order to ignore delete it
2514
+ *
2515
+ * @private
2516
+ */
2517
+ _Requestor.reviver = function (sProperty, vPropertyValue) {
2518
+ if (sProperty.includes("@") && !sProperty.includes(".")) {
2519
+ // control information w/o "odata."
2520
+ if (sProperty.endsWith("@type") && !vPropertyValue.includes("#")) {
2521
+ // "built-in primitive type value"
2522
+ vPropertyValue = "#" + vPropertyValue;
2523
+ }
2524
+ this[sProperty.replace("@", "@odata.")] = vPropertyValue;
2525
+ return undefined; // "delete this[sProperty]"
2526
+ }
2527
+ return vPropertyValue;
2528
+ };
2529
+
2463
2530
  return _Requestor;
2464
2531
  }, /* bExport= */false);
@@ -14,14 +14,19 @@ sap.ui.define([
14
14
  /**
15
15
  * Creates a converter for V4 metadata.
16
16
  *
17
+ * @param {string} sODataVersion
18
+ * The version of the OData service. Supported values are "2.0" (in case an annotation file is
19
+ * converted), "4.0", and "4.01".
20
+ *
17
21
  * @alias sap.ui.model.odata.v4.lib._V4MetadataConverter
18
22
  * @constructor
19
23
  * @extends sap.ui.model.odata.v4.lib._MetadataConverter
20
24
  */
21
- function _V4MetadataConverter() {
25
+ function _V4MetadataConverter(sODataVersion) {
22
26
  this.enumType = null; // the current EnumType
23
27
  this.enumTypeMemberCounter = 0; // the current EnumType member value counter
24
28
  this.navigationProperty = null; // the current NavigationProperty
29
+ this.odataVersion = sODataVersion;
25
30
 
26
31
  _MetadataConverter.call(this);
27
32
  }
@@ -33,7 +38,7 @@ sap.ui.define([
33
38
  * @see sap.ui.model.odata.v4.lib._MetadataConverter#finalize
34
39
  */
35
40
  _V4MetadataConverter.prototype.finalize = function () {
36
- if (this.result.$Version !== "4.0") {
41
+ if (this.result.$Version !== this.odataVersion && this.result.$Version !== "4.0") {
37
42
  throw new Error(this.url + ": Unsupported OData version " + this.result.$Version);
38
43
  }
39
44
  };
@@ -250,7 +255,9 @@ sap.ui.define([
250
255
  },
251
256
  Precision : this.setNumber,
252
257
  Scale : function (sValue) {
253
- return sValue === "variable" ? sValue : that.setNumber(sValue);
258
+ return sValue === "floating" || sValue === "variable"
259
+ ? sValue
260
+ : that.setNumber(sValue);
254
261
  },
255
262
  SRID : this.setValue,
256
263
  Unicode : this.setIfFalse
@@ -14,7 +14,7 @@
14
14
  */
15
15
 
16
16
  /**
17
- * An object representing a "14.5.11 Expression edm:NavigationPropertyPath". Its shape corresponds
17
+ * An object representing a "14.4.1.5 Expression edm:NavigationPropertyPath". Its shape corresponds
18
18
  * exactly to the shape of such an expression in the
19
19
  * {@link topic:87aac894a40640f89920d7b2a414499b OData V4 Metadata JSON Format} as returned by
20
20
  * {@link sap.ui.model.odata.v4.ODataMetaModel#requestObject}.
@@ -29,7 +29,7 @@
29
29
  */
30
30
 
31
31
  /**
32
- * An object representing a "14.5.13 Expression edm:PropertyPath". Its shape corresponds exactly to
32
+ * An object representing a "14.4.1.6 Expression edm:PropertyPath". Its shape corresponds exactly to
33
33
  * the shape of such an expression in the
34
34
  * {@link topic:87aac894a40640f89920d7b2a414499b OData V4 Metadata JSON Format} as returned by
35
35
  * {@link sap.ui.model.odata.v4.ODataMetaModel#requestObject}.
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  *
228
228
  * @extends sap.ui.model.Model
229
229
  * @public
230
- * @version 1.141.2
230
+ * @version 1.142.1
231
231
  */
232
232
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
233
233
 
@@ -19,7 +19,7 @@ sap.ui.define(["sap/ui/core/Lib", 'sap/ui/model/SimpleType', 'sap/ui/model/Forma
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.142.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.model.CompositeType
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.141.2
37
+ * @version 1.142.1
38
38
  *
39
39
  * @public
40
40
  * @param {object} [oFormatOptions]
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.model.SimpleType
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.141.2
30
+ * @version 1.142.1
31
31
  *
32
32
  * @public
33
33
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.CompositeType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.141.2
28
+ * @version 1.142.1
29
29
  *
30
30
  * @alias sap.ui.model.type.DateInterval
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.142.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.142.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.141.2
28
+ * @version 1.142.1
29
29
  *
30
30
  * @public
31
31
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.141.2
29
+ * @version 1.142.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.141.2
29
+ * @version 1.142.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.model.SimpleType
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.141.2
28
+ * @version 1.142.1
29
29
  *
30
30
  * @alias sap.ui.model.type.String
31
31
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.142.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.141.2
22
+ * @version 1.142.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  *
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.141.2
52
+ * @version 1.142.1
53
53
  *
54
54
  * @public
55
55
  * @param {object} [oFormatOptions]
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.141.2
50
+ * @version 1.142.1
51
51
  *
52
52
  * @param {XMLDocument|string} oData
53
53
  * Either the URL where to load the XML from or an XML document
@@ -7,9 +7,15 @@
7
7
  * IMPORTANT: This is a private module, its API must not be used and is subject to change.
8
8
  * Code other than the OpenUI5 libraries must not introduce dependencies to this module.
9
9
  */
10
- sap.ui.define(['sap/base/Log', 'sap/base/util/now'
11
- ], function(Log, now) {
12
-
10
+ sap.ui.define([
11
+ 'sap/base/Log',
12
+ 'sap/base/util/now',
13
+ "sap/ui/performance/XHRInterceptor"
14
+ ], function(
15
+ Log,
16
+ now,
17
+ XHRInterceptor
18
+ ) {
13
19
  "use strict";
14
20
 
15
21
  /**
@@ -85,7 +91,6 @@ sap.ui.define(['sap/base/Log', 'sap/base/util/now'
85
91
  }
86
92
 
87
93
  var bActive = false,
88
- fnXHR = XMLHttpRequest,
89
94
  aRestrictedCategories = null,
90
95
  aAverageMethods = [],
91
96
  aOriginalMethods = [],
@@ -132,7 +137,7 @@ sap.ui.define(['sap/base/Log', 'sap/base/util/now'
132
137
  return;
133
138
  }
134
139
  bActive = bOn;
135
- if (bActive) {
140
+ if (bActive && !XHRInterceptor.isRegistered("MEASUREMENT", "open")) {
136
141
 
137
142
  //activate method implementations once
138
143
  for (var sName in mMethods) {
@@ -143,25 +148,14 @@ sap.ui.define(['sap/base/Log', 'sap/base/util/now'
143
148
  fnStart = this.start;
144
149
 
145
150
  // wrap and instrument XHR
146
- /* eslint-disable-next-line no-global-assign */
147
- XMLHttpRequest = function() {
148
- var oXHR = new fnXHR(),
149
- fnOpen = oXHR.open,
150
- sMeasureId;
151
-
152
- oXHR.open = function() {
153
- sMeasureId = new URL(arguments[1], document.baseURI).href;
154
- fnStart(sMeasureId, "Request for " + sMeasureId, "xmlhttprequest");
155
- oXHR.addEventListener("loadend", fnEnd.bind(null, sMeasureId));
156
-
157
- fnOpen.apply(this, arguments);
158
- };
159
-
160
- return oXHR;
161
- };
162
- } else {
163
- /* eslint-disable-next-line no-global-assign */
164
- XMLHttpRequest = fnXHR;
151
+ XHRInterceptor.register("MEASUREMENT", "open", function (sMethod, sUrl, bAsync) {
152
+ const sMeasureId = new URL(sUrl, document.baseURI).href;
153
+ fnStart(sMeasureId, "Request for " + sMeasureId, "xmlhttprequest");
154
+ this.addEventListener("loadend", fnEnd.bind(null, sMeasureId));
155
+
156
+ });
157
+ } else if (XHRInterceptor.isRegistered("MEASUREMENT", "open")) {
158
+ XHRInterceptor.unregister("MEASUREMENT", "open");
165
159
  }
166
160
 
167
161
  return bActive;
@@ -142,7 +142,7 @@ sap.ui.define([
142
142
  formatInt(oInteraction.busyDuration, 4), // extension_1 - busy duration
143
143
  formatInt(oFESRHandle.interactionType || 0, 4), // extension_2 - type of interaction: 0 = not implemented, 1 = app start, 2 = follow up step, 3 = unknown
144
144
  format(CLIENT_DEVICE, 1), // extension_3 - client device
145
- "", // extension_4
145
+ formatInt(oInteraction.legacyDuration, 10), // extension_4
146
146
  format(formatInteractionStartTimestamp(oInteraction.start), 20), // extension_5 - interaction start time
147
147
  format(oFESRHandle.appNameLong, 70, true) // application_name with 70 characters, trimmed from left
148
148
  ].join(",");
@@ -302,8 +302,9 @@ sap.ui.define([
302
302
  oBeaconRequest = sUrl ? BeaconRequest.isSupported() && new BeaconRequest({url: sUrl}) : null;
303
303
  sBeaconURL = sUrl;
304
304
  bFesrActive = true;
305
- Passport.setActive(true);
306
305
  await Interaction.setActive(true);
306
+ // activate passport after Interaction is ready to make the XHRInterceptor work properly. The Interceptor needs a pending interaction to work.
307
+ Passport.setActive(true);
307
308
  XHRInterceptor.register("PASSPORT_HEADER", "open", passportHeaderOverride);
308
309
  if (!oBeaconRequest) {
309
310
  XHRInterceptor.register("FESR", "open" , fesrHeaderOverride);