@openui5/sap.ui.core 1.92.0 → 1.93.3

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 (318) hide show
  1. package/{.eslintrc → .eslintrc.json} +0 -0
  2. package/.reuse/dep5 +5 -0
  3. package/THIRDPARTY.txt +10 -1
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +5 -1
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +7 -4
  10. package/src/sap/base/i18n/ResourceBundle.js +2 -2
  11. package/src/sap/base/util/Properties.js +4 -1
  12. package/src/sap/base/util/isEmptyObject.js +1 -2
  13. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  14. package/src/sap/base/util/restricted/_castArray.js +1 -1
  15. package/src/sap/base/util/restricted/_compact.js +1 -1
  16. package/src/sap/base/util/restricted/_curry.js +1 -1
  17. package/src/sap/base/util/restricted/_debounce.js +1 -1
  18. package/src/sap/base/util/restricted/_difference.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_flatten.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_intersection.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isNil.js +1 -1
  33. package/src/sap/base/util/restricted/_max.js +1 -1
  34. package/src/sap/base/util/restricted/_merge.js +1 -1
  35. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  36. package/src/sap/base/util/restricted/_min.js +1 -1
  37. package/src/sap/base/util/restricted/_omit.js +1 -1
  38. package/src/sap/base/util/restricted/_pick.js +1 -1
  39. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  40. package/src/sap/base/util/restricted/_throttle.js +1 -1
  41. package/src/sap/base/util/restricted/_toArray.js +1 -1
  42. package/src/sap/base/util/restricted/_union.js +1 -1
  43. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  44. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  45. package/src/sap/base/util/restricted/_uniq.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  48. package/src/sap/base/util/restricted/_without.js +1 -1
  49. package/src/sap/base/util/restricted/_xor.js +1 -1
  50. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  51. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  54. package/src/sap/ui/Device.js +3 -3
  55. package/src/sap/ui/Global.js +4 -4
  56. package/src/sap/ui/VersionInfo.js +1 -0
  57. package/src/sap/ui/base/DataType.js +1 -0
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/Interface.js +1 -1
  61. package/src/sap/ui/base/ManagedObject.js +120 -18
  62. package/src/sap/ui/base/ManagedObjectMetadata.js +14 -5
  63. package/src/sap/ui/base/Metadata.js +1 -1
  64. package/src/sap/ui/base/Object.js +1 -1
  65. package/src/sap/ui/base/ObjectPool.js +1 -1
  66. package/src/sap/ui/core/.library +2 -2
  67. package/src/sap/ui/core/BusyIndicator.js +1 -1
  68. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  69. package/src/sap/ui/core/Component.js +143 -42
  70. package/src/sap/ui/core/ComponentContainer.js +1 -1
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +2 -1
  74. package/src/sap/ui/core/Control.js +1 -1
  75. package/src/sap/ui/core/Core.js +18 -21
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/CustomizingConfiguration.js +1 -1
  78. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  79. package/src/sap/ui/core/Element.js +1 -1
  80. package/src/sap/ui/core/ElementMetadata.js +1 -1
  81. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  82. package/src/sap/ui/core/EventBus.js +1 -1
  83. package/src/sap/ui/core/Fragment.js +2 -2
  84. package/src/sap/ui/core/HTML.js +1 -1
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -1
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +1 -1
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +1 -1
  99. package/src/sap/ui/core/Manifest.js +124 -69
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/Patcher.js +53 -80
  102. package/src/sap/ui/core/Placeholder.js +1 -0
  103. package/src/sap/ui/core/Popup.js +29 -5
  104. package/src/sap/ui/core/RenderManager.js +25 -22
  105. package/src/sap/ui/core/Renderer.js +1 -1
  106. package/src/sap/ui/core/ResizeHandler.js +1 -1
  107. package/src/sap/ui/core/ScrollBar.js +1 -1
  108. package/src/sap/ui/core/SeparatorItem.js +1 -1
  109. package/src/sap/ui/core/ThemeCheck.js +13 -61
  110. package/src/sap/ui/core/Title.js +1 -1
  111. package/src/sap/ui/core/TooltipBase.js +1 -1
  112. package/src/sap/ui/core/UIArea.js +5 -2
  113. package/src/sap/ui/core/UIComponent.js +46 -32
  114. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  115. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  116. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  117. package/src/sap/ui/core/XMLComposite.js +1 -1
  118. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  119. package/src/sap/ui/core/XMLTemplateProcessor.js +1 -1
  120. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  121. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  123. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  125. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  126. package/src/sap/ui/core/format/DateFormat.js +2 -0
  127. package/src/sap/ui/core/format/NumberFormat.js +2 -0
  128. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  129. package/src/sap/ui/core/library.js +3 -3
  130. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  131. package/src/sap/ui/core/message/Message.js +1 -1
  132. package/src/sap/ui/core/message/MessageManager.js +3 -1
  133. package/src/sap/ui/core/message/MessageParser.js +1 -1
  134. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  135. package/src/sap/ui/core/mvc/Controller.js +146 -8
  136. package/src/sap/ui/core/mvc/HTMLView.js +3 -1
  137. package/src/sap/ui/core/mvc/JSONView.js +7 -5
  138. package/src/sap/ui/core/mvc/JSView.js +4 -2
  139. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  140. package/src/sap/ui/core/mvc/View.js +16 -5
  141. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  142. package/src/sap/ui/core/mvc/XMLView.js +13 -9
  143. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  144. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  145. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  146. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  147. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  148. package/src/sap/ui/core/routing/History.js +26 -16
  149. package/src/sap/ui/core/routing/Route.js +10 -1
  150. package/src/sap/ui/core/routing/Router.js +8 -5
  151. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  152. package/src/sap/ui/core/routing/Targets.js +26 -0
  153. package/src/sap/ui/core/routing/async/Route.js +6 -3
  154. package/src/sap/ui/core/routing/async/Target.js +29 -4
  155. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  156. package/src/sap/ui/core/rules/App.support.js +35 -1
  157. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  158. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  159. package/src/sap/ui/core/service/Service.js +1 -1
  160. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  161. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  162. package/src/sap/ui/core/support/Plugin.js +1 -1
  163. package/src/sap/ui/core/support/Support.js +1 -1
  164. package/src/sap/ui/core/support/controls/ObjectViewer.js +5 -9
  165. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  167. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  168. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  169. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  170. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  171. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  172. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  173. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  174. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  175. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -0
  176. package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
  177. package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
  178. package/src/sap/ui/core/themes/base/base.less +569 -414
  179. package/src/sap/ui/core/themes/base/global.less +38 -0
  180. package/src/sap/ui/core/themes/base/library.source.less +1 -2
  181. package/src/sap/ui/core/themes/base/shared.less +1 -0
  182. package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
  183. package/src/sap/ui/core/theming/Parameters.js +221 -59
  184. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  185. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  186. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  187. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  188. package/src/sap/ui/core/tmpl/Template.js +2 -1
  189. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  190. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  191. package/src/sap/ui/core/util/Export.js +1 -1
  192. package/src/sap/ui/core/util/ExportCell.js +1 -1
  193. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  194. package/src/sap/ui/core/util/ExportRow.js +1 -1
  195. package/src/sap/ui/core/util/ExportType.js +1 -1
  196. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  197. package/src/sap/ui/core/util/File.js +1 -1
  198. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  199. package/src/sap/ui/core/util/MockServer.js +20 -1
  200. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  201. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +18 -0
  202. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  203. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  204. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  205. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  206. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  207. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  208. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  209. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  210. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  211. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  212. package/src/sap/ui/debug/ControlTree.js +1 -1
  213. package/src/sap/ui/debug/DebugEnv.js +1 -1
  214. package/src/sap/ui/debug/PropertyList.js +1 -1
  215. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  216. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  217. package/src/sap/ui/model/ClientModel.js +1 -1
  218. package/src/sap/ui/model/CompositeDataState.js +1 -1
  219. package/src/sap/ui/model/CompositeType.js +1 -1
  220. package/src/sap/ui/model/Context.js +31 -11
  221. package/src/sap/ui/model/DataState.js +1 -1
  222. package/src/sap/ui/model/ListBinding.js +19 -0
  223. package/src/sap/ui/model/MetaModel.js +1 -1
  224. package/src/sap/ui/model/Model.js +3 -3
  225. package/src/sap/ui/model/SelectionModel.js +5 -1
  226. package/src/sap/ui/model/SimpleType.js +1 -1
  227. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  228. package/src/sap/ui/model/Type.js +1 -1
  229. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -6
  230. package/src/sap/ui/model/base/ManagedObjectModel.js +9 -1
  231. package/src/sap/ui/model/json/JSONModel.js +1 -1
  232. package/src/sap/ui/model/message/MessageModel.js +1 -1
  233. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  234. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  235. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  236. package/src/sap/ui/model/odata/ODataMetaModel.js +3 -2
  237. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  238. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  239. package/src/sap/ui/model/odata/ODataUtils.js +19 -0
  240. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
  241. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  242. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  243. package/src/sap/ui/model/odata/type/Currency.js +7 -2
  244. package/src/sap/ui/model/odata/type/Date.js +1 -1
  245. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  246. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  247. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  248. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  249. package/src/sap/ui/model/odata/type/Double.js +1 -1
  250. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  251. package/src/sap/ui/model/odata/type/Int.js +1 -1
  252. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  253. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  254. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  255. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  256. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  257. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  258. package/src/sap/ui/model/odata/type/Single.js +1 -1
  259. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  260. package/src/sap/ui/model/odata/type/String.js +3 -1
  261. package/src/sap/ui/model/odata/type/Time.js +1 -1
  262. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  263. package/src/sap/ui/model/odata/type/Unit.js +7 -2
  264. package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
  265. package/src/sap/ui/model/odata/v2/Context.js +165 -0
  266. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  267. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +19 -5
  268. package/src/sap/ui/model/odata/v2/ODataListBinding.js +18 -78
  269. package/src/sap/ui/model/odata/v2/ODataModel.js +74 -52
  270. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +55 -41
  271. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  272. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +16 -10
  273. package/src/sap/ui/model/odata/v4/ODataListBinding.js +39 -21
  274. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  275. package/src/sap/ui/model/odata/v4/ODataModel.js +3 -3
  276. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +15 -15
  277. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -6
  278. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +5 -3
  279. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  280. package/src/sap/ui/model/odata/v4/lib/_Cache.js +7 -6
  281. package/src/sap/ui/model/odata/v4/lib/_Helper.js +17 -2
  282. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +3 -2
  283. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  284. package/src/sap/ui/model/type/Boolean.js +1 -1
  285. package/src/sap/ui/model/type/Currency.js +1 -1
  286. package/src/sap/ui/model/type/Date.js +1 -1
  287. package/src/sap/ui/model/type/DateInterval.js +1 -1
  288. package/src/sap/ui/model/type/DateTime.js +1 -1
  289. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  290. package/src/sap/ui/model/type/FileSize.js +1 -1
  291. package/src/sap/ui/model/type/Float.js +1 -1
  292. package/src/sap/ui/model/type/Integer.js +1 -1
  293. package/src/sap/ui/model/type/String.js +1 -1
  294. package/src/sap/ui/model/type/Time.js +1 -1
  295. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  296. package/src/sap/ui/model/type/Unit.js +1 -1
  297. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  298. package/src/sap/ui/performance/Measurement.js +1 -1
  299. package/src/sap/ui/performance/trace/FESR.js +2 -1
  300. package/src/sap/ui/performance/trace/Interaction.js +11 -9
  301. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  302. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  303. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  304. package/src/sap/ui/security/FrameOptions.js +2 -1
  305. package/src/sap/ui/test/Opa5.js +1 -1
  306. package/src/sap/ui/test/OpaBuilder.js +1 -0
  307. package/src/sap/ui/test/TestUtils.js +17 -30
  308. package/src/sap/ui/test/launchers/componentLauncher.js +2 -1
  309. package/src/sap/ui/test/opaQunit.js +6 -9
  310. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  311. package/src/sap/ui/thirdparty/IPv6.js +2 -2
  312. package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
  313. package/src/sap/ui/thirdparty/URI.js +14 -5
  314. package/src/sap/ui/thirdparty/URITemplate.js +2 -2
  315. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  316. package/src/sap/ui/thirdparty/crossroads.js +10 -2
  317. package/src/sap/ui/util/Storage.js +1 -1
  318. package/src/ui5loader.js +5 -2
