@openui5/sap.ui.core 1.115.1 → 1.116.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 (541) hide show
  1. package/.dtsgenrc +18 -0
  2. package/.eslintrc.json +11 -0
  3. package/.reuse/dep5 +0 -5
  4. package/THIRDPARTY.txt +1 -7
  5. package/package.json +1 -1
  6. package/src/jquery.sap.global.js +1 -1
  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.sjax.js +2 -2
  11. package/src/jquery.sap.storage.js +3 -3
  12. package/src/sap/base/Event.js +106 -0
  13. package/src/sap/base/Eventing.js +320 -0
  14. package/src/sap/base/config.js +1 -1
  15. package/src/sap/base/i18n/Formatting.js +991 -0
  16. package/src/sap/base/i18n/LanguageTag.js +189 -0
  17. package/src/sap/base/i18n/Localization.js +711 -0
  18. package/src/sap/base/i18n/ResourceBundle.js +5 -20
  19. package/src/sap/base/i18n/date/CalendarType.js +54 -0
  20. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
  21. package/src/sap/base/i18n/date/TimezoneUtils.js +287 -0
  22. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  23. package/src/sap/base/util/restricted/_castArray.js +1 -1
  24. package/src/sap/base/util/restricted/_compact.js +1 -1
  25. package/src/sap/base/util/restricted/_curry.js +1 -1
  26. package/src/sap/base/util/restricted/_debounce.js +1 -1
  27. package/src/sap/base/util/restricted/_difference.js +1 -1
  28. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  29. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  30. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  31. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  32. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  33. package/src/sap/base/util/restricted/_flatten.js +1 -1
  34. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  35. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  36. package/src/sap/base/util/restricted/_intersection.js +1 -1
  37. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  38. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  39. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  40. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  41. package/src/sap/base/util/restricted/_isNil.js +1 -1
  42. package/src/sap/base/util/restricted/_max.js +1 -1
  43. package/src/sap/base/util/restricted/_merge.js +1 -1
  44. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  45. package/src/sap/base/util/restricted/_min.js +1 -1
  46. package/src/sap/base/util/restricted/_omit.js +1 -1
  47. package/src/sap/base/util/restricted/_pick.js +1 -1
  48. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  49. package/src/sap/base/util/restricted/_throttle.js +1 -1
  50. package/src/sap/base/util/restricted/_toArray.js +1 -1
  51. package/src/sap/base/util/restricted/_union.js +1 -1
  52. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  53. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  54. package/src/sap/base/util/restricted/_uniq.js +1 -1
  55. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  56. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  57. package/src/sap/base/util/restricted/_without.js +1 -1
  58. package/src/sap/base/util/restricted/_xor.js +1 -1
  59. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  60. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  61. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  62. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  63. package/src/sap/ui/Device.js +3 -3
  64. package/src/sap/ui/Global.js +4 -4
  65. package/src/sap/ui/base/Event.js +1 -1
  66. package/src/sap/ui/base/EventProvider.js +4 -12
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +8 -12
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +30 -7
  70. package/src/sap/ui/base/Metadata.js +1 -1
  71. package/src/sap/ui/base/Object.js +1 -1
  72. package/src/sap/ui/base/ObjectPool.js +1 -1
  73. package/src/sap/ui/base/SyncPromise.js +10 -5
  74. package/src/sap/ui/core/.library +2 -2
  75. package/src/sap/ui/core/AccessKeysEnablement.js +10 -5
  76. package/src/sap/ui/core/AnimationMode.js +49 -0
  77. package/src/sap/ui/core/BusyIndicator.js +33 -42
  78. package/src/sap/ui/core/CalendarType.js +11 -37
  79. package/src/sap/ui/core/Component.js +4 -5
  80. package/src/sap/ui/core/ComponentContainer.js +1 -1
  81. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  82. package/src/sap/ui/core/ComponentSupport.js +1 -1
  83. package/src/sap/ui/core/Configuration.js +409 -1270
  84. package/src/sap/ui/core/Control.js +4 -12
  85. package/src/sap/ui/core/ControlBehavior.js +157 -0
  86. package/src/sap/ui/core/Core.js +124 -132
  87. package/src/sap/ui/core/CustomData.js +1 -1
  88. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  89. package/src/sap/ui/core/Element.js +14 -3
  90. package/src/sap/ui/core/ElementMetadata.js +1 -1
  91. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  92. package/src/sap/ui/core/EventBus.js +1 -1
  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/IndicationColorSupport.js +1 -1
  98. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  99. package/src/sap/ui/core/InvisibleMessage.js +5 -7
  100. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  101. package/src/sap/ui/core/InvisibleText.js +12 -12
  102. package/src/sap/ui/core/Item.js +1 -1
  103. package/src/sap/ui/core/LabelEnablement.js +1 -1
  104. package/src/sap/ui/core/LayoutData.js +1 -1
  105. package/src/sap/ui/core/Lib.js +109 -22
  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 +151 -430
  109. package/src/sap/ui/core/LocaleData.js +39 -11
  110. package/src/sap/ui/core/Manifest.js +1 -1
  111. package/src/sap/ui/core/Message.js +1 -1
  112. package/src/sap/ui/core/RenderManager.js +1 -1
  113. package/src/sap/ui/core/Renderer.js +1 -1
  114. package/src/sap/ui/core/ResizeHandler.js +1 -1
  115. package/src/sap/ui/core/ScrollBar.js +1 -1
  116. package/src/sap/ui/core/SeparatorItem.js +1 -1
  117. package/src/sap/ui/core/StaticArea.js +31 -17
  118. package/src/sap/ui/core/Theming.js +451 -0
  119. package/src/sap/ui/core/Title.js +1 -1
  120. package/src/sap/ui/core/TooltipBase.js +1 -1
  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 +1 -0
  129. package/src/sap/ui/core/_IconRegistry.js +7 -1
  130. package/src/sap/ui/core/date/CalendarWeekNumbering.js +12 -83
  131. package/src/sap/ui/core/date/UI5Date.js +2 -2
  132. package/src/sap/ui/core/delegate/ItemNavigation.js +8 -10
  133. package/src/sap/ui/core/delegate/ScrollEnablement.js +5 -5
  134. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  135. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  136. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  137. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  138. package/src/sap/ui/core/format/DateFormat.js +20 -15
  139. package/src/sap/ui/core/format/TimezoneUtil.js +15 -273
  140. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  141. package/src/sap/ui/core/library.js +3 -3
  142. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  143. package/src/sap/ui/core/message/Message.js +1 -1
  144. package/src/sap/ui/core/message/MessageManager.js +1 -1
  145. package/src/sap/ui/core/message/MessageParser.js +1 -1
  146. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  147. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_da.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  152. package/src/sap/ui/core/messagebundle_en.properties +1 -1
  153. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -1
  154. package/src/sap/ui/core/messagebundle_es.properties +1 -1
  155. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  156. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  157. package/src/sap/ui/core/messagebundle_id.properties +1 -1
  158. package/src/sap/ui/core/messagebundle_it.properties +49 -49
  159. package/src/sap/ui/core/messagebundle_iw.properties +1 -1
  160. package/src/sap/ui/core/messagebundle_kk.properties +1 -1
  161. package/src/sap/ui/core/messagebundle_ko.properties +1 -1
  162. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  163. package/src/sap/ui/core/messagebundle_lv.properties +1 -1
  164. package/src/sap/ui/core/messagebundle_ms.properties +8 -8
  165. package/src/sap/ui/core/messagebundle_nl.properties +1 -1
  166. package/src/sap/ui/core/messagebundle_no.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_pt.properties +1 -1
  169. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  170. package/src/sap/ui/core/messagebundle_ro.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  172. package/src/sap/ui/core/messagebundle_sv.properties +1 -1
  173. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  174. package/src/sap/ui/core/messagebundle_uk.properties +21 -21
  175. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  176. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  177. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  178. package/src/sap/ui/core/mvc/JSView.js +1 -1
  179. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  180. package/src/sap/ui/core/mvc/View.js +1 -1
  181. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  182. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  183. package/src/sap/ui/core/plugin/LessSupport.js +14 -16
  184. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  185. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  186. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  187. package/src/sap/ui/core/routing/HashChanger.js +1 -0
  188. package/src/sap/ui/core/routing/Route.js +1 -0
  189. package/src/sap/ui/core/routing/Router.js +3 -1
  190. package/src/sap/ui/core/rules/Config.support.js +2 -2
  191. package/src/sap/ui/core/rules/Model.support.js +3 -1
  192. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  193. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  194. package/src/sap/ui/core/service/Service.js +1 -1
  195. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  196. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  197. package/src/sap/ui/core/support/Plugin.js +1 -1
  198. package/src/sap/ui/core/support/Support.js +1 -1
  199. package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
  200. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  201. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  202. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  203. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  204. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  205. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  206. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  207. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  208. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +4 -4
  209. package/src/sap/ui/core/themes/base/base.less +41 -20
  210. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  211. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  212. package/src/sap/ui/core/theming/Parameters.js +6 -5
  213. package/src/sap/ui/core/theming/ThemeManager.js +310 -447
  214. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  215. package/src/sap/ui/core/tmpl/DOMElement.js +5 -10
  216. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  217. package/src/sap/ui/core/tmpl/Template.js +1 -1
  218. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  219. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  220. package/src/sap/ui/core/util/Export.js +1 -1
  221. package/src/sap/ui/core/util/ExportCell.js +1 -1
  222. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  223. package/src/sap/ui/core/util/ExportRow.js +1 -1
  224. package/src/sap/ui/core/util/ExportType.js +1 -1
  225. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  226. package/src/sap/ui/core/util/File.js +1 -1
  227. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  228. package/src/sap/ui/core/util/MockServer.js +1 -1
  229. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  230. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +3 -1
  231. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  232. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  233. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  236. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  237. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  238. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  239. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  240. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  241. package/src/sap/ui/debug/ControlTree.js +1 -1
  242. package/src/sap/ui/debug/DebugEnv.js +1 -1
  243. package/src/sap/ui/debug/PropertyList.js +1 -1
  244. package/src/sap/ui/events/PseudoEvents.js +17 -9
  245. package/src/sap/ui/model/Binding.js +19 -15
  246. package/src/sap/ui/model/ClientModel.js +1 -1
  247. package/src/sap/ui/model/CompositeBinding.js +57 -19
  248. package/src/sap/ui/model/CompositeDataState.js +1 -1
  249. package/src/sap/ui/model/CompositeType.js +1 -1
  250. package/src/sap/ui/model/DataState.js +1 -1
  251. package/src/sap/ui/model/ListBinding.js +42 -1
  252. package/src/sap/ui/model/MetaModel.js +1 -1
  253. package/src/sap/ui/model/Model.js +5 -4
  254. package/src/sap/ui/model/PropertyBinding.js +10 -0
  255. package/src/sap/ui/model/SelectionModel.js +1 -1
  256. package/src/sap/ui/model/SimpleType.js +4 -1
  257. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  258. package/src/sap/ui/model/Type.js +1 -1
  259. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  260. package/src/sap/ui/model/json/JSONModel.js +1 -1
  261. package/src/sap/ui/model/message/MessageModel.js +1 -1
  262. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  263. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  264. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  265. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  266. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  267. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  268. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  269. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  270. package/src/sap/ui/model/odata/type/Date.js +1 -1
  271. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  272. package/src/sap/ui/model/odata/type/DateTimeBase.js +8 -1
  273. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  274. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  275. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  276. package/src/sap/ui/model/odata/type/Double.js +1 -1
  277. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  278. package/src/sap/ui/model/odata/type/Int.js +1 -1
  279. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  280. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  281. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  282. package/src/sap/ui/model/odata/type/ODataType.js +3 -3
  283. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  284. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  285. package/src/sap/ui/model/odata/type/Single.js +1 -1
  286. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  287. package/src/sap/ui/model/odata/type/String.js +1 -1
  288. package/src/sap/ui/model/odata/type/Time.js +1 -1
  289. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  290. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  291. package/src/sap/ui/model/odata/v2/Context.js +3 -2
  292. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  293. package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -3
  294. package/src/sap/ui/model/odata/v2/ODataModel.js +45 -31
  295. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  296. package/src/sap/ui/model/odata/v4/Context.js +7 -3
  297. package/src/sap/ui/model/odata/v4/ODataBinding.js +68 -39
  298. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +12 -8
  299. package/src/sap/ui/model/odata/v4/ODataListBinding.js +30 -8
  300. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -9
  301. package/src/sap/ui/model/odata/v4/ODataModel.js +10 -14
  302. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +64 -31
  303. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +21 -16
  304. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +2 -0
  305. package/src/sap/ui/model/odata/v4/lib/_Cache.js +37 -14
  306. package/src/sap/ui/model/odata/v4/lib/_Helper.js +11 -1
  307. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +7 -4
  308. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
  309. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
  310. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  311. package/src/sap/ui/model/type/Boolean.js +1 -1
  312. package/src/sap/ui/model/type/Currency.js +1 -1
  313. package/src/sap/ui/model/type/Date.js +1 -1
  314. package/src/sap/ui/model/type/DateInterval.js +1 -1
  315. package/src/sap/ui/model/type/DateTime.js +1 -1
  316. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  317. package/src/sap/ui/model/type/FileSize.js +1 -1
  318. package/src/sap/ui/model/type/Float.js +1 -1
  319. package/src/sap/ui/model/type/Integer.js +1 -1
  320. package/src/sap/ui/model/type/String.js +1 -1
  321. package/src/sap/ui/model/type/Time.js +1 -1
  322. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  323. package/src/sap/ui/model/type/Unit.js +1 -1
  324. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  325. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  326. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  327. package/src/sap/ui/test/Opa5.js +1 -1
  328. package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
  329. package/src/sap/ui/test/generic/TestBase.js +1 -1
  330. package/src/sap/ui/test/gherkin/simpleGherkinParser.js +10 -5
  331. package/src/sap/ui/test/matchers/LabelFor.js +1 -0
  332. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +111 -96
  333. package/src/sap/ui/util/ActivityDetection.js +7 -1
  334. package/src/sap/ui/util/Mobile.js +11 -8
  335. package/src/sap/ui/util/Storage.js +1 -1
  336. package/src/ui5loader-autoconfig.js +5 -2
  337. package/src/ui5loader.js +169 -185
  338. package/test/sap/ui/core/FormatHelper.js +3 -2
  339. package/test/sap/ui/core/demokit/docuindex.json +6 -0
  340. package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/OpaBusyIndicator.js +1 -1
  341. package/test/sap/ui/core/demokit/sample/OpaMatchers/OpaMatchers.js +2 -2
  342. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/MIT.ODataTypes.html +9 -14
  343. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +7 -0
  344. package/test/sap/ui/core/demokit/sample/common/pages/Any.js +1 -1
  345. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +2 -2
  346. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +27 -0
  347. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.controller.js +43 -0
  348. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.view.xml +47 -0
  349. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.controller.js +27 -0
  350. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.view.xml +7 -0
  351. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/NotFound.view.xml +8 -0
  352. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +123 -0
  353. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.view.xml +92 -0
  354. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +27 -0
  355. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +69 -0
  356. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/README.html +55 -0
  357. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/SandboxModel.js +56 -0
  358. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/POST-SalesOrderList.json +66 -0
  359. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000')-SO_2_SOITEM.json +57 -0
  360. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000').json +20 -0
  361. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000001').json +9 -0
  362. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000007')-SO_2_BP.json +12 -0
  363. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList.json +62 -0
  364. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.json +85 -0
  365. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.xml +185 -0
  366. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.json +93 -0
  367. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.xml +262 -0
  368. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/metadata.xml +1779 -0
  369. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +134 -0
  370. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/pages/Main.js +119 -0
  371. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +0 -41
  372. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +1 -1
  373. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +1 -1
  374. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -17
  375. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +3 -3
  376. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/arrangements/Startup.js +1 -1
  377. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/arrangements/Startup.js +1 -1
  378. package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +25 -7
  379. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +86 -2
  380. package/test/sap/ui/core/qunit/DataState.qunit.js +2 -7
  381. package/test/sap/ui/core/qunit/HTML.qunit.js +31 -31
  382. package/test/sap/ui/core/qunit/Lib.qunit.js +55 -2
  383. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +22 -15
  384. package/test/sap/ui/core/qunit/ManagedObject.qunit.js +5 -3
  385. package/test/sap/ui/core/qunit/Object.qunit.js +4 -1
  386. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +2 -2
  387. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +9 -3
  388. package/test/sap/ui/core/qunit/Theming.beforeBootstrap.qunit.js +13 -0
  389. package/test/sap/ui/core/qunit/Theming.qunit.js +229 -0
  390. package/test/sap/ui/core/qunit/analytics/AnalyticalTreeBindingAdapter.qunit.js +2 -7
  391. package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +2 -7
  392. package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +2 -7
  393. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +24 -0
  394. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +275 -0
  395. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +259 -0
  396. package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +5 -6
  397. package/test/sap/ui/core/qunit/base/security/sanitizeHTML.qunit.js +17 -0
  398. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -2
  399. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +13 -12
  400. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +388 -254
  401. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +19 -30
  402. package/test/sap/ui/core/qunit/component/Models.qunit.js +7 -28
  403. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +8 -26
  404. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +2 -2
  405. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
  406. package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +2 -2
  407. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +2 -2
  408. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
  409. package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +2 -2
  410. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +2 -2
  411. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
  412. package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +2 -2
  413. package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component-preload.js +1 -1
  414. package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component.js +2 -2
  415. package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component-preload.js +1 -1
  416. package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component.js +2 -2
  417. package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component-preload.js +1 -1
  418. package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component.js +2 -3
  419. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Component.js +0 -4
  420. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/sync/Component.js +2 -6
  421. package/test/sap/ui/core/qunit/component/testdata/customizing/customersub/Component.js +0 -4
  422. package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -7
  423. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -7
  424. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
  425. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
  426. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
  427. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
  428. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
  429. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
  430. package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -7
  431. package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +2 -2
  432. package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +2 -2
  433. package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +2 -2
  434. package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +2 -2
  435. package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +2 -2
  436. package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +2 -3
  437. package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -7
  438. package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -7
  439. package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +2 -5
  440. package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -7
  441. package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -5
  442. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -5
  443. package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +2 -9
  444. package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +2 -5
  445. package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +2 -9
  446. package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
  447. package/test/sap/ui/core/qunit/dnd/DragDropInfo.qunit.js +1 -2
  448. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +2 -0
  449. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +2 -0
  450. package/test/sap/ui/core/qunit/gherkin/dataTableUtils.qunit.js +2 -2
  451. package/test/sap/ui/core/qunit/i18n/Locale.qunit.js +0 -52
  452. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -1
  453. package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +14 -24
  454. package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +18 -0
  455. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
  456. package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +2 -7
  457. package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +7 -12
  458. package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +3 -8
  459. package/test/sap/ui/core/qunit/loader/fixture/amd-with-export-true/module1.js +2 -2
  460. package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +2 -7
  461. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
  462. package/test/sap/ui/core/qunit/model/Binding.qunit.js +36 -11
  463. package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -7
  464. package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -7
  465. package/test/sap/ui/core/qunit/model/CompositeDataState.qunit.js +2 -7
  466. package/test/sap/ui/core/qunit/model/Context.qunit.js +2 -7
  467. package/test/sap/ui/core/qunit/model/ContextBinding.qunit.js +2 -7
  468. package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +63 -6
  469. package/test/sap/ui/core/qunit/model/Model.qunit.js +2 -7
  470. package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +40 -0
  471. package/test/sap/ui/core/qunit/model/TreeBinding.qunit.js +2 -7
  472. package/test/sap/ui/core/qunit/model/TreeBindingAdapter.qunit.js +2 -7
  473. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +9 -8
  474. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +4 -4
  475. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +4 -4
  476. package/test/sap/ui/core/qunit/odata/AnnotationParserNoFakeService.qunit.js +2 -7
  477. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +1 -1
  478. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +2 -8
  479. package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +1 -6
  480. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +24 -0
  481. package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +2 -7
  482. package/test/sap/ui/core/qunit/odata/v2/ODataContextBindingNoFakeService.qunit.js +2 -7
  483. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +31 -17
  484. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +28 -19
  485. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +70 -15
  486. package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBindingNoFakeService.qunit.js +2 -7
  487. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +4 -9
  488. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +2 -7
  489. package/test/sap/ui/core/qunit/odata/v2/_CreatedContextsCache.qunit.js +2 -7
  490. package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +1 -1
  491. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +45 -17
  492. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +152 -151
  493. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +55 -27
  494. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +119 -4
  495. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -3
  496. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +754 -195
  497. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +42 -53
  498. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +283 -170
  499. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +103 -78
  500. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +3 -0
  501. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +87 -58
  502. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +3 -1
  503. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +124 -22
  504. package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +4 -0
  505. package/test/sap/ui/core/qunit/opa/_LogCollector.qunit.js +1 -1
  506. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +5 -0
  507. package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +17 -37
  508. package/test/sap/ui/core/qunit/routing/HashChanger.qunit.js +1 -6
  509. package/test/sap/ui/core/qunit/routing/RouterHashChanger.qunit.js +1 -10
  510. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +1 -22
  511. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -4
  512. package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +34 -1
  513. package/test/sap/ui/core/qunit/testdata/fastnavigation/view/FastNavigation.view.xml +2 -2
  514. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/i18n.properties +1 -0
  515. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/library.js +10 -0
  516. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/manifest.json +10 -0
  517. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/library.js +10 -0
  518. package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/messagebundle.properties +1 -0
  519. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
  520. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +29 -0
  521. package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +397 -607
  522. package/test/sap/ui/core/qunit/types/SimpleType.qunit.js +16 -2
  523. package/test/sap/ui/core/qunit/types/Types.qunit.js +2 -37
  524. package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +1 -1
  525. package/test/sap/ui/core/qunit/util/SyncPromise.qunit.js +4 -1
  526. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +16 -11
  527. package/test/sap/ui/core/qunit/xml/XMLListBinding.qunit.js +1 -3
  528. package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +4 -14
  529. package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +7 -11
  530. package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +1 -1
  531. package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +3 -7
  532. package/test/sap/ui/core/relnotes/changes-1.115.json +1 -37
  533. package/test/sap/ui/core/relnotes/changes-1.116.json +82 -0
  534. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  535. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  536. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  537. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  538. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  539. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  540. package/test/testsuite/js/samples.js +2 -0
  541. package/ui5.yaml +1 -1
