@openui5/sap.ui.core 1.113.0 → 1.114.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 (375) hide show
  1. package/.dtsgenrc +86 -0
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +10 -4
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/jquery.sap.trace.js +14 -14
  10. package/src/sap/base/Log.js +92 -8
  11. package/src/sap/base/assert.js +1 -1
  12. package/src/sap/base/config/MemoryConfigurationProvider.js +22 -0
  13. package/src/sap/base/config.js +54 -0
  14. package/src/sap/base/util/Deferred.js +3 -2
  15. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  16. package/src/sap/base/util/restricted/_castArray.js +1 -1
  17. package/src/sap/base/util/restricted/_compact.js +1 -1
  18. package/src/sap/base/util/restricted/_curry.js +1 -1
  19. package/src/sap/base/util/restricted/_debounce.js +1 -1
  20. package/src/sap/base/util/restricted/_difference.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_flatten.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_intersection.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isNil.js +1 -1
  35. package/src/sap/base/util/restricted/_max.js +1 -1
  36. package/src/sap/base/util/restricted/_merge.js +1 -1
  37. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  38. package/src/sap/base/util/restricted/_min.js +1 -1
  39. package/src/sap/base/util/restricted/_omit.js +1 -1
  40. package/src/sap/base/util/restricted/_pick.js +1 -1
  41. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  42. package/src/sap/base/util/restricted/_throttle.js +1 -1
  43. package/src/sap/base/util/restricted/_toArray.js +1 -1
  44. package/src/sap/base/util/restricted/_union.js +1 -1
  45. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  46. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  47. package/src/sap/base/util/restricted/_uniq.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  50. package/src/sap/base/util/restricted/_without.js +1 -1
  51. package/src/sap/base/util/restricted/_xor.js +1 -1
  52. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  53. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  56. package/src/sap/ui/Device.js +8 -3
  57. package/src/sap/ui/Global.js +4 -4
  58. package/src/sap/ui/base/BindingParser.js +79 -18
  59. package/src/sap/ui/base/Event.js +1 -1
  60. package/src/sap/ui/base/EventProvider.js +1 -1
  61. package/src/sap/ui/base/Interface.js +1 -1
  62. package/src/sap/ui/base/ManagedObject.js +13 -12
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +26 -24
  64. package/src/sap/ui/base/Metadata.js +1 -1
  65. package/src/sap/ui/base/Object.js +1 -1
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/core/.library +1 -1
  68. package/src/sap/ui/core/BusyIndicator.js +4 -4
  69. package/src/sap/ui/core/Component.js +3 -3
  70. package/src/sap/ui/core/ComponentContainer.js +1 -1
  71. package/src/sap/ui/core/ComponentMetadata.js +3 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +47 -37
  74. package/src/sap/ui/core/Control.js +2 -2
  75. package/src/sap/ui/core/Core.js +36 -15
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +1 -1
  79. package/src/sap/ui/core/ElementMetadata.js +17 -3
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +4 -4
  82. package/src/sap/ui/core/Fragment.js +1 -1
  83. package/src/sap/ui/core/HTML.js +1 -1
  84. package/src/sap/ui/core/History.js +1 -1
  85. package/src/sap/ui/core/Icon.js +1 -1
  86. package/src/sap/ui/core/IconPool.js +17 -2
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +1 -1
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/Lib.js +27 -1
  96. package/src/sap/ui/core/ListItem.js +1 -1
  97. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  98. package/src/sap/ui/core/Locale.js +1 -1
  99. package/src/sap/ui/core/LocaleData.js +2 -2
  100. package/src/sap/ui/core/Manifest.js +2 -2
  101. package/src/sap/ui/core/Message.js +1 -1
  102. package/src/sap/ui/core/Popup.js +15 -9
  103. package/src/sap/ui/core/RenderManager.js +2 -2
  104. package/src/sap/ui/core/Renderer.js +1 -1
  105. package/src/sap/ui/core/Rendering.js +2 -3
  106. package/src/sap/ui/core/ResizeHandler.js +2 -2
  107. package/src/sap/ui/core/ScrollBar.js +1 -1
  108. package/src/sap/ui/core/SeparatorItem.js +1 -1
  109. package/src/sap/ui/core/Title.js +1 -1
  110. package/src/sap/ui/core/TooltipBase.js +1 -1
  111. package/src/sap/ui/core/UIArea.js +9 -2
  112. package/src/sap/ui/core/UIComponent.js +14 -12
  113. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  114. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  115. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  116. package/src/sap/ui/core/XMLComposite.js +1 -1
  117. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  118. package/src/sap/ui/core/XMLTemplateProcessor.js +30 -6
  119. package/src/sap/ui/core/date/UI5Date.js +14 -8
  120. package/src/sap/ui/core/date/UniversalDate.js +15 -53
  121. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  122. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  123. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  124. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  125. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  126. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  127. package/src/sap/ui/core/format/DateFormat.js +63 -29
  128. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  129. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  130. package/src/sap/ui/core/library.js +3 -3
  131. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  132. package/src/sap/ui/core/message/Message.js +1 -1
  133. package/src/sap/ui/core/message/MessageManager.js +1 -1
  134. package/src/sap/ui/core/message/MessageParser.js +1 -1
  135. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  136. package/src/sap/ui/core/messagebundle.properties +2 -0
  137. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  138. package/src/sap/ui/core/messagebundle_bg.properties +1 -0
  139. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  140. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  141. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  142. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  143. package/src/sap/ui/core/messagebundle_de.properties +1 -0
  144. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  145. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  146. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  147. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  148. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_es.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  151. package/src/sap/ui/core/messagebundle_et.properties +1 -0
  152. package/src/sap/ui/core/messagebundle_fi.properties +1 -0
  153. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  154. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  155. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  156. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  157. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_id.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_it.properties +1 -0
  160. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_kk.properties +1 -0
  163. package/src/sap/ui/core/messagebundle_ko.properties +2 -1
  164. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  165. package/src/sap/ui/core/messagebundle_lv.properties +1 -0
  166. package/src/sap/ui/core/messagebundle_ms.properties +2 -1
  167. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  168. package/src/sap/ui/core/messagebundle_no.properties +1 -0
  169. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  170. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  171. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_ru.properties +2 -1
  174. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  175. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  176. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  177. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  178. package/src/sap/ui/core/messagebundle_th.properties +1 -0
  179. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  180. package/src/sap/ui/core/messagebundle_uk.properties +1 -0
  181. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  182. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  183. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  184. package/src/sap/ui/core/mvc/Controller.js +2 -3
  185. package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
  186. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  187. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  188. package/src/sap/ui/core/mvc/JSView.js +1 -1
  189. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  190. package/src/sap/ui/core/mvc/View.js +22 -15
  191. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  192. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  193. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  194. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  195. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  196. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  197. package/src/sap/ui/core/routing/Route.js +30 -22
  198. package/src/sap/ui/core/routing/Router.js +5 -3
  199. package/src/sap/ui/core/routing/Target.js +169 -2
  200. package/src/sap/ui/core/routing/Targets.js +4 -213
  201. package/src/sap/ui/core/routing/Views.js +1 -1
  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/controls/InteractionTree.js +5 -3
  210. package/src/sap/ui/core/support/plugins/Breakpoint.js +2 -2
  211. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  212. package/src/sap/ui/core/support/plugins/Interaction.js +6 -4
  213. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  214. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  215. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  216. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  217. package/src/sap/ui/core/support/plugins/Trace.js +4 -3
  218. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  219. package/src/sap/ui/core/themes/base/base.less +1133 -90
  220. package/src/sap/ui/core/themes/base/global.less +114 -8
  221. package/src/sap/ui/core/themes/sap_hcb/global.less +114 -8
  222. package/src/sap/ui/core/theming/Parameters.js +10 -2
  223. package/src/sap/ui/core/theming/ThemeManager.js +10 -9
  224. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  225. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  226. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  227. package/src/sap/ui/core/tmpl/Template.js +1 -1
  228. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  229. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  230. package/src/sap/ui/core/util/Export.js +1 -1
  231. package/src/sap/ui/core/util/ExportCell.js +1 -1
  232. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  233. package/src/sap/ui/core/util/ExportRow.js +1 -1
  234. package/src/sap/ui/core/util/ExportType.js +1 -1
  235. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  236. package/src/sap/ui/core/util/File.js +1 -1
  237. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  238. package/src/sap/ui/core/util/MockServer.js +1 -1
  239. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  240. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +3 -1
  241. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  242. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  243. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  244. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  245. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  246. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  247. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  248. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  249. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  250. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  251. package/src/sap/ui/debug/ControlTree.js +1 -1
  252. package/src/sap/ui/debug/DebugEnv.js +1 -1
  253. package/src/sap/ui/debug/PropertyList.js +1 -1
  254. package/src/sap/ui/dom/includeScript.js +3 -3
  255. package/src/sap/ui/dom/includeStylesheet.js +3 -3
  256. package/src/sap/ui/events/ControlEvents.js +2 -2
  257. package/src/sap/ui/events/PseudoEvents.js +4 -2
  258. package/src/sap/ui/model/ClientModel.js +1 -1
  259. package/src/sap/ui/model/CompositeDataState.js +1 -1
  260. package/src/sap/ui/model/CompositeType.js +1 -1
  261. package/src/sap/ui/model/DataState.js +1 -1
  262. package/src/sap/ui/model/ManagedObjectBindingSupport.js +19 -2
  263. package/src/sap/ui/model/MetaModel.js +1 -1
  264. package/src/sap/ui/model/Model.js +1 -1
  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 +12 -4
  270. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +2 -0
  271. package/src/sap/ui/model/json/JSONModel.js +1 -1
  272. package/src/sap/ui/model/message/MessageModel.js +1 -1
  273. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  274. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  275. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  276. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  277. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  278. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  279. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  280. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  281. package/src/sap/ui/model/odata/type/Date.js +49 -21
  282. package/src/sap/ui/model/odata/type/DateTime.js +51 -8
  283. package/src/sap/ui/model/odata/type/DateTimeBase.js +20 -26
  284. package/src/sap/ui/model/odata/type/DateTimeOffset.js +42 -1
  285. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +34 -21
  286. package/src/sap/ui/model/odata/type/Decimal.js +28 -33
  287. package/src/sap/ui/model/odata/type/Double.js +21 -26
  288. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int.js +15 -20
  290. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  291. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  292. package/src/sap/ui/model/odata/type/Int64.js +16 -21
  293. package/src/sap/ui/model/odata/type/ODataType.js +33 -6
  294. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  295. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  296. package/src/sap/ui/model/odata/type/Single.js +20 -25
  297. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  298. package/src/sap/ui/model/odata/type/String.js +1 -1
  299. package/src/sap/ui/model/odata/type/Time.js +60 -21
  300. package/src/sap/ui/model/odata/type/TimeOfDay.js +52 -24
  301. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  302. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  303. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +65 -21
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  306. package/src/sap/ui/model/odata/v4/Context.js +6 -2
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -3
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +7 -25
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +90 -24
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +7 -3
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -12
  314. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +15 -3
  315. package/src/sap/ui/model/odata/v4/lib/_Cache.js +14 -0
  316. package/src/sap/ui/model/odata/v4/lib/_Helper.js +18 -0
  317. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -0
  318. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  319. package/src/sap/ui/model/type/Boolean.js +1 -1
  320. package/src/sap/ui/model/type/Currency.js +1 -1
  321. package/src/sap/ui/model/type/Date.js +15 -1
  322. package/src/sap/ui/model/type/DateInterval.js +15 -1
  323. package/src/sap/ui/model/type/DateTime.js +1 -1
  324. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  325. package/src/sap/ui/model/type/FileSize.js +1 -1
  326. package/src/sap/ui/model/type/Float.js +1 -1
  327. package/src/sap/ui/model/type/Integer.js +1 -1
  328. package/src/sap/ui/model/type/String.js +1 -1
  329. package/src/sap/ui/model/type/Time.js +1 -1
  330. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  331. package/src/sap/ui/model/type/Unit.js +1 -1
  332. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  333. package/src/sap/ui/performance/Measurement.js +9 -9
  334. package/src/sap/ui/performance/trace/Interaction.js +50 -4
  335. package/src/sap/ui/performance/trace/initTraces.js +20 -14
  336. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  337. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  338. package/src/sap/ui/test/OpaPlugin.js +19 -25
  339. package/src/sap/ui/test/PageObjectFactory.js +17 -7
  340. package/src/sap/ui/test/_ParameterValidator.js +3 -3
  341. package/src/sap/ui/test/_UsageReport.js +3 -3
  342. package/src/sap/ui/test/_ValidationParameters.js +8 -10
  343. package/src/sap/ui/test/actions/Action.js +3 -3
  344. package/src/sap/ui/test/actions/Press.js +4 -4
  345. package/src/sap/ui/test/autowaiter/WaiterBase.js +5 -3
  346. package/src/sap/ui/test/autowaiter/_autoWaiter.js +6 -3
  347. package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +3 -3
  348. package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +3 -3
  349. package/src/sap/ui/test/autowaiter/_fetchWaiter.js +73 -0
  350. package/src/sap/ui/test/autowaiter/_moduleWaiter.js +2 -2
  351. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -4
  352. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +2 -2
  353. package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +4 -4
  354. package/src/sap/ui/test/generic/TestBase.js +1 -1
  355. package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +424 -423
  356. package/src/sap/ui/test/gherkin/StepDefinitions.js +160 -158
  357. package/src/sap/ui/test/gherkin/dataTableUtils.js +387 -385
  358. package/src/sap/ui/test/gherkin/opa5TestHarness.js +188 -189
  359. package/src/sap/ui/test/gherkin/qUnitTestHarness.js +74 -71
  360. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +195 -193
  361. package/src/sap/ui/test/launchers/componentLauncher.js +11 -9
  362. package/src/sap/ui/test/launchers/iFrameLauncher.js +34 -20
  363. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  364. package/src/sap/ui/test/matchers/Interactable.js +2 -2
  365. package/src/sap/ui/test/matchers/LabelFor.js +2 -2
  366. package/src/sap/ui/test/matchers/MatcherFactory.js +10 -9
  367. package/src/sap/ui/test/matchers/Properties.js +5 -4
  368. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  369. package/src/sap/ui/test/matchers/matchers.js +35 -3
  370. package/src/sap/ui/test/qunitPause.js +3 -2
  371. package/src/sap/ui/test/starter/_utils.js +3 -3
  372. package/src/sap/ui/util/Mobile.js +8 -1
  373. package/src/sap/ui/util/Storage.js +1 -1
  374. package/src/ui5loader-autoconfig.js +661 -51
  375. package/src/ui5loader.js +18 -5