@@ -23,7 +23,7 @@ sap.ui.define(['./Element', "sap/ui/thirdparty/jquery", './library'],
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.92.0
26
+ * @version 1.93.3
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.LayoutData
@@ -23,7 +23,7 @@ sap.ui.define(['./Item', './library'],
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.92.0
26
+ * @version 1.93.3
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.ListItem
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.92.0
35
+ * @version 1.93.3
36
36
  *
37
37
  * @public
38
38
  * @since 1.11.0
@@ -38,7 +38,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/assert"],
38
38
  *
39
39
  * @extends sap.ui.base.Object
40
40
  * @author SAP SE
41
- * @version 1.92.0
41
+ * @version 1.93.3
42
42
  * @public
43
43
  * @alias sap.ui.core.Locale
44
44
  */
@@ -18,7 +18,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
18
18
  *
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.92.0
21
+ * @version 1.93.3
22
22
  * @public
23
23
  * @alias sap.ui.core.LocaleData
24
24
  */
@@ -137,7 +137,7 @@ sap.ui.define([
137
137
  * @class The Manifest class.
138
138
  * @extends sap.ui.base.Object
139
139
  * @author SAP SE
140
- * @version 1.92.0
140
+ * @version 1.93.3
141
141
  * @alias sap.ui.core.Manifest
142
142
  * @since 1.33.0
143
143
  */
@@ -154,7 +154,6 @@ sap.ui.define([
154
154
 
155
155
  // instance variables
156
156
  this._iInstanceCount = 0;
157
- this._bIncludesLoaded = false;
158
157
 
159
158
  // apply the manifest related values
160
159
  this._oRawManifest = oManifest;
@@ -162,6 +161,10 @@ sap.ui.define([
162
161
  this._bAsync = !(mOptions && mOptions.async === false);
163
162
  this._activeTerminologies = mOptions && mOptions.activeTerminologies;
164
163
 
164
+ // This should be only the case if manifestFirst is true but there was no manifest.json
165
+ // As of 08.07.2021 we only set this parameter in Manifest.load in case of failing request
166
+ this._bLoadManifestRequestFailed = mOptions && mOptions._bLoadManifestRequestFailed;
167
+
165
168
  // component name is passed via options (overrides the one defined in manifest)
166
169
  this._sComponentName = mOptions && mOptions.componentName;
167
170
 
@@ -393,16 +396,13 @@ sap.ui.define([
393
396
  * Loads the included CSS and JavaScript resources. The resources will be
394
397
  * resolved relative to the component location.
395
398
  *
399
+ * @param {boolean} bAsync indicator whether the *.js resources should be loaded asynchronous
400
+ * @return {Promise<void>|undefined} Promise for required *.js resources
401
+ *
396
402
  * @private
397
403
  */
398
- loadIncludes: function() {
399
-
400
- // skip loading includes once already loaded
401
- if (this._bIncludesLoaded) {
402
- return;
403
- }
404
-
405
- var mResources = this.getEntry("/sap.ui5/resources");
404
+ _loadIncludes: function(bAsync) {
405
+ var mResources = this.getEntry("/sap.ui5/resources"), oPromise;
406
406
 
407
407
  if (!mResources) {
408
408
  return;
@@ -413,6 +413,17 @@ sap.ui.define([
413
413
  // load JS files
414
414
  var aJSResources = mResources["js"];
415
415
  if (aJSResources) {
416
+ var requireAsync = function (sModule) {
417
+ // Wrap promise within function because OPA waitFor (sap/ui/test/autowaiter/_promiseWaiter.js)
418
+ // can't deal with a promise instance in the wrapped then handler
419
+ return function() {
420
+ return new Promise(function(resolve, reject) {
421
+ sap.ui.require([sModule], resolve, reject);
422
+ });
423
+ };
424
+ };
425
+
426
+ oPromise = Promise.resolve();
416
427
  for (var i = 0; i < aJSResources.length; i++) {
417
428
  var oJSResource = aJSResources[i];
418
429
  var sFile = oJSResource.uri;
@@ -420,11 +431,14 @@ sap.ui.define([
420
431
  // load javascript file
421
432
  var m = sFile.match(/\.js$/i);
422
433
  if (m) {
423
- //var sJsUrl = this.resolveUri(sFile.slice(0, m.index));
434
+ // call internal sap.ui.require variant that accepts a requireJS path and loads the module synchronously
424
435
  var sJsUrl = sComponentName.replace(/\./g, '/') + (sFile.slice(0, 1) === '/' ? '' : '/') + sFile.slice(0, m.index);
425
436
  Log.info("Component \"" + sComponentName + "\" is loading JS: \"" + sJsUrl + "\"");
426
- // call internal sap.ui.require variant that accepts a requireJS path and loads the module synchronously
427
- sap.ui.requireSync(sJsUrl);
437
+ if (bAsync) {
438
+ oPromise = oPromise.then(requireAsync(sJsUrl));
439
+ } else {
440
+ sap.ui.requireSync(sJsUrl);
441
+ }
428
442
  }
429
443
  }
430
444
  }
@@ -446,8 +460,7 @@ sap.ui.define([
446
460
  }
447
461
  }
448
462
 
449
- this._bIncludesLoaded = true;
450
-
463
+ return oPromise;
451
464
  },
452
465
 
453
466
  /**
@@ -456,12 +469,6 @@ sap.ui.define([
456
469
  * @private
457
470
  */
458
471
  removeIncludes: function() {
459
-
460
- // skip removing includes when not loaded yet
461
- if (!this._bIncludesLoaded) {
462
- return;
463
- }
464
-
465
472
  var mResources = this.getEntry("/sap.ui5/resources");
466
473
 
467
474
  if (!mResources) {
@@ -484,18 +491,18 @@ sap.ui.define([
484
491
  oLink.parentNode.removeChild(oLink);
485
492
  }
486
493
  }
487
-
488
- this._bIncludesLoaded = false;
489
-
490
494
  },
491
495
 
492
496
  /**
493
497
  * Load external dependencies (like libraries and components)
494
498
  *
499
+ * @param {boolean} bAsync indicator whether the dependent libraries and components should be loaded asynchronous
500
+ * @return {Promise<void>} Promise containing further promises of dependent libs and components requests
501
+ *
495
502
  * @private
496
503
  */
497
- loadDependencies: function() {
498
-
504
+ _loadDependencies: function(bAsync) {
505
+ var aPromises = [];
499
506
  // afterwards we load our dependencies!
500
507
  var oDep = this.getEntry("/sap.ui5/dependencies"),
501
508
  sComponentName = this.getComponentName();
@@ -508,37 +515,64 @@ sap.ui.define([
508
515
  for (var sLib in mLibraries) {
509
516
  if (!mLibraries[sLib].lazy) {
510
517
  Log.info("Component \"" + sComponentName + "\" is loading library: \"" + sLib + "\"");
511
- sap.ui.getCore().loadLibrary(sLib);
518
+ aPromises.push(sap.ui.getCore().loadLibrary(sLib, {async: bAsync}));
512
519
  }
513
520
  }
514
521
  }
515
522
 
516
- // load the components
523
+ // collect all "non-lazy" components
517
524
  var mComponents = oDep["components"];
525
+ var aComponentDependencies = [];
518
526
  if (mComponents) {
519
527
  for (var sName in mComponents) {
520
528
  if (!mComponents[sName].lazy) {
521
- // TODO: refactor component/library loading code within Manifest / Component
522
- // Only load component if not (pre-)loaded already
523
- // Usually the dependencies are already loaded beforehand within Component.create
524
- var sControllerModule = sName.replace(/\./g, "/") + "/Component";
525
- var iModuleState = sap.ui.loader._.getModuleState(sControllerModule + ".js");
526
- if (iModuleState === -1 /* PRELOADED */) {
527
- // Execute preloaded component controller module
528
- sap.ui.requireSync(sControllerModule);
529
- } else if (iModuleState === 0 /* INITIAL */) {
530
- Log.info("Component \"" + sComponentName + "\" is loading component: \"" + sName + ".Component\"");
531
- // This can't be migrated to "Component.load" as the contract is sync
532
- sap.ui.requireSync("sap/ui/core/Component");
533
- sap.ui.component.load({
534
- name: sName
535
- });
536
- }
529
+ aComponentDependencies.push(sName);
537
530
  }
538
531
  }
539
532
  }
540
533
 
534
+ if (bAsync) {
535
+ // Async loading of Component, so that Component.load is available
536
+ var pComponentLoad = new Promise(function(fnResolve, fnReject) {
537
+ sap.ui.require(["sap/ui/core/Component"], function(Component) {
538
+ fnResolve(Component);
539
+ }, fnReject);
540
+ }).then(function(Component) {
541
+ // trigger Component.load for all "non-lazy" component dependencies (parallel)
542
+ return Promise.all(aComponentDependencies.map(function(sComponentName) {
543
+ // Component.load does not load the dependencies of a dependent component in case property manifest: false
544
+ // because this could have a negative impact on performance and we do not know if there is a necessity
545
+ // to load the dependencies
546
+ // If needed we could make this configurable via manifest.json by adding a 'manifestFirst' option
547
+ return Component.load({
548
+ name: sComponentName,
549
+ manifest: false
550
+ });
551
+ }));
552
+ });
553
+
554
+ aPromises.push(pComponentLoad);
555
+ } else {
556
+ aComponentDependencies.forEach(function(sName) {
557
+ // Check for and execute preloaded component controller module
558
+ // Don't use sap.ui.component.load in order to avoid a warning log
559
+ // See comments in commit 83f4b601f896dbfcab76fffd455cce841f15b2fb
560
+ var sControllerModule = sName.replace(/\./g, "/") + "/Component";
561
+ var iModuleState = sap.ui.loader._.getModuleState(sControllerModule + ".js");
562
+ if (iModuleState === -1 /* PRELOADED */) {
563
+ sap.ui.requireSync(sControllerModule);
564
+ } else if (iModuleState === 0 /* INITIAL */) {
565
+ Log.info("Component \"" + sComponentName + "\" is loading component: \"" + sName + ".Component\"");
566
+ // requireSync needed because of cyclic dependency
567
+ sap.ui.requireSync("sap/ui/core/Component");
568
+ sap.ui.component.load({
569
+ name: sName
570
+ });
571
+ }
572
+ });
573
+ }
541
574
  }
575
+ return Promise.all(aPromises);
542
576
 
543
577
  },
544
578
 
@@ -651,31 +685,9 @@ sap.ui.define([
651
685
  * @private
652
686
  */
653
687
  init: function(oInstance) {
654
-
655
688
  if (this._iInstanceCount === 0) {
656
689
 
657
- // version check => only if minVersion is available a warning
658
- // will be logged and the debug mode is turned on
659
- this.checkUI5Version();
660
-
661
- // define the resource roots
662
- // => if not loaded via manifest first approach the resource roots
663
- // will be registered too late for the AMD modules of the Component
664
- // controller. This is a constraint for the resource roots config
665
- // in the manifest!
666
- this.defineResourceRoots();
667
-
668
- // resolve "ui5://..." URLs after the resource-rooots have been defined
669
- // this way all ui5 URLs can rely on any resource root definition
670
- this._preprocess({
671
- resolveUI5Urls: true
672
- });
673
-
674
- // load the component dependencies (other UI5 libraries)
675
- this.loadDependencies();
676
-
677
- // load the custom scripts and CSS files
678
- this.loadIncludes();
690
+ this.loadDependenciesAndIncludes();
679
691
 
680
692
  // activate the static customizing
681
693
  this.activateCustomizing();
@@ -688,7 +700,43 @@ sap.ui.define([
688
700
  }
689
701
 
690
702
  this._iInstanceCount++;
703
+ },
691
704
 
705
+ /**
706
+ * Executes checks, define the resource roots, load the dependencies and the includes.
707
+ *
708
+ * @param {boolean} bAsync indicator whether the dependent dependencies and includes should be loaded asynchronous
709
+ * @return {Promise<void>} Promise containing further promises of dependent libs and includes requests
710
+ *
711
+ * @private
712
+ */
713
+ loadDependenciesAndIncludes: function (bAsync) {
714
+ if (this._pDependenciesAndIncludes) {
715
+ return this._pDependenciesAndIncludes;
716
+ }
717
+ // version check => only if minVersion is available a warning
718
+ // will be logged and the debug mode is turned on
719
+ this.checkUI5Version();
720
+
721
+ // define the resource roots
722
+ // => if not loaded via manifest first approach the resource roots
723
+ // will be registered too late for the AMD modules of the Component
724
+ // controller. This is a constraint for the resource roots config
725
+ // in the manifest!
726
+ this.defineResourceRoots();
727
+
728
+ // resolve "ui5://..." URLs after the resource-rooots have been defined
729
+ // this way all ui5 URLs can rely on any resource root definition
730
+ this._preprocess({
731
+ resolveUI5Urls: true
732
+ });
733
+
734
+ this._pDependenciesAndIncludes = Promise.all([
735
+ this._loadDependencies(bAsync), // load the component dependencies (other UI5 libraries)
736
+ this._loadIncludes(bAsync) // load the custom scripts and CSS files
737
+ ]);
738
+
739
+ return this._pDependenciesAndIncludes;
692
740
  },
693
741
 
694
742
  /**
@@ -715,6 +763,7 @@ sap.ui.define([
715
763
  // remove the custom scripts and CSS files
716
764
  this.removeIncludes();
717
765
 
766
+ delete this._pDependenciesAndIncludes;
718
767
  }
719
768
 
720
769
  this._iInstanceCount = iInstanceCount;
@@ -900,12 +949,18 @@ sap.ui.define([
900
949
  if (bAsync) {
901
950
  return oManifestJSON.then(function(oManifestJSON) {
902
951
  // callback for preprocessing the json, e.g. via flex-hook in Component
903
- if (fnProcessJson) {
952
+ if (fnProcessJson && oManifestJSON) {
904
953
  return fnProcessJson(oManifestJSON);
905
954
  } else {
906
955
  return oManifestJSON;
907
956
  }
908
957
  }).then(function(oManifestJSON) {
958
+ if (!oManifestJSON) {
959
+ // Loading manifest.json was not successful e.g. because there is no manifest.json
960
+ // This should be only the case if manifestFirst is true but there was
961
+ // no manifest.json
962
+ mSettings._bLoadManifestRequestFailed = true;
963
+ }
909
964
  return new Manifest(oManifestJSON, mSettings);
910
965
  });
911
966
  }
@@ -942,4 +997,4 @@ sap.ui.define([
942
997
 
943
998
  return Manifest;
944
999
 
945
- });
1000
+ });
@@ -26,7 +26,7 @@ sap.ui.define(['./Element', './library', "sap/base/Log"],
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.92.0
29
+ * @version 1.93.3
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.Message