@openui5/sap.ui.core 1.92.0 → 1.95.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 (394) hide show
  1. package/{.eslintrc → .eslintrc.json} +1 -2
  2. package/.reuse/dep5 +1 -6
  3. package/THIRDPARTY.txt +4 -10
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +9 -2
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +7 -4
  10. package/src/jquery.sap.stubs.js +2 -1
  11. package/src/jquery.sap.trace.js +2 -1
  12. package/src/sap/base/i18n/ResourceBundle.js +8 -4
  13. package/src/sap/base/strings/whitespaceReplacer.js +52 -0
  14. package/src/sap/base/util/Properties.js +4 -1
  15. package/src/sap/base/util/isEmptyObject.js +1 -2
  16. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  17. package/src/sap/base/util/restricted/_castArray.js +1 -1
  18. package/src/sap/base/util/restricted/_compact.js +1 -1
  19. package/src/sap/base/util/restricted/_curry.js +1 -1
  20. package/src/sap/base/util/restricted/_debounce.js +1 -1
  21. package/src/sap/base/util/restricted/_difference.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_flatten.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_intersection.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isNil.js +1 -1
  36. package/src/sap/base/util/restricted/_max.js +1 -1
  37. package/src/sap/base/util/restricted/_merge.js +1 -1
  38. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  39. package/src/sap/base/util/restricted/_min.js +1 -1
  40. package/src/sap/base/util/restricted/_omit.js +1 -1
  41. package/src/sap/base/util/restricted/_pick.js +1 -1
  42. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  43. package/src/sap/base/util/restricted/_throttle.js +1 -1
  44. package/src/sap/base/util/restricted/_toArray.js +1 -1
  45. package/src/sap/base/util/restricted/_union.js +1 -1
  46. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  47. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  48. package/src/sap/base/util/restricted/_uniq.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  51. package/src/sap/base/util/restricted/_without.js +1 -1
  52. package/src/sap/base/util/restricted/_xor.js +1 -1
  53. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  54. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  57. package/src/sap/ui/Device.js +37 -42
  58. package/src/sap/ui/Global.js +6 -6
  59. package/src/sap/ui/VersionInfo.js +1 -0
  60. package/src/sap/ui/base/DataType.js +14 -7
  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/ExpressionParser.js +9 -6
  64. package/src/sap/ui/base/Interface.js +3 -49
  65. package/src/sap/ui/base/ManagedObject.js +131 -24
  66. package/src/sap/ui/base/ManagedObjectMetadata.js +13 -4
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +49 -4
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/base/syncXHRFix.js +2 -1
  71. package/src/sap/ui/core/.library +5 -5
  72. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  73. package/src/sap/ui/core/BusyIndicator.js +1 -11
  74. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  75. package/src/sap/ui/core/Component.js +441 -179
  76. package/src/sap/ui/core/ComponentContainer.js +16 -6
  77. package/src/sap/ui/core/ComponentMetadata.js +14 -3
  78. package/src/sap/ui/core/ComponentSupport.js +1 -1
  79. package/src/sap/ui/core/Configuration.js +64 -32
  80. package/src/sap/ui/core/Control.js +1 -1
  81. package/src/sap/ui/core/Core.js +57 -40
  82. package/src/sap/ui/core/CustomData.js +1 -1
  83. package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
  84. package/src/sap/ui/core/DeclarativeSupport.js +3 -2
  85. package/src/sap/ui/core/Element.js +1 -1
  86. package/src/sap/ui/core/ElementMetadata.js +4 -2
  87. package/src/sap/ui/core/EnabledPropagator.js +91 -73
  88. package/src/sap/ui/core/EventBus.js +1 -1
  89. package/src/sap/ui/core/ExtensionPoint.js +7 -14
  90. package/src/sap/ui/core/Fragment.js +30 -32
  91. package/src/sap/ui/core/HTML.js +1 -1
  92. package/src/sap/ui/core/History.js +1 -1
  93. package/src/sap/ui/core/Icon.js +5 -5
  94. package/src/sap/ui/core/IconPool.js +15 -1097
  95. package/src/sap/ui/core/IconRenderer.js +2 -2
  96. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  97. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  98. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  99. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  100. package/src/sap/ui/core/InvisibleText.js +1 -1
  101. package/src/sap/ui/core/Item.js +1 -1
  102. package/src/sap/ui/core/LabelEnablement.js +1 -1
  103. package/src/sap/ui/core/LayoutData.js +1 -1
  104. package/src/sap/ui/core/ListItem.js +1 -1
  105. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  106. package/src/sap/ui/core/Locale.js +26 -4
  107. package/src/sap/ui/core/LocaleData.js +1 -1
  108. package/src/sap/ui/core/Manifest.js +124 -126
  109. package/src/sap/ui/core/Message.js +1 -1
  110. package/src/sap/ui/core/Patcher.js +53 -80
  111. package/src/sap/ui/core/Placeholder.js +25 -11
  112. package/src/sap/ui/core/Popup.js +29 -5
  113. package/src/sap/ui/core/RenderManager.js +41 -24
  114. package/src/sap/ui/core/Renderer.js +13 -3
  115. package/src/sap/ui/core/ResizeHandler.js +1 -1
  116. package/src/sap/ui/core/ScrollBar.js +2 -2
  117. package/src/sap/ui/core/SeparatorItem.js +1 -1
  118. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  119. package/src/sap/ui/core/ThemeCheck.js +13 -61
  120. package/src/sap/ui/core/Title.js +1 -1
  121. package/src/sap/ui/core/TooltipBase.js +1 -1
  122. package/src/sap/ui/core/UIArea.js +5 -2
  123. package/src/sap/ui/core/UIComponent.js +81 -40
  124. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  125. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  126. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  127. package/src/sap/ui/core/XMLComposite.js +1 -1
  128. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  129. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -5
  130. package/src/sap/ui/core/_IconRegistry.js +1215 -0
  131. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  132. package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
  133. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  134. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  135. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  136. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  137. package/src/sap/ui/core/format/DateFormat.js +2 -0
  138. package/src/sap/ui/core/format/NumberFormat.js +2 -0
  139. package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
  140. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
  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 +13 -13
  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_de.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  152. package/src/sap/ui/core/mvc/Controller.js +166 -9
  153. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  154. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  155. package/src/sap/ui/core/mvc/HTMLView.js +4 -2
  156. package/src/sap/ui/core/mvc/JSONView.js +8 -6
  157. package/src/sap/ui/core/mvc/JSView.js +5 -3
  158. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  159. package/src/sap/ui/core/mvc/View.js +73 -89
  160. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  161. package/src/sap/ui/core/mvc/XMLView.js +14 -10
  162. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  163. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  164. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  165. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  166. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  167. package/src/sap/ui/core/routing/History.js +36 -18
  168. package/src/sap/ui/core/routing/Route.js +10 -1
  169. package/src/sap/ui/core/routing/Router.js +8 -5
  170. package/src/sap/ui/core/routing/Target.js +13 -0
  171. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  172. package/src/sap/ui/core/routing/Targets.js +39 -2
  173. package/src/sap/ui/core/routing/async/Route.js +7 -4
  174. package/src/sap/ui/core/routing/async/Target.js +383 -262
  175. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  176. package/src/sap/ui/core/rules/App.support.js +35 -1
  177. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  178. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  179. package/src/sap/ui/core/service/Service.js +1 -1
  180. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  181. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  182. package/src/sap/ui/core/support/BootSupportTool.js +11 -0
  183. package/src/sap/ui/core/support/InteractionTree.css +4 -0
  184. package/src/sap/ui/core/support/Plugin.js +1 -1
  185. package/src/sap/ui/core/support/Support.js +1 -1
  186. package/src/sap/ui/core/support/ViewInfo.css +599 -0
  187. package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
  188. package/src/sap/ui/core/support/controls/ObjectViewer.js +8 -50
  189. package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
  190. package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
  191. package/src/sap/ui/core/support/plugins/ControlTree.js +23 -26
  192. package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
  193. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  194. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  195. package/src/sap/ui/core/support/plugins/Performance.js +147 -75
  196. package/src/sap/ui/core/support/plugins/Selector.js +19 -24
  197. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
  198. package/src/sap/ui/core/support/plugins/Trace.js +95 -32
  199. package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
  200. package/src/sap/ui/core/support/support.css +109 -14
  201. package/src/sap/ui/core/support/support.html +6 -2
  202. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  203. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
  204. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  205. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -0
  206. package/src/sap/ui/core/themes/base/base.less +27 -25
  207. package/src/sap/ui/core/themes/base/shared.less +1 -0
  208. package/src/sap/ui/core/theming/Parameters.js +225 -61
  209. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  210. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  211. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  212. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  213. package/src/sap/ui/core/tmpl/Template.js +11 -28
  214. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
  215. package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
  216. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  217. package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
  218. package/src/sap/ui/core/util/Export.js +1 -1
  219. package/src/sap/ui/core/util/ExportCell.js +1 -1
  220. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  221. package/src/sap/ui/core/util/ExportRow.js +1 -1
  222. package/src/sap/ui/core/util/ExportType.js +1 -1
  223. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  224. package/src/sap/ui/core/util/File.js +1 -1
  225. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  226. package/src/sap/ui/core/util/MockServer.js +24 -5
  227. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  230. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +154 -63
  231. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +171 -152
  232. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +419 -291
  233. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  236. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  237. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  238. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  239. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  240. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  241. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  242. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  243. package/src/sap/ui/debug/ControlTree.js +10 -4
  244. package/src/sap/ui/debug/DebugEnv.js +3 -4
  245. package/src/sap/ui/debug/PropertyList.css +55 -0
  246. package/src/sap/ui/debug/PropertyList.js +111 -182
  247. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  248. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  249. package/src/sap/ui/model/ClientModel.js +1 -1
  250. package/src/sap/ui/model/ClientPropertyBinding.js +3 -1
  251. package/src/sap/ui/model/ClientTreeBinding.js +14 -8
  252. package/src/sap/ui/model/CompositeDataState.js +1 -1
  253. package/src/sap/ui/model/CompositeType.js +1 -1
  254. package/src/sap/ui/model/Context.js +31 -11
  255. package/src/sap/ui/model/DataState.js +1 -1
  256. package/src/sap/ui/model/ListBinding.js +19 -0
  257. package/src/sap/ui/model/MetaModel.js +1 -1
  258. package/src/sap/ui/model/Model.js +3 -3
  259. package/src/sap/ui/model/SelectionModel.js +5 -1
  260. package/src/sap/ui/model/SimpleType.js +1 -1
  261. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  262. package/src/sap/ui/model/Type.js +1 -1
  263. package/src/sap/ui/model/analytics/AnalyticalBinding.js +14 -9
  264. package/src/sap/ui/model/analytics/odata4analytics.js +31 -23
  265. package/src/sap/ui/model/base/ManagedObjectModel.js +13 -1
  266. package/src/sap/ui/model/json/JSONModel.js +4 -2
  267. package/src/sap/ui/model/message/MessageModel.js +4 -2
  268. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  269. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  270. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  271. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -2
  272. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  273. package/src/sap/ui/model/odata/ODataModel.js +7 -6
  274. package/src/sap/ui/model/odata/ODataUtils.js +31 -10
  275. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
  276. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  277. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  278. package/src/sap/ui/model/odata/type/Currency.js +7 -2
  279. package/src/sap/ui/model/odata/type/Date.js +1 -1
  280. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  283. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  284. package/src/sap/ui/model/odata/type/Double.js +1 -1
  285. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  286. package/src/sap/ui/model/odata/type/Int.js +1 -1
  287. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  290. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  291. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  292. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  293. package/src/sap/ui/model/odata/type/Single.js +1 -1
  294. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  295. package/src/sap/ui/model/odata/type/String.js +3 -1
  296. package/src/sap/ui/model/odata/type/Time.js +1 -1
  297. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  298. package/src/sap/ui/model/odata/type/Unit.js +7 -2
  299. package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
  300. package/src/sap/ui/model/odata/v2/Context.js +187 -0
  301. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  302. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +55 -51
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +42 -106
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +251 -159
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +163 -136
  306. package/src/sap/ui/model/odata/v4/Context.js +6 -3
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -3
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +97 -25
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +112 -24
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +15 -12
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +85 -77
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +25 -15
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +21 -12
  314. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
  315. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +13 -4
  316. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  317. package/src/sap/ui/model/odata/v4/lib/_Cache.js +28 -17
  318. package/src/sap/ui/model/odata/v4/lib/_Helper.js +47 -30
  319. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +55 -19
  320. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  321. package/src/sap/ui/model/resource/ResourceModel.js +5 -2
  322. package/src/sap/ui/model/type/Boolean.js +1 -1
  323. package/src/sap/ui/model/type/Currency.js +1 -1
  324. package/src/sap/ui/model/type/Date.js +1 -1
  325. package/src/sap/ui/model/type/DateInterval.js +1 -1
  326. package/src/sap/ui/model/type/DateTime.js +1 -1
  327. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  328. package/src/sap/ui/model/type/FileSize.js +1 -1
  329. package/src/sap/ui/model/type/Float.js +1 -1
  330. package/src/sap/ui/model/type/Integer.js +1 -1
  331. package/src/sap/ui/model/type/String.js +1 -1
  332. package/src/sap/ui/model/type/Time.js +1 -1
  333. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  334. package/src/sap/ui/model/type/Unit.js +1 -1
  335. package/src/sap/ui/model/xml/XMLModel.js +4 -2
  336. package/src/sap/ui/performance/Measurement.js +1 -1
  337. package/src/sap/ui/performance/trace/FESR.js +2 -1
  338. package/src/sap/ui/performance/trace/Interaction.js +42 -25
  339. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  340. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  341. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  342. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  343. package/src/sap/ui/security/FrameOptions.js +2 -1
  344. package/src/sap/ui/test/Opa5.js +1 -1
  345. package/src/sap/ui/test/OpaBuilder.js +1 -0
  346. package/src/sap/ui/test/TestUtils.js +28 -34
  347. package/src/sap/ui/test/actions/Drag.js +6 -2
  348. package/src/sap/ui/test/actions/Drop.js +6 -2
  349. package/src/sap/ui/test/actions/EnterText.js +6 -0
  350. package/src/sap/ui/test/actions/Press.js +6 -0
  351. package/src/sap/ui/test/actions/Scroll.js +6 -0
  352. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
  353. package/src/sap/ui/test/launchers/componentLauncher.js +1 -4
  354. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  355. package/src/sap/ui/test/opaQunit.js +11 -9
  356. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  357. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  358. package/src/sap/ui/thirdparty/crossroads.js +16 -6
  359. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  360. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  361. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  362. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  363. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  364. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  365. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  366. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  367. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  368. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  369. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  370. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  371. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  372. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  373. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  374. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  375. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  376. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  377. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  380. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  387. package/src/sap/ui/util/Storage.js +1 -1
  388. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  389. package/src/sap-ui-core-nojQuery.js +1 -1
  390. package/src/sap-ui-core.js +1 -1
  391. package/src/sap-ui-debug.js +3 -17
  392. package/src/ui5loader.js +5 -2
  393. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  394. package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
