@openui5/sap.ui.core 1.134.0 → 1.135.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 (293) hide show
  1. package/.dtsgenrc +32 -0
  2. package/THIRDPARTY.txt +2 -2
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/Event.js +1 -1
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/i18n/LanguageFallback.js +344 -0
  13. package/src/sap/base/i18n/LanguageTag.js +1 -1
  14. package/src/sap/base/i18n/Localization.js +9 -4
  15. package/src/sap/base/i18n/ResourceBundle.js +40 -313
  16. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  17. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  18. package/src/sap/base/util/restricted/_castArray.js +1 -1
  19. package/src/sap/base/util/restricted/_compact.js +1 -1
  20. package/src/sap/base/util/restricted/_curry.js +1 -1
  21. package/src/sap/base/util/restricted/_debounce.js +1 -1
  22. package/src/sap/base/util/restricted/_difference.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_flatten.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  31. package/src/sap/base/util/restricted/_intersection.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isNil.js +1 -1
  37. package/src/sap/base/util/restricted/_max.js +1 -1
  38. package/src/sap/base/util/restricted/_merge.js +1 -1
  39. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  40. package/src/sap/base/util/restricted/_min.js +1 -1
  41. package/src/sap/base/util/restricted/_omit.js +1 -1
  42. package/src/sap/base/util/restricted/_pick.js +1 -1
  43. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  44. package/src/sap/base/util/restricted/_throttle.js +1 -1
  45. package/src/sap/base/util/restricted/_toArray.js +1 -1
  46. package/src/sap/base/util/restricted/_union.js +1 -1
  47. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  48. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  49. package/src/sap/base/util/restricted/_uniq.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  52. package/src/sap/base/util/restricted/_without.js +1 -1
  53. package/src/sap/base/util/restricted/_xor.js +1 -1
  54. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  55. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  58. package/src/sap/ui/Device.js +3 -3
  59. package/src/sap/ui/Global.js +3 -3
  60. package/src/sap/ui/VersionInfo.js +24 -9
  61. package/src/sap/ui/base/Event.js +1 -1
  62. package/src/sap/ui/base/EventProvider.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +108 -91
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  66. package/src/sap/ui/base/Metadata.js +1 -1
  67. package/src/sap/ui/base/Object.js +1 -1
  68. package/src/sap/ui/base/ObjectPool.js +1 -1
  69. package/src/sap/ui/core/.library +1 -1
  70. package/src/sap/ui/core/BusyIndicator.js +1 -1
  71. package/src/sap/ui/core/Component.js +52 -6
  72. package/src/sap/ui/core/ComponentContainer.js +4 -2
  73. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +11 -3
  78. package/src/sap/ui/core/CustomData.js +2 -2
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +14 -35
  81. package/src/sap/ui/core/ElementHooks.js +35 -0
  82. package/src/sap/ui/core/ElementMetadata.js +1 -1
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/Fragment.js +34 -11
  86. package/src/sap/ui/core/HTML.js +1 -1
  87. package/src/sap/ui/core/History.js +1 -1
  88. package/src/sap/ui/core/Icon.js +1 -1
  89. package/src/sap/ui/core/IconPool.js +11 -12
  90. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  91. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  92. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  93. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  94. package/src/sap/ui/core/InvisibleText.js +1 -1
  95. package/src/sap/ui/core/Item.js +1 -1
  96. package/src/sap/ui/core/LabelEnablement.js +1 -1
  97. package/src/sap/ui/core/LayoutData.js +1 -1
  98. package/src/sap/ui/core/Lib.js +12 -32
  99. package/src/sap/ui/core/ListItem.js +1 -1
  100. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  101. package/src/sap/ui/core/Locale.js +1 -1
  102. package/src/sap/ui/core/LocaleData.js +67 -93
  103. package/src/sap/ui/core/Manifest.js +5 -3
  104. package/src/sap/ui/core/Message.js +1 -1
  105. package/src/sap/ui/core/RenderManager.js +1 -1
  106. package/src/sap/ui/core/Renderer.js +1 -1
  107. package/src/sap/ui/core/ResizeHandler.js +1 -1
  108. package/src/sap/ui/core/ScrollBar.js +1 -1
  109. package/src/sap/ui/core/SeparatorItem.js +1 -1
  110. package/src/sap/ui/core/ShortcutHintsMixin.js +9 -0
  111. package/src/sap/ui/core/Theming.js +98 -1
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +1 -1
  115. package/src/sap/ui/core/UIComponent.js +6 -3
  116. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -1
  122. package/src/sap/ui/core/_CommandPool.js +80 -0
  123. package/src/sap/ui/core/boot/KeyboardInteractionEndpoint.js +124 -0
  124. package/src/sap/ui/core/date/UI5Date.js +1 -1
  125. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  126. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  129. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  131. package/src/sap/ui/core/fieldhelp/FieldHelp.js +90 -48
  132. package/src/sap/ui/core/fieldhelp/FieldHelpCustomData.js +0 -4
  133. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  134. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  135. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  136. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  137. package/src/sap/ui/core/i18n/interaction.xml +31 -0
  138. package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +332 -0
  139. package/src/sap/ui/core/library.js +6 -3
  140. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  141. package/src/sap/ui/core/message/Message.js +1 -1
  142. package/src/sap/ui/core/message/MessageManager.js +1 -1
  143. package/src/sap/ui/core/message/MessageParser.js +1 -1
  144. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  145. package/src/sap/ui/core/messagebundle.properties +14 -0
  146. package/src/sap/ui/core/messagebundle_ro.properties +2 -2
  147. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_vi.properties +2 -2
  149. package/src/sap/ui/core/mvc/Controller.js +25 -11
  150. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  151. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  152. package/src/sap/ui/core/mvc/JSView.js +1 -1
  153. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  154. package/src/sap/ui/core/mvc/View.js +43 -18
  155. package/src/sap/ui/core/mvc/XMLView.js +20 -1
  156. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  157. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  158. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  159. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  160. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  161. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  162. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  163. package/src/sap/ui/core/service/Service.js +1 -1
  164. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  165. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  166. package/src/sap/ui/core/support/Plugin.js +1 -1
  167. package/src/sap/ui/core/support/Support.js +1 -1
  168. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  169. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  170. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  171. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  172. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  173. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  174. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  175. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  176. package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +12 -0
  177. package/src/sap/ui/core/support/usage/EventBroadcaster.js +5 -5
  178. package/src/sap/ui/core/themes/base/base.less +398 -23
  179. package/src/sap/ui/core/themes/base/global.less +7 -0
  180. package/src/sap/ui/core/themes/base/icons/favicon.ico +0 -0
  181. package/src/sap/ui/core/themes/base/skeleton.less +11 -4
  182. package/src/sap/ui/core/themes/sap_hcb/.theming +2 -1
  183. package/src/sap/ui/core/theming/ThemeHelper.js +13 -0
  184. package/src/sap/ui/core/theming/ThemeManager.js +1 -1
  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 +1 -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 +1 -1
  200. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  201. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  202. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  203. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  204. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  205. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  206. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  207. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  208. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  209. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  210. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  211. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  212. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  213. package/src/sap/ui/debug/ControlTree.js +1 -1
  214. package/src/sap/ui/debug/DebugEnv.js +1 -1
  215. package/src/sap/ui/debug/PropertyList.js +1 -1
  216. package/src/sap/ui/model/ClientModel.js +1 -1
  217. package/src/sap/ui/model/CompositeDataState.js +1 -1
  218. package/src/sap/ui/model/CompositeType.js +1 -1
  219. package/src/sap/ui/model/DataState.js +1 -1
  220. package/src/sap/ui/model/MetaModel.js +1 -1
  221. package/src/sap/ui/model/Model.js +1 -1
  222. package/src/sap/ui/model/SelectionModel.js +1 -1
  223. package/src/sap/ui/model/SimpleType.js +1 -1
  224. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  225. package/src/sap/ui/model/Type.js +1 -1
  226. package/src/sap/ui/model/json/JSONModel.js +1 -1
  227. package/src/sap/ui/model/message/MessageModel.js +1 -1
  228. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  229. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  230. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  231. package/src/sap/ui/model/odata/ODataMetadata.js +5 -2
  232. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  233. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  234. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  235. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  236. package/src/sap/ui/model/odata/type/Date.js +1 -1
  237. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  238. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  239. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  240. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  241. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  242. package/src/sap/ui/model/odata/type/Double.js +1 -1
  243. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  244. package/src/sap/ui/model/odata/type/Int.js +1 -1
  245. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  246. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  247. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  248. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  249. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  250. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  251. package/src/sap/ui/model/odata/type/Single.js +1 -1
  252. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  253. package/src/sap/ui/model/odata/type/String.js +1 -1
  254. package/src/sap/ui/model/odata/type/Time.js +1 -1
  255. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  256. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  257. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  258. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  259. package/src/sap/ui/model/odata/v2/ODataModel.js +36 -21
  260. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  261. package/src/sap/ui/model/odata/v4/Context.js +88 -33
  262. package/src/sap/ui/model/odata/v4/ODataBinding.js +15 -9
  263. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -4
  264. package/src/sap/ui/model/odata/v4/ODataListBinding.js +84 -17
  265. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +63 -4
  266. package/src/sap/ui/model/odata/v4/ODataModel.js +14 -2
  267. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +5 -2
  268. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +3 -2
  269. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +24 -6
  270. package/src/sap/ui/model/odata/v4/lib/_Batch.js +5 -1
  271. package/src/sap/ui/model/odata/v4/lib/_Cache.js +30 -11
  272. package/src/sap/ui/model/odata/v4/lib/_Helper.js +33 -17
  273. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  274. package/src/sap/ui/model/type/Boolean.js +1 -1
  275. package/src/sap/ui/model/type/Currency.js +1 -1
  276. package/src/sap/ui/model/type/Date.js +1 -1
  277. package/src/sap/ui/model/type/DateInterval.js +1 -1
  278. package/src/sap/ui/model/type/DateTime.js +1 -1
  279. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  280. package/src/sap/ui/model/type/FileSize.js +1 -1
  281. package/src/sap/ui/model/type/Float.js +1 -1
  282. package/src/sap/ui/model/type/Integer.js +1 -1
  283. package/src/sap/ui/model/type/String.js +1 -1
  284. package/src/sap/ui/model/type/Time.js +1 -1
  285. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  286. package/src/sap/ui/model/type/Unit.js +1 -1
  287. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  288. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  289. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  290. package/src/sap/ui/test/TestUtils.js +1 -1
  291. package/src/sap/ui/test/generic/TestBase.js +1 -1
  292. package/src/sap/ui/util/Storage.js +1 -1
  293. package/src/ui5loader.js +19 -3
