@openui5/sap.ui.core 1.103.1 → 1.106.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 (405) hide show
  1. package/.reuse/dep5 +35 -15
  2. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  3. package/THIRDPARTY.txt +64 -21
  4. package/package.json +1 -1
  5. package/src/jquery.sap.dom.js +10 -10
  6. package/src/jquery.sap.global.js +24 -216
  7. package/src/jquery.sap.history.js +1 -1
  8. package/src/jquery.sap.properties.js +2 -2
  9. package/src/jquery.sap.resources.js +1 -1
  10. package/src/jquery.sap.script.js +1 -1
  11. package/src/jquery.sap.storage.js +4 -4
  12. package/src/sap/base/i18n/ResourceBundle.js +7 -11
  13. package/src/sap/base/util/LoaderExtensions.js +69 -61
  14. package/src/sap/base/util/ObjectPath.js +1 -1
  15. package/src/sap/base/util/Properties.js +1 -1
  16. package/src/sap/base/util/fetch.js +228 -0
  17. package/src/sap/base/util/mixedFetch.js +69 -0
  18. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  19. package/src/sap/base/util/restricted/_castArray.js +1 -1
  20. package/src/sap/base/util/restricted/_compact.js +1 -1
  21. package/src/sap/base/util/restricted/_curry.js +1 -1
  22. package/src/sap/base/util/restricted/_debounce.js +1 -1
  23. package/src/sap/base/util/restricted/_difference.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_flatten.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_intersection.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  37. package/src/sap/base/util/restricted/_isNil.js +1 -1
  38. package/src/sap/base/util/restricted/_max.js +1 -1
  39. package/src/sap/base/util/restricted/_merge.js +1 -1
  40. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  41. package/src/sap/base/util/restricted/_min.js +1 -1
  42. package/src/sap/base/util/restricted/_omit.js +1 -1
  43. package/src/sap/base/util/restricted/_pick.js +1 -1
  44. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  45. package/src/sap/base/util/restricted/_throttle.js +1 -1
  46. package/src/sap/base/util/restricted/_toArray.js +1 -1
  47. package/src/sap/base/util/restricted/_union.js +1 -1
  48. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  49. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  50. package/src/sap/base/util/restricted/_uniq.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  53. package/src/sap/base/util/restricted/_without.js +1 -1
  54. package/src/sap/base/util/restricted/_xor.js +1 -1
  55. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  56. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  59. package/src/sap/base/util/syncFetch.js +66 -0
  60. package/src/sap/ui/Device.js +5 -5
  61. package/src/sap/ui/Global.js +7 -14
  62. package/src/sap/ui/VersionInfo.js +57 -54
  63. package/src/sap/ui/base/BindingInfo.js +198 -0
  64. package/src/sap/ui/base/DataType.js +1 -1
  65. package/src/sap/ui/base/Event.js +2 -2
  66. package/src/sap/ui/base/EventProvider.js +2 -2
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +209 -979
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
  70. package/src/sap/ui/base/ManagedObjectObserver.js +2 -2
  71. package/src/sap/ui/base/Metadata.js +1 -1
  72. package/src/sap/ui/base/Object.js +1 -1
  73. package/src/sap/ui/base/ObjectPool.js +1 -1
  74. package/src/sap/ui/core/.library +72 -50
  75. package/src/sap/ui/core/AccessKeysEnablement.js +173 -0
  76. package/src/sap/ui/core/AppCacheBuster.js +65 -51
  77. package/src/sap/ui/core/BusyIndicator.js +1 -1
  78. package/src/sap/ui/core/Component.js +52 -25
  79. package/src/sap/ui/core/ComponentContainer.js +1 -1
  80. package/src/sap/ui/core/ComponentMetadata.js +16 -23
  81. package/src/sap/ui/core/ComponentSupport.js +1 -1
  82. package/src/sap/ui/core/Configuration.js +598 -358
  83. package/src/sap/ui/core/Control.js +1 -1
  84. package/src/sap/ui/core/Core.js +126 -185
  85. package/src/sap/ui/core/CustomData.js +1 -1
  86. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  87. package/src/sap/ui/core/Element.js +68 -4
  88. package/src/sap/ui/core/ElementMetadata.js +6 -4
  89. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  90. package/src/sap/ui/core/EventBus.js +1 -1
  91. package/src/sap/ui/core/ExtensionPoint.js +2 -2
  92. package/src/sap/ui/core/FocusHandler.js +84 -39
  93. package/src/sap/ui/core/Fragment.js +1 -1
  94. package/src/sap/ui/core/HTML.js +1 -1
  95. package/src/sap/ui/core/History.js +1 -1
  96. package/src/sap/ui/core/Icon.js +1 -1
  97. package/src/sap/ui/core/IconPool.js +8 -8
  98. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  99. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  100. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  101. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  102. package/src/sap/ui/core/InvisibleText.js +4 -1
  103. package/src/sap/ui/core/Item.js +1 -1
  104. package/src/sap/ui/core/LabelEnablement.js +1 -1
  105. package/src/sap/ui/core/LayoutData.js +1 -1
  106. package/src/sap/ui/core/ListItem.js +1 -1
  107. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  108. package/src/sap/ui/core/Locale.js +1 -1
  109. package/src/sap/ui/core/LocaleData.js +8 -51
  110. package/src/sap/ui/core/Manifest.js +3 -5
  111. package/src/sap/ui/core/Message.js +1 -1
  112. package/src/sap/ui/core/Popup.js +13 -8
  113. package/src/sap/ui/core/RenderManager.js +17 -21
  114. package/src/sap/ui/core/Renderer.js +1 -1
  115. package/src/sap/ui/core/ResizeHandler.js +28 -49
  116. package/src/sap/ui/core/ScrollBar.js +1 -1
  117. package/src/sap/ui/core/SeparatorItem.js +1 -1
  118. package/src/sap/ui/core/Title.js +1 -1
  119. package/src/sap/ui/core/TooltipBase.js +12 -13
  120. package/src/sap/ui/core/UIArea.js +13 -12
  121. package/src/sap/ui/core/UIComponent.js +3 -3
  122. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  123. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  124. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  125. package/src/sap/ui/core/XMLComposite.js +5 -2
  126. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  127. package/src/sap/ui/core/XMLTemplateProcessor.js +7 -7
  128. package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
  129. package/src/sap/ui/core/_IconRegistry.js +66 -55
  130. package/src/sap/ui/core/cache/CacheManager.js +20 -16
  131. package/src/sap/ui/core/cache/CacheManagerNOP.js +5 -2
  132. package/src/sap/ui/core/cache/LRUPersistentCache.js +15 -8
  133. package/src/sap/ui/core/cldr/en.json +0 -1
  134. package/src/sap/ui/core/cldr/es_BO.json +3 -3
  135. package/src/sap/ui/core/cldr/es_CL.json +3 -3
  136. package/src/sap/ui/core/cldr/es_MX.json +3 -3
  137. package/src/sap/ui/core/cldr/es_PE.json +3 -3
  138. package/src/sap/ui/core/cldr/es_UY.json +3 -3
  139. package/src/sap/ui/core/cldr/es_VE.json +2 -2
  140. package/src/sap/ui/core/date/Buddhist.js +15 -13
  141. package/src/sap/ui/core/date/Japanese.js +0 -6
  142. package/src/sap/ui/core/date/UniversalDate.js +144 -34
  143. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  144. package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
  145. package/src/sap/ui/core/dnd/DragAndDrop.js +13 -9
  146. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  147. package/src/sap/ui/core/dnd/DragDropInfo.js +3 -3
  148. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  149. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  150. package/src/sap/ui/core/format/DateFormat.js +36 -9
  151. package/src/sap/ui/core/format/NumberFormat.js +92 -26
  152. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  153. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  154. package/src/sap/ui/core/library.js +44 -3
  155. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  156. package/src/sap/ui/core/message/Message.js +1 -1
  157. package/src/sap/ui/core/message/MessageManager.js +1 -1
  158. package/src/sap/ui/core/message/MessageParser.js +1 -1
  159. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  160. package/src/sap/ui/core/messagebundle.properties +2 -0
  161. package/src/sap/ui/core/messagebundle_ar.properties +54 -53
  162. package/src/sap/ui/core/messagebundle_bg.properties +54 -53
  163. package/src/sap/ui/core/messagebundle_ca.properties +28 -27
  164. package/src/sap/ui/core/messagebundle_cs.properties +37 -36
  165. package/src/sap/ui/core/messagebundle_cy.properties +57 -56
  166. package/src/sap/ui/core/messagebundle_da.properties +53 -52
  167. package/src/sap/ui/core/messagebundle_de.properties +54 -53
  168. package/src/sap/ui/core/messagebundle_el.properties +46 -45
  169. package/src/sap/ui/core/messagebundle_en.properties +57 -56
  170. package/src/sap/ui/core/messagebundle_en_GB.properties +57 -56
  171. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_es.properties +42 -41
  175. package/src/sap/ui/core/messagebundle_es_MX.properties +54 -53
  176. package/src/sap/ui/core/messagebundle_et.properties +51 -50
  177. package/src/sap/ui/core/messagebundle_fi.properties +48 -47
  178. package/src/sap/ui/core/messagebundle_fr.properties +37 -36
  179. package/src/sap/ui/core/messagebundle_fr_CA.properties +22 -21
  180. package/src/sap/ui/core/messagebundle_hi.properties +42 -41
  181. package/src/sap/ui/core/messagebundle_hr.properties +55 -54
  182. package/src/sap/ui/core/messagebundle_hu.properties +56 -55
  183. package/src/sap/ui/core/messagebundle_id.properties +55 -54
  184. package/src/sap/ui/core/messagebundle_it.properties +55 -54
  185. package/src/sap/ui/core/messagebundle_iw.properties +55 -54
  186. package/src/sap/ui/core/messagebundle_ja.properties +48 -47
  187. package/src/sap/ui/core/messagebundle_kk.properties +41 -40
  188. package/src/sap/ui/core/messagebundle_ko.properties +21 -20
  189. package/src/sap/ui/core/messagebundle_lt.properties +55 -54
  190. package/src/sap/ui/core/messagebundle_lv.properties +55 -54
  191. package/src/sap/ui/core/messagebundle_ms.properties +52 -51
  192. package/src/sap/ui/core/messagebundle_nl.properties +53 -52
  193. package/src/sap/ui/core/messagebundle_no.properties +53 -52
  194. package/src/sap/ui/core/messagebundle_pl.properties +52 -51
  195. package/src/sap/ui/core/messagebundle_pt.properties +54 -53
  196. package/src/sap/ui/core/messagebundle_pt_PT.properties +55 -54
  197. package/src/sap/ui/core/messagebundle_ro.properties +56 -55
  198. package/src/sap/ui/core/messagebundle_ru.properties +52 -51
  199. package/src/sap/ui/core/messagebundle_sh.properties +57 -56
  200. package/src/sap/ui/core/messagebundle_sk.properties +54 -53
  201. package/src/sap/ui/core/messagebundle_sl.properties +56 -55
  202. package/src/sap/ui/core/messagebundle_sv.properties +52 -51
  203. package/src/sap/ui/core/messagebundle_th.properties +25 -24
  204. package/src/sap/ui/core/messagebundle_tr.properties +56 -55
  205. package/src/sap/ui/core/messagebundle_uk.properties +55 -54
  206. package/src/sap/ui/core/messagebundle_vi.properties +56 -55
  207. package/src/sap/ui/core/messagebundle_zh_CN.properties +55 -54
  208. package/src/sap/ui/core/messagebundle_zh_TW.properties +55 -54
  209. package/src/sap/ui/core/mvc/Controller.js +17 -12
  210. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  211. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  212. package/src/sap/ui/core/mvc/JSView.js +2 -2
  213. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  214. package/src/sap/ui/core/mvc/View.js +7 -7
  215. package/src/sap/ui/core/mvc/XMLView.js +1 -2
  216. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  217. package/src/sap/ui/core/plugin/LessSupport.js +16 -14
  218. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -1
  219. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  220. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  221. package/src/sap/ui/core/routing/Router.js +4 -4
  222. package/src/sap/ui/core/routing/async/TargetCache.js +4 -0
  223. package/src/sap/ui/core/rules/App.support.js +11 -13
  224. package/src/sap/ui/core/rules/Config.support.js +14 -14
  225. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  226. package/src/sap/ui/core/rules/Model.support.js +8 -8
  227. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  228. package/src/sap/ui/core/rules/Theming.support.js +8 -8
  229. package/src/sap/ui/core/rules/View.support.js +20 -13
  230. package/src/sap/ui/core/search/OpenSearchProvider.js +25 -12
  231. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  232. package/src/sap/ui/core/service/Service.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  234. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  235. package/src/sap/ui/core/support/Hotkeys.js +2 -3
  236. package/src/sap/ui/core/support/Plugin.js +1 -1
  237. package/src/sap/ui/core/support/Support.js +3 -4
  238. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Debugging.js +4 -4
  240. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  241. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  243. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  244. package/src/sap/ui/core/support/plugins/TechInfo.js +46 -33
  245. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  246. package/src/sap/ui/core/support/plugins/ViewInfo.js +3 -4
  247. package/src/sap/ui/core/support/support.html +1 -1
  248. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +3 -3
  249. package/src/sap/ui/core/themes/base/Icon.less +4 -0
  250. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
  251. package/src/sap/ui/core/themes/base/base.less +26 -26
  252. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  253. package/src/sap/ui/core/themes/base/global.less +5 -1
  254. package/src/sap/ui/core/themes/base/shared.less +6 -0
  255. package/src/sap/ui/core/theming/Parameters.js +52 -53
  256. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  257. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  258. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  259. package/src/sap/ui/core/tmpl/Template.js +7 -5
  260. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  261. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  262. package/src/sap/ui/core/util/Export.js +1 -1
  263. package/src/sap/ui/core/util/ExportCell.js +1 -1
  264. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  265. package/src/sap/ui/core/util/ExportRow.js +1 -1
  266. package/src/sap/ui/core/util/ExportType.js +1 -1
  267. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  268. package/src/sap/ui/core/util/File.js +1 -1
  269. package/src/sap/ui/core/util/LibraryInfo.js +61 -42
  270. package/src/sap/ui/core/util/MockServer.js +45 -71
  271. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  272. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
  273. package/src/sap/ui/core/util/XMLPreprocessor.js +3 -3
  274. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -4
  275. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  276. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  277. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  278. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  279. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  280. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  281. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  282. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  283. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  284. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  285. package/src/sap/ui/debug/ControlTree.js +1 -1
  286. package/src/sap/ui/debug/DebugEnv.js +1 -1
  287. package/src/sap/ui/debug/PropertyList.css +1 -31
  288. package/src/sap/ui/debug/PropertyList.js +6 -240
  289. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  290. package/src/sap/ui/dom/jquery/control.js +1 -0
  291. package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
  292. package/src/sap/ui/model/ClientModel.js +1 -1
  293. package/src/sap/ui/model/CompositeDataState.js +1 -1
  294. package/src/sap/ui/model/CompositeType.js +1 -1
  295. package/src/sap/ui/model/Context.js +3 -0
  296. package/src/sap/ui/model/ContextBinding.js +1 -1
  297. package/src/sap/ui/model/DataState.js +3 -3
  298. package/src/sap/ui/model/ListBinding.js +2 -2
  299. package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
  300. package/src/sap/ui/model/MetaModel.js +1 -1
  301. package/src/sap/ui/model/Model.js +16 -5
  302. package/src/sap/ui/model/SelectionModel.js +1 -1
  303. package/src/sap/ui/model/SimpleType.js +2 -2
  304. package/src/sap/ui/model/Sorter.js +2 -2
  305. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  306. package/src/sap/ui/model/Type.js +1 -1
  307. package/src/sap/ui/model/_Helper.js +3 -1
  308. package/src/sap/ui/model/analytics/odata4analytics.js +2 -2
  309. package/src/sap/ui/model/base/ManagedObjectModel.js +2 -2
  310. package/src/sap/ui/model/json/JSONModel.js +2 -2
  311. package/src/sap/ui/model/message/MessageModel.js +1 -1
  312. package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
  313. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  314. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  315. package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
  316. package/src/sap/ui/model/odata/ODataMetadata.js +6 -3
  317. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  318. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +459 -268
  319. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  320. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  321. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  322. package/src/sap/ui/model/odata/type/Date.js +1 -1
  323. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  324. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  325. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  326. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  327. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  328. package/src/sap/ui/model/odata/type/Double.js +1 -1
  329. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  330. package/src/sap/ui/model/odata/type/Int.js +1 -1
  331. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  332. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  333. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  334. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  335. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  336. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  337. package/src/sap/ui/model/odata/type/Single.js +1 -1
  338. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  339. package/src/sap/ui/model/odata/type/String.js +1 -1
  340. package/src/sap/ui/model/odata/type/Time.js +1 -1
  341. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  342. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  343. package/src/sap/ui/model/odata/v2/Context.js +5 -5
  344. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  345. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +5 -2
  346. package/src/sap/ui/model/odata/v2/ODataListBinding.js +26 -1
  347. package/src/sap/ui/model/odata/v2/ODataModel.js +164 -125
  348. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -2
  349. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
  350. package/src/sap/ui/model/odata/v4/Context.js +169 -79
  351. package/src/sap/ui/model/odata/v4/ODataBinding.js +51 -12
  352. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +111 -92
  353. package/src/sap/ui/model/odata/v4/ODataListBinding.js +206 -150
  354. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -10
  355. package/src/sap/ui/model/odata/v4/ODataModel.js +249 -28
  356. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +33 -18
  357. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -11
  358. package/src/sap/ui/model/odata/v4/ODataUtils.js +7 -4
  359. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +142 -35
  360. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +167 -16
  361. package/src/sap/ui/model/odata/v4/lib/_Cache.js +388 -188
  362. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
  363. package/src/sap/ui/model/odata/v4/lib/_Helper.js +119 -43
  364. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
  365. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +13 -6
  366. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  367. package/src/sap/ui/model/type/Boolean.js +1 -1
  368. package/src/sap/ui/model/type/Currency.js +2 -2
  369. package/src/sap/ui/model/type/Date.js +1 -1
  370. package/src/sap/ui/model/type/DateInterval.js +1 -1
  371. package/src/sap/ui/model/type/DateTime.js +1 -1
  372. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  373. package/src/sap/ui/model/type/FileSize.js +1 -1
  374. package/src/sap/ui/model/type/Float.js +1 -1
  375. package/src/sap/ui/model/type/Integer.js +1 -1
  376. package/src/sap/ui/model/type/String.js +2 -2
  377. package/src/sap/ui/model/type/Time.js +1 -1
  378. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  379. package/src/sap/ui/model/type/Unit.js +1 -1
  380. package/src/sap/ui/model/xml/XMLModel.js +4 -2
  381. package/src/sap/ui/performance/trace/FESR.js +27 -24
  382. package/src/sap/ui/performance/trace/Interaction.js +66 -16
  383. package/src/sap/ui/qunit/QUnitUtils.js +1 -2
  384. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  385. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  386. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  387. package/src/sap/ui/test/Opa5.js +1 -1
  388. package/src/sap/ui/test/OpaBuilder.js +1 -1
  389. package/src/sap/ui/test/TestUtils.js +35 -2
  390. package/src/sap/ui/test/actions/Press.js +7 -0
  391. package/src/sap/ui/test/generic/TestBase.js +1 -1
  392. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +2 -3
  393. package/src/sap/ui/test/matchers/AggregationFilled.js +2 -3
  394. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +2 -3
  395. package/src/sap/ui/test/matchers/Matcher.js +9 -11
  396. package/src/sap/ui/test/opaQunit.js +15 -9
  397. package/src/sap/ui/test/pipelines/ActionPipeline.js +2 -3
  398. package/src/sap/ui/test/pipelines/MatcherPipeline.js +2 -3
  399. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -3
  400. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  401. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  402. package/src/sap/ui/thirdparty/URI.js +8 -2
  403. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  404. package/src/sap/ui/util/Storage.js +1 -1
  405. package/src/sap/ui/util/XMLHelper.js +1 -1
