@openui5/sap.ui.core 1.97.1 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/.eslintrc.json +92 -2
  2. package/.reuse/dep5 +25 -30
  3. package/THIRDPARTY.txt +15 -22
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +6 -3
  6. package/src/jquery.sap.mobile.js +29 -19
  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/Log.js +1 -1
  12. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  13. package/src/sap/base/util/LoaderExtensions.js +1 -10
  14. package/src/sap/base/util/UriParameters.js +2 -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 +80 -168
  57. package/src/sap/ui/Global.js +4 -4
  58. package/src/sap/ui/VersionInfo.js +13 -10
  59. package/src/sap/ui/base/BindingParser.js +34 -7
  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/ExpressionParser.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +48 -27
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  66. package/src/sap/ui/base/ManagedObjectObserver.js +2 -0
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +1 -1
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/core/.library +2 -2
  71. package/src/sap/ui/core/BusyIndicator.js +1 -1
  72. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  73. package/src/sap/ui/core/Component.js +3 -3
  74. package/src/sap/ui/core/ComponentContainer.js +1 -1
  75. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  76. package/src/sap/ui/core/ComponentSupport.js +1 -1
  77. package/src/sap/ui/core/Configuration.js +82 -15
  78. package/src/sap/ui/core/Control.js +3 -2
  79. package/src/sap/ui/core/Core.js +5 -6
  80. package/src/sap/ui/core/CustomData.js +1 -1
  81. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  82. package/src/sap/ui/core/Element.js +5 -7
  83. package/src/sap/ui/core/ElementMetadata.js +1 -1
  84. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  85. package/src/sap/ui/core/EventBus.js +1 -1
  86. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  87. package/src/sap/ui/core/FocusHandler.js +1 -1
  88. package/src/sap/ui/core/Fragment.js +1 -1
  89. package/src/sap/ui/core/HTML.js +1 -1
  90. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  91. package/src/sap/ui/core/History.js +1 -1
  92. package/src/sap/ui/core/Icon.js +18 -5
  93. package/src/sap/ui/core/IconRenderer.js +1 -1
  94. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  95. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  96. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  97. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  98. package/src/sap/ui/core/InvisibleText.js +1 -1
  99. package/src/sap/ui/core/Item.js +1 -1
  100. package/src/sap/ui/core/LabelEnablement.js +9 -2
  101. package/src/sap/ui/core/LayoutData.js +1 -1
  102. package/src/sap/ui/core/ListItem.js +1 -1
  103. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  104. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +2 -2
  105. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  106. package/src/sap/ui/core/Locale.js +1 -1
  107. package/src/sap/ui/core/LocaleData.js +60 -6
  108. package/src/sap/ui/core/Manifest.js +1 -1
  109. package/src/sap/ui/core/Message.js +1 -1
  110. package/src/sap/ui/core/Patcher.js +3 -3
  111. package/src/sap/ui/core/Placeholder.js +28 -28
  112. package/src/sap/ui/core/Popup.js +12 -9
  113. package/src/sap/ui/core/RenderManager.js +1 -1
  114. package/src/sap/ui/core/Renderer.js +1 -1
  115. package/src/sap/ui/core/ResizeHandler.js +1 -1
  116. package/src/sap/ui/core/ScrollBar.js +1 -1
  117. package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
  118. package/src/sap/ui/core/SeparatorItem.js +1 -1
  119. package/src/sap/ui/core/Title.js +1 -1
  120. package/src/sap/ui/core/TooltipBase.js +2 -2
  121. package/src/sap/ui/core/UIArea.js +1 -1
  122. package/src/sap/ui/core/UIComponent.js +1 -1
  123. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  124. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  125. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  126. package/src/sap/ui/core/XMLComposite.js +1 -1
  127. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  128. package/src/sap/ui/core/XMLTemplateProcessor.js +7 -6
  129. package/src/sap/ui/core/_IconRegistry.js +13 -3
  130. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  131. package/src/sap/ui/core/cache/LRUPersistentCache.js +2 -1
  132. package/src/sap/ui/core/cldr/en_AU.json +1 -1
  133. package/src/sap/ui/core/date/Buddhist.js +3 -3
  134. package/src/sap/ui/core/date/Japanese.js +4 -4
  135. package/src/sap/ui/core/date/UniversalDate.js +10 -0
  136. package/src/sap/ui/core/date/UniversalDateUtils.js +175 -5
  137. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  138. package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
  139. package/src/sap/ui/core/dnd/DragAndDrop.js +21 -18
  140. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  141. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  142. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  143. package/src/sap/ui/core/dnd/DropInfo.js +3 -3
  144. package/src/sap/ui/core/format/DateFormat.js +654 -202
  145. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +44 -0
  146. package/src/sap/ui/core/format/ListFormat.js +2 -2
  147. package/src/sap/ui/core/format/NumberFormat.js +502 -216
  148. package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
  149. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  150. package/src/sap/ui/core/library.js +126 -53
  151. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  152. package/src/sap/ui/core/message/Message.js +1 -1
  153. package/src/sap/ui/core/message/MessageManager.js +1 -1
  154. package/src/sap/ui/core/message/MessageMixin.js +2 -1
  155. package/src/sap/ui/core/message/MessageParser.js +1 -1
  156. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  157. package/src/sap/ui/core/messagebundle.properties +2 -0
  158. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_bg.properties +6 -5
  160. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  163. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  164. package/src/sap/ui/core/messagebundle_de.properties +2 -1
  165. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  166. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  167. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  168. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  169. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  170. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
  171. package/src/sap/ui/core/messagebundle_es.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_et.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_fi.properties +1 -0
  175. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  176. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  177. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  178. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  179. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  180. package/src/sap/ui/core/messagebundle_id.properties +3 -2
  181. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  182. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  183. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  184. package/src/sap/ui/core/messagebundle_kk.properties +1 -0
  185. package/src/sap/ui/core/messagebundle_ko.properties +2 -1
  186. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  187. package/src/sap/ui/core/messagebundle_lv.properties +2 -1
  188. package/src/sap/ui/core/messagebundle_ms.properties +1 -0
  189. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  190. package/src/sap/ui/core/messagebundle_no.properties +5 -4
  191. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  192. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  193. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  194. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  195. package/src/sap/ui/core/messagebundle_ru.properties +1 -0
  196. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  197. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  198. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  199. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  200. package/src/sap/ui/core/messagebundle_th.properties +1 -0
  201. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  202. package/src/sap/ui/core/messagebundle_uk.properties +1 -0
  203. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  204. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  205. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  206. package/src/sap/ui/core/mvc/Controller.js +1 -1
  207. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  208. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  209. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  210. package/src/sap/ui/core/mvc/JSONView.js +2 -1
  211. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  212. package/src/sap/ui/core/mvc/JSView.js +1 -1
  213. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  214. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  215. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  216. package/src/sap/ui/core/mvc/View.js +2 -1
  217. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  218. package/src/sap/ui/core/mvc/XMLView.js +24 -3
  219. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  220. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  221. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  222. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  223. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  224. package/src/sap/ui/core/routing/Route.js +6 -6
  225. package/src/sap/ui/core/routing/Router.js +4 -3
  226. package/src/sap/ui/core/routing/Targets.js +17 -13
  227. package/src/sap/ui/core/rules/Misc.support.js +8 -3
  228. package/src/sap/ui/core/rules/Model.support.js +95 -8
  229. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  230. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  231. package/src/sap/ui/core/service/Service.js +1 -1
  232. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  234. package/src/sap/ui/core/support/Plugin.js +1 -1
  235. package/src/sap/ui/core/support/Support.js +3 -3
  236. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  237. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  238. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  240. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  241. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  243. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  244. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -5
  245. package/src/sap/ui/core/themes/base/CommandShortcutHints.less +1 -1
  246. package/src/sap/ui/core/themes/base/base.less +1108 -35
  247. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  248. package/src/sap/ui/core/themes/base/global.less +158 -4
  249. package/src/sap/ui/core/themes/base/parameterClasses.less +21 -21
  250. package/src/sap/ui/core/themes/sap_hcb/global.less +157 -2
  251. package/src/sap/ui/core/theming/Parameters.js +22 -142
  252. package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
  253. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  254. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  255. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  256. package/src/sap/ui/core/tmpl/Template.js +1 -1
  257. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  258. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  259. package/src/sap/ui/core/util/DraftEnabledMockServer.js +21 -16
  260. package/src/sap/ui/core/util/Export.js +1 -1
  261. package/src/sap/ui/core/util/ExportCell.js +1 -1
  262. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  263. package/src/sap/ui/core/util/ExportRow.js +1 -1
  264. package/src/sap/ui/core/util/ExportType.js +1 -1
  265. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  266. package/src/sap/ui/core/util/File.js +1 -1
  267. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  268. package/src/sap/ui/core/util/MockServer.js +157 -57
  269. package/src/sap/ui/core/util/PasteHelper.js +5 -5
  270. package/src/sap/ui/core/util/XMLPreprocessor.js +17 -4
  271. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +4 -0
  272. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +26 -16
  273. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  274. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  275. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  276. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  277. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  278. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  279. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  280. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  281. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  282. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  283. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  284. package/src/sap/ui/debug/ControlTree.js +1 -1
  285. package/src/sap/ui/debug/DebugEnv.js +1 -1
  286. package/src/sap/ui/debug/LogViewer.js +2 -2
  287. package/src/sap/ui/debug/PropertyList.js +1 -1
  288. package/src/sap/ui/dom/includeStylesheet.js +8 -3
  289. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  290. package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
  291. package/src/sap/ui/model/Binding.js +4 -3
  292. package/src/sap/ui/model/ClientModel.js +1 -1
  293. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  294. package/src/sap/ui/model/CompositeBinding.js +4 -1
  295. package/src/sap/ui/model/CompositeDataState.js +26 -4
  296. package/src/sap/ui/model/CompositeType.js +13 -1
  297. package/src/sap/ui/model/ContextBinding.js +1 -1
  298. package/src/sap/ui/model/DataState.js +27 -6
  299. package/src/sap/ui/model/ListBinding.js +2 -2
  300. package/src/sap/ui/model/MetaModel.js +2 -3
  301. package/src/sap/ui/model/Model.js +2 -2
  302. package/src/sap/ui/model/SelectionModel.js +1 -1
  303. package/src/sap/ui/model/SimpleType.js +1 -1
  304. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  305. package/src/sap/ui/model/Type.js +1 -1
  306. package/src/sap/ui/model/_Helper.js +22 -0
  307. package/src/sap/ui/model/analytics/AnalyticalBinding.js +68 -42
  308. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
  309. package/src/sap/ui/model/base/ManagedObjectModel.js +9 -7
  310. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  311. package/src/sap/ui/model/json/JSONModel.js +15 -8
  312. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  313. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  314. package/src/sap/ui/model/message/MessageModel.js +1 -1
  315. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  316. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  317. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  318. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  319. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  320. package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
  321. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  322. package/src/sap/ui/model/odata/ODataPropertyBinding.js +3 -1
  323. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  324. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  325. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  326. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  327. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
  328. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  329. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  330. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  331. package/src/sap/ui/model/odata/type/Date.js +1 -1
  332. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  333. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  334. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  335. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +346 -0
  336. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  337. package/src/sap/ui/model/odata/type/Double.js +1 -1
  338. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  339. package/src/sap/ui/model/odata/type/Int.js +1 -1
  340. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  341. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  342. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  343. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  344. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  345. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  346. package/src/sap/ui/model/odata/type/Single.js +1 -1
  347. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  348. package/src/sap/ui/model/odata/type/String.js +1 -1
  349. package/src/sap/ui/model/odata/type/Time.js +1 -1
  350. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  351. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  352. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  353. package/src/sap/ui/model/odata/v2/Context.js +62 -5
  354. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  355. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
  356. package/src/sap/ui/model/odata/v2/ODataListBinding.js +324 -112
  357. package/src/sap/ui/model/odata/v2/ODataModel.js +324 -94
  358. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
  359. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +65 -5
  360. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
  361. package/src/sap/ui/model/odata/v4/Context.js +224 -101
  362. package/src/sap/ui/model/odata/v4/ODataBinding.js +99 -55
  363. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +272 -210
  364. package/src/sap/ui/model/odata/v4/ODataListBinding.js +557 -258
  365. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
  366. package/src/sap/ui/model/odata/v4/ODataModel.js +503 -260
  367. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +106 -138
  368. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -80
  369. package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
  370. package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
  371. package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
  372. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
  373. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
  374. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
  375. package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
  376. package/src/sap/ui/model/odata/v4/lib/_Cache.js +322 -127
  377. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +5 -1
  378. package/src/sap/ui/model/odata/v4/lib/_Helper.js +28 -21
  379. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
  380. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  381. package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
  382. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +216 -51
  383. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
  384. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
  385. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
  386. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  387. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  388. package/src/sap/ui/model/type/Boolean.js +1 -1
  389. package/src/sap/ui/model/type/Currency.js +1 -1
  390. package/src/sap/ui/model/type/Date.js +1 -1
  391. package/src/sap/ui/model/type/DateInterval.js +1 -1
  392. package/src/sap/ui/model/type/DateTime.js +1 -1
  393. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  394. package/src/sap/ui/model/type/FileSize.js +1 -1
  395. package/src/sap/ui/model/type/Float.js +1 -1
  396. package/src/sap/ui/model/type/Integer.js +1 -1
  397. package/src/sap/ui/model/type/String.js +1 -1
  398. package/src/sap/ui/model/type/Time.js +1 -1
  399. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  400. package/src/sap/ui/model/type/Unit.js +1 -1
  401. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  402. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  403. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  404. package/src/sap/ui/performance/trace/FESR.js +1 -1
  405. package/src/sap/ui/performance/trace/FESRHelper.js +72 -0
  406. package/src/sap/ui/performance/trace/Interaction.js +6 -2
  407. package/src/sap/ui/performance/trace/Passport.js +3 -3
  408. package/src/sap/ui/qunit/qunit-2-css.js +4 -4
  409. package/src/sap/ui/qunit/qunit-css.js +4 -4
  410. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  411. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  412. package/src/sap/ui/test/BlanketReporter.js +1 -1
  413. package/src/sap/ui/test/BranchTracking.js +1 -0
  414. package/src/sap/ui/test/Opa5.js +1 -1
  415. package/src/sap/ui/test/OpaBuilder.js +7 -7
  416. package/src/sap/ui/test/TestUtils.js +12 -2
  417. package/src/sap/ui/test/_LogCollector.js +1 -1
  418. package/src/sap/ui/test/_UsageReport.js +1 -1
  419. package/src/sap/ui/test/actions/Action.js +4 -2
  420. package/src/sap/ui/test/actions/Press.js +51 -2
  421. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  422. package/src/sap/ui/test/generic/GenericTestCollection.js +176 -0
  423. package/src/sap/ui/test/generic/TestBase.js +151 -0
  424. package/src/sap/ui/test/generic/Utils.js +284 -0
  425. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +9 -8
  426. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  427. package/src/sap/ui/test/starter/_setupAndStart.js +4 -0
  428. package/src/sap/ui/test/starter/createSuite.js +3 -3
  429. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  430. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  431. package/src/sap/ui/thirdparty/URI.js +7 -3
  432. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  433. package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
  434. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
  435. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
  436. package/src/sap/ui/thirdparty/jszip.js +17 -7
  437. package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
  438. package/src/sap/ui/util/Mobile.js +17 -0
  439. package/src/sap/ui/util/Storage.js +1 -1
  440. package/src/sap/ui/util/XMLHelper.js +53 -30
  441. package/src/ui5loader.js +4 -4