@@ -20,7 +20,7 @@ sap.ui.define(['sap/base/assert', 'sap/ui/base/Object', "sap/base/i18n/Localizat
20
20
  *
21
21
  * @extends sap.ui.base.Object
22
22
  * @author SAP SE
23
- * @version 1.134.0
23
+ * @version 1.135.0
24
24
  * @public
25
25
  * @alias sap.ui.core.Locale
26
26
  */
@@ -23,35 +23,35 @@ sap.ui.define([
23
23
 
24
24
  var rCIgnoreCase = /c/i,
25
25
  rEIgnoreCase = /e/i,
26
- /**
27
- * With the upgrade of the CLDR to version 41 some unit keys have changed.
28
- * For compatibility reasons this map is used for formatting units.
29
- * It maps a legacy unit key to its renamed key.
30
- *
31
- * @deprecated As of version 1.122.0, this map is no longer maintained and stays for compatibility reasons
32
- * only. Reason for the depreciation: The assumption of homogeneous unit keys in the CLDR data has been proven
33
- * wrong. Additionally, it is unclear if, those CLDR unit keys are actually used. Implementing a complex logic
34
- * to maintain potentially unused entries did not seem reasonable. Therefore, it was decided to deprecate this
35
- * feature.
36
- * This map was last updated with CLDR V43, in 1.119.0.
37
- * @private
38
- */
39
- mLegacyUnit2CurrentUnit = {
40
- "acceleration-meter-per-second-squared": "acceleration-meter-per-square-second",
41
- "concentr-milligram-per-deciliter": "concentr-milligram-ofglucose-per-deciliter",
42
- "concentr-part-per-million": "concentr-permillion",
43
- "consumption-liter-per-100kilometers": "consumption-liter-per-100-kilometer",
44
- "mass-metric-ton": "mass-tonne",
45
- "pressure-millimeter-of-mercury": "pressure-millimeter-ofhg",
46
- "pressure-pound-per-square-inch": "pressure-pound-force-per-square-inch",
47
- "pressure-inch-hg": "pressure-inch-ofhg",
48
- "torque-pound-foot": "torque-pound-force-foot"
49
- },
50
26
  rNumberInScientificNotation = /^([+-]?)((\d+)(?:\.(\d+))?)[eE]([+-]?\d+)$/,
51
27
  rTrailingZeroes = /0+$/;
52
28
  const rFallbackPatternTextParts = /(.*)?\{[0|1]}(.*)?\{[0|1]}(.*)?/;
53
29
  const rOnlyZeros = /^0+$/;
54
30
  const aSupportedWidths = ["narrow", "abbreviated", "wide"];
31
+ /**
32
+ * With the upgrade of the CLDR to version 41 some unit keys have changed.
33
+ * For compatibility reasons this map is used for formatting units.
34
+ * It maps a legacy unit key to its renamed key.
35
+ *
36
+ * @deprecated As of version 1.122.0, this map is no longer maintained and stays for compatibility reasons
37
+ * only. Reason for the depreciation: The assumption of homogeneous unit keys in the CLDR data has been proven
38
+ * wrong. Additionally, it is unclear if, those CLDR unit keys are actually used. Implementing a complex logic
39
+ * to maintain potentially unused entries did not seem reasonable. Therefore, it was decided to deprecate this
40
+ * feature.
41
+ * This map was last updated with CLDR V43, in 1.119.0.
42
+ * @private
43
+ */
44
+ const mLegacyUnit2CurrentUnit = {
45
+ "acceleration-meter-per-second-squared": "acceleration-meter-per-square-second",
46
+ "concentr-milligram-per-deciliter": "concentr-milligram-ofglucose-per-deciliter",
47
+ "concentr-part-per-million": "concentr-permillion",
48
+ "consumption-liter-per-100kilometers": "consumption-liter-per-100-kilometer",
49
+ "mass-metric-ton": "mass-tonne",
50
+ "pressure-millimeter-of-mercury": "pressure-millimeter-ofhg",
51
+ "pressure-pound-per-square-inch": "pressure-pound-force-per-square-inch",
52
+ "pressure-inch-hg": "pressure-inch-ofhg",
53
+ "torque-pound-foot": "torque-pound-force-foot"
54
+ };
55
55
 
56
56
  /**
57
57
  * The locale data cache. Maps a locale ID, formatted as either the language_region (e.g. "ar_SA"),
@@ -78,7 +78,7 @@ sap.ui.define([
78
78
  * {@link https://cldr.unicode.org/ Unicode CLDR}.
79
79
  * @hideconstructor
80
80
  * @public
81
- * @version 1.134.0
81
+ * @version 1.135.0
82
82
  */
83
83
  var LocaleData = BaseObject.extend("sap.ui.core.LocaleData", /** @lends sap.ui.core.LocaleData.prototype */ {
84
84
 
@@ -1409,34 +1409,42 @@ sap.ui.define([
1409
1409
  },
1410
1410
 
1411
1411
  /**
1412
- * Returns the number of digits of the specified currency.
1412
+ * Returns the number of digits of the given currency considering a custom currency first and falling
1413
+ * back to the CLDR data if no custom currency is defined.
1413
1414
  *
1414
- * @param {string} sCurrency ISO 4217 currency code
1415
- * @returns {int} digits of the currency
1415
+ * @param {string} sCurrency The ISO 4217 currency code
1416
+ * @returns {int} The number of digits for the given currency
1416
1417
  * @public
1417
1418
  * @since 1.21.1
1418
1419
  */
1419
1420
  getCurrencyDigits: function(sCurrency) {
1421
+ const mCurrencyDigits = this.getAllCurrencyDigits();
1422
+ return mCurrencyDigits[sCurrency] ?? mCurrencyDigits["DEFAULT"];
1423
+ },
1420
1424
 
1421
- // try to lookup currency digits from custom currencies
1422
- var mCustomCurrencies = this._get("currency");
1425
+ /**
1426
+ * Returns a language dependent map of ISO 4217 currency codes to the number of digits from the CLDR. The map
1427
+ * only contains currency codes for which the number of digits deviates from the value with the key
1428
+ * <code>DEFAULT</code>. If custom currencies are defined, they are merged into the map overwriting the CLDR
1429
+ * values including the default value if a custom default value is set.
1430
+ *
1431
+ * @returns {Object<string, number>} The map of currency codes to the number of digits
1432
+ * @private
1433
+ * @ui5-restricted sap.ui.export.Spreadsheet
1434
+ * @since 1.135
1435
+ */
1436
+ getAllCurrencyDigits() {
1437
+ const mCurrencyDigits = {...this._get("currencyDigits")};
1438
+ const mCustomCurrencies = this._get("currency");
1423
1439
  if (mCustomCurrencies) {
1424
- if (mCustomCurrencies[sCurrency] && mCustomCurrencies[sCurrency].hasOwnProperty("digits")) {
1425
- return mCustomCurrencies[sCurrency].digits;
1426
- } else if (mCustomCurrencies["DEFAULT"] && mCustomCurrencies["DEFAULT"].hasOwnProperty("digits")) {
1427
- return mCustomCurrencies["DEFAULT"].digits;
1440
+ for (const sCurrencyCode in mCustomCurrencies) {
1441
+ if (mCustomCurrencies[sCurrencyCode].digits !== undefined) {
1442
+ mCurrencyDigits[sCurrencyCode] = mCustomCurrencies[sCurrencyCode].digits;
1443
+ }
1428
1444
  }
1429
1445
  }
1430
1446
 
1431
- var iDigits = this._get("currencyDigits", sCurrency);
1432
- if (iDigits == null) {
1433
- iDigits = this._get("currencyDigits", "DEFAULT");
1434
-
1435
- if (iDigits == null) {
1436
- iDigits = 2; // default
1437
- }
1438
- }
1439
- return iDigits;
1447
+ return mCurrencyDigits;
1440
1448
  },
1441
1449
 
1442
1450
  /**
@@ -1871,7 +1879,7 @@ sap.ui.define([
1871
1879
  * }
1872
1880
  *
1873
1881
  * @param {string} sUnit unit name, e.g. "duration-hour" or "my"
1874
- * @return {Object<string,string>}
1882
+ * @return {Object<string, string>}
1875
1883
  * The unit format pattern for the given unit name as a map from a pattern key like
1876
1884
  * <code>"unitPattern-count-other"</code> to the corresponding pattern
1877
1885
  * @public
@@ -1890,18 +1898,21 @@ sap.ui.define([
1890
1898
  * Note: Does not take unit mapping into consideration.
1891
1899
  *
1892
1900
  * @param {string} sUnit unit name, e.g. "duration-hour"
1893
- * @return {Object<string,string>}
1901
+ * @return {Object<string, string>|undefined}
1894
1902
  * The unit format pattern for the given unit name as a map from a pattern key like
1895
- * <code>"unitPattern-count-other"</code> to the corresponding pattern
1903
+ * <code>"unitPattern-count-other"</code> to the corresponding pattern or <code>undefined</code> if no
1904
+ * corresponding pattern is found
1896
1905
  * @public
1897
1906
  * @since 1.54
1898
1907
  */
1899
1908
  getUnitFormat: function (sUnit) {
1900
1909
  var oResult = this._get("units", "short", sUnit);
1901
1910
 
1911
+ /** @deprecated As of version 1.122.0, reason mLegacyUnit2CurrentUnit */
1902
1912
  if (!oResult && mLegacyUnit2CurrentUnit[sUnit]) {
1903
1913
  oResult = this._get("units", "short", mLegacyUnit2CurrentUnit[sUnit]);
1904
1914
  }
1915
+
1905
1916
  return oResult;
1906
1917
  },
1907
1918
 
@@ -1911,7 +1922,7 @@ sap.ui.define([
1911
1922
  *
1912
1923
  * Note: Does not take unit mapping into consideration.
1913
1924
  *
1914
- * @return {Object<string,Object<string,string>>} The unit format patterns as a map from a unit key to a map
1925
+ * @return {Object<string, Object<string, string>>} The unit format patterns as a map from a unit key to a map
1915
1926
  * from a pattern key like <code>"unitPattern-count-other"</code> to the corresponding pattern
1916
1927
  * @public
1917
1928
  * @since 1.54
@@ -2416,55 +2427,18 @@ sap.ui.define([
2416
2427
  "A": { group: "Other", numericCeiling: 100}
2417
2428
  };
2418
2429
 
2419
- /**
2420
- * Helper to analyze and parse designtime (aka buildtime) variables
2421
- *
2422
- * At buildtime, the build can detect a pattern like $some-variable-name:some-value$
2423
- * and replace 'some-value' with a value determined at buildtime (here: the actual list of locales).
2424
- *
2425
- * At runtime, this method removes the surrounding pattern ('$some-variable-name:' and '$') and leaves only the 'some-value'.
2426
- * Additionally, this value is parsed as a comma-separated list (because this is the only use case here).
2427
- *
2428
- * The mimic of the comments is borrowed from the CVS (Concurrent Versions System),
2429
- * see http://web.mit.edu/gnu/doc/html/cvs_17.html.
2430
- *
2431
- * If no valid <code>sValue</code> is given, <code>null</code> is returned
2432
- *
2433
- * @param {string} sValue The raw designtime property e.g. $cldr-rtl-locales:ar,fa,he$
2434
- * @returns {string[]|null} The designtime property e.g. ['ar', 'fa', 'he']
2435
- * @private
2436
- */
2437
- function getDesigntimePropertyAsArray(sValue) {
2438
- var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
2439
- return (m && m[2]) ? m[2].split(/,/) : null;
2440
- }
2441
-
2442
2430
  /**
2443
2431
  * A list of locales for which CLDR data is bundled with the UI5 runtime.
2444
- * @private
2445
- */
2446
- var _cldrLocales = getDesigntimePropertyAsArray("$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cnr,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,mk,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$");
2447
-
2448
- /**
2449
- * A set of locales for which the UI5 runtime contains a CLDR JSON file.
2450
- *
2451
- * Helps to avoid unsatisfiable backend calls.
2432
+ * The value of this constant must only be updated by the CLDR generator; do not modify it manually.
2452
2433
  *
2453
2434
  * @private
2454
2435
  */
2455
- var M_SUPPORTED_LOCALES = (function() {
2456
- var LOCALES = _cldrLocales,
2457
- result = {},
2458
- i;
2459
-
2460
- if ( LOCALES ) {
2461
- for (i = 0; i < LOCALES.length; i++) {
2462
- result[LOCALES[i]] = true;
2463
- }
2464
- }
2465
-
2466
- return result;
2467
- }());
2436
+ const A_SUPPORTED_LOCALES = ["ar","ar_EG","ar_SA","bg","ca","cnr","cs","cy","da","de","de_AT","de_CH","el","el_CY",
2437
+ "en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es",
2438
+ "es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr",
2439
+ "fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko",
2440
+ "lt","lv","mk","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl",
2441
+ "sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"];
2468
2442
 
2469
2443
  /**
2470
2444
  * Creates a flat map from an object structure which contains a link to the parent ("_parent").
@@ -2595,7 +2569,7 @@ sap.ui.define([
2595
2569
  }
2596
2570
 
2597
2571
  function getOrLoad(sId) {
2598
- if (!mLocaleIdToData[sId] && (!M_SUPPORTED_LOCALES || M_SUPPORTED_LOCALES[sId] === true)
2572
+ if (!mLocaleIdToData[sId] && A_SUPPORTED_LOCALES.includes(sId)
2599
2573
  || mLocaleIdToData[sId] instanceof Promise && !bAsync) {
2600
2574
  mLocaleIdToData[sId] = SyncPromise.resolve(LoaderExtensions.loadResource(`sap/ui/core/cldr/${sId}.json`,
2601
2575
  {
@@ -2829,7 +2803,7 @@ sap.ui.define([
2829
2803
  return Promise.resolve(oLocaleData.loaded);
2830
2804
  };
2831
2805
 
2832
- LocaleData._cldrLocales = _cldrLocales;
2806
+ LocaleData._cldrLocales = A_SUPPORTED_LOCALES;
2833
2807
  // maps a locale to a map of time zone translations, which maps an IANA time zone ID to the translated time zone
2834
2808
  // name
2835
2809
  LocaleData._mTimezoneTranslations = {};
@@ -165,7 +165,7 @@ sap.ui.define([
165
165
  * @class The Manifest class.
166
166
  * @extends sap.ui.base.Object
167
167
  * @author SAP SE
168
- * @version 1.134.0
168
+ * @version 1.135.0
169
169
  * @alias sap.ui.core.Manifest
170
170
  * @since 1.33.0
171
171
  */
@@ -287,11 +287,13 @@ sap.ui.define([
287
287
  sBaseBundleUrlRelativeTo = "manifest",
288
288
  vI18n = (oManifest["sap.app"] && oManifest["sap.app"]["i18n"]) || "i18n/i18n.properties";
289
289
 
290
+ const fnResourceBundleCreate = bAsync ? ResourceBundle.create : ResourceBundle._createSync;
291
+
290
292
  if (typeof vI18n === "string") {
291
293
  oI18nURI = new URI(vI18n);
292
294
 
293
295
  // load the ResourceBundle relative to the manifest
294
- return ResourceBundle.create({
296
+ return fnResourceBundleCreate({
295
297
  url: this.resolveUri(oI18nURI, sBaseBundleUrlRelativeTo),
296
298
  async: bAsync
297
299
  });
@@ -315,7 +317,7 @@ sap.ui.define([
315
317
  async: bAsync
316
318
  }, vI18n);
317
319
 
318
- return ResourceBundle.create(mParams);
320
+ return fnResourceBundleCreate(mParams);
319
321
  }
320
322
  },
321
323
 
@@ -26,7 +26,7 @@ sap.ui.define(['./Element', './library', "./Theming", "sap/base/Log"],
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.134.0
29
+ * @version 1.135.0
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.Message
@@ -241,7 +241,7 @@ sap.ui.define([
241
241
  *
242
242
  * @extends Object
243
243
  * @author SAP SE
244
- * @version 1.134.0
244
+ * @version 1.135.0
245
245
  * @alias sap.ui.core.RenderManager
246
246
  * @hideconstructor
247
247
  * @public
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @classdesc Base Class for a Renderer.
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.134.0
22
+ * @version 1.135.0
23
23
  * @namespace
24
24
  * @public
25
25
  * @alias sap.ui.core.Renderer
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @alias sap.ui.core.ResizeHandler
37
37
  * @extends sap.ui.base.Object
38
38
  * @author SAP SE
39
- * @version 1.134.0
39
+ * @version 1.135.0
40
40
  * @public
41
41
  */
42
42
 
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * The ScrollBar control can be used for virtual scrolling of a certain area.
45
45
  * This means: to simulate a very large scrollable area when technically the area is small and the control takes care of displaying the respective part only. E.g. a Table control can take care of only rendering the currently visible rows and use this ScrollBar control to make the user think he actually scrolls through a long list.
46
46
  * @extends sap.ui.core.Control
47
- * @version 1.134.0
47
+ * @version 1.135.0
48
48
  *
49
49
  * @public
50
50
  * @deprecated As of version 1.56, the concept has been discarded.
@@ -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.134.0
26
+ * @version 1.135.0
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.SeparatorItem
@@ -459,6 +459,11 @@ sap.ui.define([
459
459
  return;
460
460
  }
461
461
 
462
+ // add native tooltip to element so it can override the native tooltip of the container / parent element
463
+ if (!oDOMRef.getAttribute('title')) {
464
+ oDOMRef.setAttribute('title', '');
465
+ }
466
+
462
467
  if (checkMouseEnterOrLeave(oEvent, oDOMRef)) {
463
468
  ShortcutHintsMixin.hideAll();
464
469
 
@@ -482,6 +487,10 @@ sap.ui.define([
482
487
  return;
483
488
  }
484
489
 
490
+ // remove the native tooltip that was set onmouseover
491
+ if (oShortcutHintRefs[0].ref.getAttribute('title') === '') {
492
+ oShortcutHintRefs[0].ref.removeAttribute('title');
493
+ }
485
494
  this.hideShortcutHint();
486
495
  }
487
496
  },
@@ -27,6 +27,8 @@ sap.ui.define([
27
27
 
28
28
  const oWritableConfig = BaseConfig.getWritableInstance();
29
29
  const oEventing = new Eventing();
30
+ // Remember the initial favicon path in case there was already a favicon provided
31
+ const sInitialFaviconPath = document.querySelector("link[rel=icon]")?.getAttribute("href");
30
32
  let oThemeManager;
31
33
 
32
34
  /**
@@ -249,6 +251,91 @@ sap.ui.define([
249
251
  }
250
252
  },
251
253
 
254
+ /**
255
+ * Derives the favicon path based on the configuration and the current theme.
256
+ *
257
+ * @returns {Promise<string>} The favicon path
258
+ * @private
259
+ * @since 1.135
260
+ */
261
+ getFavicon: async () => {
262
+ const sDefaultFavicon = sInitialFaviconPath || sap.ui.require.toUrl("sap/ui/core/themes/base/icons/favicon.ico");
263
+ const sFaviconFromConfig = oWritableConfig.get({
264
+ name: "sapUiFavicon",
265
+ type: (vValue) => {
266
+ const sValue = vValue.toString();
267
+ if (["", "false"].includes(sValue.toLowerCase())) {
268
+ return false;
269
+ } else if (["x", "true"].includes(sValue.toLowerCase())) {
270
+ return true;
271
+ }
272
+ if (!vValue || (new URL(vValue, window.location.origin)).href.startsWith(window.location.origin)) {
273
+ return sValue;
274
+ } else {
275
+ Log.error("Absolute URLs are not allowed for favicon. The configured favicon will be ignored.", undefined, "sap.ui.core.theming.Theming");
276
+ return true;
277
+ }
278
+ }
279
+ });
280
+
281
+ if (!sFaviconFromConfig) {
282
+ return sFaviconFromConfig;
283
+ }
284
+
285
+ if (typeof sFaviconFromConfig === "string") {
286
+ return sFaviconFromConfig;
287
+ } else if (oThemeManager && !ThemeHelper.isStandardTheme(Theming.getTheme())) {
288
+ const sFaviconPath = await new Promise((res) => {
289
+ sap.ui.require(["sap/ui/core/theming/Parameters"], (Parameters) => {
290
+ const sFavicon = Parameters.get({
291
+ name: "sapUiFavicon",
292
+ _restrictedParseUrls: true,
293
+ callback: (sFavicon) => {
294
+ res(sFavicon);
295
+ }
296
+ });
297
+ if (sFavicon !== undefined) {
298
+ res(sFavicon);
299
+ }
300
+ });
301
+ });
302
+ return sFaviconPath || sDefaultFavicon;
303
+ }
304
+ return sDefaultFavicon;
305
+ },
306
+
307
+ /**
308
+ * Sets the favicon. The path must be relative to the current origin. Absolute URLs are not allowed.
309
+ *
310
+ * @param {string|boolean|undefined} vFavicon A string containing a specific relative path to the favicon,
311
+ * 'true' to use a favicon from custom theme or the default favicon in case no custom favicon is maintained,
312
+ * 'false' or undefined to disable the favicon
313
+ * @returns {Promise<undefined>} A promise that resolves when the favicon has been set with undefined
314
+ * @public
315
+ * @since 1.135
316
+ */
317
+ setFavicon: async (vFavicon) => {
318
+ if (typeof vFavicon === "string" && !(new URL(vFavicon, window.location.origin)).href.startsWith(window.location.origin)) {
319
+ throw new TypeError("Path to favicon must be relative to the current origin");
320
+ }
321
+
322
+ oWritableConfig.set("sapUiFavicon", vFavicon);
323
+ const sNewFaviconPath = await Theming.getFavicon();
324
+
325
+ if (sNewFaviconPath) {
326
+ await new Promise((res, rej) => {
327
+ sap.ui.require(["sap/ui/util/Mobile"], (Mobile) => {
328
+ Mobile.setIcons({
329
+ favicon: sNewFaviconPath
330
+ });
331
+ res();
332
+ }, rej);
333
+ });
334
+ } else {
335
+ document.querySelector("link[rel=icon]")?.remove();
336
+ }
337
+ },
338
+
252
339
  /**
253
340
  * Fired after a theme has been applied.
254
341
  *
@@ -546,5 +633,15 @@ sap.ui.define([
546
633
  return sPath;
547
634
  }
548
635
 
636
+ Theming.attachApplied(() => {
637
+ Theming.getFavicon().then((favicon) => {
638
+ if (favicon) {
639
+ sap.ui.require(["sap/ui/util/Mobile"], (Mobile) => {
640
+ Mobile.setIcons({ favicon });
641
+ });
642
+ }
643
+ });
644
+ });
645
+
549
646
  return Theming;
550
- });
647
+ });
@@ -25,7 +25,7 @@ sap.ui.define(['./Element', './library'],
25
25
  * @extends sap.ui.core.Element
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.134.0
28
+ * @version 1.135.0
29
29
  *
30
30
  * @public
31
31
  * @since 1.16.0
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @class
33
33
  * Abstract class that can be extended in order to implement any extended tooltip. For example, RichTooltip Control is based on it. It provides the opening/closing behavior and the main "text" property.
34
34
  * @extends sap.ui.core.Control
35
- * @version 1.134.0
35
+ * @version 1.135.0
36
36
  *
37
37
  * @public
38
38
  * @alias sap.ui.core.TooltipBase
@@ -170,7 +170,7 @@ sap.ui.define([
170
170
  *
171
171
  * @extends sap.ui.base.ManagedObject
172
172
  * @author SAP SE
173
- * @version 1.134.0
173
+ * @version 1.135.0
174
174
  * @param {object} [oRootNode] reference to the DOM element that should be 'hosting' the UI Area.
175
175
  * @public
176
176
  * @alias sap.ui.core.UIArea
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @extends sap.ui.core.Component
62
62
  * @abstract
63
63
  * @author SAP SE
64
- * @version 1.134.0
64
+ * @version 1.135.0
65
65
  * @alias sap.ui.core.UIComponent
66
66
  * @since 1.9.2
67
67
  */
@@ -753,7 +753,7 @@ sap.ui.define([
753
753
 
754
754
  if (oRootView && typeof oRootView === "object") {
755
755
  // default ViewType to XML, except for typed views
756
- if (!oRootView.type && !View._getModuleName(oRootView)) {
756
+ if (!oRootView.type && !oRootView.name?.startsWith("module:")) {
757
757
  oRootView.type = ViewType.XML;
758
758
  }
759
759
 
@@ -856,7 +856,7 @@ sap.ui.define([
856
856
  if (oContainer) {
857
857
  this._applyContextualSettings(oContainer._getContextualSettings());
858
858
  } else {
859
- this._oContextualSettings = ManagedObject._defaultContextualSettings;
859
+ this._oContextualSettings = defaultContextualSettings;
860
860
  if (!this._bIsBeingDestroyed) {
861
861
  setTimeout(function() {
862
862
  // if object is being destroyed or container is set again (move) no propagation is needed
@@ -978,6 +978,9 @@ sap.ui.define([
978
978
  return mRoutingClasses;
979
979
  };
980
980
 
981
+ // retrieve default contextual settings from a fresh MO (which then is garbage collected)
982
+ const { _oContextualSettings: defaultContextualSettings } = new ManagedObject();
983
+
981
984
  return UIComponent;
982
985
 
983
986
  });
@@ -17,7 +17,7 @@ sap.ui.define(['./ComponentMetadata', 'sap/ui/core/mvc/ViewType'],
17
17
  *
18
18
  * @class
19
19
  * @author SAP SE
20
- * @version 1.134.0
20
+ * @version 1.135.0
21
21
  * @since 1.15.1
22
22
  * @alias sap.ui.core.UIComponentMetadata
23
23
  * @extends sap.ui.core.ComponentMetadata
@@ -16,7 +16,7 @@ sap.ui.define(['./Element', './library', './Lib', "sap/base/assert"],
16
16
  * Helper functionality for value state support.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.134.0
19
+ * @version 1.135.0
20
20
  * @public
21
21
  * @namespace sap.ui.core.ValueStateSupport
22
22
  */
@@ -20,7 +20,7 @@ sap.ui.define(['./LayoutData', './library'],
20
20
  * @class
21
21
  * Allows to add multiple LayoutData to one control in case that an easy switch of layouts (e.g. in a Form) is needed.
22
22
  * @extends sap.ui.core.LayoutData
23
- * @version 1.134.0
23
+ * @version 1.135.0
24
24
  *
25
25
  * @public
26
26
  * @since 1.9.2
@@ -148,7 +148,7 @@ sap.ui.define([
148
148
  * @extends sap.ui.core.Control
149
149
  *
150
150
  * @author SAP SE
151
- * @version 1.134.0
151
+ * @version 1.135.0
152
152
  * @since 1.56.0
153
153
  * @alias sap.ui.core.XMLComposite
154
154
  * @see {@link topic:b83a4dcb7d0e46969027345b8d32fd44 XML Composite Controls}
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @param {object} oClassInfo static info to construct the metadata from
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.134.0
32
+ * @version 1.135.0
33
33
  * @since 1.50.0
34
34
  * @alias sap.ui.core.XMLCompositeMetadata
35
35
  * @extends sap.ui.core.ElementMetadata
@@ -303,7 +303,11 @@ function(
303
303
  for ( i = 0; i < xmlNode.attributes.length; i++) {
304
304
  attr = xmlNode.attributes[i];
305
305
  if (VIEW_SPECIAL_ATTRIBUTES.includes(attr.name)) {
306
- oView["_" + attr.name] = attr.value;
306
+ if (attr.name === "controllerName" && attr.value.startsWith("module:")) {
307
+ oView["_controllerModuleName"] = attr.value;
308
+ } else {
309
+ oView["_" + attr.name] = attr.value;
310
+ }
307
311
  }
308
312
  }
309
313
  };