@@ -227,7 +227,7 @@ sap.ui.define([
227
227
  * @extends sap.ui.model.Model
228
228
  * @public
229
229
  * @since 1.37.0
230
- * @version 1.113.0
230
+ * @version 1.114.1
231
231
  */
232
232
  ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
233
233
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
@@ -428,11 +428,15 @@ sap.ui.define([
428
428
  };
429
429
 
430
430
  /**
431
- * Checks whether the given context may be kept alive.
431
+ * Checks whether the given context (or any context of this binding) may be kept alive.
432
432
  *
433
- * @param {sap.ui.model.odata.v4.Context} oContext
433
+ * @param {sap.ui.model.odata.v4.Context} [oContext]
434
434
  * A context of this binding
435
- * @throws {Error} If <code>oContext.setKeepAlive()</code> is not allowed
435
+ * @param {boolean} [bKeepAlive]
436
+ * Whether to keep the given context alive
437
+ * @throws {Error}
438
+ * If <code>oContext.setKeepAlive(bKeepAlive)</code> is not allowed for the given (or any)
439
+ * context
436
440
  *
437
441
  * @abstract
438
442
  * @function
@@ -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.113.0
45
+ * @version 1.114.1
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
@@ -265,12 +265,9 @@ sap.ui.define([
265
265
  that = this;
266
266
 
267
267
  this.oCheckUpdateCallToken = oCallToken;
268
- if (this.bHasDeclaredType === undefined) {
269
- this.bHasDeclaredType = !!vType;
270
- }
271
- if (sResolvedPath && !this.bHasDeclaredType && this.sInternalType !== "any"
272
- && !bIsMeta) {
273
- vType = oMetaModel.fetchUI5Type(sResolvedPath);
268
+ if (!vType && sResolvedPath && this.sInternalType !== "any" && !bIsMeta
269
+ && !sResolvedPath.includes(sVirtualPath)) {
270
+ vType = oMetaModel.fetchUI5Type(this.sReducedPath || sResolvedPath);
274
271
  }
275
272
  if (vValue === undefined) {
276
273
  // if called via #onChange, we need to fetch implicit values
@@ -289,9 +286,7 @@ sap.ui.define([
289
286
  return vResult;
290
287
  });
291
288
  }
292
- if (!that.sReducedPath || !that.isResolved()) {
293
- // binding is unresolved or context was reset by another call to
294
- // checkUpdateInternal
289
+ if (!that.isResolved()) {
295
290
  return undefined;
296
291
  }
297
292
  if (sResolvedPath.includes(sVirtualPath)) {
@@ -332,7 +327,7 @@ sap.ui.define([
332
327
  });
333
328
  if (bForceUpdate && vValue.isFulfilled()) {
334
329
  if (vType && vType.isFulfilled && vType.isFulfilled()) {
335
- this.setType(vType.getResult(), this.sInternalType);
330
+ this.oType = vType.getResult();
336
331
  }
337
332
  this.vValue = vValue.getResult();
338
333
  }
@@ -346,7 +341,7 @@ sap.ui.define([
346
341
 
347
342
  if (oCallToken === that.oCheckUpdateCallToken) { // latest call to checkUpdateInternal
348
343
  that.oCheckUpdateCallToken = undefined;
349
- that.setType(oType, that.sInternalType);
344
+ that.oType = oType;
350
345
  if (oCallToken.forceUpdate || that.vValue !== vValue) {
351
346
  that.bInitial = false;
352
347
  that.vValue = vValue;
@@ -679,6 +674,15 @@ sap.ui.define([
679
674
  if (this.bRelative) {
680
675
  this.checkSuspended(true);
681
676
  this.deregisterChangeListener();
677
+ if (oContext) {
678
+ if (this.oType && !this.bHasDeclaredType
679
+ // Note: this.oType => this.sReducedPath
680
+ && _Helper.getMetaPath(this.oModel.resolve(this.sPath, oContext))
681
+ !== _Helper.getMetaPath(this.sReducedPath)) {
682
+ this.oType = undefined;
683
+ }
684
+ this.sReducedPath = undefined;
685
+ }
682
686
  }
683
687
  this.oContext = oContext;
684
688
  this.sResumeChangeReason = undefined;
@@ -709,6 +713,7 @@ sap.ui.define([
709
713
  ODataPropertyBinding.prototype.setType = function (oType, _sInternalType) {
710
714
  var oOldType = this.oType;
711
715
 
716
+ this.bHasDeclaredType = !!oType;
712
717
  if (oType && oType.getName() === "sap.ui.model.odata.type.DateTimeOffset") {
713
718
  oType.setV4();
714
719
  }
@@ -42,6 +42,7 @@ sap.ui.define([
42
42
  *
43
43
  * @alias sap.ui.model.odata.v4.lib._AggregationCache
44
44
  * @borrows sap.ui.model.odata.v4.lib._CollectionCache#addKeptElement as #addKeptElement
45
+ * @borrows sap.ui.model.odata.v4.lib._CollectionCache#removeKeptElement as #removeKeptElement
45
46
  * @borrows sap.ui.model.odata.v4.lib._CollectionCache#requestSideEffects as #requestSideEffects
46
47
  * @constructor
47
48
  * @extends sap.ui.model.odata.v4.lib._Cache
@@ -82,6 +83,7 @@ sap.ui.define([
82
83
  }
83
84
  this.oFirstLevel = this.createGroupLevelCache(null, bHasGrandTotal || !!fnLeaves);
84
85
  this.addKeptElement = this.oFirstLevel.addKeptElement; // @borrows ...
86
+ this.removeKeptElement = this.oFirstLevel.removeKeptElement; // @borrows ...
85
87
  this.requestSideEffects = this.oFirstLevel.requestSideEffects; // @borrows ...
86
88
  this.oGrandTotalPromise = undefined;
87
89
  if (bHasGrandTotal) {
@@ -357,13 +359,16 @@ sap.ui.define([
357
359
  * @param {object|string} vGroupNodeOrPath
358
360
  * The group node or its path relative to the cache; a group node instance (instead of a path)
359
361
  * MUST only be given in case of "expanding" continued
362
+ * @param {function} [fnDataRequested]
363
+ * The function is called just before the back-end request is sent.
364
+ * If no back-end request is needed, the function is not called.
360
365
  * @returns {sap.ui.base.SyncPromise<number>}
361
366
  * A promise that is resolved with the number of nodes at the next level
362
367
  *
363
368
  * @public
364
369
  * @see #collapse
365
370
  */
366
- _AggregationCache.prototype.expand = function (oGroupLock, vGroupNodeOrPath) {
371
+ _AggregationCache.prototype.expand = function (oGroupLock, vGroupNodeOrPath, fnDataRequested) {
367
372
  var oCache,
368
373
  iCount,
369
374
  aElements = this.aElements,
@@ -417,7 +422,9 @@ sap.ui.define([
417
422
  }
418
423
 
419
424
  // prefetch from the group level cache
420
- return oCache.read(0, this.iReadLength, 0, oGroupLock).then(function (oResult) {
425
+ return oCache.read(
426
+ 0, this.iReadLength, 0, oGroupLock, fnDataRequested
427
+ ).then(function (oResult) {
421
428
  var iIndex = that.aElements.indexOf(oGroupNode) + 1,
422
429
  iLevel = oGroupNode["@$ui5.node.level"],
423
430
  oSubtotals = _AggregationHelper.getCollapsedObject(oGroupNode),
@@ -768,7 +775,12 @@ sap.ui.define([
768
775
  }
769
776
 
770
777
  return SyncPromise.all(aReadPromises).then(function () {
771
- var aElements = that.aElements.slice(iIndex, iIndex + iLength);
778
+ var aElements = that.aElements.slice(iIndex, iIndex + iLength)
779
+ .map(function (oElement) {
780
+ return _Helper.hasPrivateAnnotation(oElement, "placeholder")
781
+ ? undefined
782
+ : oElement;
783
+ });
772
784
 
773
785
  aElements.$count = that.aElements.$count;
774
786
 
@@ -3366,6 +3366,20 @@ sap.ui.define([
3366
3366
  });
3367
3367
  };
3368
3368
 
3369
+ /**
3370
+ * Removes the element with the given predicate from $byPredicate of the cache's element list.
3371
+ *
3372
+ * @param {string} sPredicate - The predicate
3373
+ * @throws {Error}
3374
+ * If the cache is shared
3375
+ *
3376
+ * @public
3377
+ */
3378
+ _CollectionCache.prototype.removeKeptElement = function (sPredicate) {
3379
+ this.checkSharedRequest();
3380
+ delete this.aElements.$byPredicate[sPredicate];
3381
+ };
3382
+
3369
3383
  /**
3370
3384
  * Requests the elements in the given range and places them into the aElements list. Calculates
3371
3385
  * the key predicates for all entities in the result before the promise is resolved. While the
@@ -1553,6 +1553,24 @@ sap.ui.define([
1553
1553
  return sPath;
1554
1554
  },
1555
1555
 
1556
+ /**
1557
+ * Returns the path for the return value context. Supports bound operations on an entity or
1558
+ * a collection.
1559
+ *
1560
+ * @param {string} sPath
1561
+ * The bindings's path; either a resolved model path or a resource path; for example:
1562
+ * "/Artists(ArtistID='42',IsActiveEntity=true)/special.cases.EditAction(...)" or
1563
+ * "/Artists/special.cases.Create(...)", the leading "/" can be omitted.
1564
+ * @param {string} sResponsePredicate The key predicate of the response entity
1565
+ * @returns {string} The path for the return value context.
1566
+ */
1567
+ getReturnValueContextPath : function (sPath, sResponsePredicate) {
1568
+ var sBoundParameterPath = sPath.slice(0, sPath.lastIndexOf("/")),
1569
+ i = sBoundParameterPath.indexOf("(");
1570
+
1571
+ return (i < 0 ? sBoundParameterPath : sPath.slice(0, i)) + sResponsePredicate;
1572
+ },
1573
+
1556
1574
  /**
1557
1575
  * Tells whether <code>sPath</code> has <code>sBasePath</code> as path prefix. It returns
1558
1576
  * <code>true</code> iff {@link .getRelativePath} does not return <code>undefined</code>.
@@ -429,6 +429,8 @@ sap.ui.define([
429
429
  * @param {string} [sGroupId]
430
430
  * The ID of the group from which the locks shall be canceled; if not given all groups are
431
431
  * processed
432
+ *
433
+ * @private
432
434
  */
433
435
  _Requestor.prototype.cancelGroupLocks = function (sGroupId) {
434
436
  this.aLockedGroupLocks.forEach(function (oGroupLock) {
@@ -836,6 +838,8 @@ sap.ui.define([
836
838
  * complex type)
837
839
  * @returns {sap.ui.base.SyncPromise<object>}
838
840
  * A promise resolving with the type
841
+ *
842
+ * @public
839
843
  */
840
844
  _Requestor.prototype.fetchType = function (mTypeForMetaPath, sMetaPath) {
841
845
  var that = this;
@@ -1901,6 +1905,8 @@ sap.ui.define([
1901
1905
  /**
1902
1906
  * Checks whether a first batch from an earlier app start was recorded and sends it immediately
1903
1907
  * out as optimistic batch in order to have its response at the earliest point in time.
1908
+ *
1909
+ * @public
1904
1910
  */
1905
1911
  _Requestor.prototype.sendOptimisticBatch = function () {
1906
1912
  var sKey = window.location.href,
@@ -229,7 +229,7 @@ sap.ui.define([
229
229
  *
230
230
  * @extends sap.ui.model.Model
231
231
  * @public
232
- * @version 1.113.0
232
+ * @version 1.114.1
233
233
  */
234
234
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
235
235
 
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.113.0
22
+ * @version 1.114.1
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.model.CompositeType
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.113.0
35
+ * @version 1.114.1
36
36
  *
37
37
  * @public
38
38
  * @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.113.0
30
+ * @version 1.114.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}.
@@ -215,6 +215,20 @@ sap.ui.define([
215
215
  }
216
216
  };
217
217
 
218
+ /**
219
+ * Returns a language-dependent placeholder text such as "e.g. <sample value>" where <sample value> is formatted
220
+ * using this type.
221
+ *
222
+ * @returns {string|undefined}
223
+ * The language-dependent placeholder text or <code>undefined</code> if the type does not offer a placeholder
224
+ *
225
+ * @experimental As of version 1.114.0
226
+ * @public
227
+ */
228
+ Date1.prototype.getPlaceholderText = function () {
229
+ return this.oOutputFormat.getPlaceholderText();
230
+ };
231
+
218
232
  return Date1;
219
233
 
220
234
  });
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.CompositeType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.113.0
27
+ * @version 1.114.1
28
28
  *
29
29
  * @alias sap.ui.model.type.DateInterval
30
30
  * @param {object} [oFormatOptions]
@@ -296,5 +296,19 @@ sap.ui.define([
296
296
  }
297
297
  };
298
298
 
299
+ /**
300
+ * Returns a language-dependent placeholder text such as "e.g. <sample value>" where <sample value> is formatted
301
+ * using this type.
302
+ *
303
+ * @returns {string|undefined}
304
+ * The language-dependent placeholder text or <code>undefined</code> if the type does not offer a placeholder
305
+ *
306
+ * @experimental As of version 1.114.0
307
+ * @public
308
+ */
309
+ DateInterval.prototype.getPlaceholderText = function () {
310
+ return this.oOutputFormat.getPlaceholderText();
311
+ };
312
+
299
313
  return DateInterval;
300
314
  });
@@ -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.113.0
22
+ * @version 1.114.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.113.0
22
+ * @version 1.114.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}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.113.0
27
+ * @version 1.114.1
28
28
  *
29
29
  * @public
30
30
  * @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.113.0
29
+ * @version 1.114.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.113.0
29
+ * @version 1.114.1
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.113.0
27
+ * @version 1.114.1
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @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.113.0
22
+ * @version 1.114.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.113.0
22
+ * @version 1.114.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}.
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  *
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.113.0
51
+ * @version 1.114.1
52
52
  *
53
53
  * @public
54
54
  * @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.113.0
50
+ * @version 1.114.1
51
51
  *
52
52
  * @param {XMLDocument|string} oData
53
53
  * Either the URL where to load the XML from or an XML document
@@ -178,7 +178,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
178
178
  * @param {string} sId ID of the measurement
179
179
  * @param {string} sInfo Info for the measurement
180
180
  * @param {string | string[]} [aCategories="javascript"] An optional list of categories for the measure
181
- * @return {object} current measurement containing id, info and start-timestamp (false if error)
181
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp (false if error)
182
182
  * @public
183
183
  * @name module:sap/ui/performance/Measurement.start
184
184
  * @function
@@ -216,7 +216,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
216
216
  * Pauses a performance measure.
217
217
  *
218
218
  * @param {string} sId ID of the measurement
219
- * @return {object} current measurement containing id, info and start-timestamp, pause-timestamp (false if error)
219
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp, pause-timestamp (false if error)
220
220
  * @public
221
221
  * @name module:sap/ui/performance/Measurement.pause
222
222
  * @function
@@ -256,7 +256,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
256
256
  * Resumes a performance measure.
257
257
  *
258
258
  * @param {string} sId ID of the measurement
259
- * @return {object} current measurement containing id, info and start-timestamp, resume-timestamp (false if error)
259
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp, resume-timestamp (false if error)
260
260
  * @public
261
261
  * @name module:sap/ui/performance/Measurement.resume
262
262
  * @function
@@ -287,7 +287,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
287
287
  * Ends a performance measure.
288
288
  *
289
289
  * @param {string} sId ID of the measurement
290
- * @return {object} current measurement containing id, info and start-timestamp, end-timestamp, time, duration (false if error)
290
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp, end-timestamp, time, duration (false if error)
291
291
  * @public
292
292
  * @name module:sap/ui/performance/Measurement.end
293
293
  * @function
@@ -372,7 +372,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
372
372
  * @param {int} iTime time in milliseconds
373
373
  * @param {int} iDuration effective time in milliseconds
374
374
  * @param {string | string[]} [aCategories="javascript"] An optional list of categories for the measure
375
- * @return {object} [] current measurement containing id, info and start-timestamp, end-timestamp, time, duration, categories (false if error)
375
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp, end-timestamp, time, duration, categories (false if error)
376
376
  * @public
377
377
  * @name module:sap/ui/performance/Measurement.add
378
378
  * @function
@@ -406,7 +406,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
406
406
  * @param {string} sId ID of the measurement
407
407
  * @param {string} sInfo Info for the measurement
408
408
  * @param {string | string[]} [aCategories="javascript"] An optional list of categories for the measure
409
- * @return {object} current measurement containing id, info and start-timestamp (false if error)
409
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean|undefined} current measurement containing id, info and start-timestamp (false if error)
410
410
  * @public
411
411
  * @name module:sap/ui/performance/Measurement.average
412
412
  * @function
@@ -441,7 +441,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
441
441
  * Gets a performance measure.
442
442
  *
443
443
  * @param {string} sId ID of the measurement
444
- * @return {module:sap/ui/performance/Measurement.Entry} current measurement containing id, info and start-timestamp, end-timestamp, time, duration (false if error)
444
+ * @return {module:sap/ui/performance/Measurement.Entry|boolean} current measurement containing id, info and start-timestamp, end-timestamp, time, duration (false if error)
445
445
  * @public
446
446
  * @name module:sap/ui/performance/Measurement.getMeasurement
447
447
  * @function
@@ -466,7 +466,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
466
466
  * Gets all performance measurements.
467
467
  *
468
468
  * @param {boolean} [bCompleted] Whether only completed measurements should be returned, if explicitly set to false only incomplete measurements are returned
469
- * @return {module:sap/ui/performance/Measurement.Entry} current array with measurements containing id, info and start-timestamp, end-timestamp, time, duration, categories
469
+ * @return {module:sap/ui/performance/Measurement.Entry[]} current array with measurements containing id, info and start-timestamp, end-timestamp, time, duration, categories
470
470
  * @public
471
471
  * @name module:sap/ui/performance/Measurement.getAllMeasurements
472
472
  * @function
@@ -487,7 +487,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/thirdparty/URI', 'sap/base/util/now'
487
487
  * return oMeasurement.duration > 50;
488
488
  * }</code>
489
489
  *
490
- * @param {function} [fnFilter] a filter function that returns true if the passed measurement should be added to the result
490
+ * @param {function(module:sap/ui/performance/Measurement.Entry)} [fnFilter] a filter function that returns true if the passed measurement should be added to the result
491
491
  * @param {boolean} [bCompleted] Optional parameter to determine if either completed or incomplete measurements should be returned (both if not set or undefined)
492
492
  * @param {string[]} [aCategories] The function returns only measurements which match these specified categories
493
493
  *
@@ -50,6 +50,52 @@ sap.ui.define([
50
50
  return str.trim();
51
51
  }
52
52
 
53
+ /**
54
+ * The SAP Statistics for OData
55
+ *
56
+ * @typedef {object} module:sap/ui/performance/trace/Interaction.SAPStatistics
57
+ * @public
58
+ *
59
+ * @property {string} url The url of the response
60
+ * @property {string} statistics The response header under the key "sap-statistics"
61
+ * @property {PerformanceResourceTiming} timing The last performance resource timing
62
+ */
63
+
64
+ /**
65
+ * Interaction Entry
66
+ *
67
+ * @typedef {object} module:sap/ui/performance/trace/Interaction.Entry
68
+ * @public
69
+ *
70
+ * @property {string} event The event which triggered the interaction. The default value is "startup".
71
+ * @property {string} trigger The control which triggered the interaction.
72
+ * @property {string} component The identifier of the component or app that is associated with the
73
+ * interaction.
74
+ * @property {string} appVersion The application version as from app descriptor
75
+ * @property {float} start The start timestamp of the interaction which is initially set to the
76
+ * <code>fetchStart</code>
77
+ * @property {float} end The end timestamp of the interaction
78
+ * @property {float} navigation The sum over all navigation times
79
+ * @property {float} roundtrip The time from first request sent to last received response end - without
80
+ * gaps and ignored overlap
81
+ * @property {float} processing The client processing time
82
+ * @property {float} duration The interaction duration
83
+ * @property {Array<PerformanceResourceTiming>} requests The Performance API requests during interaction
84
+ * @property {Array<module:sap/ui/performance/Measurement.Entry>} measurements The Performance
85
+ * measurements
86
+ * @property {Array<module:sap/ui/performance/trace/Interaction.SAPStatistics>} sapStatistics The SAP
87
+ * Statistics for OData
88
+ * @property {float} requestTime The sum over all requests in the interaction
89
+ * @property {float} networkTime The request time minus server time from the header
90
+ * @property {int} bytesSent The sum over all requests bytes
91
+ * @property {int} bytesReceived The sum over all responses bytes
92
+ * @property {"X"|""} requestCompression It's set with value "X" by default When compression does not
93
+ * match SAP rules, we report an empty string.
94
+ * @property {float} busyDuration The sum of the global busy indicator duration during the interaction
95
+ * @property {string} id The ID of the interaction
96
+ * @property {string} passportAction The default PassportAction for startup
97
+ */
98
+
53
99
  function createMeasurement(iTime) {
54
100
  return {
55
101
  event: "startup", // event which triggered interaction - default is startup interaction
@@ -65,13 +111,13 @@ sap.ui.define([
65
111
  requests: [], // Performance API requests during interaction
66
112
  measurements: [], // Measurements
67
113
  sapStatistics: [], // SAP Statistics for OData
68
- requestTime: 0, // summ over all requests in the interaction (oPendingInteraction.requests[0].responseEnd-oPendingInteraction.requests[0].requestStart)
114
+ requestTime: 0, // sum over all requests in the interaction (oPendingInteraction.requests[0].responseEnd-oPendingInteraction.requests[0].requestStart)
69
115
  networkTime: 0, // request time minus server time from the header
70
116
  bytesSent: 0, // sum over all requests bytes
71
117
  bytesReceived: 0, // sum over all response bytes
72
118
  requestCompression: "X", // ok per default, if compression does not match SAP rules we report an empty string
73
119
  busyDuration: 0, // summed GlobalBusyIndicator duration during this interaction
74
- id: uid(), //Interaction id
120
+ id: uid(), //Interaction ID
75
121
  passportAction: "undetermined_startup_0" //default PassportAction for startup
76
122
  };
77
123
  }
@@ -392,7 +438,7 @@ sap.ui.define([
392
438
  * Gets all interaction measurements.
393
439
  *
394
440
  * @param {boolean} bFinalize finalize the current pending interaction so that it is contained in the returned array
395
- * @return {object[]} all interaction measurements
441
+ * @return {Array<module:sap/ui/performance/trace/Interaction.Entry>} all interaction measurements
396
442
  *
397
443
  * @static
398
444
  * @public
@@ -415,7 +461,7 @@ sap.ui.define([
415
461
  * return InteractionMeasurement.duration > 0
416
462
  * }</code>
417
463
  * @param {function} fnFilter a filter function that returns true if the passed measurement should be added to the result
418
- * @return {object[]} all interaction measurements passing the filter function successfully
464
+ * @return {Array<module:sap/ui/performance/trace/Interaction.Entry>} all interaction measurements passing the filter function successfully
419
465
  *
420
466
  * @static
421
467
  * @public
@@ -10,8 +10,8 @@
10
10
  sap.ui.define([
11
11
  "sap/ui/performance/trace/FESR",
12
12
  "sap/base/Log",
13
- "sap/base/util/UriParameters"
14
- ], function(FESR, Log, UriParameters) {
13
+ "sap/base/config"
14
+ ], function(FESR, Log, BaseConfig) {
15
15
 
16
16
  "use strict";
17
17
 
@@ -25,16 +25,18 @@ sap.ui.define([
25
25
  * @ui5-restricted sap.ui.core
26
26
  */
27
27
  return function() {
28
- var oFESRMeta = document.querySelector("meta[name=sap-ui-fesr]"),
29
- sFESRMetaContent = oFESRMeta ? oFESRMeta.getAttribute("content") : undefined,
30
- bActive = !!sFESRMetaContent && sFESRMetaContent !== "false",
31
- sUriParam = UriParameters.fromQuery(window.location.search).get("sap-ui-fesr"),
32
- sUrl = sFESRMetaContent && sFESRMetaContent !== "true" ? sFESRMetaContent : undefined;
28
+ var sUrl,
29
+ bActive = false,
30
+ sFesr = BaseConfig.get({
31
+ name: "sapUiFesr",
32
+ type: BaseConfig.Type.String,
33
+ external: true,
34
+ freeze: true
35
+ });
33
36
 
34
- if (sUriParam) {
35
- bActive = sUriParam != "false";
36
- // FESR Definition via URL wins over meta
37
- sUrl = ["true", "false", "x", "X", undefined].indexOf(sUriParam) === -1 ? sUriParam : sUrl;
37
+ if (sFesr) {
38
+ bActive = sFesr != "false";
39
+ sUrl = ["true", "false", "x", "X", undefined].indexOf(sFesr) === -1 ? sFesr : undefined;
38
40
  }
39
41
 
40
42
  if (typeof window.performance.getEntriesByType === "function") {
@@ -43,10 +45,14 @@ sap.ui.define([
43
45
  Log.debug("FESR is not supported in clients without support of window.Performance extensions.");
44
46
  }
45
47
 
46
- // TODO this should be part of a Configuration
47
48
  // *********** Include E2E-Trace Scripts *************
48
- if (/sap-ui-xx-e2e-trace=(true|x|X)/.test(location.search)) {
49
+ if (BaseConfig.get({
50
+ name: "sapUiXxE2eTrace",
51
+ type: BaseConfig.Type.Boolean,
52
+ external: true,
53
+ freeze: true
54
+ })) {
49
55
  sap.ui.require(["sap/ui/core/support/trace/E2eTraceLib"]);
50
56
  }
51
57
  };
52
- });
58
+ });