@openui5/sap.ui.core 1.93.3 → 1.96.2

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 (416) hide show
  1. package/.eslintrc.json +13 -2
  2. package/.reuse/dep5 +6 -11
  3. package/THIRDPARTY.txt +10 -16
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +5 -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 +3 -3
  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 +6 -2
  13. package/src/sap/base/strings/whitespaceReplacer.js +52 -0
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +37 -42
  56. package/src/sap/ui/Global.js +8 -7
  57. package/src/sap/ui/base/DataType.js +14 -8
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/ExpressionParser.js +9 -6
  61. package/src/sap/ui/base/Interface.js +3 -49
  62. package/src/sap/ui/base/ManagedObject.js +12 -7
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/Metadata.js +1 -1
  65. package/src/sap/ui/base/Object.js +49 -4
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/base/syncXHRFix.js +2 -1
  68. package/src/sap/ui/core/.library +5 -5
  69. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  70. package/src/sap/ui/core/BusyIndicator.js +1 -11
  71. package/src/sap/ui/core/Component.js +300 -140
  72. package/src/sap/ui/core/ComponentContainer.js +24 -8
  73. package/src/sap/ui/core/ComponentMetadata.js +14 -3
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +67 -31
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +103 -25
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
  80. package/src/sap/ui/core/DeclarativeSupport.js +3 -2
  81. package/src/sap/ui/core/Element.js +1 -1
  82. package/src/sap/ui/core/ElementMetadata.js +4 -2
  83. package/src/sap/ui/core/EnabledPropagator.js +91 -73
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/ExtensionPoint.js +7 -14
  86. package/src/sap/ui/core/Fragment.js +30 -32
  87. package/src/sap/ui/core/HTML.js +1 -1
  88. package/src/sap/ui/core/History.js +1 -1
  89. package/src/sap/ui/core/Icon.js +7 -8
  90. package/src/sap/ui/core/IconPool.js +26 -1097
  91. package/src/sap/ui/core/IconRenderer.js +6 -6
  92. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  93. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  94. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  95. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  96. package/src/sap/ui/core/InvisibleText.js +1 -1
  97. package/src/sap/ui/core/Item.js +1 -1
  98. package/src/sap/ui/core/LabelEnablement.js +1 -1
  99. package/src/sap/ui/core/LayoutData.js +1 -1
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +26 -4
  103. package/src/sap/ui/core/LocaleData.js +1 -1
  104. package/src/sap/ui/core/Manifest.js +4 -61
  105. package/src/sap/ui/core/Message.js +1 -1
  106. package/src/sap/ui/core/Patcher.js +27 -3
  107. package/src/sap/ui/core/Placeholder.js +28 -15
  108. package/src/sap/ui/core/RenderManager.js +36 -6
  109. package/src/sap/ui/core/Renderer.js +13 -3
  110. package/src/sap/ui/core/ResizeHandler.js +1 -1
  111. package/src/sap/ui/core/ScrollBar.js +2 -2
  112. package/src/sap/ui/core/SeparatorItem.js +1 -1
  113. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  114. package/src/sap/ui/core/Title.js +1 -1
  115. package/src/sap/ui/core/TooltipBase.js +1 -1
  116. package/src/sap/ui/core/UIArea.js +1 -1
  117. package/src/sap/ui/core/UIComponent.js +42 -16
  118. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  119. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  120. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  121. package/src/sap/ui/core/XMLComposite.js +2 -2
  122. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  123. package/src/sap/ui/core/XMLTemplateProcessor.js +116 -41
  124. package/src/sap/ui/core/_IconRegistry.js +1148 -0
  125. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  126. package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
  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 +2 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  131. package/src/sap/ui/core/format/NumberFormat.js +16 -1
  132. package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
  133. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
  134. package/src/sap/ui/core/library.js +3 -3
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +13 -15
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  144. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  145. package/src/sap/ui/core/mvc/Controller.js +38 -19
  146. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  147. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  148. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  149. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  150. package/src/sap/ui/core/mvc/JSView.js +2 -2
  151. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  152. package/src/sap/ui/core/mvc/View.js +58 -85
  153. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  154. package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
  155. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  157. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  158. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  159. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  160. package/src/sap/ui/core/routing/History.js +10 -2
  161. package/src/sap/ui/core/routing/Router.js +8 -1
  162. package/src/sap/ui/core/routing/Target.js +13 -0
  163. package/src/sap/ui/core/routing/Targets.js +13 -2
  164. package/src/sap/ui/core/routing/async/Route.js +1 -1
  165. package/src/sap/ui/core/routing/async/Target.js +353 -259
  166. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  167. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  168. package/src/sap/ui/core/service/Service.js +1 -1
  169. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  170. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  171. package/src/sap/ui/core/support/BootSupportTool.js +11 -0
  172. package/src/sap/ui/core/support/InteractionTree.css +4 -0
  173. package/src/sap/ui/core/support/Plugin.js +1 -1
  174. package/src/sap/ui/core/support/Support.js +1 -1
  175. package/src/sap/ui/core/support/ViewInfo.css +599 -0
  176. package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
  177. package/src/sap/ui/core/support/controls/ObjectViewer.js +3 -41
  178. package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
  179. package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
  180. package/src/sap/ui/core/support/plugins/ControlTree.js +59 -68
  181. package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
  182. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  183. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  184. package/src/sap/ui/core/support/plugins/Performance.js +147 -75
  185. package/src/sap/ui/core/support/plugins/Selector.js +19 -24
  186. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
  187. package/src/sap/ui/core/support/plugins/Trace.js +95 -32
  188. package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
  189. package/src/sap/ui/core/support/support.css +109 -14
  190. package/src/sap/ui/core/support/support.html +6 -2
  191. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  192. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
  193. package/src/sap/ui/core/themes/base/Icon.less +9 -0
  194. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  195. package/src/sap/ui/core/theming/Parameters.js +6 -4
  196. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  197. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  198. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  199. package/src/sap/ui/core/tmpl/Template.js +10 -28
  200. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
  201. package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
  202. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  203. package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
  204. package/src/sap/ui/core/util/Export.js +1 -1
  205. package/src/sap/ui/core/util/ExportCell.js +1 -1
  206. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  207. package/src/sap/ui/core/util/ExportRow.js +1 -1
  208. package/src/sap/ui/core/util/ExportType.js +1 -1
  209. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  210. package/src/sap/ui/core/util/File.js +1 -1
  211. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  212. package/src/sap/ui/core/util/MockServer.js +5 -5
  213. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
  214. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  215. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  216. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +136 -63
  217. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +170 -153
  218. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +424 -293
  219. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  220. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  221. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  222. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  223. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  224. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  225. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  226. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  227. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  228. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  229. package/src/sap/ui/debug/ControlTree.js +10 -4
  230. package/src/sap/ui/debug/DebugEnv.js +3 -4
  231. package/src/sap/ui/debug/Highlighter.js +8 -2
  232. package/src/sap/ui/debug/PropertyList.css +55 -0
  233. package/src/sap/ui/debug/PropertyList.js +111 -182
  234. package/src/sap/ui/model/Binding.js +174 -118
  235. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  236. package/src/sap/ui/model/ClientListBinding.js +1 -3
  237. package/src/sap/ui/model/ClientModel.js +4 -4
  238. package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
  239. package/src/sap/ui/model/ClientTreeBinding.js +15 -9
  240. package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
  241. package/src/sap/ui/model/CompositeBinding.js +98 -77
  242. package/src/sap/ui/model/CompositeDataState.js +2 -2
  243. package/src/sap/ui/model/CompositeType.js +2 -2
  244. package/src/sap/ui/model/Context.js +4 -2
  245. package/src/sap/ui/model/ContextBinding.js +6 -14
  246. package/src/sap/ui/model/DataState.js +2 -2
  247. package/src/sap/ui/model/Filter.js +255 -53
  248. package/src/sap/ui/model/FilterOperator.js +1 -1
  249. package/src/sap/ui/model/FilterProcessor.js +27 -17
  250. package/src/sap/ui/model/FilterType.js +1 -1
  251. package/src/sap/ui/model/ListBinding.js +180 -117
  252. package/src/sap/ui/model/MetaModel.js +4 -9
  253. package/src/sap/ui/model/Model.js +345 -294
  254. package/src/sap/ui/model/PropertyBinding.js +92 -58
  255. package/src/sap/ui/model/SelectionModel.js +2 -2
  256. package/src/sap/ui/model/SimpleType.js +2 -2
  257. package/src/sap/ui/model/Sorter.js +1 -1
  258. package/src/sap/ui/model/SorterProcessor.js +1 -1
  259. package/src/sap/ui/model/StaticBinding.js +1 -1
  260. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  261. package/src/sap/ui/model/TreeBinding.js +1 -1
  262. package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
  263. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
  264. package/src/sap/ui/model/TreeBindingUtils.js +1 -0
  265. package/src/sap/ui/model/Type.js +1 -1
  266. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -4
  267. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  268. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  269. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  270. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  271. package/src/sap/ui/model/analytics/odata4analytics.js +34 -25
  272. package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
  273. package/src/sap/ui/model/json/JSONListBinding.js +8 -5
  274. package/src/sap/ui/model/json/JSONModel.js +24 -15
  275. package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
  276. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  277. package/src/sap/ui/model/message/MessageListBinding.js +6 -3
  278. package/src/sap/ui/model/message/MessageModel.js +23 -15
  279. package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
  280. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  281. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  282. package/src/sap/ui/model/odata/CountMode.js +1 -1
  283. package/src/sap/ui/model/odata/Filter.js +1 -1
  284. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  285. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  286. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  287. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  288. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -3
  289. package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
  290. package/src/sap/ui/model/odata/ODataModel.js +8 -7
  291. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  292. package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
  293. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  294. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
  295. package/src/sap/ui/model/odata/ODataUtils.js +13 -11
  296. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  297. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  298. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  299. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  300. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  301. package/src/sap/ui/model/odata/type/Date.js +1 -1
  302. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  303. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  304. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  305. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  306. package/src/sap/ui/model/odata/type/Double.js +1 -1
  307. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  308. package/src/sap/ui/model/odata/type/Int.js +1 -1
  309. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  310. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  311. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  312. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  313. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  314. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  315. package/src/sap/ui/model/odata/type/Single.js +1 -1
  316. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  317. package/src/sap/ui/model/odata/type/String.js +1 -1
  318. package/src/sap/ui/model/odata/type/Time.js +1 -1
  319. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  320. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  321. package/src/sap/ui/model/odata/v2/Context.js +81 -9
  322. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +3 -3
  323. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +39 -49
  324. package/src/sap/ui/model/odata/v2/ODataListBinding.js +236 -73
  325. package/src/sap/ui/model/odata/v2/ODataModel.js +314 -164
  326. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +110 -97
  327. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
  328. package/src/sap/ui/model/odata/v4/Context.js +6 -3
  329. package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -6
  330. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +117 -40
  331. package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -15
  332. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +44 -31
  333. package/src/sap/ui/model/odata/v4/ODataModel.js +86 -78
  334. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +47 -28
  335. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -7
  336. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
  337. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +8 -1
  338. package/src/sap/ui/model/odata/v4/lib/_Cache.js +24 -16
  339. package/src/sap/ui/model/odata/v4/lib/_Helper.js +32 -30
  340. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +52 -17
  341. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  342. package/src/sap/ui/model/resource/ResourceModel.js +6 -2
  343. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  344. package/src/sap/ui/model/type/Boolean.js +2 -2
  345. package/src/sap/ui/model/type/Currency.js +2 -2
  346. package/src/sap/ui/model/type/Date.js +9 -3
  347. package/src/sap/ui/model/type/DateInterval.js +4 -2
  348. package/src/sap/ui/model/type/DateTime.js +2 -2
  349. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  350. package/src/sap/ui/model/type/FileSize.js +4 -2
  351. package/src/sap/ui/model/type/Float.js +4 -2
  352. package/src/sap/ui/model/type/Integer.js +4 -2
  353. package/src/sap/ui/model/type/String.js +2 -2
  354. package/src/sap/ui/model/type/Time.js +2 -2
  355. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  356. package/src/sap/ui/model/type/Unit.js +14 -7
  357. package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
  358. package/src/sap/ui/model/xml/XMLModel.js +70 -41
  359. package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
  360. package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
  361. package/src/sap/ui/performance/trace/Interaction.js +30 -15
  362. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  363. package/src/sap/ui/qunit/QUnitUtils.js +3 -2
  364. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  365. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
  366. package/src/sap/ui/test/TestUtils.js +11 -4
  367. package/src/sap/ui/test/actions/Drag.js +6 -2
  368. package/src/sap/ui/test/actions/Drop.js +6 -2
  369. package/src/sap/ui/test/actions/EnterText.js +6 -0
  370. package/src/sap/ui/test/actions/Press.js +6 -0
  371. package/src/sap/ui/test/actions/Scroll.js +6 -0
  372. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
  373. package/src/sap/ui/test/launchers/componentLauncher.js +0 -4
  374. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  375. package/src/sap/ui/test/opaQunit.js +5 -0
  376. package/src/sap/ui/thirdparty/crossroads.js +6 -4
  377. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  380. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  387. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  388. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  389. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  390. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  391. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  392. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  393. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  394. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  395. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  396. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  397. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  398. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  399. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  400. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  401. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  402. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  403. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  404. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  405. package/src/sap/ui/thirdparty/jquery.js +9 -1
  406. package/src/sap/ui/thirdparty/qunit-2.js +1 -1
  407. package/src/sap/ui/thirdparty/qunit.js +1 -1
  408. package/src/sap/ui/util/Mobile.js +2 -20
  409. package/src/sap/ui/util/Storage.js +1 -1
  410. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  411. package/src/sap-ui-core-nojQuery.js +1 -1
  412. package/src/sap-ui-core.js +1 -1
  413. package/src/sap-ui-debug.js +3 -17
  414. package/ui5.yaml +5 -2
  415. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  416. 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) {
@@ -806,78 +84,9 @@ sap.ui.define([
806
84
  * @return {object} the info object of the registered icon which has the name, collection, uri, fontFamily, content and suppressMirroring properties.
807
85
  * @static
808
86
  * @public
87
+ * @function
809
88
  */
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
- };
89
+ IconPool.addIcon = _IconRegistry.addIcon;
881
90
 
882
91
  /**
883
92
  * Returns the URI of the icon in the pool which has the given <code>iconName</code> and <code>collectionName</code>.
@@ -887,11 +96,9 @@ sap.ui.define([
887
96
  * @return {string} URI of the icon or <code>undefined</code> if the icon can't be found in the IconPool
888
97
  * @static
889
98
  * @public
99
+ * @function
890
100
  */
891
- IconPool.getIconURI = function (iconName, collectionName) {
892
- var icon = this.getIconInfo(iconName, collectionName);
893
- return icon && icon.uri;
894
- };
101
+ IconPool.getIconURI = _IconRegistry.getIconURI;
895
102
 
896
103
  /**
897
104
  * Returns an info object for the icon with the given <code>iconName</code> and <code>collectionName</code>.
@@ -923,113 +130,21 @@ sap.ui.define([
923
130
  * or <code>undefined</code> when the icon can't be found or no icon name was given.
924
131
  * @static
925
132
  * @public
133
+ * @function
926
134
  */
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
- };
135
+ IconPool.getIconInfo = _IconRegistry.getIconInfo;
1023
136
 
1024
137
  /**
1025
138
  * Checks if the icon font is loaded
1026
139
  * @param {string} sCollectionName icon collection name
1027
140
  * @returns {Promise|undefined} a Promise that resolves when the icon font is loaded;
1028
141
  * or <code>undefined</code> if the icon font has not been registered yet
142
+ * @static
1029
143
  * @public
1030
144
  * @since 1.56.0
1031
145
  */
1032
146
  IconPool.fontLoaded = function (sCollectionName){
147
+ var mFontRegistry = _IconRegistry.getFontRegistry();
1033
148
  if (mFontRegistry[sCollectionName]) {
1034
149
  if (mFontRegistry[sCollectionName].metadataLoaded instanceof Promise) {
1035
150
  return mFontRegistry[sCollectionName].metadataLoaded;
@@ -1053,15 +168,9 @@ sap.ui.define([
1053
168
  * @return {boolean} Whether the URI matches the icon URI format
1054
169
  * @static
1055
170
  * @public
171
+ * @function
1056
172
  */
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
- };
173
+ IconPool.isIconURI = _IconRegistry.isIconURI;
1065
174
 
1066
175
  /**
1067
176
  * Returns all names of registered collections in IconPool
@@ -1069,10 +178,9 @@ sap.ui.define([
1069
178
  * @return {array} An array contains all of the registered collections' names.
1070
179
  * @static
1071
180
  * @public
181
+ * @function
1072
182
  */
1073
- IconPool.getIconCollectionNames = function () {
1074
- return Object.keys(mRegistry);
1075
- };
183
+ IconPool.getIconCollectionNames = _IconRegistry.getIconCollectionNames;
1076
184
 
1077
185
  /**
1078
186
  * Returns all name of icons that are registered under the given collection.
@@ -1081,11 +189,9 @@ sap.ui.define([
1081
189
  * @return {array} An array contains all of the registered icon names under the given collection.
1082
190
  * @static
1083
191
  * @public
192
+ * @function
1084
193
  */
1085
- IconPool.getIconNames = function (collectionName) {
1086
- var collection = mRegistry[collectionName];
1087
- return collection ? Object.keys(collection) : [];
1088
- };
194
+ IconPool.getIconNames = _IconRegistry.getIconNames;
1089
195
 
1090
196
  /**
1091
197
  * Adds CSS code to load an icon font to the DOM
@@ -1093,62 +199,11 @@ sap.ui.define([
1093
199
  * @param {string} sFontFace the file name of the font face
1094
200
  * @param {string} sPath the path to the font file
1095
201
  * @param {string} [sCollectionName] the collection name, if not specified the font face is used
202
+ * @static
203
+ * @public
204
+ * @function
1096
205
  */
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
- };
206
+ IconPool.insertFontFaceStyle = _IconRegistry.insertFontFaceStyle;
1152
207
 
1153
208
  /**
1154
209
  * Registers an additional icon font to the icon pool
@@ -1161,6 +216,7 @@ sap.ui.define([
1161
216
  * @param {object} [oConfig.metadataURI] an URI to a file containing the configuration object specified with oConfig.metadata
1162
217
  * @param {boolean} [oConfig.lazy] load the icon font metadata only when an icon is requested with {@link #.getIconInfo}
1163
218
  * if not specified a JSON file with the name oConfig.fontFamily will be loaded from the location specified in oConfig.fontURI
219
+ * @static
1164
220
  * @public
1165
221
  * @since 1.56.0
1166
222
  */
@@ -1174,8 +230,8 @@ sap.ui.define([
1174
230
  }
1175
231
 
1176
232
  // 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");
233
+ if (oConfig.fontFamily === _IconRegistry.sapIconFontFamily) {
234
+ Log.error("The font family" + _IconRegistry.sapIconFontFamily + " is already registered");
1179
235
  return;
1180
236
  }
1181
237
 
@@ -1184,6 +240,7 @@ sap.ui.define([
1184
240
  oConfig.fontURI += "/";
1185
241
  }
1186
242
 
243
+ var mFontRegistry = _IconRegistry.getFontRegistry();
1187
244
  // create an initial configuration for the font
1188
245
  if (!mFontRegistry[oConfig.collectionName] || mFontRegistry[oConfig.collectionName].metadataLoaded === false) {
1189
246
  mFontRegistry[oConfig.collectionName] = {
@@ -1196,130 +253,7 @@ sap.ui.define([
1196
253
 
1197
254
  // load font metadata immediately
1198
255
  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
- }
256
+ _IconRegistry._loadFontMetadata(oConfig.collectionName, true);
1323
257
  }
1324
258
  };
1325
259
 
@@ -1384,11 +318,6 @@ sap.ui.define([
1384
318
  return mIconForMimeType[sMimeType] || "sap-icon://document";
1385
319
  };
1386
320
 
1387
- // helper functions
1388
- function makeChar(code) {
1389
- return String.fromCharCode(typeof code === 'number' ? code : parseInt(code, 16));
1390
- }
1391
-
1392
321
  return IconPool;
1393
322
 
1394
323
  }, /* bExport= */ true);