@@ -81,7 +81,7 @@ sap.ui.define([
81
81
  * @extends sap.ui.core.Element
82
82
  * @abstract
83
83
  * @author SAP SE
84
- * @version 1.115.1
84
+ * @version 1.116.0
85
85
  * @alias sap.ui.core.Control
86
86
  */
87
87
  var Control = Element.extend("sap.ui.core.Control", /** @lends sap.ui.core.Control.prototype */ {
@@ -378,7 +378,7 @@ sap.ui.define([
378
378
  }
379
379
  } else {
380
380
  // else we bubble up the hierarchy
381
- if (oParent && (
381
+ if (oParent && !oParent.isInvalidateSuppressed() && (
382
382
  this.bOutput /* && !this.getUIArea() */ ||
383
383
  /* !this.bOutput && */ !(this.getVisible && this.getVisible() === false))) {
384
384
 
@@ -653,9 +653,7 @@ sap.ui.define([
653
653
  * @public
654
654
  */
655
655
  Control.prototype.placeAt = function(oRef, vPosition) {
656
- if (Core.isInitialized()) {
657
- // core already initialized, do it now
658
-
656
+ Core.ready(function() {
659
657
  // 1st try to resolve the oRef as a container control
660
658
  var oContainer = oRef;
661
659
  if (typeof oRef === "string") {
@@ -696,13 +694,7 @@ sap.ui.define([
696
694
  Log.warning("Position " + vPosition + " is not supported for function placeAt.");
697
695
  }
698
696
  }
699
- } else {
700
- // core not yet initialized, defer execution
701
- var that = this;
702
- Core.attachInit(function () {
703
- that.placeAt(oRef, vPosition);
704
- });
705
- }
697
+ }.bind(this));
706
698
  return this;
707
699
  };
708
700
 
@@ -0,0 +1,157 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides module sap.ui.core.ControlBehavior
8
+ sap.ui.define([
9
+ "sap/base/config",
10
+ "sap/base/Eventing",
11
+ "sap/ui/core/AnimationMode"
12
+ ], function(
13
+ BaseConfig,
14
+ Eventing,
15
+ AnimationMode
16
+ ) {
17
+ "use strict";
18
+
19
+ var oWritableConfig = BaseConfig.getWritableInstance();
20
+
21
+ /**
22
+ * Provides control behavior relevant configuration options
23
+ *
24
+ * @namespace
25
+ * @alias module:sap/ui/core/ControlBehavior
26
+ * @private
27
+ * @ui5-restricted sap.ui.core
28
+ * @mixes module:sap/base/Eventing
29
+ * @borrows module:sap/base/Eventing.attachEvent as attachEvent
30
+ * @borrows module:sap/base/Eventing.attachEventOnce as attachEventOnce
31
+ * @borrows module:sap/base/Eventing.detachEvent as detachEvent
32
+ * @borrows module:sap/base/Eventing.fireEvent as fireEvent
33
+ * @borrows module:sap/base/Eventing.hasListeners as hasListeners
34
+ * @borrows module:sap/base/Eventing.getEventingParent as getEventingParent
35
+ */
36
+ var ControlBehavior = {
37
+ /**
38
+ * The <code>change</code> event is fired, when the configuration options are changed.
39
+ *
40
+ * @name module:sap/ui/core/ControlBehavior.change
41
+ * @event
42
+ * @private
43
+ * @ui5-restricted sap.ui.core
44
+ */
45
+
46
+ /**
47
+ * Attaches the <code>fnFunction</code> event handler to the {@link #event:change change} event
48
+ * of <code>sap.ui.core.ControlBehavior</code>.
49
+ *
50
+ * When called, the context of the event handler (its <code>this</code>) will be bound to
51
+ * <code>oListener</code> if specified, otherwise it will be bound to this
52
+ * <code>sap.ui.core.ControlBehavior</code> itself.
53
+ *
54
+ * @param {function} fnFunction
55
+ * The function to be called when the event occurs
56
+ * @private
57
+ * @ui5-restricted sap.ui.core
58
+ */
59
+ attachChange: function(fnFunction) {
60
+ ControlBehavior.attachEvent("change", fnFunction);
61
+ },
62
+
63
+ /**
64
+ * Detaches event handler <code>fnFunction</code> from the {@link #event:change change} event of
65
+ * this <code>sap.ui.core.ControlBehavior</code>.
66
+ *
67
+ * @param {function} fnFunction Function to be called when the event occurs
68
+ * @private
69
+ * @ui5-restricted sap.ui.core
70
+ */
71
+ detachChange: function(fnFunction) {
72
+ ControlBehavior.detachEvent("change", fnFunction);
73
+ },
74
+
75
+ /**
76
+ * Returns whether the accessibility mode is enabled or not.
77
+ * @return {boolean} whether the accessibility mode is enabled or not
78
+ * @public
79
+ */
80
+ isAccessibilityEnabled: function() {
81
+ return oWritableConfig.get({
82
+ name: "sapUiAccessibility",
83
+ type: BaseConfig.Type.Boolean,
84
+ defaultValue: true,
85
+ external: true
86
+ });
87
+ },
88
+
89
+ /**
90
+ * Returns the current animation mode.
91
+ *
92
+ * @return {sap.ui.core.AnimationMode} The current animationMode
93
+ * @public
94
+ */
95
+ getAnimationMode: function() {
96
+ var sAnimationMode = oWritableConfig.get({
97
+ name: "sapUiAnimationMode",
98
+ type: AnimationMode,
99
+ defaultValue: undefined,
100
+ external: true
101
+ });
102
+ var bAnimation = oWritableConfig.get({
103
+ name: "sapUiAnimation",
104
+ type: BaseConfig.Type.Boolean,
105
+ defaultValue: true,
106
+ external: true
107
+ });
108
+ if (sAnimationMode === undefined) {
109
+ if (bAnimation) {
110
+ sAnimationMode = AnimationMode.full;
111
+ } else {
112
+ sAnimationMode = AnimationMode.minimal;
113
+ }
114
+ }
115
+ BaseConfig._.checkEnum(AnimationMode, sAnimationMode, "animationMode");
116
+ return sAnimationMode;
117
+ },
118
+
119
+ /**
120
+ * Sets the current animation mode.
121
+ *
122
+ * Expects an animation mode as string and validates it. If a wrong animation mode was set, an error is
123
+ * thrown. If the mode is valid it is set, then the attributes <code>data-sap-ui-animation</code> and
124
+ * <code>data-sap-ui-animation-mode</code> of the HTML document root element are also updated.
125
+ * If the <code>animationMode</code> is <code>AnimationMode.none</code> the old
126
+ * <code>animation</code> property is set to <code>false</code>, otherwise it is set to <code>true</code>.
127
+ *
128
+ * @param {sap.ui.core.AnimationMode} sAnimationMode A valid animation mode
129
+ * @throws {Error} If the provided <code>sAnimationMode</code> does not exist, an error is thrown
130
+ * @public
131
+ */
132
+ setAnimationMode: function(sAnimationMode) {
133
+ BaseConfig._.checkEnum(AnimationMode, sAnimationMode, "animationMode");
134
+
135
+ var sOldAnimationMode = oWritableConfig.get({
136
+ name: "sapUiAnimationMode",
137
+ type: AnimationMode,
138
+ defaultValue: undefined,
139
+ external: true
140
+ });
141
+
142
+ // Set the animation mode and update html attributes.
143
+ oWritableConfig.set("sapUiAnimationMode", sAnimationMode);
144
+ if (sOldAnimationMode != sAnimationMode) {
145
+ fireChange({animationMode: sAnimationMode});
146
+ }
147
+ }
148
+ };
149
+
150
+ function fireChange(mChanges) {
151
+ ControlBehavior.fireEvent("change", mChanges);
152
+ }
153
+
154
+ Eventing.apply(ControlBehavior);
155
+
156
+ return ControlBehavior;
157
+ });
@@ -12,6 +12,7 @@ sap.ui.define([
12
12
  'sap/ui/base/Interface',
13
13
  'sap/ui/base/Object',
14
14
  'sap/ui/base/ManagedObject',
15
+ './AnimationMode',
15
16
  './Component',
16
17
  './Configuration',
17
18
  './Element',
@@ -19,19 +20,23 @@ sap.ui.define([
19
20
  './Lib',
20
21
  './Rendering',
21
22
  './RenderManager',
23
+ './ControlBehavior',
22
24
  './UIArea',
23
25
  './message/MessageManager',
24
26
  './StaticArea',
27
+ "sap/ui/core/Theming",
25
28
  "sap/base/Log",
26
29
  "sap/ui/performance/Measurement",
27
30
  "sap/ui/security/FrameOptions",
28
31
  "sap/base/assert",
32
+ "sap/base/util/Deferred",
29
33
  "sap/base/util/ObjectPath",
30
34
  'sap/ui/performance/trace/initTraces',
31
35
  'sap/base/util/isEmptyObject',
32
36
  'sap/base/util/each',
33
37
  'sap/ui/VersionInfo',
34
38
  'sap/base/config',
39
+ 'sap/base/Event',
35
40
  'sap/ui/events/jquery/EventSimulation'
36
41
  ],
37
42
  function(
@@ -41,6 +46,7 @@ sap.ui.define([
41
46
  Interface,
42
47
  BaseObject,
43
48
  ManagedObject,
49
+ AnimationMode,
44
50
  Component,
45
51
  Configuration,
46
52
  Element,
@@ -48,19 +54,23 @@ sap.ui.define([
48
54
  Library,
49
55
  Rendering,
50
56
  RenderManager,
57
+ ControlBehavior,
51
58
  UIArea,
52
59
  MessageManager,
53
60
  StaticArea,
61
+ Theming,
54
62
  Log,
55
63
  Measurement,
56
64
  FrameOptions,
57
65
  assert,
66
+ Deferred,
58
67
  ObjectPath,
59
68
  initTraces,
60
69
  isEmptyObject,
61
70
  each,
62
- VersionInfo
63
- /* ,BaseConfig */
71
+ VersionInfo,
72
+ BaseConfig,
73
+ BaseEvent
64
74
  /* ,EventSimulation */
65
75
  ) {
66
76
 
@@ -76,11 +86,6 @@ sap.ui.define([
76
86
  */
77
87
  var FocusHandler;
78
88
 
79
- /**
80
- * ThemeManager module reference, lazily retrieved via private "_getThemeManager" API.
81
- */
82
- var ThemeManager;
83
-
84
89
  // Initialize SAP Passport or FESR
85
90
  initTraces();
86
91
 
@@ -90,6 +95,43 @@ sap.ui.define([
90
95
  */
91
96
  var _oEventProvider;
92
97
 
98
+ /**
99
+ * Returns the waiting behavior for the initial theme loading.
100
+ * Possible values are:
101
+ * <ul>
102
+ * <li>undefined (default):
103
+ * By default neither the initialization of the SAPUI5 Core nor the first rendering
104
+ * wait for the configured theme to be loaded.
105
+ * </li>
106
+ * <li>"rendering":
107
+ * The first (initial) rendering of the application will be delayed until the theme
108
+ * has been loaded and applied (until Core.isThemeApplied()).
109
+ * Helps to avoid FOUC (flash of unstyled content).
110
+ * </li>
111
+ * <li>"init":
112
+ * Same as "rendering", but additionally delays the init event of theSAPUI5 Core until
113
+ * the configured theme has been loaded. Application code that waits for this event can
114
+ * then rely on the theming information to be present,
115
+ * e.g. for calling sap.ui.core.theming.Parameters.get
116
+ * </li>
117
+ * </ul>
118
+ *
119
+ * @returns {string} the configured waiting behavior for the initial theme loading
120
+ */
121
+ function getWaitForTheme() {
122
+ var sWaitForTheme = BaseConfig.get({name: "sapUiXxWaitForTheme", type: BaseConfig.Type.String, external: true}).toLowerCase();
123
+
124
+ if (sWaitForTheme === "true" ) {
125
+ sWaitForTheme = "rendering";
126
+ }
127
+ if ( sWaitForTheme !== "rendering" && sWaitForTheme !== "init" ) {
128
+ // invalid value or false from legacy boolean setting
129
+ sWaitForTheme = undefined;
130
+ }
131
+
132
+ return sWaitForTheme;
133
+ }
134
+
93
135
  /*
94
136
  * Internal class that can help to synchronize a set of asynchronous tasks.
95
137
  * Each task must be registered in the sync point by calling startTask with
@@ -174,7 +216,7 @@ sap.ui.define([
174
216
  * @extends sap.ui.base.Object
175
217
  * @final
176
218
  * @author SAP SE
177
- * @version 1.115.1
219
+ * @version 1.116.0
178
220
  * @alias sap.ui.core.Core
179
221
  * @public
180
222
  * @hideconstructor
@@ -219,6 +261,12 @@ sap.ui.define([
219
261
  */
220
262
  this.bInitialized = false;
221
263
 
264
+ /**
265
+ * Whether the core is ready
266
+ * @private
267
+ */
268
+ this.bReady = false;
269
+
222
270
  /**
223
271
  * Available plugins in the order of registration.
224
272
  * @private
@@ -266,11 +314,10 @@ sap.ui.define([
266
314
  this.oRootComponent = null;
267
315
 
268
316
  /**
269
- * Ordered collection of initEvent listeners
270
- * Moved here (before boot()) so that the libraries can be registered for lazy load!!
317
+ * Ready Promise
271
318
  * @private
272
319
  */
273
- this.aInitListeners = [];
320
+ this.pReady = new Deferred();
274
321
 
275
322
  /**
276
323
  * Whether the legacy library has to be loaded.
@@ -313,7 +360,7 @@ sap.ui.define([
313
360
  }
314
361
 
315
362
  // enable LessSupport if specified in configuration
316
- if (Configuration.getValue("xx-lesssupport") && aModules.indexOf("sap.ui.core.plugin.LessSupport") == -1) {
363
+ if (BaseConfig.get({name: "sapUiXxLesssupport", type: BaseConfig.Type.Boolean}) && aModules.indexOf("sap.ui.core.plugin.LessSupport") == -1) {
317
364
  Log.info("Including LessSupport into declared modules");
318
365
  aModules.push("sap.ui.core.plugin.LessSupport");
319
366
  }
@@ -326,8 +373,8 @@ sap.ui.define([
326
373
  var bAsync = sPreloadMode === "async" || sap.ui.loader.config().async;
327
374
 
328
375
  // adding the following classList is done here for compatibility reasons
329
- document.documentElement.classList.add("sapUiTheme-" + Configuration.getTheme());
330
- Log.info("Declared theme " + Configuration.getTheme(), null, METHOD);
376
+ document.documentElement.classList.add("sapUiTheme-" + Theming.getTheme());
377
+ Log.info("Declared theme " + Theming.getTheme(), null, METHOD);
331
378
 
332
379
  Log.info("Declared modules: " + aModules, METHOD);
333
380
 
@@ -388,7 +435,7 @@ sap.ui.define([
388
435
 
389
436
  // load the version info file in case of a custom theme to determine
390
437
  // the distribution version which should be provided in library.css requests.
391
- if (Configuration.getValue("versionedLibCss")) {
438
+ if (Library.getVersionedLibCss()) {
392
439
  var iVersionInfoTask = oSyncPoint2.startTask("load version info");
393
440
 
394
441
  var fnCallback = function(oVersionInfo) {
@@ -580,6 +627,8 @@ sap.ui.define([
580
627
  // @private, @ui5-restricted sap.ui.core
581
628
  // - Init
582
629
  "boot",
630
+ // - Ready Promise
631
+ "ready",
583
632
  // - UIArea & Rendering
584
633
  "addPrerenderingTask",
585
634
  // - Messaging
@@ -711,14 +760,22 @@ sap.ui.define([
711
760
  * @private
712
761
  */
713
762
  Core.prototype._setupAnimation = function() {
714
- var html = document.documentElement;
715
- var sAnimationMode = Configuration.getAnimationMode();
716
- html.dataset.sapUiAnimationMode = sAnimationMode;
717
- var bAnimation = (sAnimationMode !== Configuration.AnimationMode.minimal && sAnimationMode !== Configuration.AnimationMode.none);
718
- html.dataset.sapUiAnimation = bAnimation ? "on" : "off";
719
- if (typeof jQuery !== "undefined") {
720
- jQuery.fx.off = !bAnimation;
763
+ function adaptAnimationMode() {
764
+ var html = document.documentElement;
765
+ var sAnimationMode = ControlBehavior.getAnimationMode();
766
+ html.dataset.sapUiAnimationMode = sAnimationMode;
767
+ var bAnimation = (sAnimationMode !== AnimationMode.minimal && sAnimationMode !== AnimationMode.none);
768
+ html.dataset.sapUiAnimation = bAnimation ? "on" : "off";
769
+ if (typeof jQuery !== "undefined") {
770
+ jQuery.fx.off = !bAnimation;
771
+ }
721
772
  }
773
+ ControlBehavior.attachChange(function(oEvent) {
774
+ if (oEvent.animationMode) {
775
+ adaptAnimationMode();
776
+ }
777
+ });
778
+ adaptAnimationMode();
722
779
  };
723
780
 
724
781
  /**
@@ -834,18 +891,10 @@ sap.ui.define([
834
891
  assert(typeof sThemeName === "string", "sThemeName must be a string");
835
892
  assert(typeof sThemeBaseUrl === "string" || typeof sThemeBaseUrl === "undefined", "sThemeBaseUrl must be a string or undefined");
836
893
 
837
- sThemeName = Configuration.normalizeTheme(sThemeName, sThemeBaseUrl);
838
-
839
- // Configuration needs to be updated synchronously but only
840
- // applyTheme in case theme changed
841
- // Check is duplicated in applyTheme in ThemeManager
842
- // be aware to keep both in sync
843
- if ((sThemeName && Configuration.getTheme() != sThemeName)) {
844
- Configuration.setTheme(sThemeName);
845
- this._getThemeManager().then(function(ThemeManager) {
846
- ThemeManager.applyTheme(sThemeName, sThemeBaseUrl, /* bForce = */ true);
847
- });
894
+ if (sThemeBaseUrl) {
895
+ Theming.setThemeRoot(sThemeName, sThemeBaseUrl);
848
896
  }
897
+ Theming.setTheme(sThemeName);
849
898
  };
850
899
 
851
900
  /**
@@ -897,9 +946,12 @@ sap.ui.define([
897
946
  * @public
898
947
  */
899
948
  Core.prototype.setThemeRoot = function(sThemeName, aLibraryNames, sThemeBaseUrl, bForceUpdate) {
900
- this._getThemeManager().then(function(ThemeManager) {
901
- ThemeManager.setThemeRoot(sThemeName, aLibraryNames, sThemeBaseUrl, bForceUpdate);
902
- });
949
+ if (typeof aLibraryNames === "string") {
950
+ bForceUpdate = sThemeBaseUrl;
951
+ sThemeBaseUrl = aLibraryNames;
952
+ aLibraryNames = undefined;
953
+ }
954
+ Theming.setThemeRoot(sThemeName, sThemeBaseUrl, aLibraryNames, bForceUpdate);
903
955
  return this;
904
956
  };
905
957
 
@@ -925,7 +977,7 @@ sap.ui.define([
925
977
 
926
978
  this._setBodyAccessibilityRole();
927
979
 
928
- var sWaitForTheme = Configuration.getValue('xx-waitForTheme');
980
+ var sWaitForTheme = getWaitForTheme();
929
981
 
930
982
  // If there is no waitForTheme or ThemeManager is already available and theme is loaded render directly sync
931
983
  if (this.isThemeApplied() || !sWaitForTheme) {
@@ -933,27 +985,18 @@ sap.ui.define([
933
985
  } else {
934
986
  Rendering.suspend();
935
987
 
936
- var whenThemeAppliedThen = function(fnCallback) {
937
- this._getThemeManager().then(function(ThemeManager) {
938
- if ( ThemeManager.themeLoaded ) {
939
- fnCallback();
940
- } else {
941
- ThemeManager.attachEventOnce("ThemeChanged", fnCallback);
942
- }
943
- });
944
- }.bind(this);
945
988
 
946
989
  if (sWaitForTheme === "rendering") {
947
990
  Rendering.notifyInteractionStep();
948
991
  this._executeInitialization();
949
992
  Rendering.getLogger().debug("delay initial rendering until theme has been loaded");
950
- whenThemeAppliedThen(function() {
993
+ Theming.attachAppliedOnce(function() {
951
994
  Rendering.resume("after theme has been loaded");
952
995
  });
953
996
  } else if (sWaitForTheme === "init") {
954
997
  Rendering.getLogger().debug("delay init event and initial rendering until theme has been loaded");
955
998
  Rendering.notifyInteractionStep();
956
- whenThemeAppliedThen(function() {
999
+ Theming.attachAppliedOnce(function() {
957
1000
  this._executeInitialization();
958
1001
  Rendering.resume("after theme has been loaded");
959
1002
  }.bind(this));
@@ -1065,33 +1108,13 @@ sap.ui.define([
1065
1108
  }
1066
1109
  };
1067
1110
 
1068
- Core.prototype._executeInitListeners = function() {
1069
- var METHOD = "sap.ui.core.Core.init()";
1070
-
1071
- // make sure that we have no concurrent modifications on the init listeners
1072
- var aCallbacks = this.aInitListeners;
1073
- // reset the init listener so that we are aware the listeners are already
1074
- // executed and the initialization phase is over / follow up registration
1075
- // would then immediately call the init event handler
1076
- this.aInitListeners = undefined;
1077
-
1078
- // execute registered init event handlers
1079
- if (aCallbacks && aCallbacks.length > 0) {
1080
- // execute the callbacks
1081
- Log.info("Fire Loaded Event",null,METHOD);
1082
- aCallbacks.forEach(function(fn) {
1083
- fn();
1084
- });
1085
- }
1086
- };
1087
-
1088
1111
  Core.prototype._executeInitialization = function() {
1112
+ // chain ready to be the firstone that is executed
1089
1113
  var METHOD = "sap.ui.core.Core.init()"; // Because it's only used from init
1090
1114
  if (this.bInitialized) {
1091
1115
  return;
1092
1116
  }
1093
1117
  this.bInitialized = true;
1094
-
1095
1118
  Log.info("Initialized",null,METHOD);
1096
1119
 
1097
1120
  // start the plugins
@@ -1101,7 +1124,8 @@ sap.ui.define([
1101
1124
 
1102
1125
  this._executeOnInit();
1103
1126
  this._setupRootComponent(); // @legacy-relevant: private API for 2 deprecated concepts "rootComponent" & "sap.ui.app.Application"
1104
- this._executeInitListeners();
1127
+ this.pReady.resolve();
1128
+ this.bReady = true;
1105
1129
  };
1106
1130
 
1107
1131
  /**
@@ -1125,38 +1149,15 @@ sap.ui.define([
1125
1149
  * @return {boolean} whether the styles of the current theme are already applied
1126
1150
  * @public
1127
1151
  */
1128
- Core.prototype.isThemeApplied = function () {
1129
- ThemeManager = ThemeManager || sap.ui.require("sap/ui/core/theming/ThemeManager");
1130
- return ThemeManager ? ThemeManager.themeLoaded : false;
1131
- };
1132
-
1133
- Core.prototype._getThemeManager = function (bClear) {
1134
- ThemeManager = ThemeManager || sap.ui.require("sap/ui/core/theming/ThemeManager");
1152
+ Core.prototype.isThemeApplied = Theming.isApplied;
1135
1153
 
1136
- if (!this.pThemeManager) {
1137
- if (!ThemeManager) {
1138
- this.pThemeManager = new Promise(function (resolve, reject) {
1139
- sap.ui.require(["sap/ui/core/theming/ThemeManager"], function (ThemeManager) {
1140
- resolve(ThemeManager);
1141
- }, reject);
1142
- });
1143
- } else {
1144
- this.pThemeManager = Promise.resolve(ThemeManager);
1145
- }
1146
- this.pThemeManager = this.pThemeManager.then(function(ThemeManager) {
1147
- ThemeManager.attachEvent("ThemeChanged", function(oEvent) {
1148
- this.fireThemeChanged(oEvent.getParameters());
1149
- }.bind(this));
1150
- return ThemeManager;
1151
- }.bind(this));
1152
- }
1153
- // This is only used within initLibrary to reset flag themeLoaded synchronously in case
1154
- // a theme for a new library will be loaded
1155
- if (ThemeManager && bClear) {
1156
- ThemeManager.reset();
1157
- }
1158
- return this.pThemeManager;
1159
- };
1154
+ /**
1155
+ * Attach to 'applied' event of theming in order to keep existing core event 'ThemeChanged' stable
1156
+ */
1157
+ Theming.attachApplied(function(oEvent) {
1158
+ // notify the listeners via a control event
1159
+ _oEventProvider && _oEventProvider.fireEvent(Core.M_EVENTS.ThemeChanged, BaseEvent.getParameters(oEvent));
1160
+ });
1160
1161
 
1161
1162
  /**
1162
1163
  * Registers a given function that is executed after the framework has been initialized.
@@ -1172,8 +1173,8 @@ sap.ui.define([
1172
1173
  */
1173
1174
  Core.prototype.attachInitEvent = function (fnFunction) {
1174
1175
  assert(typeof fnFunction === "function", "fnFunction must be a function");
1175
- if (this.aInitListeners) {
1176
- this.aInitListeners.push(fnFunction);
1176
+ if (!this.bReady) {
1177
+ this.pReady.promise.then(fnFunction);
1177
1178
  }
1178
1179
  };
1179
1180
 
@@ -1192,11 +1193,7 @@ sap.ui.define([
1192
1193
  */
1193
1194
  Core.prototype.attachInit = function (fnFunction) {
1194
1195
  assert(typeof fnFunction === "function", "fnFunction must be a function");
1195
- if (this.aInitListeners) {
1196
- this.aInitListeners.push(fnFunction);
1197
- } else {
1198
- fnFunction();
1199
- }
1196
+ this.ready(fnFunction);
1200
1197
  };
1201
1198
 
1202
1199
  /**
@@ -1816,11 +1813,7 @@ sap.ui.define([
1816
1813
  * for example changing the cozy/compact CSS class at a single control
1817
1814
  * @public
1818
1815
  */
1819
- Core.prototype.notifyContentDensityChanged = function() {
1820
- this._getThemeManager().then(function (ThemeManager) {
1821
- ThemeManager.notifyContentDensityChanged();
1822
- });
1823
- };
1816
+ Core.prototype.notifyContentDensityChanged = Theming.notifyContentDensityChanged;
1824
1817
 
1825
1818
  /**
1826
1819
  * Fired after a theme has been applied.
@@ -1859,8 +1852,6 @@ sap.ui.define([
1859
1852
  */
1860
1853
  Core.prototype.attachThemeChanged = function(fnFunction, oListener) {
1861
1854
  // preparation for letting the "themeChanged" event be forwarded from the ThemeManager to the Core
1862
- this._getThemeManager();
1863
-
1864
1855
  _oEventProvider.attachEvent(Core.M_EVENTS.ThemeChanged, fnFunction, oListener);
1865
1856
  };
1866
1857
 
@@ -1880,19 +1871,6 @@ sap.ui.define([
1880
1871
  _oEventProvider.detachEvent(Core.M_EVENTS.ThemeChanged, fnFunction, oListener);
1881
1872
  };
1882
1873
 
1883
- /**
1884
- * Fires event <code>ThemeChanged</code> to attached listeners.
1885
- *
1886
- * @param {object} [oParameters] Parameters to pass along with the event
1887
- * @param {string} [oParameters.theme] Theme name (default is <code>sap.ui.getCore().getConfiguration().getTheme()</code>)
1888
- */
1889
- Core.prototype.fireThemeChanged = function(oParameters) {
1890
- var sEventId = Core.M_EVENTS.ThemeChanged;
1891
-
1892
- // notify the listeners via a control event
1893
- _oEventProvider.fireEvent(sEventId, oParameters);
1894
- };
1895
-
1896
1874
  /**
1897
1875
  * Fired when a scope class has been added or removed on a control/element
1898
1876
  * by using the custom style class API <code>addStyleClass</code>,
@@ -2021,10 +1999,6 @@ sap.ui.define([
2021
1999
  if ( mChanges.rtl != undefined ) {
2022
2000
  // update the dir attribute of the document
2023
2001
  document.documentElement.setAttribute("dir", mChanges.rtl ? "rtl" : "ltr");
2024
- // modify style sheet URLs
2025
- this._getThemeManager().then(function (ThemeManager) {
2026
- ThemeManager._updateThemeUrls(Configuration.getTheme());
2027
- });
2028
2002
 
2029
2003
  // invalidate all UIAreas
2030
2004
  UIArea.registry.forEach(function(oUIArea) {
@@ -3009,6 +2983,24 @@ sap.ui.define([
3009
2983
  Rendering.addPrerenderingTask(fnPrerenderingTask, bFirst);
3010
2984
  };
3011
2985
 
2986
+ /** returns a Promise that resolves if the Core is initialized
2987
+ *
2988
+ * @param {function():void} [fnReady] If the Core is ready the function will be called immediately, otherwise when the ready Promise resolves.
2989
+ * @returns {Promise<undefined>} The ready promise
2990
+ * @private
2991
+ * @ui5-restricted sap.ui.core
2992
+ */
2993
+ Core.prototype.ready = function(fnReady) {
2994
+ if (fnReady) {
2995
+ if (this.bReady) {
2996
+ fnReady();
2997
+ } else {
2998
+ this.pReady.promise.then(fnReady);
2999
+ }
3000
+ }
3001
+ return this.pReady.promise;
3002
+ };
3003
+
3012
3004
  Core.prototype.destroy = function() {
3013
3005
  RenderManager.detachPreserveContent(this._preserveHandler);
3014
3006
  _oEventProvider.destroy();
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * in the documentation.
25
25
  *
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.115.1
27
+ * @version 1.116.0
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.CustomData