@@ -0,0 +1,72 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([], function () {
8
+ "use strict";
9
+
10
+ /**
11
+ * FESRHelper API
12
+ * Provides helper functionality for FESR and consumers of FESR
13
+ *
14
+ * @namespace
15
+ * @since 1.100
16
+ * @alias module:sap/ui/performance/trace/FESRHelper
17
+ * @static
18
+ * @public
19
+ */
20
+ var FESRHelper = {
21
+ /**
22
+ * This namespace is only used inside the FESRHelper.
23
+ *
24
+ * @const
25
+ * @private
26
+ */
27
+ FESR_NAMESPACE: "http://schemas.sap.com/sapui5/extension/sap.ui.core.FESR/1",
28
+
29
+ /**
30
+ * Add semantic stepname for an event of a given element used for FESR.
31
+ *
32
+ * @param {sap.ui.core.Element} oElement The element the semantic stepname should be applied to
33
+ * @param {string} sEventId The event ID the semantic stepname is valid for
34
+ * @param {string} sStepname The semantic stepname
35
+ *
36
+ * @public
37
+ * @since 1.100
38
+ */
39
+ setSemanticStepname: function (oElement, sEventId, sStepname) {
40
+ var oCustomData = oElement.data("sap-ui-custom-settings");
41
+ if (oCustomData === null) {
42
+ oCustomData = {};
43
+ }
44
+ if (!oCustomData[this.FESR_NAMESPACE]) {
45
+ oCustomData[this.FESR_NAMESPACE] = {};
46
+ }
47
+ oCustomData[this.FESR_NAMESPACE][sEventId] = sStepname;
48
+ oElement.data("sap-ui-custom-settings", oCustomData);
49
+ },
50
+
51
+
52
+ /**
53
+ * Get semantic stepname for an event of a given element used for FESR.
54
+ *
55
+ * @param {sap.ui.core.Element} oElement The element conatining the semantic stepname
56
+ * @param {string} sEventId The event ID of the semantic stepname
57
+ * @returns {string} The semantic stepname for the given event ID
58
+ *
59
+ * @public
60
+ * @since 1.100
61
+ */
62
+ getSemanticStepname: function (oElement, sEventId) {
63
+ var oCustomFesrData = oElement && oElement.data("sap-ui-custom-settings") && oElement.data("sap-ui-custom-settings")[this.FESR_NAMESPACE];
64
+ if (!oCustomFesrData) {
65
+ return;
66
+ }
67
+ return oCustomFesrData[sEventId];
68
+ }
69
+ };
70
+
71
+ return FESRHelper;
72
+ });
@@ -8,12 +8,13 @@
8
8
  sap.ui.define([
9
9
  "sap/ui/performance/Measurement",
10
10
  "sap/ui/performance/XHRInterceptor",
11
+ "sap/ui/performance/trace/FESRHelper",
11
12
  "sap/base/util/LoaderExtensions",
12
13
  "sap/base/util/now",
13
14
  "sap/base/util/uid",
14
15
  "sap/base/Log",
15
16
  "sap/ui/thirdparty/URI"
16
- ], function(Measurement, XHRInterceptor, LoaderExtensions, now, uid, Log, URI) {
17
+ ], function(Measurement, XHRInterceptor, FESRHelper, LoaderExtensions, now, uid, Log, URI) {
17
18
 
18
19
  "use strict";
19
20
 
@@ -477,6 +478,7 @@ sap.ui.define([
477
478
  oPendingInteraction.start = iTime;
478
479
  if (oSrcElement && oSrcElement.getId) {
479
480
  oPendingInteraction.trigger = oSrcElement.getId();
481
+ oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oSrcElement, sType);
480
482
  }
481
483
  /*eslint-disable no-console */
482
484
  if (Log.isLoggable(null, "sap.ui.Performance")) {
@@ -626,13 +628,15 @@ sap.ui.define([
626
628
  var elem = oBrowserElement;
627
629
  if (elem && oElement.getId() === elem.getId()) {
628
630
  oPendingInteraction.trigger = oElement.getId();
631
+ oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oElement, sEventId);
629
632
  oPendingInteraction.event = sEventId;
630
633
  bMatched = true;
631
634
  } else {
632
635
  while (elem && elem.getParent()) {
633
636
  elem = elem.getParent();
634
637
  if (oElement.getId() === elem.getId()) {
635
- oPendingInteraction.trigger = oElement.getId();
638
+ oPendingInteraction.trigger = oElement.getId();
639
+ oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oElement, sEventId);
636
640
  oPendingInteraction.event = sEventId;
637
641
  //if we find no direct match we consider the last control event for the trigger/event (step name)
638
642
  break;
@@ -53,7 +53,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
53
53
  var Passport = {};
54
54
 
55
55
  /**
56
- * @returns {String} a generated a passport header
56
+ * @returns {string} a generated a passport header
57
57
  * @private
58
58
  */
59
59
  Passport.header = function(trcLvl, RootID, TransID, component, action) {
@@ -125,7 +125,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
125
125
  };
126
126
 
127
127
  /**
128
- * @param {String} lvl Tracing level to be calculated
128
+ * @param {string} lvl Tracing level to be calculated
129
129
  * @return {int[]} Array with two int representations of characters for trace level
130
130
  * @private
131
131
  */
@@ -151,7 +151,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
151
151
  };
152
152
 
153
153
  /**
154
- * @returns {String} a generated GUID
154
+ * @returns {string} a generated GUID
155
155
  * @private
156
156
  */
157
157
  Passport.createGUID = function() {
@@ -7,8 +7,8 @@
7
7
  (function() {
8
8
  "use strict";
9
9
 
10
- /*global jQuery */
11
-
12
- var sUrl = jQuery.sap.getModulePath("sap.ui.thirdparty.qunit-2", ".css");
13
- jQuery.sap.includeStyleSheet(sUrl);
10
+ var oLink = document.createElement("link");
11
+ oLink.rel = "stylesheet";
12
+ oLink.href = sap.ui.require.toUrl("sap/ui/thirdparty/qunit-2.css");
13
+ document.head.appendChild(oLink);
14
14
  }());
@@ -7,8 +7,8 @@
7
7
  (function() {
8
8
  "use strict";
9
9
 
10
- /*global jQuery */
11
-
12
- var sUrl = jQuery.sap.getModulePath("sap.ui.thirdparty.qunit", ".css");
13
- jQuery.sap.includeStyleSheet(sUrl);
10
+ var oLink = document.createElement("link");
11
+ oLink.rel = "stylesheet";
12
+ oLink.href = sap.ui.require.toUrl("sap/ui/thirdparty/qunit.css");
13
+ document.head.appendChild(oLink);
14
14
  }());
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.97.1
56
+ * @version 1.100.0
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -27,7 +27,7 @@ sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core'
27
27
  * @namespace
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.97.1
30
+ * @version 1.100.0
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0
@@ -514,4 +514,4 @@ sap.ui.define([
514
514
  });
515
515
  }
516
516
  };
517
- }, /* bExport= */ false);
517
+ });
@@ -660,6 +660,7 @@
660
660
  QUnit.begin(function () {
661
661
  var sFileName, aHits;
662
662
 
663
+ jQuery("body").css("overflow", "scroll"); // always show scrollbar, avoid flickering
663
664
  jQuery("#qunit-modulefilter-dropdown-list").css("max-height", "none");
664
665
 
665
666
  jQuery("#qunit-modulefilter-dropdown").on("click", function (oMouseEvent) {
@@ -1115,7 +1115,7 @@ sap.ui.define([
1115
1115
  /**
1116
1116
  * Settings for a new page object, consisting of actions and assertions.
1117
1117
  *
1118
- * @typedef {Object} sap.ui.test.PageObjectDefinition
1118
+ * @typedef {object} sap.ui.test.PageObjectDefinition
1119
1119
  *
1120
1120
  * @property {string} [viewName]
1121
1121
  * When a <code>viewName</code> is given, all <code>waitFor</code> calls inside of the page object
@@ -285,7 +285,7 @@ sap.ui.define(
285
285
  *
286
286
  * @param {sap.ui.test.Opa5} [oOpaInstance] the Opa5 instance to operate on
287
287
  * @param {string | RegExp} [vId] the id of the target control(s)
288
- * @param {string} [vControlType] the type of the target control(s)
288
+ * @param {string} [sControlType] the type of the target control(s)
289
289
  * @param {boolean} [bDialogElement] if true, only popover and dialogs are searched for
290
290
  * @param {sap.ui.test.matchers.Matcher | function | Array | Object} [vMatchers] additional matchers to filter target control(s)
291
291
  * @param {sap.ui.test.actions.Action | function | Array} [vActions] the actions to be performed on target control(s)
@@ -417,12 +417,12 @@ sap.ui.define(
417
417
  /**
418
418
  * Defines the control type of the target control(s).
419
419
  *
420
- * @param {string} vControlType the type of the target control(s)
420
+ * @param {string} sControlType the type of the target control(s)
421
421
  * @returns {this} this OpaBuilder instance
422
422
  * @public
423
423
  */
424
- OpaBuilder.prototype.hasType = function (vControlType) {
425
- return this.options({controlType: vControlType});
424
+ OpaBuilder.prototype.hasType = function (sControlType) {
425
+ return this.options({controlType: sControlType});
426
426
  };
427
427
 
428
428
  /**
@@ -490,7 +490,7 @@ sap.ui.define(
490
490
  * Adds a matcher that checks for a certain number of aggregation items.
491
491
  *
492
492
  * @param {string} sAggregationName the aggregation name
493
- * @param [int] iNumber length to check against
493
+ * @param {int} iNumber length to check against
494
494
  * @returns {this} this OpaBuilder instance
495
495
  * @public
496
496
  */
@@ -669,8 +669,8 @@ sap.ui.define(
669
669
  * @returns {this} this OpaBuilder instance
670
670
  * @public
671
671
  */
672
- OpaBuilder.prototype.doEnterText = function (sText, bClearFirst, bKeepFocus, bPressEnterKey, sIdSuffix) {
673
- return this.do(OpaBuilder.Actions.enterText(sText, bClearFirst, bKeepFocus, bPressEnterKey, sIdSuffix));
672
+ OpaBuilder.prototype.doEnterText = function (sText, bClearTextFirst, bKeepFocus, bPressEnterKey, sIdSuffix) {
673
+ return this.do(OpaBuilder.Actions.enterText(sText, bClearTextFirst, bKeepFocus, bPressEnterKey, sIdSuffix));
674
674
  };
675
675
 
676
676
  /**
@@ -5,12 +5,12 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- "jquery.sap.sjax",
9
8
  "sap/base/Log",
10
9
  "sap/base/util/merge",
11
10
  "sap/base/util/UriParameters",
11
+ "sap/ui/thirdparty/jquery",
12
12
  "sap/ui/core/Core" // provides sap.ui.getCore()
13
- ], function (jQuery, Log, merge, UriParameters) {
13
+ ], function (Log, merge, UriParameters, jQuery) {
14
14
  "use strict";
15
15
  /*global QUnit, sinon */
16
16
  // Note: The dependency to Sinon.JS has been omitted deliberately. Most test files load it via
@@ -33,6 +33,8 @@ sap.ui.define([
33
33
  rODataHeaders = /^(OData-Version|DataServiceVersion)$/,
34
34
  bRealOData = sRealOData === "true" || sRealOData === "direct",
35
35
  iRequestCount = 0,
36
+ sOptimisticBatch = oUriParameters.get("optimisticBatch"),
37
+ bOptimisticBatch = sOptimisticBatch === null ? undefined : sOptimisticBatch === "true",
36
38
  bSupportAssistant = oUriParameters.get("supportAssistant") === "true",
37
39
  TestUtils;
38
40
 
@@ -799,6 +801,14 @@ sap.ui.define([
799
801
  }
800
802
  },
801
803
 
804
+ /**
805
+ * @returns {boolean|undefined}
806
+ * <code>true</code> if optimistic $batch should be used, undefined if not specified.
807
+ */
808
+ isOptimisticBatch : function () {
809
+ return bOptimisticBatch;
810
+ },
811
+
802
812
  /**
803
813
  * @returns {boolean}
804
814
  * <code>true</code> if the real OData service is used.
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
 
16
16
  /**
17
17
  * A central place to collect logs during the execution of a task
18
- * Listens to jQuery.sap.log.* to collect the logs
18
+ * Listens to sap/base/Log.* to collect the logs
19
19
  * Only collects logs from loggers with a certain component name
20
20
  * By default only logs from components in sap.ui.test are collected - this can be used to collect all the logs during an OPA test
21
21
  * You always need to start the collector to control when to actually collect logs
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  }
25
25
 
26
26
  // separate report enablement from the report logic: conditionally send XHRs if reporting is explicitly enabled
27
- var oPrototype = sap.ui.test._UsageReport.prototype;
27
+ var oPrototype = _UsageReport.prototype;
28
28
  Object.keys(oPrototype).forEach(function (sKey) {
29
29
  var bIsSpecialFunction = ["constructor", "getMetadata"].indexOf(sKey) > -1;
30
30
  if (oPrototype.hasOwnProperty(sKey) && typeof oPrototype[sKey] === "function" && !bIsSpecialFunction) {
@@ -212,7 +212,7 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
212
212
  * @param {boolean} bCtrlKey Indicates whether the ctrl key is down in addition
213
213
  * @private
214
214
  */
215
- _createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey) {
215
+ _createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey, iClientX, iClientY) {
216
216
  // ignore scrolled down stuff (client X, Y not set)
217
217
  // and assume stuff is over the whole screen (screen X, Y not set)
218
218
  // See file jquery.sap.events.js for some insights to the magic
@@ -230,7 +230,9 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
230
230
  type: sName, // include the type so jQuery.event.fixHooks can copy properties properly
231
231
  shiftKey: bShiftKey,
232
232
  altKey: bAltKey,
233
- ctrlKey: bCtrlKey
233
+ ctrlKey: bCtrlKey,
234
+ clientX: iClientX,
235
+ clientY: iClientY
234
236
  });
235
237
 
236
238
  oDomRef.dispatchEvent(oMouseEvent);
@@ -63,6 +63,22 @@ sap.ui.define([
63
63
  */
64
64
  ctrlKey: {
65
65
  type: "boolean"
66
+ },
67
+ /**
68
+ * Provide percent value for the X coordinate axis to calculate the position of the click event.
69
+ * The value must be in the range [0 - 100]
70
+ * @since 1.98
71
+ */
72
+ xPercentage: {
73
+ type: "float"
74
+ },
75
+ /**
76
+ * Provide percent value for the Y coordinate axis to calculate the position of the click event.
77
+ * The value must be in the range [0 - 100]
78
+ * @since 1.98
79
+ */
80
+ yPercentage: {
81
+ type: "float"
66
82
  }
67
83
  },
68
84
  publicMethods : [ "executeOn" ]
@@ -85,10 +101,43 @@ sap.ui.define([
85
101
  var $ActionDomRef = this.$(oControl),
86
102
  oActionDomRef = $ActionDomRef[0];
87
103
 
104
+ var iClientX, iClientY;
105
+
88
106
  var bAltKey = this.getAltKey();
89
107
  var bCtrlKey = this.getCtrlKey();
90
108
  var bShiftKey = this.getShiftKey();
91
109
 
110
+ var iXPercentage = this.getXPercentage();
111
+ var iYPercentage = this.getYPercentage();
112
+
113
+ // check if the percentage is in the range 0-100
114
+ if (iXPercentage < 0 || iXPercentage > 100){
115
+ this.oLogger.error("Please provide a valid X percentage in the range: 0 - 100");
116
+ return;
117
+ }
118
+
119
+ if (iYPercentage < 0 || iYPercentage > 100){
120
+ this.oLogger.error("Please provide a valid Y percentage in the range: 0 - 100");
121
+ return;
122
+ }
123
+
124
+ // get the width and the height of the control
125
+ var oRect = oActionDomRef.getBoundingClientRect();
126
+
127
+ var iWidth = oRect.width;
128
+ var iHeight = oRect.height;
129
+
130
+ var iX = oRect.left + window.scrollX;
131
+ var iY = oRect.top + window.scrollY;
132
+
133
+ if (iXPercentage || iXPercentage === 0){
134
+ iClientX = ((iXPercentage / 100) * iWidth) + iX;
135
+ }
136
+
137
+ if (iYPercentage || iYPercentage === 0){
138
+ iClientY = ((iYPercentage / 100) * iHeight) + iY;
139
+ }
140
+
92
141
  if ($ActionDomRef.length) {
93
142
  this.oLogger.timestamp("opa.actions.press");
94
143
  this.oLogger.debug("Pressed the control " + oControl);
@@ -96,9 +145,9 @@ sap.ui.define([
96
145
  this._tryOrSimulateFocusin($ActionDomRef, oControl);
97
146
 
98
147
  // the missing events like saptouchstart and tap will be fired by the event simulation
99
- this._createAndDispatchMouseEvent("mousedown", oActionDomRef);
148
+ this._createAndDispatchMouseEvent("mousedown", oActionDomRef, null, null, null, iClientX, iClientY);
100
149
  this.getUtils().triggerEvent("selectstart", oActionDomRef);
101
- this._createAndDispatchMouseEvent("mouseup", oActionDomRef);
150
+ this._createAndDispatchMouseEvent("mouseup", oActionDomRef, null, null, null, iClientX, iClientY);
102
151
  this._createAndDispatchMouseEvent("click", oActionDomRef, bShiftKey, bAltKey, bCtrlKey);
103
152
  //Focusout simulation removed in order to fix Press action behavior
104
153
  //since in real scenario manual press action does not fire focusout event
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  // Check if sinon is already faking the Xhr
50
50
  hookIntoSinonRestore();
51
51
 
52
- // Hook into XHR opent for sinon XHRs
52
+ // Hook into XHR open for sinon XHRs
53
53
  var fnOriginalFakeOpen = sinon.FakeXMLHttpRequest.prototype.open;
54
54
  sinon.FakeXMLHttpRequest.prototype.open = function () {
55
55
  return fnOriginalFakeOpen.apply(this, hookIntoXHROpen.apply(this, arguments));
@@ -0,0 +1,176 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([], function() {
7
+ "use strict";
8
+
9
+ /**
10
+ * @typedef sap.ui.test.generic.GenericTestCollection.ObjectCapabilities
11
+ *
12
+ * @param {string} moduleName
13
+ * Name of the module that contains the class. If not given, it is assumed that a module
14
+ * with the same name as the class (dots replaced by slashes) exports the class.
15
+ * When given, the module is loaded and the class is retrieved via its global name
16
+ * @param {boolean|function} create
17
+ * Explicit false if the control can't be instantiated via constructor or factory function
18
+ * expecting the following parameters: Class, mSettings
19
+ * @param {boolean} rendererHasDependencies
20
+ * Control renderer has dependencies to parent or child controls and can't be rendered standalone
21
+ * @param {Object<string, sap.ui.test.generic.GenericTestCollection.ExcludeReason|any>} properties
22
+ * A map containing the property name as key and either an {@link sap.ui.test.generic.GenericTestCollection.ExcludeReason ExcludeReason}
23
+ * or a "value to set" as value
24
+ * @param {Object<string, sap.ui.test.generic.GenericTestCollection.ExcludeReason|function>} aggregations
25
+ * A map containing the aggregation name as key and either an {@link sap.ui.test.generic.GenericTestCollection.ExcludeReason ExcludeReason}
26
+ * or the class which should be used as value
27
+ * @param {int} [apiVersion=2]
28
+ * The API version of the control's renderer should be set in case the renderer does not support
29
+ * semantic rendering
30
+ * @param {object} [knownIssues=undefined]
31
+ * Exceptions for known but not fixed issues
32
+ * @param {boolean} knownIssues.Id
33
+ * Exception for known duplicate ID issues
34
+ * @param {boolean} knownIssues.memoryLeaks
35
+ * Exception for known memory leak issues
36
+ *
37
+ * @private
38
+ * @ui5-restricted Only for DIST layer libraries
39
+ */
40
+
41
+ /**
42
+ * @namespace
43
+ * @alias sap.ui.test.generic.GenericTestCollection
44
+ * @private
45
+ * @ui5-restricted Only for DIST layer libraries
46
+ * @since 1.100
47
+ */
48
+ var GenericTestCollection = {
49
+ /**
50
+ * Marker for exclude reasons.
51
+ *
52
+ * @enum {string}
53
+ * @private
54
+ */
55
+ ExcludeReason: {
56
+ /**
57
+ * The property or aggregation can only be changed using a binding. Using setter is not allowed.
58
+ * @private
59
+ */
60
+ OnlyChangeableViaBinding: "OnlyChangeableViaBinding",
61
+
62
+ /**
63
+ * The property or aggregation can only be set on initialisation. Using setter is not allowed.
64
+ * @private
65
+ */
66
+ NotChangeableAfterInit: "NotChangeableAfterInit",
67
+
68
+ /**
69
+ * The property or aggregation can't be filled generically. Property/aggregation specific settings are needed.
70
+ * @private
71
+ */
72
+ SetterNeedsSpecificSettings: "SetterNeedsSpecificSettings",
73
+
74
+ /**
75
+ * The default value retrieved from getter can't be used for setting the value using the corresponding setter.
76
+ * @private
77
+ */
78
+ CantSetDefaultValue: "CantSetDefaultValue"
79
+ },
80
+ /**
81
+ * Marker for available generic Tests
82
+ *
83
+ * @enum {string}
84
+ * @private
85
+ */
86
+ Test: {
87
+ /**
88
+ * Test ControlMemoryLeaks
89
+ * @protected
90
+ */
91
+ ControlMemoryLeaks: "ControlMemoryLeaks",
92
+
93
+ /**
94
+ * Test ControlRenderer
95
+ * @protected
96
+ */
97
+ ControlRenderer: "ControlRenderer",
98
+
99
+ /**
100
+ * Test DuplicateIdCheck
101
+ * @protected
102
+ */
103
+ DuplicateIdCheck: "DuplicateIdCheck",
104
+
105
+ /**
106
+ * Test EnforceSemanticRendering
107
+ * @protected
108
+ */
109
+ EnforceSemanticRendering: "EnforceSemanticRendering",
110
+
111
+ /**
112
+ * Test SettersContextReturn
113
+ * @protected
114
+ */
115
+ SettersContextReturn: "SettersContextReturn"
116
+ },
117
+
118
+ /**
119
+ * Create the testsuite config
120
+ *
121
+ * @param {object} mConfig Map containing test parameters
122
+ * @param {string} mConfig.library The library name
123
+ * @param {object} mConfig.objectCapabilities The opt-out options per control
124
+ * @param {sap.ui.test.generic.GenericTestCollection.ObjectCapabilities} mConfig.objectCapabilities.anyName The controls capability options
125
+ * @param {sap.ui.test.generic.GenericTestCollection.Test[]} mConfig.skipTests List of tests which shouldn't be executed
126
+ * @return {object} Returns the testsuite config object
127
+ *
128
+ * @private
129
+ * @ui5-restricted Only for DIST layer libraries
130
+ * @since 1.100
131
+ */
132
+ createTestsuiteConfig: function(mConfig) {
133
+ var oSuiteConfig = {
134
+ name: "Testsuite for Generic Control Tests for library: " + mConfig.library,
135
+ defaults: {
136
+ ui5: {
137
+ libs: [mConfig.library]
138
+ },
139
+ qunit: {
140
+ reorder: false,
141
+ version: 2
142
+ },
143
+ testConfig: mConfig,
144
+ module: "test-resources/sap/ui/core/qunit/generic/{name}.qunit"
145
+ },
146
+ tests: {
147
+ ControlMemoryLeaks: {
148
+ title: "QUnit Page for memory leak detection in UI5 controls"
149
+ },
150
+ ControlRenderer: {
151
+ title: "QUnit Page for Control Renderer Tests"
152
+ },
153
+ DuplicateIdCheck: {
154
+ title: "QUnit Page for duplicate ID issues detection in UI5 controls"
155
+ },
156
+ SettersContextReturn: {
157
+ title: "All setters should return correct context (Reason: https://github.com/SAP/openui5/blob/master/docs/guidelines.md#creating-classes)"
158
+ },
159
+ EnforceSemanticRendering: {
160
+ title: "QUnit Page for Semantic Rendering Coverage"
161
+ }
162
+ }
163
+ };
164
+
165
+ // Opt-out from single tests
166
+ var aSkippedTests = mConfig.skipTests || [];
167
+ aSkippedTests.forEach(function(sTest) {
168
+ delete oSuiteConfig.tests[sTest];
169
+ });
170
+
171
+ return oSuiteConfig;
172
+ }
173
+ };
174
+
175
+ return GenericTestCollection;
176
+ });