@@ -4,8 +4,6 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- /*global XMLHttpRequest, localStorage, alert, document */
8
-
9
7
  /**
10
8
  * Provides base functionality of the SAP jQuery plugin as extension of the jQuery framework.<br/>
11
9
  * See also <a href="http://api.jquery.com/jQuery/">jQuery</a> for details.<br/>
@@ -33,6 +31,7 @@ sap.ui.define([
33
31
 
34
32
  // former sap-ui-core.js dependencies
35
33
  "sap/ui/Device",
34
+ "sap/ui/core/Configuration",
36
35
 
37
36
  "sap/ui/thirdparty/jquery",
38
37
  "sap/ui/thirdparty/jqueryui/jquery-ui-position",
@@ -48,6 +47,7 @@ sap.ui.define([
48
47
  syncXHRFix, LoaderExtensions,
49
48
 
50
49
  Device,
50
+ Configuration,
51
51
 
52
52
  jQuery /*, jqueryUiPosition, ui5loaderAutoconfig, jquerySapStubs, URI, PasteEventFix */) {
53
53
  "use strict";
@@ -64,15 +64,6 @@ sap.ui.define([
64
64
 
65
65
  var _ui5loader = ui5loader._;
66
66
 
67
- // early logging support
68
- var _earlyLogs = [];
69
- function _earlyLog(sLevel, sMessage) {
70
- _earlyLogs.push({
71
- level: sLevel,
72
- message: sMessage
73
- });
74
- }
75
-
76
67
  var oJQVersion = Version(jQuery.fn.jquery);
77
68
 
78
69
  (function() {
@@ -185,190 +176,33 @@ sap.ui.define([
185
176
  syncXHRFix();
186
177
  }
187
178
 
188
- /*
189
- * Merged, raw (un-interpreted) configuration data from the following sources
190
- * (last one wins)
191
- * <ol>
192
- * <li>global configuration object <code>window["sap-ui-config"]</code> (could be either a string/url or a conffiguration object)</li>
193
- * <li><code>data-sap-ui-config</code> attribute of the bootstrap script tag</li>
194
- * <li>other <code>data-sap-ui-<i>xyz</i></code> attributes of the bootstrap tag</li>
195
- * </ol>
196
- */
197
- var oCfgData = window["sap-ui-config"] = (function() {
198
- function normalize(o) {
199
- for (var i in o) {
200
- var v = o[i];
201
- var il = i.toLowerCase();
202
- if ( !o.hasOwnProperty(il) ) {
203
- o[il] = v;
204
- delete o[i];
205
- }
206
- }
207
- return o;
208
- }
209
-
210
- function loadExternalConfig(url) {
211
- var sCfgFile = "sap-ui-config.json",
212
- config;
213
-
214
- Log.warning("Loading external bootstrap configuration from \"" + url + "\". This is a design time feature and not for productive usage!");
215
- if (url !== sCfgFile) {
216
- Log.warning("The external bootstrap configuration file should be named \"" + sCfgFile + "\"!");
217
- }
218
-
219
- var xhr = new XMLHttpRequest();
220
- xhr.addEventListener('load', function(e) {
221
- if ( xhr.status === 200 && xhr.responseText ) {
222
- try {
223
- config = JSON.parse( xhr.responseText );
224
- } catch (error) {
225
- Log.error("Parsing externalized bootstrap configuration from \"" + url + "\" failed! Reason: " + error + "!");
226
- }
227
- } else {
228
- Log.error("Loading externalized bootstrap configuration from \"" + url + "\" failed! Response: " + xhr.status + "!");
229
- }
230
- });
231
- xhr.open('GET', url, false);
232
- try {
233
- xhr.send();
234
- } catch (error) {
235
- Log.error("Loading externalized bootstrap configuration from \"" + url + "\" failed! Reason: " + error + "!");
236
- }
237
-
238
- config = config || {};
239
- config.__loaded = true; // mark config as 'being loaded', needed to detect sync call
240
-
241
- return config;
242
- }
243
-
244
- function getInfo() {
245
- function check(oScript, rUrlPattern) {
246
- var sUrl = oScript && oScript.getAttribute("src");
247
- var oMatch = rUrlPattern.exec(sUrl);
248
- if ( oMatch ) {
249
- return {
250
- tag: oScript,
251
- url: sUrl,
252
- resourceRoot: oMatch[1] || ""
253
- };
254
- }
255
- }
256
-
257
- var rResources = /^((?:.*\/)?resources\/)/,
258
- rBootScripts, aScripts, i, oResult;
259
-
260
- // Prefer script tags which have the sap-ui-bootstrap ID
261
- // This prevents issues when multiple script tags point to files named
262
- // "sap-ui-core.js", for example when using the cache buster for UI5 resources
263
- oResult = check(document.querySelector('SCRIPT[src][id=sap-ui-bootstrap]'), rResources);
264
-
265
- if ( !oResult ) {
266
- aScripts = document.querySelectorAll('SCRIPT[src]');
267
- rBootScripts = /^([^?#]*\/)?(?:sap-ui-(?:core|custom|boot|merged)(?:-[^?#/]*)?|jquery.sap.global|ui5loader(?:-autoconfig)?)\.js(?:[?#]|$)/;
268
- for ( i = 0; i < aScripts.length; i++ ) {
269
- oResult = check(aScripts[i], rBootScripts);
270
- if ( oResult ) {
271
- break;
272
- }
273
- }
274
- }
275
-
276
- return oResult || {};
277
- }
278
-
279
- var _oBootstrap = getInfo(),
280
- oScriptTag = _oBootstrap.tag,
281
- oCfg = window["sap-ui-config"];
282
-
283
- // load the configuration from an external JSON file
284
- if (typeof oCfg === "string") {
285
- oCfg = loadExternalConfig(oCfg);
286
- }
287
-
288
- oCfg = normalize(oCfg || {});
289
- oCfg.resourceroots = oCfg.resourceroots || {};
290
- oCfg.themeroots = oCfg.themeroots || {};
291
-
292
- // map loadall mode to sync preload mode
293
- if ( /(^|\/)(sap-?ui5|[^\/]+-all).js([?#]|$)/.test(_oBootstrap.url) ) {
294
- Log.error(
295
- "The all-in-one file 'sap-ui-core-all.js' has been abandoned in favour of standard preloads." +
296
- " Please migrate to sap-ui-core.js and consider to use async preloads.");
297
- oCfg.preload = 'sync';
298
- }
299
-
300
- // if a script tag has been identified, collect its configuration info
301
- if ( oScriptTag ) {
302
- // evaluate the config attribute first - if present
303
- var sConfig = oScriptTag.getAttribute("data-sap-ui-config");
304
- if ( sConfig ) {
305
- try {
306
- var oParsedConfig;
307
- try {
308
- // first try to parse the config as a plain JSON
309
- oParsedConfig = JSON.parse("{" + sConfig + "}");
310
- } catch (e) {
311
- // if the JSON.parse fails, we fall back to the more lenient "new Function" eval for compatibility reasons
312
- Log.error("JSON.parse on the data-sap-ui-config attribute failed. Please check the config for JSON syntax violations.");
313
- /*eslint-disable no-new-func */
314
- oParsedConfig = (new Function("return {" + sConfig + "};"))();
315
- /*eslint-enable no-new-func */
316
- }
317
- Object.assign(oCfg, normalize(oParsedConfig));
318
- } catch (e) {
319
- // no log yet, how to report this error?
320
- Log.error("failed to parse data-sap-ui-config attribute: " + (e.message || e));
321
- }
322
- }
323
-
324
- // merge with any existing "data-sap-ui-" attributes
325
- for (var i = 0; i < oScriptTag.attributes.length; i++) {
326
- var attr = oScriptTag.attributes[i];
327
- var m = attr.name.match(/^data-sap-ui-(.*)$/);
328
- if ( m ) {
329
- // the following (deactivated) conversion would implement multi-word names like "resource-roots"
330
- m = m[1].toLowerCase(); // .replace(/\-([a-z])/g, function(s,w) { return w.toUpperCase(); })
331
- if ( m === 'resourceroots' ) {
332
- // merge map entries instead of overwriting map
333
- Object.assign(oCfg[m], JSON.parse(attr.value));
334
- } else if ( m === 'theme-roots' ) {
335
- // merge map entries, but rename to camelCase
336
- Object.assign(oCfg.themeroots, JSON.parse(attr.value));
337
- } else if ( m !== 'config' ) {
338
- oCfg[m] = attr.value;
339
- }
340
- }
341
- }
179
+ // Normalize configuration to stay compatible
180
+ // Previously the sap/ui/core/_ConfigurationProvider code (incl. normalization)
181
+ // was executed here. Since we moved the coding to an own module which is
182
+ // a dependency of sap/ui/core/Configuration it's possible, that someone requires
183
+ // the configuration and normalizes the window['sap-ui-config'] object at an
184
+ // earlier point in time. To avoid, that someone adds configuration parameters
185
+ // to the window object inbetween normalization done by _ConfigurationProvider
186
+ // and the usage within jquery.sap.global we normalize here again.
187
+ var oCfg = window["sap-ui-config"];
188
+ for (var sKey in oCfg) {
189
+ var vValue = oCfg[sKey];
190
+ var sLowerCaseKey = sKey.toLowerCase();
191
+ if ( !oCfg.hasOwnProperty(sLowerCaseKey) ) {
192
+ oCfg[sLowerCaseKey] = vValue;
193
+ delete oCfg[sKey];
342
194
  }
343
-
344
- return oCfg;
345
- }());
346
-
347
- var syncCallBehavior = 0; // ignore
348
- if ( oCfgData['xx-nosync'] === 'warn' || /(?:\?|&)sap-ui-xx-nosync=(?:warn)/.exec(window.location.search) ) {
349
- syncCallBehavior = 1;
350
- }
351
- if ( oCfgData['xx-nosync'] === true || oCfgData['xx-nosync'] === 'true' || /(?:\?|&)sap-ui-xx-nosync=(?:x|X|true)/.exec(window.location.search) ) {
352
- syncCallBehavior = 2;
353
- }
354
-
355
- ui5loader.config({
356
- reportSyncCalls: syncCallBehavior
357
- });
358
-
359
- if ( syncCallBehavior && oCfgData.__loaded ) {
360
- _earlyLog(syncCallBehavior === 1 ? "warning" : "error", "[nosync]: configuration loaded via sync XHR");
361
195
  }
362
196
 
363
197
  // check whether noConflict must be used...
364
- if ( oCfgData.noconflict === true || oCfgData.noconflict === "true" || oCfgData.noconflict === "x" ) {
198
+ if ( Configuration.getValue("noConflict") ) {
365
199
  jQuery.noConflict();
366
200
  }
367
201
 
368
202
  /**
369
203
  * Root Namespace for the jQuery plug-in provided by SAP SE.
370
204
  *
371
- * @version 1.103.1
205
+ * @version 1.106.0
372
206
  * @namespace
373
207
  * @public
374
208
  * @static
@@ -958,24 +792,6 @@ sap.ui.define([
958
792
  }
959
793
  };
960
794
 
961
- // evaluate configuration
962
- oCfgData.loglevel = (function() {
963
- var m = /(?:\?|&)sap-ui-log(?:L|-l)evel=([^&]*)/.exec(window.location.search);
964
- return m && m[1];
965
- }()) || oCfgData.loglevel;
966
- if ( oCfgData.loglevel ) {
967
- Log.setLevel(Log.Level[oCfgData.loglevel.toUpperCase()] || parseInt(oCfgData.loglevel));
968
- } else if (!window["sap-ui-optimized"]) {
969
- Log.setLevel(Log.Level.DEBUG);
970
- }
971
-
972
- Log.info("SAP Logger started.");
973
- // log early logs
974
- jQuery.each(_earlyLogs, function(i,e) {
975
- Log[e.level](e.message);
976
- });
977
- _earlyLogs = null;
978
-
979
795
  // ------------------------------------------- OBJECT --------------------------------------------------------
980
796
 
981
797
  /**
@@ -1091,7 +907,7 @@ sap.ui.define([
1091
907
  iEndCreate = isNaN(iNoCreates) ? 0 : l - iNoCreates,
1092
908
  i;
1093
909
 
1094
- if ( syncCallBehavior && oContext === window ) {
910
+ if ( Configuration.getSyncCallBehavior() && oContext === window ) {
1095
911
  Log.error("[nosync] getObject called to retrieve global name '" + sName + "'");
1096
912
  }
1097
913
 
@@ -1490,7 +1306,7 @@ sap.ui.define([
1490
1306
  * @private
1491
1307
  */
1492
1308
  var oLog = _ui5loader.logger = Log.getLogger("sap.ui.ModuleSystem",
1493
- (/sap-ui-xx-debug(M|-m)odule(L|-l)oading=(true|x|X)/.test(location.search) || oCfgData["xx-debugModuleLoading"]) ? Log.Level.DEBUG : Math.min(Log.getLevel(), Log.Level.INFO)
1309
+ (/sap-ui-xx-debug(M|-m)odule(L|-l)oading=(true|x|X)/.test(location.search) || Configuration.getValue("xx-debugModuleLoading")) ? Log.Level.DEBUG : Math.min(Log.getLevel(), Log.Level.INFO)
1494
1310
  ),
1495
1311
 
1496
1312
  mKnownSubtypes = LoaderExtensions.getKnownSubtypes(),
@@ -1772,14 +1588,6 @@ sap.ui.define([
1772
1588
  */
1773
1589
  jQuery.sap.getAllDeclaredModules = LoaderExtensions.getAllRequiredModules;
1774
1590
 
1775
-
1776
- // take resource roots from configuration
1777
- var paths = {};
1778
- for ( var n in oCfgData.resourceroots ) {
1779
- paths[ui5ToRJS(n)] = oCfgData.resourceroots[n] || ".";
1780
- }
1781
- ui5loader.config({paths: paths});
1782
-
1783
1591
  var mUrlPrefixes = _ui5loader.getUrlPrefixes();
1784
1592
  // dump the URL prefixes
1785
1593
  oLog.info("URL prefixes set to:");
@@ -2131,9 +1939,9 @@ sap.ui.define([
2131
1939
  // --------------------- support hooks ---------------------------------------------------------
2132
1940
 
2133
1941
  // TODO should be in core, but then the 'callback' could not be implemented
2134
- if ( !(oCfgData.productive === true || oCfgData.productive === "true" || oCfgData.productive === "x") ) {
2135
- SupportHotkeys.init(getModuleSystemInfo, oCfgData);
2136
- TestRecorderHotkeyListener.init(getModuleSystemInfo, oCfgData);
1942
+ if ( !Configuration.getValue("productive") ) {
1943
+ SupportHotkeys.init(getModuleSystemInfo);
1944
+ TestRecorderHotkeyListener.init(getModuleSystemInfo);
2137
1945
  }
2138
1946
 
2139
1947
  // -----------------------------------------------------------------------
@@ -217,7 +217,7 @@ sap.ui.define([
217
217
  * @param {function} fn The function that will be called when the identifier is matched with the hash.
218
218
  * @param {object} [oThis] If oThis is provided, the fn function's this keyword will be bound to this object.
219
219
  *
220
- * @returns {object} It returns the this object to enable chaining.
220
+ * @returns {this} It returns the this object to enable chaining.
221
221
  *
222
222
  * @function
223
223
  * @public
@@ -67,7 +67,7 @@ sap.ui.define(['jquery.sap.global', 'sap/base/util/Properties'],
67
67
  * {@link #setProperty} to store or change a value for a key and {@link #getKeys}
68
68
  * can be used to retrieve an array of all keys that are currently stored in the collection.
69
69
  *
70
- * @version 1.103.1
70
+ * @version 1.106.0
71
71
  * @since 0.9.0
72
72
  * @name jQuery.sap.util.Properties
73
73
  * @public
@@ -83,7 +83,7 @@ sap.ui.define(['jquery.sap.global', 'sap/base/util/Properties'],
83
83
  * @param {string} sKey Key to return the value for
84
84
  * @param {string} [sDefaultValue=null] Optional, a default value that will be returned
85
85
  * if the requested key is not in the collection
86
- * @returns {string} Value for the given key or the default value or <code>null</code>
86
+ * @returns {string|null} Value for the given key or the default value or <code>null</code>
87
87
  * if no default value or a falsy default value was given
88
88
  * @public
89
89
  *
@@ -99,7 +99,7 @@ sap.ui.define([
99
99
  * Exception: Fallback for "zh_HK" is "zh_TW" before zh.
100
100
  *
101
101
  * @author SAP SE
102
- * @version 1.103.1
102
+ * @version 1.106.0
103
103
  * @since 0.9.0
104
104
  * @name jQuery.sap.util.ResourceBundle
105
105
  * @public
@@ -267,7 +267,7 @@ sap.ui.define([
267
267
  * Use {@link jQuery.sap.getUriParameters} to create an instance of jQuery.sap.util.UriParameters.
268
268
  *
269
269
  * @author SAP SE
270
- * @version 1.103.1
270
+ * @version 1.106.0
271
271
  * @since 0.9.0
272
272
  * @name jQuery.sap.util.UriParameters
273
273
  * @public
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @param {string} [sIdPrefix] Prefix used for the Ids. If not set a default prefix is used.
38
38
  * @returns {jQuery.sap.storage.Storage}
39
39
  *
40
- * @version 1.103.1
40
+ * @version 1.106.0
41
41
  * @since 0.11.0
42
42
  * @namespace
43
43
  * @public
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  * should be deleted the method {@link #removeAll} should be used.
98
98
  *
99
99
  * @author SAP SE
100
- * @version 1.103.1
100
+ * @version 1.106.0
101
101
  * @since 0.11.0
102
102
  * @public
103
103
  * @name jQuery.sap.storage.Storage
@@ -134,7 +134,7 @@ sap.ui.define([
134
134
  * sStorageKeyPrefix is the id prefix defined for the storage instance (@see jQuery.sap#storage)
135
135
  *
136
136
  * @param {string} sId Id for the state to retrieve
137
- * @return {string} the string from the storage, if the retrieval
137
+ * @return {string|null} the string from the storage, if the retrieval
138
138
  * was successful, and null otherwise
139
139
  * @public
140
140
  * @name jQuery.sap.storage.Storage#get
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * Enumeration of the storage types supported by {@link jQuery.sap.storage.Storage}
202
202
  * @enum {string}
203
203
  * @public
204
- * @version 1.103.1
204
+ * @version 1.106.0
205
205
  * @since 0.11.0
206
206
  */
207
207
  jQuery.sap.storage.Type = Storage.Type;
@@ -320,9 +320,6 @@ sap.ui.define([
320
320
  *
321
321
  * @param {module:sap/base/i18n/ResourceBundle} oCustomBundle an instance of a <code>sap/base/i18n/ResourceBundle</code>
322
322
  * @private
323
- *
324
- * @function
325
- * @name module:sap/base/i18n/ResourceBundle.prototype._enhance
326
323
  */
327
324
  ResourceBundle.prototype._enhance = function(oCustomBundle) {
328
325
  if (oCustomBundle instanceof ResourceBundle) {
@@ -350,9 +347,8 @@ sap.ui.define([
350
347
  * whenever <code>aArgs</code> is given, no matter whether the text contains placeholders or not
351
348
  * and no matter whether <code>aArgs</code> contains a value for <i>n</i> or not.
352
349
  * @param {boolean} [bIgnoreKeyFallback=false] If set, <code>undefined</code> is returned instead of the key string, when the key is not found in any bundle or fallback bundle.
353
- * @returns {string} The value belonging to the key, if found; otherwise the key itself or <code>undefined</code> depending on <code>bIgnoreKeyFallback</code>.
350
+ * @returns {string|undefined} The value belonging to the key, if found; otherwise the key itself or <code>undefined</code> depending on <code>bIgnoreKeyFallback</code>.
354
351
  *
355
- * @function
356
352
  * @public
357
353
  */
358
354
  ResourceBundle.prototype.getText = function(sKey, aArgs, bIgnoreKeyFallback){
@@ -383,7 +379,7 @@ sap.ui.define([
383
379
  * @param {string} sValue the given input value
384
380
  * @param {string} sKey the key within the bundle
385
381
  * @param {array} [aArgs] arguments to format the message
386
- * @returns {string} formatted string, <code>null</code> if sValue is not a string
382
+ * @returns {string|null} formatted string, <code>null</code> if sValue is not a string
387
383
  * @private
388
384
  */
389
385
  ResourceBundle.prototype._formatValue = function(sValue, sKey, aArgs){
@@ -412,7 +408,7 @@ sap.ui.define([
412
408
  * The custom bundles are checked first in reverse order.
413
409
  * @param {string} sKey the key within the bundle
414
410
  * @param {array} [aArgs] arguments to format the message
415
- * @returns {string} the formatted value if found, <code>null</code> otherwise
411
+ * @returns {string|null} the formatted value if found, <code>null</code> otherwise
416
412
  * @private
417
413
  */
418
414
  ResourceBundle.prototype._getTextFromFallback = function(sKey, aArgs){
@@ -451,7 +447,7 @@ sap.ui.define([
451
447
  * The custom bundles are checked first in reverse order.
452
448
  * @param {string} sKey the key within the bundle
453
449
  * @param {array} [aArgs] arguments to format the message
454
- * @returns {string} the formatted value if found, <code>null</code> otherwise
450
+ * @returns {string|null} the formatted value if found, <code>null</code> otherwise
455
451
  * @private
456
452
  */
457
453
  ResourceBundle.prototype._getTextFromProperties = function(sKey, aArgs){
@@ -491,9 +487,8 @@ sap.ui.define([
491
487
  * used after the resource bundle has been loaded.
492
488
  *
493
489
  * @param {string} sKey Key to check
494
- * @returns {boolean} true if the text has been found in the concrete bundle
490
+ * @returns {boolean} Whether the text has been found in the concrete bundle
495
491
  *
496
- * @function
497
492
  * @public
498
493
  */
499
494
  ResourceBundle.prototype.hasText = function(sKey) {
@@ -537,7 +532,8 @@ sap.ui.define([
537
532
  *
538
533
  * @param {module:sap/base/i18n/ResourceBundle} oBundle ResourceBundle to extend
539
534
  * @param {boolean} [bAsync=false] Whether the resource should be loaded asynchronously
540
- * @returns The newly loaded properties (sync mode) or a Promise on the properties (async mode);
535
+ * @returns {module:sap/base/util/Properties|null|Promise<module:sap/base/util/Properties|null>}
536
+ * The newly loaded properties (sync mode) or a Promise on the properties (async mode);
541
537
  * value / Promise fulfillment will be <code>null</code> when the properties for the
542
538
  * next fallback locale should not be loaded or when loading failed or when there
543
539
  * was no more fallback locale
@@ -5,15 +5,17 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- 'sap/ui/thirdparty/jquery',
8
+ 'sap/ui/util/XMLHelper',
9
9
  'sap/base/Log',
10
10
  'sap/base/assert',
11
- 'sap/base/util/extend'
11
+ 'sap/base/util/extend',
12
+ 'sap/base/util/mixedFetch'
12
13
  ], function(
13
- jQuery,
14
+ XMLHelper,
14
15
  Log,
15
16
  assert,
16
- extend
17
+ extend,
18
+ mixedFetch
17
19
  ) {
18
20
  "use strict";
19
21
 
@@ -246,9 +248,7 @@ sap.ui.define([
246
248
  var sType,
247
249
  oData,
248
250
  sUrl,
249
- oError,
250
- oDeferred,
251
- fnDone,
251
+ fnDone = function() {},
252
252
  iSyncCallBehavior;
253
253
 
254
254
  if (LoaderExtensions.notifyResourceLoading) {
@@ -271,44 +271,30 @@ sap.ui.define([
271
271
 
272
272
  assert(/^(xml|html|json|text)$/.test(sType), "type must be one of xml, html, json or text");
273
273
 
274
- oDeferred = mOptions.async ? new jQuery.Deferred() : null;
275
-
276
- function handleData(d, e) {
277
- if (d == null && mOptions.failOnError) {
278
- oError = e || new Error("no data returned for " + sResourceName);
279
- if (mOptions.async) {
280
- oDeferred.reject(oError);
281
- Log.error(oError);
282
- }
283
- if (fnDone) {
284
- fnDone();
285
- }
286
- return null;
287
- }
288
-
289
- if (mOptions.async) {
290
- oDeferred.resolve(d);
291
- }
292
- if (fnDone) {
293
- fnDone();
294
- }
295
- return d;
296
- }
297
-
298
274
  function convertData(d) {
299
- var vConverter = jQuery.ajaxSettings.converters["text " + sType];
300
- if (typeof vConverter === "function") {
301
- d = vConverter(d);
302
- }
303
- return handleData(d);
275
+ switch (sType) {
276
+ case "json":
277
+ return JSON.parse(d);
278
+ case "xml":
279
+ return XMLHelper.parse(d);
280
+ default:
281
+ return d;
282
+ }
304
283
  }
305
284
 
306
285
  oData = sap.ui.loader._.getModuleContent(sResourceName, mOptions.url);
307
286
 
308
287
  if (oData != undefined) {
288
+ // data available
309
289
  oData = convertData(oData);
310
- } else {
311
290
 
291
+ if (mOptions.async) {
292
+ return Promise.resolve(oData);
293
+ } else {
294
+ return oData;
295
+ }
296
+ } else {
297
+ // load data
312
298
  iSyncCallBehavior = sap.ui.loader._.getSyncCallBehavior();
313
299
  if (!mOptions.async && iSyncCallBehavior) {
314
300
  if (iSyncCallBehavior >= 1) { // temp. raise a warning only
@@ -318,34 +304,56 @@ sap.ui.define([
318
304
  }
319
305
  }
320
306
 
321
- jQuery.ajax({
322
- url: sUrl = mOptions.url || sap.ui.loader._.getResourcePath(sResourceName),
323
- async: mOptions.async,
324
- dataType: sType,
325
- headers: mOptions.headers,
326
- success: function(data, textStatus, xhr) {
327
- oData = handleData(data);
328
- },
329
- error: function(xhr, textStatus, error) {
330
- oError = new Error("resource " + sResourceName + " could not be loaded from " + sUrl + ". Check for 'file not found' or parse errors. Reason: " + error);
331
- oError.status = textStatus;
332
- oError.error = error;
333
- oError.statusCode = xhr.status;
334
- oData = handleData(null, oError);
335
- }
336
- });
307
+ var oHeaders = {};
308
+ if (sType) {
309
+ oHeaders["Accept"] = mixedFetch.ContentTypes[sType.toUpperCase()];
310
+ }
337
311
 
338
- }
312
+ sUrl = mOptions.url || sap.ui.loader._.getResourcePath(sResourceName);
313
+
314
+ var pResponse = mixedFetch(sUrl, {
315
+ headers: Object.assign(oHeaders, mOptions.headers)
316
+ }, !mOptions.async)
317
+ .then(function(response) {
318
+ if (response.ok) {
319
+ return response.text().then(function(responseText) {
320
+ return {
321
+ data: convertData(responseText)
322
+ };
323
+ });
324
+ } else {
325
+ var oError = new Error("resource " + sResourceName + " could not be loaded from " + sUrl +
326
+ ". Check for 'file not found' or parse errors. Reason: " + response.statusText || response.status);
327
+ oError.status = response.statusText;
328
+ oError.statusCode = response.status;
329
+ throw oError;
330
+ }
331
+ })
332
+ .catch(function(error) {
333
+ return {
334
+ data: null,
335
+ error: error
336
+ };
337
+ })
338
+ .then(function(oInfo) {
339
+ fnDone();
339
340
 
340
- if (mOptions.async) {
341
- return Promise.resolve(oDeferred);
342
- }
341
+ if (oInfo.data !== null) {
342
+ return oInfo.data;
343
+ } else if (mOptions.failOnError) {
344
+ Log.error(oInfo.error);
345
+ throw oInfo.error;
346
+ } else {
347
+ return null;
348
+ }
349
+ });
343
350
 
344
- if (oError != null && mOptions.failOnError) {
345
- throw oError;
351
+ if (mOptions.async) {
352
+ return pResponse;
353
+ } else {
354
+ return pResponse.unwrap();
355
+ }
346
356
  }
347
-
348
- return oData;
349
357
  };
350
358
 
351
359
  /**
@@ -89,7 +89,7 @@ sap.ui.define([], function() {
89
89
  * @static
90
90
  * @param {string|string[]} vObjectPath Path as string where each name is separated by '.'. Can also be an array of names.
91
91
  * @param {Object} [oRootContext=window] Root context where the path starts
92
- * @returns {any} Returns the value located in the provided path, or <code>undefined</code> if the path does not exist completely.
92
+ * @returns {any|undefined} Returns the value located in the provided path, or <code>undefined</code> if the path does not exist completely.
93
93
  * @example
94
94
  * ObjectPath.get("my.test.module", root) === root.my.test.module
95
95
  * ObjectPath.get(["my", "test", "otherModule"], root) === root.my.test.otherModule
@@ -39,7 +39,7 @@ sap.ui.define(['sap/base/util/LoaderExtensions'], function(LoaderExtensions) {
39
39
  * @param {string} sKey Key to return the value for
40
40
  * @param {string} [sDefaultValue=null] Optional, a default value that will be returned
41
41
  * if the requested key is not in the collection
42
- * @returns {string} Value for the given key or the default value or <code>null</code>
42
+ * @returns {string|null} Value for the given key or the default value or <code>null</code>
43
43
  * if no default value or a falsy default value was given
44
44
  * @public
45
45
  */