@@ -3,737 +3,16 @@
3
3
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
- /*global FontFace */
7
6
  sap.ui.define([
8
- 'sap/ui/thirdparty/URI',
9
- "sap/base/i18n/ResourceBundle",
7
+ 'sap/ui/core/Icon',
8
+ 'sap/ui/core/_IconRegistry',
10
9
  "sap/base/Log",
11
10
  "sap/ui/thirdparty/jquery",
12
11
  './Core' // provides sap.ui.getCore()
13
12
  ],
14
- function(URI, ResourceBundle, Log, jQuery) {
13
+ function(Icon, _IconRegistry, Log, jQuery) {
15
14
  "use strict";
16
15
 
17
- /**
18
- * CSS font family used for the icons provided by SAP.
19
- */
20
- var SAP_ICON_FONT_FAMILY = 'SAP-icons';
21
-
22
- /**
23
- * Protocol that is used to identify icon URIs.
24
- */
25
- var ICON_PROTOCOL = 'sap-icon';
26
-
27
- /*
28
- * A map of registered fonts
29
- * key: collection name
30
- * value: configuration object containing
31
- * key: config,
32
- * value: object, the configuration passed to registerFont
33
- * key: metadataLoaded
34
- * value: Promise while loading font metadata, true after resolved, false when failed
35
- * key: inserted
36
- * value: boolean
37
- */
38
- var mFontRegistry = {
39
- undefined: {
40
- config: {
41
- fontFamily: SAP_ICON_FONT_FAMILY
42
- },
43
- metadataLoaded: true,
44
- inserted: true
45
- }
46
- };
47
-
48
- var mRegistry = {
49
- /*
50
- * Raw data for built-in icons.
51
- *
52
- * Maps the name of each icon to a numeric value. The lower 16 bit of the value (0xFFFF) represent the char code
53
- * of the icon in the 'SAP-icons' font (multiple char codes are currently not needed).
54
- * If the 17th bit is set (0x10000), then the icon doesn't need mirroring in right-to-left (RTL) mode.
55
- *
56
- * On first access to an icon, the raw data will be converted to an icon info object, see getIconInfo.
57
- */
58
- 'undefined' : {
59
- 'accidental-leave': 0xe000,
60
- 'account': 0xe001,
61
- 'wrench': 0xe002,
62
- 'windows-doors': 0xe003,
63
- 'washing-machine': 0xe004,
64
- 'visits': 0xe005,
65
- 'video': 0xe006,
66
- 'travel-expense': 0x1e007,
67
- 'temperature': 0xe008,
68
- 'task': 0x1e009,
69
- 'synchronize': 0xe00a,
70
- 'survey': 0x1e00b,
71
- 'settings': 0xe00c,
72
- 'search': 0x1e00d,
73
- 'sales-document': 0x1e00e,
74
- 'retail-store': 0xe00f,
75
- 'refresh': 0xe010,
76
- 'product': 0xe011,
77
- 'present': 0xe012,
78
- 'ppt-attachment': 0xe013,
79
- 'pool': 0xe014,
80
- 'pie-chart': 0xe015,
81
- 'picture': 0xe016,
82
- 'photo-voltaic': 0xe017,
83
- 'phone': 0xe018,
84
- 'pending': 0xe019,
85
- 'pdf-attachment': 0xe01a,
86
- 'past': 0x1e01b,
87
- 'outgoing-call': 0xe01c,
88
- 'opportunity': 0xe01d,
89
- 'opportunities': 0x1e01e,
90
- 'notes': 0xe01f,
91
- 'money-bills': 0x1e020,
92
- 'map': 0xe021,
93
- 'log': 0xe022,
94
- 'line-charts': 0xe023,
95
- 'lightbulb': 0xe024,
96
- 'leads': 0xe025,
97
- 'lead': 0x1e026,
98
- 'laptop': 0xe027,
99
- 'kpi-managing-my-area': 0x1e028,
100
- 'kpi-corporate-performance': 0x1e029,
101
- 'incoming-call': 0xe02a,
102
- 'inbox': 0xe02b,
103
- 'horizontal-bar-chart': 0xe02c,
104
- 'history': 0xe02d,
105
- 'heating-cooling': 0xe02e,
106
- 'gantt-bars': 0xe02f,
107
- 'future': 0x1e030,
108
- 'fridge': 0xe031,
109
- 'fallback': 0xe032,
110
- 'expense-report': 0x1e033,
111
- 'excel-attachment': 0xe034,
112
- 'energy-saving-lightbulb': 0xe035,
113
- 'employee': 0xe036,
114
- 'email': 0xe037,
115
- 'edit': 0xe038,
116
- 'duplicate': 0xe039,
117
- 'download': 0xe03a,
118
- 'doc-attachment': 0xe03b,
119
- 'dishwasher': 0xe03c,
120
- 'delete': 0xe03d,
121
- 'decline': 0xe03e,
122
- 'complete': 0x1e03f,
123
- 'competitor': 0xe040,
124
- 'collections-management': 0xe041,
125
- 'chalkboard': 0x1e042,
126
- 'cart': 0xe043,
127
- 'card': 0xe044,
128
- 'camera': 0xe045,
129
- 'calendar': 0x1e046,
130
- 'begin': 0xe047,
131
- 'basket': 0xe048,
132
- 'bar-chart': 0xe049,
133
- 'attachment': 0xe04a,
134
- 'arrow-top': 0xe04b,
135
- 'arrow-right': 0xe04c,
136
- 'arrow-left': 0xe04d,
137
- 'arrow-bottom': 0xe04e,
138
- 'approvals': 0x1e04f,
139
- 'appointment': 0xe050,
140
- 'alphabetical-order': 0x1e051,
141
- 'along-stacked-chart': 0xe052,
142
- 'alert': 0xe053,
143
- 'addresses': 0xe054,
144
- 'address-book': 0x1e055,
145
- 'add-filter': 0xe056,
146
- 'add-favorite': 0xe057,
147
- 'add': 0xe058,
148
- 'activities': 0x1e059,
149
- 'action': 0xe05a,
150
- 'accept': 0x1e05b,
151
- 'hint': 0x1e05c,
152
- 'group': 0xe05d,
153
- 'check-availability': 0x1e05e,
154
- 'weather-proofing': 0xe05f,
155
- 'payment-approval': 0x1e060,
156
- 'batch-payments': 0x1e061,
157
- 'bed': 0xe062,
158
- 'arobase': 0x1e063,
159
- 'family-care': 0xe064,
160
- 'favorite': 0xe065,
161
- 'navigation-right-arrow': 0xe066,
162
- 'navigation-left-arrow': 0xe067,
163
- 'e-care': 0xe068,
164
- 'less': 0xe069,
165
- 'lateness': 0xe06a,
166
- 'lab': 0xe06b,
167
- 'internet-browser': 0xe06c,
168
- 'instance': 0xe06d,
169
- 'inspection': 0xe06e,
170
- 'image-viewer': 0xe06f,
171
- 'home': 0xe070,
172
- 'grid': 0xe071,
173
- 'goalseek': 0xe072,
174
- 'general-leave-request': 0xe073,
175
- 'create-leave-request': 0xe074,
176
- 'flight': 0xe075,
177
- 'filter': 0xe076,
178
- 'favorite-list': 0xe077,
179
- 'factory': 0xe078,
180
- 'endoscopy': 0xe079,
181
- 'employee-pane': 0xe07a,
182
- 'employee-approvals': 0x1e07b,
183
- 'email-read': 0xe07c,
184
- 'electrocardiogram': 0xe07d,
185
- 'documents': 0xe07e,
186
- 'decision': 0xe07f,
187
- 'database': 0xe080,
188
- 'customer-history': 0xe081,
189
- 'customer': 0xe082,
190
- 'credit-card': 0xe083,
191
- 'create-entry-time': 0xe084,
192
- 'contacts': 0xe085,
193
- 'compare': 0xe086,
194
- 'clinical-order': 0xe087,
195
- 'chain-link': 0xe088,
196
- 'pull-down': 0xe089,
197
- 'cargo-train': 0xe08a,
198
- 'car-rental': 0xe08b,
199
- 'business-card': 0xe08c,
200
- 'bar-code': 0xe08d,
201
- 'folder-blank': 0xe08e,
202
- 'passenger-train': 0xe08f,
203
- 'question-mark': 0x1e090,
204
- 'world': 0xe091,
205
- 'iphone': 0xe092,
206
- 'ipad': 0xe093,
207
- 'warning': 0xe094,
208
- 'sort': 0xe095,
209
- 'course-book': 0xe096,
210
- 'course-program': 0xe097,
211
- 'add-coursebook': 0xe098,
212
- 'print': 0xe099,
213
- 'save': 0xe09a,
214
- 'play': 0x1e09b,
215
- 'pause': 0xe09c,
216
- 'record': 0xe09d,
217
- 'response': 0xe09e,
218
- 'pushpin-on': 0xe09f,
219
- 'pushpin-off': 0xe0a0,
220
- 'unfavorite': 0xe0a1,
221
- 'learning-assistant': 0xe0a2,
222
- 'timesheet': 0xe0a3,
223
- 'time-entry-request': 0xe0a4,
224
- 'list': 0xe0a5,
225
- 'action-settings': 0xe0a6,
226
- 'share': 0xe0a7,
227
- 'feed': 0xe0a8,
228
- 'role': 0xe0a9,
229
- 'flag': 0x1e0aa,
230
- 'post': 0xe0ab,
231
- 'inspect': 0xe0ac,
232
- 'inspect-down': 0xe0ad,
233
- 'appointment-2': 0xe0ae,
234
- 'target-group': 0xe0af,
235
- 'marketing-campaign': 0xe0b0,
236
- 'notification': 0xe0b1,
237
- 'message-error': 0xe0b1,
238
- 'comment': 0xe0b2,
239
- 'shipping-status': 0xe0b3,
240
- 'collaborate': 0xe0b4,
241
- 'shortcut': 0xe0b5,
242
- 'lead-outdated': 0x1e0b6,
243
- 'tools-opportunity': 0xe0b7,
244
- 'permission': 0xe0b8,
245
- 'supplier': 0xe0b9,
246
- 'table-view': 0xe0ba,
247
- 'table-chart': 0xe0bb,
248
- 'switch-views': 0xe0bc,
249
- 'e-learning': 0xe0bd,
250
- 'manager': 0xe0be,
251
- 'switch-classes': 0xe0bf,
252
- 'simple-payment': 0x1e0c0,
253
- 'signature': 0xe0c1,
254
- 'sales-order-item': 0x1e0c2,
255
- 'sales-order': 0x1e0c3,
256
- 'request': 0xe0c4,
257
- 'receipt': 0xe0c5,
258
- 'puzzle': 0xe0c6,
259
- 'process': 0xe0c7,
260
- 'private': 0xe0c8,
261
- 'popup-window': 0xe0c9,
262
- 'person-placeholder': 0xe0ca,
263
- 'per-diem': 0x1e0cb,
264
- 'paper-plane': 0xe0cc,
265
- 'paid-leave': 0x1e0cd,
266
- 'pdf-reader': 0x1e0ce,
267
- 'overview-chart': 0xe0cf,
268
- 'overlay': 0xe0d0,
269
- 'org-chart': 0xe0d1,
270
- 'number-sign': 0xe0d2,
271
- 'notification-2': 0xe0d3,
272
- 'my-sales-order': 0x1e0d4,
273
- 'meal': 0xe0d5,
274
- 'loan': 0x1e0d6,
275
- 'order-status': 0x1e0d7,
276
- 'customer-order-entry': 0x1e0d8,
277
- 'performance': 0xe0d9,
278
- 'menu': 0xe0da,
279
- 'employee-lookup': 0xe0db,
280
- 'education': 0xe0dc,
281
- 'customer-briefing': 0xe0dd,
282
- 'customer-and-contacts': 0xe0de,
283
- 'my-view': 0xe0df,
284
- 'accelerated': 0xe0e0,
285
- 'to-be-reviewed': 0xe0e1,
286
- 'warning2': 0xe0e2,
287
- 'feeder-arrow': 0xe0e3,
288
- 'quality-issue': 0xe0e4,
289
- 'workflow-tasks': 0xe0e5,
290
- 'create': 0xe0e6,
291
- 'home-share': 0xe0e7,
292
- 'globe': 0x1e0e8,
293
- 'tags': 0xe0e9,
294
- 'work-history': 0xe0ea,
295
- 'x-ray': 0xe0eb,
296
- 'wounds-doc': 0xe0ec,
297
- 'web-cam': 0xe0ed,
298
- 'waiver': 0x1e0ee,
299
- 'vertical-bar-chart': 0xe0ef,
300
- 'upstacked-chart': 0xe0f0,
301
- 'trip-report': 0xe0f1,
302
- 'microphone': 0xe0f2,
303
- 'unpaid-leave': 0x1e0f3,
304
- 'tree': 0xe0f4,
305
- 'toaster-up': 0xe0f5,
306
- 'toaster-top': 0xe0f6,
307
- 'toaster-down': 0xe0f7,
308
- 'time-account': 0xe0f8,
309
- 'theater': 0xe0f9,
310
- 'taxi': 0xe0fa,
311
- 'subway-train': 0xe0fb,
312
- 'study-leave': 0xe0fc,
313
- 'stethoscope': 0xe0fd,
314
- 'step': 0xe0fe,
315
- 'sonography': 0xe0ff,
316
- 'soccor': 0xe100,
317
- 'soccer': 0xe100,
318
- 'physical-activity': 0xe101,
319
- 'pharmacy': 0xe102,
320
- 'official-service': 0xe103,
321
- 'offsite-work': 0xe104,
322
- 'nutrition-activity': 0xe105,
323
- 'newspaper': 0xe106,
324
- 'monitor-payments': 0x1e107,
325
- 'map-2': 0xe108,
326
- 'machine': 0xe109,
327
- 'mri-scan': 0xe10a,
328
- 'end-user-experience-monitoring': 0xe10b,
329
- 'unwired': 0xe10c,
330
- 'customer-financial-fact-sheet': 0x1e10d,
331
- 'retail-store-manager': 0xe10e,
332
- 'Netweaver-business-client': 0xe10f,
333
- 'electronic-medical-record': 0xe110,
334
- 'eam-work-order': 0x1e111,
335
- 'customer-view': 0xe112,
336
- 'crm-service-manager': 0xe113,
337
- 'crm-sales': 0x1e114,
338
- 'widgets': 0x1e115,
339
- 'commission-check': 0x1e116,
340
- 'collections-insight': 0x1e117,
341
- 'clinical-tast-tracker': 0xe118,
342
- 'citizen-connect': 0xe119,
343
- 'cart-approval': 0x1e11a,
344
- 'capital-projects': 0x1e11b,
345
- 'bo-strategy-management': 0xe11c,
346
- 'business-objects-mobile': 0xe11d,
347
- 'business-objects-explorer': 0xe11e,
348
- 'business-objects-experience': 0xe11f,
349
- 'bbyd-dashboard': 0xe120,
350
- 'bbyd-active-sales': 0x1e121,
351
- 'business-by-design': 0x1e122,
352
- 'business-one': 0x1e123,
353
- 'sap-box': 0xe124,
354
- 'manager-insight': 0xe125,
355
- 'accounting-document-verification': 0x1e126,
356
- 'hr-approval': 0x1e127,
357
- 'idea-wall': 0xe128,
358
- 'Chart-Tree-Map': 0xe129,
359
- 'cart-5': 0xe12a,
360
- 'cart-4': 0xe12b,
361
- 'wallet': 0xe12c,
362
- 'vehicle-repair': 0xe12d,
363
- 'upload': 0xe12e,
364
- 'unlocked': 0xe12f,
365
- 'umbrella': 0xe130,
366
- 'travel-request': 0x1e131,
367
- 'travel-expense-report': 0x1e132,
368
- 'travel-itinerary': 0xe133,
369
- 'time-overtime': 0x1e134,
370
- 'thing-type': 0xe135,
371
- 'technical-object': 0xe136,
372
- 'tag': 0xe137,
373
- 'syringe': 0xe138,
374
- 'syntax': 0xe139,
375
- 'suitcase': 0xe13a,
376
- 'simulate': 0xe13b,
377
- 'shield': 0xe13c,
378
- 'share-2': 0xe13d,
379
- 'sales-quote': 0x1e13e,
380
- 'repost': 0xe13f,
381
- 'provision': 0xe140,
382
- 'projector': 0xe141,
383
- 'add-product': 0xe142,
384
- 'pipeline-analysis': 0xe143,
385
- 'add-photo': 0xe144,
386
- 'palette': 0xe145,
387
- 'nurse': 0xe146,
388
- 'sales-notification': 0x1e147,
389
- 'mileage': 0xe148,
390
- 'meeting-room': 0xe149,
391
- 'media-forward': 0x1e14a,
392
- 'media-play': 0x1e14b,
393
- 'media-pause': 0xe14c,
394
- 'media-reverse': 0x1e14d,
395
- 'media-rewind': 0x1e14e,
396
- 'measurement-document': 0xe14f,
397
- 'measuring-point': 0xe150,
398
- 'measure': 0xe151,
399
- 'map-3': 0xe152,
400
- 'locked': 0xe153,
401
- 'letter': 0xe154,
402
- 'journey-arrive': 0xe155,
403
- 'journey-change': 0xe156,
404
- 'journey-depart': 0xe157,
405
- 'it-system': 0xe158,
406
- 'it-instance': 0xe159,
407
- 'it-host': 0xe15a,
408
- 'iphone-2': 0xe15b,
409
- 'ipad-2': 0xe15c,
410
- 'inventory': 0xe15d,
411
- 'insurance-house': 0xe15e,
412
- 'insurance-life': 0xe15f,
413
- 'insurance-car': 0xe160,
414
- 'initiative': 0xe161,
415
- 'incident': 0x1e162,
416
- 'group-2': 0xe163,
417
- 'goal': 0xe164,
418
- 'functional-location': 0xe165,
419
- 'full-screen': 0xe166,
420
- 'form': 0xe167,
421
- 'fob-watch': 0xe168,
422
- 'blank-tag': 0xe169,
423
- 'family-protection': 0xe16a,
424
- 'folder': 0xe16b,
425
- 'fax-machine': 0xe16c,
426
- 'example': 0xe16d,
427
- 'eraser': 0xe16e,
428
- 'employee-rejections': 0xe16f,
429
- 'drop-down-list': 0xe170,
430
- 'draw-rectangle': 0xe171,
431
- 'document': 0xe172,
432
- 'doctor': 0xe173,
433
- 'discussion-2': 0xe174,
434
- 'discussion': 0xe175,
435
- 'dimension': 0xe176,
436
- 'customer-and-supplier': 0xe177,
437
- 'crop': 0xe178,
438
- 'add-contact': 0xe179,
439
- 'compare-2': 0xe17a,
440
- 'color-fill': 0xe17b,
441
- 'collision': 0xe17c,
442
- 'curriculum': 0xe17d,
443
- 'chart-axis': 0xe17e,
444
- 'full-stacked-chart': 0xe17f,
445
- 'full-stacked-column-chart': 0xe180,
446
- 'vertical-bar-chart-2': 0xe181,
447
- 'horizontal-bar-chart-2': 0xe182,
448
- 'horizontal-stacked-chart': 0xe183,
449
- 'vertical-stacked-chart': 0xe184,
450
- 'choropleth-chart': 0x1e185,
451
- 'geographic-bubble-chart': 0x1e186,
452
- 'multiple-radar-chart': 0xe187,
453
- 'radar-chart': 0xe188,
454
- 'crossed-line-chart': 0xe189,
455
- 'multiple-line-chart': 0xe18a,
456
- 'multiple-bar-chart': 0xe18b,
457
- 'line-chart': 0xe18c,
458
- 'line-chart-dual-axis': 0xe18d,
459
- 'bubble-chart': 0xe18e,
460
- 'scatter-chart': 0xe18f,
461
- 'multiple-pie-chart': 0xe190,
462
- 'column-chart-dual-axis': 0xe191,
463
- 'tag-cloud-chart': 0xe192,
464
- 'area-chart': 0xe193,
465
- 'cause': 0xe194,
466
- 'cart-3': 0xe195,
467
- 'cart-2': 0xe196,
468
- 'bus-public-transport': 0xe197,
469
- 'burglary': 0xe198,
470
- 'building': 0xe199,
471
- 'border': 0xe19a,
472
- 'bookmark': 0xe19b,
473
- 'badge': 0xe19c,
474
- 'attachment-audio': 0xe19d,
475
- 'attachment-video': 0xe19e,
476
- 'attachment-html': 0xe19f,
477
- 'attachment-photo': 0xe1a0,
478
- 'attachment-e-pub': 0xe1a1,
479
- 'attachment-zip-file': 0xe1a2,
480
- 'attachment-text-file': 0xe1a3,
481
- 'add-equipment': 0xe1a4,
482
- 'add-activity': 0x1e1a5,
483
- 'activity-individual': 0xe1a6,
484
- 'activity-2': 0x1e1a7,
485
- 'add-activity-2': 0x1e1a8,
486
- 'activity-items': 0xe1a9,
487
- 'activity-assigned-to-goal': 0xe1aa,
488
- 'status-completed': 0xe1ab,
489
- 'status-positive': 0xe1ab,
490
- 'status-error': 0xe1ac,
491
- 'status-negative': 0xe1ac,
492
- 'status-inactive': 0xe1ad,
493
- 'status-in-process': 0xe1ae,
494
- 'status-critical': 0xe1ae,
495
- 'blank-tag-2': 0xe1af,
496
- 'cart-full': 0xe1b0,
497
- 'locate-me': 0xe1b1,
498
- 'paging': 0xe1b2,
499
- 'company-view': 0xe1b3,
500
- 'document-text': 0xe1b4,
501
- 'explorer': 0xe1b5,
502
- 'personnel-view': 0xe1b6,
503
- 'sorting-ranking': 0xe1b7,
504
- 'drill-down': 0xe1b8,
505
- 'drill-up': 0xe1b9,
506
- 'vds-file': 0xe1ba,
507
- 'sap-logo-shape': 0x1e1bb,
508
- 'folder-full': 0xe1bc,
509
- 'system-exit': 0xe1bd,
510
- 'system-exit-2': 0xe1be,
511
- 'close-command-field': 0xe1bf,
512
- 'open-command-field': 0xe1c0,
513
- 'sys-enter-2': 0x1e1c1,
514
- 'sys-enter': 0x1e1c2,
515
- 'sys-help-2': 0x1e1c3,
516
- 'sys-help': 0x1e1c4,
517
- 'sys-back': 0xe1c5,
518
- 'sys-back-2': 0xe1c6,
519
- 'sys-cancel': 0xe1c7,
520
- 'sys-cancel-2': 0xe1c8,
521
- 'open-folder': 0xe1c9,
522
- 'sys-find-next': 0xe1ca,
523
- 'sys-find': 0xe1cb,
524
- 'sys-monitor': 0xe1cc,
525
- 'sys-prev-page': 0xe1cd,
526
- 'sys-first-page': 0xe1ce,
527
- 'sys-next-page': 0xe1cf,
528
- 'sys-last-page': 0xe1d0,
529
- 'generate-shortcut': 0xe1d1,
530
- 'create-session': 0xe1d2,
531
- 'display-more': 0xe1d3,
532
- 'enter-more': 0xe1d4,
533
- 'zoom-in': 0xe1d5,
534
- 'zoom-out': 0xe1d6,
535
- 'header': 0xe1d7,
536
- 'detail-view': 0xe1d8,
537
- 'show-edit': 0xe1d8,
538
- 'collapse': 0xe1d9,
539
- 'expand': 0xe1da,
540
- 'positive': 0xe1db,
541
- 'negative': 0xe1dc,
542
- 'display': 0xe1dd,
543
- 'menu2': 0xe1de,
544
- 'redo': 0xe1df,
545
- 'undo': 0xe1e0,
546
- 'navigation-up-arrow': 0xe1e1,
547
- 'navigation-down-arrow': 0xe1e2,
548
- 'down': 0xe1e3,
549
- 'up': 0xe1e4,
550
- 'shelf': 0xe1e5,
551
- 'background': 0xe1e6,
552
- 'resize': 0xe1e7,
553
- 'move': 0xe1e8,
554
- 'show': 0xe1e9,
555
- 'hide': 0xe1ea,
556
- 'nav-back': 0xe1eb,
557
- 'error': 0xe1ec,
558
- 'slim-arrow-right': 0xe1ed,
559
- 'slim-arrow-left': 0xe1ee,
560
- 'slim-arrow-down': 0xe1ef,
561
- 'slim-arrow-up': 0xe1f0,
562
- 'forward': 0xe1f1,
563
- 'overflow': 0xe1f2,
564
- 'value-help': 0xe1f3,
565
- 'multi-select': 0x1e1f4,
566
- 'exit-full-screen': 0xe1f5,
567
- 'sys-add': 0xe1f6,
568
- 'sys-minus': 0xe1f7,
569
- 'dropdown': 0xe1f8,
570
- 'expand-group': 0xe1f9,
571
- 'collapse-group': 0xe200,
572
- 'vertical-grip': 0xe1fa,
573
- 'horizontal-grip': 0xe1fb,
574
- 'sort-descending': 0xe1fc,
575
- 'sort-ascending': 0xe1fd,
576
- 'arrow-down': 0xe1fe,
577
- 'legend': 0xe1ff,
578
- 'message-warning': 0xe201,
579
- 'message-information': 0x1e202,
580
- 'message-success': 0x1e203,
581
- 'restart': 0xe204,
582
- 'stop': 0xe205,
583
- 'add-process': 0xe206,
584
- 'cancel-maintenance': 0xe207,
585
- 'activate': 0xe208,
586
- 'resize-horizontal': 0xe209,
587
- 'resize-vertical': 0xe20a,
588
- 'connected': 0xe20b,
589
- 'disconnected': 0xe20c,
590
- 'edit-outside': 0xe20d,
591
- 'key': 0xe20e,
592
- 'minimize': 0xe20f,
593
- 'back-to-top': 0xe210,
594
- 'hello-world': 0xe211,
595
- 'outbox': 0xe212,
596
- 'donut-chart': 0xe213,
597
- 'heatmap-chart': 0xe214,
598
- 'horizontal-bullet-chart': 0xe215,
599
- 'vertical-bullet-chart': 0xe216,
600
- 'call': 0xe217,
601
- 'download-from-cloud': 0xe218,
602
- 'upload-to-cloud': 0xe219,
603
- 'jam': 0xe21a,
604
- 'sap-ui5': 0xe21b,
605
- 'message-popup': 0xe21c,
606
- 'cloud': 0xe21d,
607
- 'horizontal-waterfall-chart': 0x1e21e,
608
- 'vertical-waterfall-chart': 0x1e21f,
609
- 'broken-link': 0xe220,
610
- 'headset': 0xe221,
611
- 'thumb-up': 0x1e222,
612
- 'thumb-down': 0x1e223,
613
- 'multiselect-all': 0x1e224,
614
- 'multiselect-none': 0x1e225,
615
- 'scissors': 0xe226,
616
- 'sound': 0x1e227,
617
- 'sound-loud': 0x1e228,
618
- 'sound-off': 0x1e229,
619
- 'date-time': 0x1e22a,
620
- 'user-settings': 0xe22b,
621
- 'key-user-settings': 0xe22c,
622
- 'developer-settings': 0xe22d,
623
- 'text-formatting': 0x1e22e,
624
- 'bold-text': 0x1e22f,
625
- 'italic-text': 0x1e230,
626
- 'underline-text': 0x1e231,
627
- 'text-align-justified': 0x1e232,
628
- 'text-align-left': 0x1e233,
629
- 'text-align-center': 0x1e234,
630
- 'text-align-right': 0x1e235,
631
- 'bullet-text': 0x1e236,
632
- 'numbered-text': 0x1e237,
633
- 'co': 0xe238,
634
- 'ui-notifications': 0xe239,
635
- 'bell': 0xe23a,
636
- 'cancel-share': 0xe23b,
637
- 'write-new-document': 0xe23c,
638
- 'write-new': 0xe23d,
639
- 'cancel': 0x1e23e,
640
- 'screen-split-one': 0xe23f,
641
- 'screen-split-two': 0xe240,
642
- 'screen-split-three': 0xe241,
643
- 'customize': 0xe242,
644
- 'user-edit': 0xe243,
645
- 'source-code': 0xe244,
646
- 'copy': 0xe245,
647
- 'paste': 0xe246,
648
- 'line-chart-time-axis': 0x1e247,
649
- 'clear-filter': 0xe248,
650
- 'reset': 0xe249,
651
- 'trend-up': 0xe24a,
652
- 'trend-down': 0xe24b,
653
- 'cursor-arrow': 0xe24c,
654
- 'add-document': 0xe24d,
655
- 'create-form': 0xe24e,
656
- 'resize-corner': 0xe24f,
657
- 'chevron-phase': 0xe250,
658
- 'chevron-phase-2': 0xe251,
659
- 'rhombus-milestone': 0xe252,
660
- 'rhombus-milestone-2': 0xe253,
661
- 'circle-task': 0xe254,
662
- 'circle-task-2': 0xe255,
663
- 'project-definition-triangle': 0xe256,
664
- 'project-definition-triangle-2': 0xe257,
665
- 'master-task-triangle': 0xe258,
666
- 'master-task-triangle-2': 0xe259,
667
- 'program-triangles': 0xe25a,
668
- 'program-triangles-2': 0xe25b,
669
- 'mirrored-task-circle': 0xe25c,
670
- 'mirrored-task-circle-2': 0xe25d,
671
- 'checklist-item': 0xe25e,
672
- 'checklist-item-2': 0xe25f,
673
- 'checklist': 0xe260,
674
- 'checklist-2': 0xe261,
675
- 'chart-table-view': 0xe262,
676
- 'filter-analytics': 0xe263,
677
- 'filter-facets': 0xe264,
678
- 'filter-fields': 0xe265,
679
- 'indent': 0xe266,
680
- 'outdent': 0xe267,
681
- 'heading1': 0x1e268,
682
- 'heading2': 0x1e269,
683
- 'heading3': 0x1e26a,
684
- 'decrease-line-height': 0xe26b,
685
- 'increase-line-height': 0xe26c,
686
- 'fx': 0x1e26d,
687
- 'add-folder': 0xe26e,
688
- 'away': 0xe26f,
689
- 'busy': 0xe270,
690
- 'appear-offline': 0xe271,
691
- 'blur': 0xe272,
692
- 'pixelate': 0xe273,
693
- 'horizontal-combination-chart': 0xe274,
694
- 'add-employee': 0xe275,
695
- 'text-color': 0x1e276,
696
- 'browse-folder': 0xe277,
697
- 'primary-key': 0xe278,
698
- 'two-keys': 0xe279,
699
- 'strikethrough': 0xe27a,
700
- 'text': 0xe27b,
701
- 'responsive': 0xe27c,
702
- 'desktop-mobile': 0xe27d,
703
- 'table-row': 0xe27e,
704
- 'table-column': 0xe27f,
705
- 'validate': 0x1e280,
706
- 'keyboard-and-mouse': 0xe281,
707
- 'touch': 0xe282,
708
- 'expand-all': 0xe283,
709
- 'collapse-all': 0xe284,
710
- 'combine': 0xe285,
711
- 'split': 0xe286,
712
- 'megamenu': 0xe287,
713
- 'feedback': 0xe288,
714
- 'information': 0xe289,
715
- 's4hana': 0x1e28a,
716
- 'translate': 0x1e28b,
717
- 'clear-all': 0xe28c,
718
- 'command-line-interfaces': 0xe28d,
719
- 'sum': 0x1e28e,
720
- 'qr-code': 0x1e28f
721
- }
722
- };
723
-
724
- var oCoreResourceBundle;
725
-
726
- // Lazy load core resource bundle
727
- function getCoreResourceBundle() {
728
- if (!oCoreResourceBundle) {
729
- oCoreResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.core");
730
- }
731
- return oCoreResourceBundle;
732
- }
733
-
734
- // lazy dependency, to avoid cycle
735
- var Icon;
736
-
737
16
  /**
738
17
  * The IconPool is a static class for retrieving or registering icons.
739
18
  * It also provides helping methods for easier consumption of icons.
@@ -775,7 +54,6 @@ sap.ui.define([
775
54
  var sSrc = setting.src,
776
55
  fnConstructor = constructor;
777
56
  if (IconPool.isIconURI(sSrc)) {
778
- Icon = Icon || sap.ui.requireSync("sap/ui/core/Icon");
779
57
  fnConstructor = Icon;
780
58
  //converting to press event in case tap is specified
781
59
  if (setting.tap) {
@@ -807,77 +85,7 @@ sap.ui.define([
807
85
  * @static
808
86
  * @public
809
87
  */
810
- IconPool.addIcon = function(iconName, collectionName, iconInfo) {
811
- // OLD API Compatibility fontFamily, content, overWrite, suppressMirroring
812
- if (typeof iconInfo === "string") {
813
- iconInfo = {
814
- fontFamily: arguments[2],
815
- content: arguments[3],
816
- overWrite: !!arguments[4],
817
- suppressMirroring: !!arguments[5]
818
- };
819
- }
820
-
821
- // if collectionName isn't a string, convert it to string
822
- if (typeof collectionName !== "string") {
823
- collectionName = String(collectionName);
824
- }
825
-
826
- // normalize "undefined" back to undefined because the default
827
- // icon collection should have name undefined
828
- collectionName = collectionName === 'undefined' ? undefined : collectionName;
829
-
830
- if (!mRegistry[collectionName]) {
831
- mRegistry[collectionName] = {};
832
- }
833
-
834
- var collection = mRegistry[collectionName],
835
- icon = collection[iconName],
836
- parts, sContent, sText, sKey;
837
-
838
- if (icon) {
839
- if (collectionName === undefined) {
840
- Log.warning("Icon with name '" + iconName + "' in built-in collection already exists and can not be overwritten.", "sap.ui.core.IconPool");
841
- return;
842
- } else if (!iconInfo.overWrite) {
843
- Log.warning("Icon with name '" + iconName + "' in collection '" + collectionName + "' already exists. Specify 'iconInfo.overWrite' in order to overwrite.", "sap.ui.core.IconPool");
844
- return;
845
- }
846
- }
847
-
848
- parts = {
849
- protocol: ICON_PROTOCOL,
850
- hostname: collectionName || iconName,
851
- path: collectionName ? iconName : undefined
852
- };
853
-
854
- if (Array.isArray(iconInfo.content)) {
855
- sContent = iconInfo.content.map(makeChar).join('');
856
- } else {
857
- sContent = makeChar(iconInfo.content);
858
- }
859
-
860
- if (iconInfo.resourceBundle instanceof ResourceBundle) {
861
- sKey = "Icon." + iconName;
862
- if (iconInfo.resourceBundle.hasText(sKey)) {
863
- sText = iconInfo.resourceBundle.getText(sKey);
864
- }
865
- }
866
-
867
- icon = collection[iconName] = {
868
- name: iconName,
869
- collection: collectionName,
870
- uri: URI.build(parts),
871
- fontFamily: iconInfo.fontFamily,
872
- content: sContent,
873
- text: sText || '',
874
- suppressMirroring: iconInfo.suppressMirroring,
875
- //keep compatibility with old name
876
- skipMirroring: iconInfo.suppressMirroring
877
- };
878
-
879
- return icon;
880
- };
88
+ IconPool.addIcon = _IconRegistry.addIcon;
881
89
 
882
90
  /**
883
91
  * Returns the URI of the icon in the pool which has the given <code>iconName</code> and <code>collectionName</code>.
@@ -888,10 +96,7 @@ sap.ui.define([
888
96
  * @static
889
97
  * @public
890
98
  */
891
- IconPool.getIconURI = function (iconName, collectionName) {
892
- var icon = this.getIconInfo(iconName, collectionName);
893
- return icon && icon.uri;
894
- };
99
+ IconPool.getIconURI = _IconRegistry.getIconURI;
895
100
 
896
101
  /**
897
102
  * Returns an info object for the icon with the given <code>iconName</code> and <code>collectionName</code>.
@@ -924,102 +129,7 @@ sap.ui.define([
924
129
  * @static
925
130
  * @public
926
131
  */
927
- IconPool.getIconInfo = function (iconName, collectionName, loadingMode) {
928
- var parts,
929
- info,
930
- async,
931
- oLoaded,
932
- nameIsURI = IconPool.isIconURI(iconName);
933
-
934
- if (!iconName) {
935
- return;
936
- }
937
-
938
- // handle optional parameters
939
- if (!loadingMode && nameIsURI) {
940
- loadingMode = collectionName;
941
- }
942
- loadingMode = loadingMode || "sync";
943
- async = (loadingMode === "async" || loadingMode === "mixed");
944
-
945
- // retrieves the icon info from the internal registry
946
- function getInfo() {
947
- var collection = mRegistry[collectionName];
948
- var info = collection && collection[iconName];
949
-
950
- // convert raw data lazily to the icon info
951
- if (typeof info === 'number') {
952
- mRegistry[collectionName][iconName] = undefined; // avoid duplicate icon warning
953
- info = IconPool.addIcon(iconName, collectionName, {
954
- fontFamily: mFontRegistry[collectionName].config.fontFamily,
955
- content: info & 0xFFFF,
956
- suppressMirroring: !!(info & 0x10000),
957
- resourceBundle: getCoreResourceBundle()
958
- });
959
- }
960
-
961
- return info;
962
- }
963
-
964
- // parse icon URI
965
- if (nameIsURI) {
966
- parts = URI.parse(iconName);
967
-
968
- if (parts.path.length === 1) {
969
- collectionName = undefined;
970
- iconName = parts.hostname;
971
- } else {
972
- collectionName = parts.hostname;
973
- iconName = parts.path.slice(1);
974
- }
975
-
976
- if (!iconName) {
977
- return;
978
- }
979
- }
980
-
981
- // if collectionName isn't a string, convert it to string
982
- if (typeof collectionName !== "string") {
983
- collectionName = String(collectionName);
984
- }
985
-
986
- // normalize "undefined" back to undefined because the default
987
- // icon collection should have name undefined
988
- collectionName = collectionName === 'undefined' ? undefined : collectionName;
989
-
990
- // fetch the info from the registry
991
- info = getInfo();
992
-
993
- // load icon metadata if not available (except for default collection)
994
- if (info === undefined && collectionName !== undefined) {
995
- oLoaded = IconPool._loadFontMetadata(collectionName, async);
996
- }
997
- if (async) {
998
- if (oLoaded) {
999
- // wait for the icon metadata to be loaded
1000
- return oLoaded.then(function () {
1001
- info = getInfo();
1002
- if (!info) {
1003
- Log.warning("Icon info for icon '" + iconName + "' in collection '" + collectionName + "' could not be fetched");
1004
- }
1005
- return info;
1006
- });
1007
- } else if (loadingMode === "async") {
1008
- return Promise.resolve(info);
1009
- } else {
1010
- info = getInfo();
1011
- }
1012
- } else {
1013
- // refresh info if needed and return it
1014
- info = getInfo();
1015
- }
1016
-
1017
- // show a warning when the icon could not be found
1018
- if (!info) {
1019
- Log.warning("Icon info for icon '" + iconName + "' in collection '" + collectionName + "' could not be fetched");
1020
- }
1021
- return info;
1022
- };
132
+ IconPool.getIconInfo = _IconRegistry.getIconInfo;
1023
133
 
1024
134
  /**
1025
135
  * Checks if the icon font is loaded
@@ -1030,6 +140,7 @@ sap.ui.define([
1030
140
  * @since 1.56.0
1031
141
  */
1032
142
  IconPool.fontLoaded = function (sCollectionName){
143
+ var mFontRegistry = _IconRegistry.getFontRegistry();
1033
144
  if (mFontRegistry[sCollectionName]) {
1034
145
  if (mFontRegistry[sCollectionName].metadataLoaded instanceof Promise) {
1035
146
  return mFontRegistry[sCollectionName].metadataLoaded;
@@ -1054,14 +165,7 @@ sap.ui.define([
1054
165
  * @static
1055
166
  * @public
1056
167
  */
1057
- IconPool.isIconURI = function (uri) {
1058
- if (!uri) {
1059
- return false;
1060
- }
1061
- var parts = URI.parse(uri);
1062
-
1063
- return parts.protocol === ICON_PROTOCOL && !!parts.hostname;
1064
- };
168
+ IconPool.isIconURI = _IconRegistry.isIconURI;
1065
169
 
1066
170
  /**
1067
171
  * Returns all names of registered collections in IconPool
@@ -1070,9 +174,7 @@ sap.ui.define([
1070
174
  * @static
1071
175
  * @public
1072
176
  */
1073
- IconPool.getIconCollectionNames = function () {
1074
- return Object.keys(mRegistry);
1075
- };
177
+ IconPool.getIconCollectionNames = _IconRegistry.getIconCollectionNames;
1076
178
 
1077
179
  /**
1078
180
  * Returns all name of icons that are registered under the given collection.
@@ -1082,10 +184,7 @@ sap.ui.define([
1082
184
  * @static
1083
185
  * @public
1084
186
  */
1085
- IconPool.getIconNames = function (collectionName) {
1086
- var collection = mRegistry[collectionName];
1087
- return collection ? Object.keys(collection) : [];
1088
- };
187
+ IconPool.getIconNames = _IconRegistry.getIconNames;
1089
188
 
1090
189
  /**
1091
190
  * Adds CSS code to load an icon font to the DOM
@@ -1094,61 +193,7 @@ sap.ui.define([
1094
193
  * @param {string} sPath the path to the font file
1095
194
  * @param {string} [sCollectionName] the collection name, if not specified the font face is used
1096
195
  */
1097
- IconPool.insertFontFaceStyle = function (sFontFace, sPath, sCollectionName) {
1098
- var oFontFace;
1099
-
1100
- function convertUrl(sUrl) {
1101
- // AppCacheBuster createds the '_covnertUrl' function when it's active. Call the function to include the
1102
- // CacheBuster token into the url.
1103
- return IconPool._convertUrl ? IconPool._convertUrl(sUrl) : sUrl;
1104
- }
1105
-
1106
- if (arguments.length === 0 || sFontFace === SAP_ICON_FONT_FAMILY) {
1107
- // The font-face declaration for the predefined icon font is done in SAP-icons.css which is imported to the
1108
- // library.source.less. Therefore it's not needed to use inline css to declare it.
1109
- Log.info("It's not needed to call IconPool.insertFontFaceStyle to insert font-face for the predefined icon font SAP-icons because the font-face is included in the library.css of sap.ui.core");
1110
- return;
1111
- }
1112
-
1113
- if (sFontFace && sPath === undefined) {
1114
- Log.error("IconPool.insertFontFaceStyle must be called with at least two parameters!");
1115
- return;
1116
- }
1117
-
1118
- if (sCollectionName === undefined) {
1119
- // when the collection name isn't given
1120
- // set the collection name with sFontFace only when the icon font
1121
- // isn't the standard icon font. The collectionName of the standard icon font
1122
- // should always be set with undefined
1123
- sCollectionName = sFontFace;
1124
- }
1125
-
1126
- // check if the font has not been registered yet
1127
- if (!mFontRegistry[sCollectionName]) {
1128
- Log.error("Icon font '" + sCollectionName + "' has not been registered yet.");
1129
- return;
1130
- }
1131
- // check if font face has already been inserted
1132
- if (mFontRegistry[sCollectionName].inserted) {
1133
- Log.info("The font face style of icon font '" + sCollectionName + "' was already inserted.");
1134
- return;
1135
- }
1136
-
1137
- oFontFace = new FontFace(sFontFace,
1138
- "url(" + convertUrl(sPath + sFontFace + ".woff2") + ") format('woff2'),"
1139
- + "local(" + sFontFace + ")",
1140
- {
1141
- weight: "normal",
1142
- style: "normal"
1143
- }
1144
- );
1145
-
1146
- document.fonts.add(oFontFace);
1147
- oFontFace.load();
1148
-
1149
- mFontRegistry[sCollectionName].inserted = true;
1150
- mFontRegistry[sCollectionName].fontFace = sFontFace;
1151
- };
196
+ IconPool.insertFontFaceStyle = _IconRegistry.insertFontFaceStyle;
1152
197
 
1153
198
  /**
1154
199
  * Registers an additional icon font to the icon pool
@@ -1174,8 +219,8 @@ sap.ui.define([
1174
219
  }
1175
220
 
1176
221
  // protect the default font family
1177
- if (oConfig.fontFamily === SAP_ICON_FONT_FAMILY) {
1178
- Log.error("The font family" + SAP_ICON_FONT_FAMILY + " is already registered");
222
+ if (oConfig.fontFamily === _IconRegistry.sapIconFontFamily) {
223
+ Log.error("The font family" + _IconRegistry.sapIconFontFamily + " is already registered");
1179
224
  return;
1180
225
  }
1181
226
 
@@ -1184,6 +229,7 @@ sap.ui.define([
1184
229
  oConfig.fontURI += "/";
1185
230
  }
1186
231
 
232
+ var mFontRegistry = _IconRegistry.getFontRegistry();
1187
233
  // create an initial configuration for the font
1188
234
  if (!mFontRegistry[oConfig.collectionName] || mFontRegistry[oConfig.collectionName].metadataLoaded === false) {
1189
235
  mFontRegistry[oConfig.collectionName] = {
@@ -1196,130 +242,7 @@ sap.ui.define([
1196
242
 
1197
243
  // load font metadata immediately
1198
244
  if (!oConfig.lazy) {
1199
- IconPool._loadFontMetadata(oConfig.collectionName, true);
1200
- }
1201
- };
1202
-
1203
- /**
1204
- * Loads the icon font metadata based on the configuration specified with {@link registerFont}
1205
- *
1206
- * @param {string} collectionName collection name for the font
1207
- * @param {boolean} [async] metadata is loaded asynchronously when true
1208
- * @private
1209
- * @returns {Promise|undefined} a Promise that is resolved after loading the metadata in async mode
1210
- * or undefined when the font is loaded in sync mode or has already been loaded in either mode.
1211
- */
1212
- IconPool._loadFontMetadata = function (collectionName, async) {
1213
- var oConfig;
1214
-
1215
- if (mFontRegistry[collectionName]) {
1216
- // early out for subsequent tries of loading a font that failed or is finished loading
1217
- if (typeof mFontRegistry[collectionName].metadataLoaded === "boolean") {
1218
- return;
1219
- }
1220
-
1221
- if (async && mFontRegistry[collectionName].metadataLoaded instanceof Promise) {
1222
- return mFontRegistry[collectionName].metadataLoaded;
1223
- }
1224
- // fetch font config
1225
- oConfig = mFontRegistry[collectionName].config;
1226
- } else {
1227
- // only display an error when the collection has not been manually registered by calling addIcon
1228
- if (!mRegistry[collectionName]) {
1229
- Log.error("The font configuration for collection '" + collectionName + "' is not registered");
1230
- }
1231
- // register an entry indicating the font loading failed
1232
- mFontRegistry[collectionName] = {
1233
- metadataLoaded: false
1234
- };
1235
- }
1236
-
1237
- // add icons to registry and insert the font style
1238
- function loadFont(oFontMetadata) {
1239
- for (var sKey in oFontMetadata) {
1240
- oFontMetadata[sKey] = parseInt(oFontMetadata[sKey], 16);
1241
- }
1242
- mRegistry[collectionName] = oFontMetadata;
1243
- IconPool.insertFontFaceStyle(oConfig.fontFamily, oConfig.fontURI, collectionName);
1244
- mFontRegistry[collectionName].metadataLoaded = true;
1245
- }
1246
-
1247
- if (oConfig) {
1248
- // search for a metadata file with the font family name in the same folder
1249
- if (oConfig.metadataURI === undefined) {
1250
- oConfig.metadataURI = oConfig.fontURI + oConfig.fontFamily + ".json";
1251
- }
1252
- if (async && !oConfig.metadata) {
1253
- // while loading is pending return the promise
1254
- if (mFontRegistry[collectionName].metadataLoaded instanceof Promise) {
1255
- return mFontRegistry[collectionName].metadataLoaded;
1256
- }
1257
- // the first time create a metadataLoaded promise
1258
- var oPromise = new Promise(function (fnResolve) {
1259
- if (mRegistry[collectionName] === undefined) {
1260
- // store fnResolve to call it from outside the Promise
1261
- mFontRegistry[collectionName].metadataLoadedResolve = fnResolve;
1262
- // load the metadata asynchronously and save the XHR object
1263
- mFontRegistry[collectionName].metadataXhr = jQuery.ajax(oConfig.metadataURI, {
1264
- dataType: "json",
1265
- success: function (oJSON) {
1266
- loadFont(oJSON);
1267
- delete mFontRegistry[collectionName].metadataXhr;
1268
- delete mFontRegistry[collectionName].metadataLoadedResolve;
1269
- fnResolve();
1270
- },
1271
- error: function (jqXHR, sStatus) {
1272
- if (sStatus !== "abort") { // log an error if it isn't aborted
1273
- Log.error("An error occurred loading the font metadata for collection '" + collectionName + "'");
1274
- mFontRegistry[collectionName].metadataLoaded = false;
1275
- fnResolve();
1276
- }
1277
- }
1278
- });
1279
- }
1280
- });
1281
-
1282
- mFontRegistry[collectionName].metadataLoaded = oPromise;
1283
- return oPromise;
1284
- } else if (oConfig.metadataURI) {
1285
- if (mFontRegistry[collectionName].metadataXhr) { // there is an async request ongoing
1286
- // the async request is aborted before the sync request is sent
1287
- mFontRegistry[collectionName].metadataXhr.abort("Replaced by sync request");
1288
- mFontRegistry[collectionName].metadataXhr = null;
1289
- }
1290
- Log.warning("Synchronous loading of font meta data in IconPool, due to .getIconInfo() call" +
1291
- " for '" + collectionName + "'. Use loading mode 'async' to avoid this call.", "SyncXHR", null, function() {
1292
- return {
1293
- type: "SyncXHR",
1294
- name: "IconPool"
1295
- };
1296
- });
1297
- // load the metadata synchronously
1298
- jQuery.ajax(oConfig.metadataURI, {
1299
- dataType: "json",
1300
- async: false,
1301
- success: function (oJSON) {
1302
- loadFont(oJSON);
1303
- if (mFontRegistry[collectionName].metadataLoadedResolve) {
1304
- // resolve the Promise for the async request
1305
- mFontRegistry[collectionName].metadataLoadedResolve();
1306
- delete mFontRegistry[collectionName].metadataLoadedResolve;
1307
- }
1308
- },
1309
- error: function () {
1310
- if (mFontRegistry[collectionName].metadataLoadedResolve) {
1311
- // resolve the Promise for the async request
1312
- mFontRegistry[collectionName].metadataLoadedResolve();
1313
- delete mFontRegistry[collectionName].metadataLoadedResolve;
1314
- }
1315
- Log.error("An error occurred loading the font metadata for collection '" + collectionName + "'");
1316
- mFontRegistry[collectionName].metadataLoaded = false;
1317
- }
1318
- });
1319
- } else {
1320
- // pass on the configuration object
1321
- loadFont(oConfig.metadata);
1322
- }
245
+ _IconRegistry._loadFontMetadata(oConfig.collectionName, true);
1323
246
  }
1324
247
  };
1325
248
 
@@ -1384,11 +307,6 @@ sap.ui.define([
1384
307
  return mIconForMimeType[sMimeType] || "sap-icon://document";
1385
308
  };
1386
309
 
1387
- // helper functions
1388
- function makeChar(code) {
1389
- return String.fromCharCode(typeof code === 'number' ? code : parseInt(code, 16));
1390
- }
1391
-
1392
310
  return IconPool;
1393
311
 
1394
312
  }, /* bExport= */ true);