@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
@@ -8,17 +8,15 @@
8
8
  sap.ui
9
9
  .define(
10
10
  [
11
- 'jquery.sap.global',
12
- 'sap/ui/base/ManagedObject',
13
- 'sap/ui/thirdparty/sinon',
14
11
  'sap/base/Log',
15
12
  'sap/base/util/isEmptyObject',
13
+ 'sap/ui/base/ManagedObject',
16
14
  'sap/ui/core/util/MockServerAnnotationsHandler',
17
15
  'sap/ui/core/util/DraftEnabledMockServer',
18
- 'jquery.sap.xml',
19
- 'jquery.sap.sjax'
16
+ 'sap/ui/thirdparty/jquery',
17
+ 'sap/ui/thirdparty/sinon'
20
18
  ],
21
- function(jQuery, ManagedObject, sinon, Log, isEmptyObject, MockServerAnnotationsHandler, DraftEnabledMockServer/*, jQuerySapXml, jQuerySapSjax*/) {
19
+ function(Log, isEmptyObject, ManagedObject, MockServerAnnotationsHandler, DraftEnabledMockServer, jQuery, sinon) {
22
20
  "use strict";
23
21
 
24
22
  /**
@@ -34,7 +32,7 @@ sap.ui
34
32
  * @extends sap.ui.base.ManagedObject
35
33
  * @abstract
36
34
  * @author SAP SE
37
- * @version 1.97.1
35
+ * @version 1.100.0
38
36
  * @public
39
37
  * @alias sap.ui.core.util.MockServer
40
38
  */
@@ -100,38 +98,113 @@ sap.ui
100
98
  recordRequests: {type : "boolean", defaultValue : true},
101
99
 
102
100
  /**
103
- * Setter for property <code>requests</code>.
101
+ * Methods that can be used to respond to a request.
104
102
  *
105
- * Default value is is <code>[]</code>
103
+ * @interface
104
+ * @name sap.ui.core.util.MockServer.Response
105
+ * @public
106
+ */
107
+
108
+ /**
109
+ * Responds to the incoming request with the given <code>iStatusCode</code>,
110
+ * <code>mHeaders</code> and <code>sBody</code>.
106
111
  *
107
- * Each array entry should consist of an object with the following properties / values:
112
+ * @param {int} [StatusCode=200]
113
+ * HTTP status code to send with the response
114
+ * @param {Object<string,string>} [mHeaders={}]
115
+ * HTTP headers to send with the response
116
+ * @param {string} [sBody=""]
117
+ * A string that will be sent as response body
118
+ * @public
119
+ * @function
120
+ * @name sap.ui.core.util.MockServer.Response.prototype.respond
121
+ */
122
+
123
+ /**
124
+ * Convenience variant of {@link #respond} which simplifies sending a JSON response.
108
125
  *
109
- * <ul>
110
- * <li><b>method <string>: "GET"|"POST"|"DELETE|"PUT"</b>
111
- * <br>
112
- * (any HTTP verb)
113
- * </li>
114
- * <li><b>path <string>: "/path/to/resource"</b>
115
- * <br>
116
- * The path is converted to a regular expression, so it can contain normal regular expression syntax.
117
- * All regular expression groups are forwarded as arguments to the <code>response</code> function.
118
- * In addition to this, parameters can be written in this notation: <code>:param</code>. These placeholder will be replaced by regular expression groups.
119
- * </li>
120
- * <li><b>response <function>: function(xhr, param1, param2, ...) { }</b>
121
- * <br>
122
- * The xhr object can be used to respond on the request. Supported methods are:
123
- * <br>
124
- * <code>xhr.respond(iStatusCode, mHeaders, sBody)</code>
125
- * <br>
126
- * <code>xhr.respondJSON(iStatusCode, mHeaders, oJsonObjectOrString)</code>. By default a JSON header is set for response header
127
- * <br>
128
- * <code>xhr.respondXML(iStatusCode, mHeaders, sXmlString)</code>. By default an XML header is set for response header
129
- * <br>
130
- * <code>xhr.respondFile(iStatusCode, mHeaders, sFileUrl)</code>. By default the mime type of the file is set for response header
131
- * </li>
132
- * </ul>
126
+ * The response content <code>vBody</code> can either be given as a string, which is then
127
+ * assumed to be in JSON format. Or it can be any JSON-stringifiable value which then will
128
+ * be converted to a string using <code>JSON.stringify</code>. If no <code>vBody</code>
129
+ * is given, an empty response will be sent.
133
130
  *
134
- * @param {object[]} requests new value for property <code>requests</code>
131
+ * If no <code>Content-Type</code> header is given, it will be set to <code>application/json</code>.
132
+ *
133
+ * @param {int} [iStatusCode=200]
134
+ * HTTP status code to send with the response
135
+ * @param {Object<string,string>} [mHeaders={}]
136
+ * HTTP Headers to send with the response
137
+ * @param {object|string} [vBody=""]
138
+ * A valid JSON-string or a JSON-stringifiable object that should be sent as response body
139
+ * @public
140
+ * @function
141
+ * @name sap.ui.core.util.MockServer.Response.prototype.respondJSON
142
+ */
143
+
144
+ /**
145
+ * Convenience variant of {@link #respond} which simplifies sending an XML response.
146
+ *
147
+ * If no <code>Content-Type</code> header is given, it will be set to <code>application/xml</code>.
148
+ *
149
+ * @param {int} [iStatusCode=200]
150
+ * HTTP status code to send with the response
151
+ * @param {Object<string,string>} [mHeaders={}]
152
+ * HTTP Headers to send with the response
153
+ * @param {string} [sXmlString='']
154
+ * XML string to send as response body
155
+ * @public
156
+ * @function
157
+ * @name sap.ui.core.util.MockServer.Response.prototype.respondXML
158
+ */
159
+
160
+ /**
161
+ * Convenience variant of {@link #respond} which allows to send the content of an external
162
+ * resource as response.
163
+ *
164
+ * This method first synchronously fetches the given <code>sFileUrl</code>. Depending on the
165
+ * extension and path of the <code>sFileUrl</code>, it propagates the received response body
166
+ * to {@link #respondJSON}, {@link #respondXML} or {@link #respond}, using the given
167
+ * <code>iStatus</code> and <code>mHeaders</code>.
168
+ *
169
+ * The status code and headers of the received response are ignored. In particular, the
170
+ * <code>Content-Type</code> header is not used for the mock server's response.
171
+ *
172
+ * @param {int} [iStatusCode=200]
173
+ * HTTP status code to send with the response
174
+ * @param {Object<string,string>} [mHeaders={}]
175
+ * HTTP Headers to send with the response
176
+ * @param {string} sFileUrl
177
+ * URL to get the response body from
178
+ * @throws {Error} if the external resource cannot be fetched
179
+ * @public
180
+ * @function
181
+ * @name sap.ui.core.util.MockServer.Response.prototype.respondFile
182
+ */
183
+
184
+ /**
185
+ * @typedef {object} sap.ui.core.util.MockServer.RequestHandler
186
+ * @property {sap.ui.core.util.MockServer.HTTPMETHOD} method Any HTTP verb
187
+ * @property {string|RegExp} path
188
+ * A string path is converted to a regular expression, so it can contain normal regular expression syntax.
189
+ *
190
+ * All regular expression groups are forwarded as arguments to the <code>response</code> function.
191
+ * In addition to this, parameters can be written in this notation: <code>:param</code>.
192
+ * These placeholders will be replaced by regular expression groups.
193
+ * @property {function(sap.ui.core.util.MockServer.Response,...any)} response
194
+ * A response handler function that will be called when an incoming request
195
+ * matches <code>method</code> and <code>path</code>.
196
+ * The first parameter of the handler will be a <code>Response</code> object which can be used
197
+ * to respond on the request.
198
+ * @public
199
+ */
200
+
201
+ /**
202
+ * Setter for property <code>requests</code>.
203
+ *
204
+ * Default value is <code>[]</code>
205
+ *
206
+ * @param {sap.ui.core.util.MockServer.RequestHandler[]} requests new value for the <code>requests</code> property
207
+ * @returns {this} Returns <code>this</code> to allow method chaining
135
208
  * @public
136
209
  * @name sap.ui.core.util.MockServer#setRequests
137
210
  * @function
@@ -142,7 +215,7 @@ sap.ui
142
215
  *
143
216
  * Default value is <code>[]</code>
144
217
  *
145
- * @return {object[]} the value of property <code>requests</code>
218
+ * @returns {sap.ui.core.util.MockServer.RequestHandler[]} the value of property <code>requests</code>
146
219
  * @public
147
220
  * @name sap.ui.core.util.MockServer#getRequests
148
221
  * @function
@@ -185,12 +258,13 @@ sap.ui
185
258
 
186
259
  /**
187
260
  * Generates a floating-point, pseudo-random number in the range [0, 1[
188
- * using a linear congruential generator with drand48 parameters
189
- * the seed is fixed, so the generated random sequence is always the same
190
- * each property type has a own seed. Valid types are:
261
+ * using a linear congruential generator with drand48 parameters.
262
+ *
263
+ * The seed is fixed, so the generated random sequence is always the same
264
+ * each property type has an own seed. Valid types are:
191
265
  * String, DateTime, Int, Decimal, Boolean, Byte, Double, Single, SByte, Time, Guid, Binary, DateTimeOffset
192
266
  * @private
193
- * @param {string} specific property type of random mock value to be generated
267
+ * @param {string} sType specific property type of random mock value to be generated
194
268
  * @return (number) pseudo-random number
195
269
  */
196
270
  MockServer.prototype._getPseudoRandomNumber = function (sType) {
@@ -209,7 +283,7 @@ sap.ui
209
283
  * @private
210
284
  */
211
285
  MockServer.prototype._resetPseudoRandomNumberGenerator = function () {
212
- this._oRandomSeed = {};
286
+ this._oRandomSeed = {};
213
287
  };
214
288
 
215
289
 
@@ -253,7 +327,7 @@ sap.ui
253
327
 
254
328
  /**
255
329
  * Attaches an event handler to be called before the built-in request processing of the mock server
256
- * @param {string} event type according to HTTP Method
330
+ * @param {string} sHttpMethod - event type according to HTTP Method
257
331
  * @param {function} fnCallback - the name of the function that will be called at this exit.
258
332
  * The callback function exposes an event with parameters, depending on the type of the request.
259
333
  * oEvent.getParameters() lists the parameters as per the request. Examples are:
@@ -268,7 +342,7 @@ sap.ui
268
342
 
269
343
  /**
270
344
  * Attaches an event handler to be called after the built-in request processing of the mock server
271
- * @param {string} event type according to HTTP Method
345
+ * @param {string} sHttpMethod - event type according to HTTP Method
272
346
  * @param {function} fnCallback - the name of the function that will be called at this exit
273
347
  * The callback function exposes an event with parameters, depending on the type of the request.
274
348
  * oEvent.getParameters() lists the parameters as per the request. Examples are:
@@ -283,7 +357,7 @@ sap.ui
283
357
 
284
358
  /**
285
359
  * Removes a previously attached event handler
286
- * @param {string} event type according to HTTP Method
360
+ * @param {string} sHttpMethod - event type according to HTTP Method
287
361
  * @param {function} fnCallback - the name of the function that will be called at this exit
288
362
  * @param {string} sEntitySet - (optional) the name of the entity set
289
363
  * @public
@@ -295,7 +369,7 @@ sap.ui
295
369
 
296
370
  /**
297
371
  * Removes a previously attached event handler
298
- * @param {string} event type according to HTTP Method
372
+ * @param {string} sHttpMethod - event type according to HTTP Method
299
373
  * @param {function} fnCallback - the name of the function that will be called at this exit
300
374
  * @param {string} sEntitySet - (optional) the name of the entity set
301
375
  * @public
@@ -530,7 +604,7 @@ sap.ui
530
604
 
531
605
  /**
532
606
  * Removes duplicate entries from the given array
533
- * @param {object} aDataSet
607
+ * @param {array} array the data set
534
608
  * @private
535
609
  */
536
610
  MockServer.prototype._arrayUnique = function(array) {
@@ -588,7 +662,8 @@ sap.ui
588
662
  /**
589
663
  * Applies the $filter OData system query option string on the given array.
590
664
  * This function is called recursively on expressions in brackets.
591
- * @param {string} sString
665
+ * @param {array} aDataSet
666
+ * @param {string} sODataQueryValue
592
667
  * @private
593
668
  */
594
669
  MockServer.prototype._recursiveOdataQueryFilter = function(aDataSet, sODataQueryValue) {
@@ -1023,6 +1098,7 @@ sap.ui
1023
1098
 
1024
1099
  /**
1025
1100
  * Applies the Format OData system query option
1101
+ * @param {array} aDataSet
1026
1102
  * @param {string} sODataQueryValue
1027
1103
  * @private
1028
1104
  */
@@ -1125,7 +1201,7 @@ sap.ui
1125
1201
 
1126
1202
  /**
1127
1203
  * Loads the service metadata for the given url
1128
- * @param {string} sMetadataUrl url to the service metadata document
1204
+ * @param {string} sMetadata url to the service metadata document or content of the metadata document
1129
1205
  * @return {XMLDocument} the xml document object
1130
1206
  * @private
1131
1207
  */
@@ -1136,7 +1212,7 @@ sap.ui
1136
1212
  // "<" as first character is a strong indicator for an XML-containing string. Everything else: URL...
1137
1213
  if (sMetadata.substring(0,1) !== "<") {
1138
1214
  // load the metadata as string to avoid usage of serializer
1139
- sMetadata = jQuery.sap.sjax({
1215
+ sMetadata = syncAjax({
1140
1216
  url: sMetadata,
1141
1217
  dataType: "text"
1142
1218
  }).data;
@@ -1368,7 +1444,7 @@ sap.ui
1368
1444
  mData = {};
1369
1445
  this._oMockdata = {};
1370
1446
  var fnLoadMockData = function(sUrl, oEntitySet) {
1371
- var oResponse = jQuery.sap.sjax({
1447
+ var oResponse = syncAjax({
1372
1448
  url: sUrl,
1373
1449
  dataType: "json"
1374
1450
  });
@@ -1398,7 +1474,7 @@ sap.ui
1398
1474
 
1399
1475
  // load all the mock data in one single file
1400
1476
  if (sBaseUrl.endsWith(".json")) {
1401
- var oResponse = jQuery.sap.sjax({
1477
+ var oResponse = syncAjax({
1402
1478
  url: sBaseUrl,
1403
1479
  dataType: "json"
1404
1480
  });
@@ -1516,8 +1592,8 @@ sap.ui
1516
1592
 
1517
1593
  /**
1518
1594
  * verify entitytype keys type ((e.g. Int, String, SByte, Time, DateTimeOffset, Decimal, Double, Single, Boolean, DateTime)
1519
- * @param {oEntitySet} the entity set for verification
1520
- * @param {aRequestedKeys} aRequestedKeys the requested Keys
1595
+ * @param {Object} oEntitySet the entity set for verification
1596
+ * @param {string[]} aRequestedKeys aRequestedKeys the requested Keys
1521
1597
  * @return boolean
1522
1598
  * @private
1523
1599
  */
@@ -1570,9 +1646,9 @@ sap.ui
1570
1646
  * Takes a string '<poperty1>=<value1>, <poperty2>=<value2>,...' and creates an
1571
1647
  * object (hash map) out of it.
1572
1648
  *
1573
- * @param {sKeys}
1574
- * the string of porperty/value pairs
1575
- * @param {object}
1649
+ * @param {string} sKeys
1650
+ * the string of property/value pairs
1651
+ * @param {object} oEntitySet
1576
1652
  * object consisting of the parsed properties
1577
1653
  */
1578
1654
  MockServer.prototype._parseKeys = function(sKeys, oEntitySet) {
@@ -3771,6 +3847,30 @@ sap.ui
3771
3847
  return false;
3772
3848
  };
3773
3849
 
3850
+ function syncAjax(options) {
3851
+ var oResult;
3852
+ Object.assign(options, {
3853
+ async: false,
3854
+ success : function(data, textStatus, xhr) {
3855
+ oResult = { success : true, data : data, status : textStatus, statusCode : xhr && xhr.status };
3856
+ },
3857
+ error : function(xhr, textStatus, error) {
3858
+ oResult = { success : false, data : undefined, status : textStatus, error : error, statusCode : xhr.status, errorResponse : xhr.responseText};
3859
+ }
3860
+ });
3861
+ jQuery.ajax(options);
3862
+ return oResult;
3863
+ }
3864
+
3865
+ /**
3866
+ * Convenience helper for synchronous ajax calls.
3867
+ *
3868
+ * @private
3869
+ * @ui5-restricted sap.ui.core.util
3870
+ * @function
3871
+ */
3872
+ MockServer._syncAjax = syncAjax;
3873
+
3774
3874
  // ================================
3775
3875
  // SINON CONFIGURATON AND EXTENSION
3776
3876
  // ================================
@@ -3810,7 +3910,7 @@ sap.ui
3810
3910
  * @public
3811
3911
  */
3812
3912
  window.sinon.FakeXMLHttpRequest.prototype.respondFile = function(iStatus, mHeaders, sFileUrl) {
3813
- var oResponse = jQuery.sap.sjax({
3913
+ var oResponse = syncAjax({
3814
3914
  url: sFileUrl,
3815
3915
  dataType: "text"
3816
3916
  });
@@ -13,7 +13,7 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
13
13
  *
14
14
  * @class Parses and validates data on the <code>paste</code> event of an SAPUI5 table.
15
15
  * @author SAP SE
16
- * @version 1.97.1
16
+ * @version 1.100.0
17
17
  * @private
18
18
  * @ui5-restricted sap.ui.table.Table, sap.m.Table, sap.m.plugins.PasteProvider
19
19
  * @alias sap.ui.core.util.PasteHelper
@@ -24,8 +24,8 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
24
24
  /**
25
25
  * Returns the clipboard text from the provided parameter.
26
26
  *
27
- * @param {ClipboardEvent|String} vEventOrText The paste event of the browser or the textual content of the clipboard returned from the navigator.clipboard.readText() API
28
- * @return {String} The textual content of the clipboard extracted from the parameter
27
+ * @param {ClipboardEvent|string} vEventOrText The paste event of the browser or the textual content of the clipboard returned from the navigator.clipboard.readText() API
28
+ * @return {string} The textual content of the clipboard extracted from the parameter
29
29
  */
30
30
  PasteHelper.getClipboardText = function(vEventOrText) {
31
31
  return (typeof vEventOrText == "string") ? vEventOrText : vEventOrText.clipboardData.getData("text");
@@ -35,7 +35,7 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
35
35
  * Parses the clipboard data from the <code>paste</code> event or <code>Clipboard.readText</code> API and converts the data into a
36
36
  * two-dimensional array that can be used further in SAPUI5 controls, for example, for importing data from spreadsheets to SAPUI5 tables.
37
37
  *
38
- * @param {ClipboardEvent|String} vEventOrText The paste event of the browser or the textual content of the clipboard returned from the navigator.clipboard.readText() API
38
+ * @param {ClipboardEvent|string} vEventOrText The paste event of the browser or the textual content of the clipboard returned from the navigator.clipboard.readText() API
39
39
  * This contains the clipboard data in the following export format: <br>
40
40
  * Cells are separated by tabs, lines by new line characters (\n, \r, and \r\n are supported). The cells containing
41
41
  * more than one line separated by new line characters are enclosed by double quotes (if there are already some
@@ -313,7 +313,7 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
313
313
  *
314
314
  * @param {int} i Index of the column
315
315
  * @param {string} sCellData Value of the cell to be parsed and validated
316
- * @param {array} aColumnInfo Provides information about the corresponding property name and its required type
316
+ * @param {object} oColumnInfo Provides information about the corresponding property name and its required type
317
317
  * @param {int} iRowIndex Index of the row
318
318
  * @param {function} fnParse Parse function parsing the value of the cell
319
319
  * @param {function} fnValidate validate function validating the value of the cell
@@ -178,10 +178,6 @@ sap.ui.define([
178
178
  * The function <code>foo</code> is called with arguments such that <code>
179
179
  * oInterface.getModel(i).getObject(oInterface.getPath(i)) === arguments[i + 1]</code>
180
180
  * holds.
181
- * This use is not supported within an expression binding, that is, <code>&lt;Text
182
- * text="{= ${parts: [{path: 'Label'}, {path: 'Value'}], formatter: 'foo'} }"/></code>
183
- * does not work as expected because the property <code>requiresIContext = true</code> is
184
- * ignored.
185
181
  *
186
182
  * To distinguish those two use cases, just check whether <code>oInterface.getModel() ===
187
183
  * undefined</code>, in which case the formatter is called on root level of a composite
@@ -197,6 +193,22 @@ sap.ui.define([
197
193
  * @since 1.27.1
198
194
  */
199
195
  return /** @lends sap.ui.core.util.XMLPreprocessor.IContext */ {
196
+ /**
197
+ * @param {number} iStart - Start index of slice
198
+ * @param {number} iEnd - End index of slice
199
+ * @returns {sap.ui.core.util.XMLPreprocessor.IContext}
200
+ * Sliced interface or <code>this</code> in case no slice is needed
201
+ *
202
+ * @private
203
+ */
204
+ _slice : function (iStart, iEnd) {
205
+ getBindingOrContext(0); // just to trigger lazy init of vBindingOrContext
206
+ return !iStart && iEnd >= vBindingOrContext.length
207
+ ? this // no slice needed
208
+ : createContextInterface(null, mSettings, undefined,
209
+ vBindingOrContext.slice(iStart, iEnd));
210
+ },
211
+
200
212
  /**
201
213
  * Returns a context interface for the indicated part in case of the root formatter of a
202
214
  * composite binding. The new interface provides access to the original settings, but
@@ -532,6 +544,7 @@ sap.ui.define([
532
544
  * If visitor or namespace is invalid
533
545
  *
534
546
  * @private
547
+ * @ui5-restricted sap.fe
535
548
  */
536
549
  plugIn : function (fnVisitor, sNamespace, sLocalName) {
537
550
  var fnOldVisitor = mVisitors[sNamespace];
@@ -299,6 +299,10 @@ sap.ui.define([
299
299
  */
300
300
  _getControlMetadataInXml: function(oControl) {
301
301
  var sControlType = this._getControlTypeInXml(oControl).replace(/\./g, "/");
302
+ var oControlType = sap.ui.require(sControlType);
303
+ if (oControlType && oControlType.getMetadata) {
304
+ return Promise.resolve(oControlType.getMetadata());
305
+ }
302
306
  return new Promise(function(fnResolve, fnReject) {
303
307
  sap.ui.require([sControlType],
304
308
  function(ControlType) {
@@ -199,23 +199,33 @@ sap.ui.define([
199
199
  * @inheritDoc
200
200
  */
201
201
  createControl: function (sClassName, oAppComponent, oView, oSelector, mSettings) {
202
- return new Promise(function(fnResolve, fnReject) {
203
- if (this.bySelector(oSelector, oAppComponent)) {
204
- var sErrorMessage = "Can't create a control with duplicated ID " + (oSelector.id || oSelector);
205
- fnReject(sErrorMessage);
206
- return;
207
- }
208
- sap.ui.require([sClassName.replace(/\./g,"/")],
209
- function(ClassObject) {
210
- var sId = this.getControlIdBySelector(oSelector, oAppComponent);
211
- fnResolve(new ClassObject(sId, mSettings));
212
- }.bind(this),
213
- function() {
214
- fnReject(new Error("Required control '" + sClassName + "' couldn't be created asynchronously"));
215
- }
216
- );
217
- }.bind(this));
202
+ sClassName = sClassName.replace(/\./g,"/");
203
+ if (this.bySelector(oSelector, oAppComponent)) {
204
+ var sErrorMessage = "Can't create a control with duplicated ID " + (oSelector.id || oSelector);
205
+ return Promise.reject(sErrorMessage);
206
+ }
218
207
 
208
+ var oPromise;
209
+ var oClassObject = sap.ui.require(sClassName);
210
+ if (oClassObject) {
211
+ oPromise = Promise.resolve(oClassObject);
212
+ } else {
213
+ oPromise = new Promise(function(fnResolve, fnReject) {
214
+ sap.ui.require([sClassName],
215
+ function(oClassObject) { fnResolve(oClassObject); },
216
+ function() {
217
+ fnReject(new Error("Required control '" + sClassName
218
+ + "' couldn't be created asynchronously"));
219
+ }
220
+ );
221
+ });
222
+ }
223
+
224
+ return oPromise
225
+ .then(function(ClassObject) {
226
+ var sId = this.getControlIdBySelector(oSelector, oAppComponent);
227
+ return new ClassObject(sId, mSettings);
228
+ }.bind(this));
219
229
  },
220
230
 
221
231
  /**
@@ -306,7 +306,7 @@ sap.ui.define([
306
306
  */
307
307
  getParent: function (oControl) {
308
308
  var oParent = oControl.parentNode;
309
- if (!XmlTreeModifier.getId(oParent) && !XmlTreeModifier._isExtensionPoint(oParent)) {
309
+ if (oParent && !XmlTreeModifier.getId(oParent) && !XmlTreeModifier._isExtensionPoint(oParent)) {
310
310
  //go to the real control, jump over aggregation node
311
311
  oParent = oParent.parentNode;
312
312
  }
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/HTML', '
20
20
  * @class HTMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.97.1
23
+ * @version 1.100.0
24
24
  * @alias sap.ui.core.util.serializer.HTMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/assert"],
21
21
  * @class Serializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.97.1
24
+ * @version 1.100.0
25
25
  * @alias sap.ui.core.util.serializer.Serializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './HTMLViewSerializer', './XMLViewSe
21
21
  * @class ViewSerializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.97.1
24
+ * @version 1.100.0
25
25
  * @alias sap.ui.core.util.serializer.ViewSerializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/XML', 's
20
20
  * @class XMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.97.1
23
+ * @version 1.100.0
24
24
  * @alias sap.ui.core.util.serializer.XMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -17,7 +17,7 @@ sap.ui.define(['sap/ui/base/EventProvider'],
17
17
  * @class Abstract serializer delegate class.
18
18
  * @extends sap.ui.base.EventProvider
19
19
  * @author SAP SE
20
- * @version 1.97.1
20
+ * @version 1.100.0
21
21
  * @alias sap.ui.core.util.serializer.delegate.Delegate
22
22
  * @private
23
23
  * @ui5-restricted sap.watt, com.sap.webide
@@ -19,7 +19,7 @@ sap.ui.define(['./Delegate', "sap/base/strings/hyphenate", "sap/base/util/deepEq
19
19
  * @class HTML serializer delegate class.
20
20
  * @extends sap.ui.core.util.serializer.delegate.Delegate
21
21
  * @author SAP SE
22
- * @version 1.97.1
22
+ * @version 1.100.0
23
23
  * @alias sap.ui.core.util.serializer.delegate.HTML
24
24
  * @private
25
25
  * @ui5-restricted sap.watt, com.sap.webide
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class XML serializer delegate class.
25
25
  * @extends sap.ui.core.util.serializer.delegate.Delegate
26
26
  * @author SAP SE
27
- * @version 1.97.1
27
+ * @version 1.100.0
28
28
  * @alias sap.ui.core.util.serializer.delegate.XML
29
29
  * @private
30
30
  * @ui5-restricted sap.watt, com.sap.webide
@@ -12,7 +12,7 @@ sap.ui.define(function() {
12
12
  /**
13
13
  * Defines the different ready states for a WebSocket connection.
14
14
  *
15
- * @version 1.97.1
15
+ * @version 1.100.0
16
16
  * @enum {int}
17
17
  * @public
18
18
  * @alias sap.ui.core.ws.ReadyState
@@ -21,7 +21,7 @@ sap.ui.define(['./WebSocket', "sap/base/Log"],
21
21
  * @class WebSocket class implementing the pcp-protocol.
22
22
  * @extends sap.ui.core.ws.WebSocket
23
23
  * @author SAP SE
24
- * @version 1.97.1
24
+ * @version 1.100.0
25
25
  * @alias sap.ui.core.ws.SapPcpWebSocket
26
26
  */
27
27
  var SapPcpWebSocket = WebSocket.extend("sap.ui.core.ws.SapPcpWebSocket", /** @lends sap.ui.core.ws.SapPcpWebSocket.prototype */ {
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @class Basic WebSocket class.
27
27
  * @extends sap.ui.base.EventProvider
28
28
  * @author SAP SE
29
- * @version 1.97.1
29
+ * @version 1.100.0
30
30
  * @alias sap.ui.core.ws.WebSocket
31
31
  */
32
32
  var WebSocket = EventProvider.extend("sap.ui.core.ws.WebSocket", /** @lends sap.ui.core.ws.WebSocket.prototype */ {
@@ -33,7 +33,7 @@ sap.ui.define('sap/ui/debug/ControlTree', [
33
33
  * @class Control Tree used for the Debug Environment
34
34
  * @extends sap.ui.base.EventProvider
35
35
  * @author Martin Schaus, Frank Weigel
36
- * @version 1.97.1
36
+ * @version 1.100.0
37
37
  * @alias sap.ui.debug.ControlTree
38
38
  * @private
39
39
  */
@@ -16,7 +16,7 @@ sap.ui.define('sap/ui/debug/DebugEnv', ['sap/ui/base/Interface', './ControlTree'
16
16
  * @class Central Class for the Debug Environment
17
17
  *
18
18
  * @author Martin Schaus, Frank Weigel
19
- * @version 1.97.1
19
+ * @version 1.100.0
20
20
  * @private
21
21
  * @alias sap.ui.debug.DebugEnv
22
22
  */
@@ -13,8 +13,8 @@ sap.ui.define('sap/ui/debug/LogViewer', function() {
13
13
  * Constructs a LogViewer in the given window, embedded into the given DOM element.
14
14
  * If the DOM element doesn't exist, a DIV is created.
15
15
  *
16
- * @param {Window} oTargetWindow the window where the log will be displayed in
17
- * @param {sRootId} sRootId id of the top level element that will contain the log entries
16
+ * @param {Window} oWindow The window where the log will be displayed in
17
+ * @param {sRootId} sRootId ID of the top level element that will contain the log entries
18
18
  *
19
19
  * @class HTML LogViewer that displays all entries of a Logger, as long as they match a filter and a minimal log level
20
20
  * @alias sap.ui.debug.LogViewer