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