{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { NativeModules, Platform, PixelRatio, processColor, Text } from \"./react-native\";\nimport ensureNativeModuleAvailable from \"./ensure-native-module-available\";\nimport createIconSourceCache from \"./create-icon-source-cache\";\nimport createIconButtonComponent from \"./icon-button\";\nimport createTabBarItemIOSComponent from \"./tab-bar-item-ios\";\nexport var NativeIconAPI = NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\nexport var DEFAULT_ICON_SIZE = 12;\nexport var DEFAULT_ICON_COLOR = 'black';\nexport default function createIconSet(glyphMap, fontFamily, fontFile, fontStyle) {\n  var fontBasename = fontFile ? fontFile.replace(/\\.(otf|ttf)$/, '') : fontFamily;\n  var fontReference = Platform.select({\n    windows: \"/Assets/\" + fontFile + \"#\" + fontFamily,\n    android: fontBasename,\n    web: fontBasename,\n    default: fontFamily\n  });\n\n  var Icon = function (_PureComponent) {\n    _inherits(Icon, _PureComponent);\n\n    var _super = _createSuper(Icon);\n\n    function Icon() {\n      var _this;\n\n      _classCallCheck(this, Icon);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _super.call.apply(_super, [this].concat(args));\n      _this.root = null;\n\n      _this.handleRef = function (ref) {\n        _this.root = ref;\n      };\n\n      return _this;\n    }\n\n    _createClass(Icon, [{\n      key: \"setNativeProps\",\n      value: function setNativeProps(nativeProps) {\n        if (this.root) {\n          this.root.setNativeProps(nativeProps);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var _this$props = this.props,\n            name = _this$props.name,\n            size = _this$props.size,\n            color = _this$props.color,\n            style = _this$props.style,\n            children = _this$props.children,\n            props = _objectWithoutProperties(_this$props, [\"name\", \"size\", \"color\", \"style\", \"children\"]);\n\n        var glyph = name ? glyphMap[name] || '?' : '';\n\n        if (typeof glyph === 'number') {\n          glyph = String.fromCodePoint(glyph);\n        }\n\n        var styleDefaults = {\n          fontSize: size,\n          color: color\n        };\n        var styleOverrides = {\n          fontFamily: fontReference,\n          fontWeight: 'normal',\n          fontStyle: 'normal'\n        };\n        props.style = [styleDefaults, style, styleOverrides, fontStyle || {}];\n        props.ref = this.handleRef;\n        return React.createElement(Text, props, glyph, children);\n      }\n    }]);\n\n    return Icon;\n  }(PureComponent);\n\n  Icon.defaultProps = {\n    size: DEFAULT_ICON_SIZE,\n    allowFontScaling: false\n  };\n  var imageSourceCache = createIconSourceCache();\n\n  function resolveGlyph(name) {\n    var glyph = glyphMap[name] || '?';\n\n    if (typeof glyph === 'number') {\n      return String.fromCodePoint(glyph);\n    }\n\n    return glyph;\n  }\n\n  function getImageSourceSync(name) {\n    var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ICON_SIZE;\n    var color = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_ICON_COLOR;\n    ensureNativeModuleAvailable();\n    var glyph = resolveGlyph(name);\n    var processedColor = processColor(color);\n    var cacheKey = glyph + \":\" + size + \":\" + processedColor;\n\n    if (imageSourceCache.has(cacheKey)) {\n      return imageSourceCache.get(cacheKey);\n    }\n\n    try {\n      var imagePath = NativeIconAPI.getImageForFontSync(fontReference, glyph, size, processedColor);\n      var value = {\n        uri: imagePath,\n        scale: PixelRatio.get()\n      };\n      imageSourceCache.setValue(cacheKey, value);\n      return value;\n    } catch (error) {\n      imageSourceCache.setError(cacheKey, error);\n      throw error;\n    }\n  }\n\n  function getImageSource(name) {\n    var size,\n        color,\n        glyph,\n        processedColor,\n        cacheKey,\n        imagePath,\n        value,\n        _args = arguments;\n    return _regeneratorRuntime.async(function getImageSource$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            size = _args.length > 1 && _args[1] !== undefined ? _args[1] : DEFAULT_ICON_SIZE;\n            color = _args.length > 2 && _args[2] !== undefined ? _args[2] : DEFAULT_ICON_COLOR;\n            ensureNativeModuleAvailable();\n            glyph = resolveGlyph(name);\n            processedColor = processColor(color);\n            cacheKey = glyph + \":\" + size + \":\" + processedColor;\n\n            if (!imageSourceCache.has(cacheKey)) {\n              _context.next = 8;\n              break;\n            }\n\n            return _context.abrupt(\"return\", imageSourceCache.get(cacheKey));\n\n          case 8:\n            _context.prev = 8;\n            _context.next = 11;\n            return _regeneratorRuntime.awrap(NativeIconAPI.getImageForFont(fontReference, glyph, size, processedColor));\n\n          case 11:\n            imagePath = _context.sent;\n            value = {\n              uri: imagePath,\n              scale: PixelRatio.get()\n            };\n            imageSourceCache.setValue(cacheKey, value);\n            return _context.abrupt(\"return\", value);\n\n          case 17:\n            _context.prev = 17;\n            _context.t0 = _context[\"catch\"](8);\n            imageSourceCache.setError(cacheKey, _context.t0);\n            throw _context.t0;\n\n          case 21:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, null, null, [[8, 17]], Promise);\n  }\n\n  function loadFont() {\n    var file,\n        _args2 = arguments;\n    return _regeneratorRuntime.async(function loadFont$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            file = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : fontFile;\n\n            if (!(Platform.OS === 'ios')) {\n              _context2.next = 7;\n              break;\n            }\n\n            ensureNativeModuleAvailable();\n\n            if (file) {\n              _context2.next = 5;\n              break;\n            }\n\n            throw new Error('Unable to load font, because no file was specified. ');\n\n          case 5:\n            _context2.next = 7;\n            return _regeneratorRuntime.awrap(NativeIconAPI.loadFontWithFileName.apply(NativeIconAPI, _toConsumableArray(file.split('.'))));\n\n          case 7:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, null, null, null, Promise);\n  }\n\n  function hasIcon(name) {\n    return Object.prototype.hasOwnProperty.call(glyphMap, name);\n  }\n\n  function getRawGlyphMap() {\n    return glyphMap;\n  }\n\n  function getFontFamily() {\n    return fontReference;\n  }\n\n  Icon.Button = createIconButtonComponent(Icon);\n  Icon.TabBarItemIOS = Icon.TabBarItem;\n  Icon.getImageSource = getImageSource;\n  Icon.getImageSourceSync = getImageSourceSync;\n  Icon.loadFont = loadFont;\n  Icon.hasIcon = hasIcon;\n  Icon.getRawGlyphMap = getRawGlyphMap;\n  Icon.getFontFamily = getFontFamily;\n  return Icon;\n}","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-set.js"],"names":["React","PureComponent","PropTypes","NativeModules","Platform","PixelRatio","processColor","Text","ensureNativeModuleAvailable","createIconSourceCache","createIconButtonComponent","createTabBarItemIOSComponent","NativeIconAPI","RNVectorIconsManager","RNVectorIconsModule","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","createIconSet","glyphMap","fontFamily","fontFile","fontStyle","fontBasename","replace","fontReference","select","windows","android","web","default","Icon","root","handleRef","ref","nativeProps","setNativeProps","props","name","size","color","style","children","glyph","String","fromCodePoint","styleDefaults","fontSize","styleOverrides","fontWeight","defaultProps","allowFontScaling","imageSourceCache","resolveGlyph","getImageSourceSync","processedColor","cacheKey","has","get","imagePath","getImageForFontSync","value","uri","scale","setValue","error","setError","getImageSource","getImageForFont","loadFont","file","OS","Error","loadFontWithFileName","split","hasIcon","Object","prototype","hasOwnProperty","call","getRawGlyphMap","getFontFamily","Button","TabBarItemIOS","TabBarItem"],"mappings":";;;;;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SACEC,aADF,EAEEC,QAFF,EAGEC,UAHF,EAIEC,YAJF,EAKEC,IALF;AAQA,OAAOC,2BAAP;AACA,OAAOC,qBAAP;AACA,OAAOC,yBAAP;AACA,OAAOC,4BAAP;AAEA,OAAO,IAAMC,aAAa,GACxBT,aAAa,CAACU,oBAAd,IAAsCV,aAAa,CAACW,mBAD/C;AAGP,OAAO,IAAMC,iBAAiB,GAAG,EAA1B;AACP,OAAO,IAAMC,kBAAkB,GAAG,OAA3B;AAEP,eAAe,SAASC,aAAT,CACbC,QADa,EAEbC,UAFa,EAGbC,QAHa,EAIbC,SAJa,EAKb;AAEA,MAAMC,YAAY,GAAGF,QAAQ,GACzBA,QAAQ,CAACG,OAAT,CAAiB,cAAjB,EAAiC,EAAjC,CADyB,GAEzBJ,UAFJ;AAIA,MAAMK,aAAa,GAAGpB,QAAQ,CAACqB,MAAT,CAAgB;AACpCC,IAAAA,OAAO,eAAaN,QAAb,SAAyBD,UADI;AAEpCQ,IAAAA,OAAO,EAAEL,YAF2B;AAGpCM,IAAAA,GAAG,EAAEN,YAH+B;AAIpCO,IAAAA,OAAO,EAAEV;AAJ2B,GAAhB,CAAtB;;AANA,MAaMW,IAbN;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,YAcEC,IAdF,GAcS,IAdT;;AAAA,YA2BEC,SA3BF,GA2Bc,UAAAC,GAAG,EAAI;AACjB,cAAKF,IAAL,GAAYE,GAAZ;AACD,OA7BH;;AAAA;AAAA;;AAAA;AAAA;AAAA,qCAqBiBC,WArBjB,EAqB8B;AAC1B,YAAI,KAAKH,IAAT,EAAe;AACb,eAAKA,IAAL,CAAUI,cAAV,CAAyBD,WAAzB;AACD;AACF;AAzBH;AAAA;AAAA,+BA+BW;AAAA,0BACkD,KAAKE,KADvD;AAAA,YACCC,IADD,eACCA,IADD;AAAA,YACOC,IADP,eACOA,IADP;AAAA,YACaC,KADb,eACaA,KADb;AAAA,YACoBC,KADpB,eACoBA,KADpB;AAAA,YAC2BC,QAD3B,eAC2BA,QAD3B;AAAA,YACwCL,KADxC;;AAGP,YAAIM,KAAK,GAAGL,IAAI,GAAGnB,QAAQ,CAACmB,IAAD,CAAR,IAAkB,GAArB,GAA2B,EAA3C;;AACA,YAAI,OAAOK,KAAP,KAAiB,QAArB,EAA+B;AAC7BA,UAAAA,KAAK,GAAGC,MAAM,CAACC,aAAP,CAAqBF,KAArB,CAAR;AACD;;AAED,YAAMG,aAAa,GAAG;AACpBC,UAAAA,QAAQ,EAAER,IADU;AAEpBC,UAAAA,KAAK,EAALA;AAFoB,SAAtB;AAKA,YAAMQ,cAAc,GAAG;AACrB5B,UAAAA,UAAU,EAAEK,aADS;AAErBwB,UAAAA,UAAU,EAAE,QAFS;AAGrB3B,UAAAA,SAAS,EAAE;AAHU,SAAvB;AAMAe,QAAAA,KAAK,CAACI,KAAN,GAAc,CAACK,aAAD,EAAgBL,KAAhB,EAAuBO,cAAvB,EAAuC1B,SAAS,IAAI,EAApD,CAAd;AACAe,QAAAA,KAAK,CAACH,GAAN,GAAY,KAAKD,SAAjB;AAEA,eACE,oBAAC,IAAD,EAAUI,KAAV,EACGM,KADH,EAEGD,QAFH,CADF;AAMD;AA3DH;;AAAA;AAAA,IAamBxC,aAbnB;;AAaM6B,EAAAA,IAbN,CAgBSmB,YAhBT,GAgBwB;AACpBX,IAAAA,IAAI,EAAEvB,iBADc;AAEpBmC,IAAAA,gBAAgB,EAAE;AAFE,GAhBxB;AA8DA,MAAMC,gBAAgB,GAAG1C,qBAAqB,EAA9C;;AAEA,WAAS2C,YAAT,CAAsBf,IAAtB,EAA4B;AAC1B,QAAMK,KAAK,GAAGxB,QAAQ,CAACmB,IAAD,CAAR,IAAkB,GAAhC;;AACA,QAAI,OAAOK,KAAP,KAAiB,QAArB,EAA+B;AAC7B,aAAOC,MAAM,CAACC,aAAP,CAAqBF,KAArB,CAAP;AACD;;AACD,WAAOA,KAAP;AACD;;AAED,WAASW,kBAAT,CACEhB,IADF,EAIE;AAAA,QAFAC,IAEA,uEAFOvB,iBAEP;AAAA,QADAwB,KACA,uEADQvB,kBACR;AACAR,IAAAA,2BAA2B;AAE3B,QAAMkC,KAAK,GAAGU,YAAY,CAACf,IAAD,CAA1B;AACA,QAAMiB,cAAc,GAAGhD,YAAY,CAACiC,KAAD,CAAnC;AACA,QAAMgB,QAAQ,GAAMb,KAAN,SAAeJ,IAAf,SAAuBgB,cAArC;;AAEA,QAAIH,gBAAgB,CAACK,GAAjB,CAAqBD,QAArB,CAAJ,EAAoC;AAClC,aAAOJ,gBAAgB,CAACM,GAAjB,CAAqBF,QAArB,CAAP;AACD;;AACD,QAAI;AACF,UAAMG,SAAS,GAAG9C,aAAa,CAAC+C,mBAAd,CAChBnC,aADgB,EAEhBkB,KAFgB,EAGhBJ,IAHgB,EAIhBgB,cAJgB,CAAlB;AAMA,UAAMM,KAAK,GAAG;AAAEC,QAAAA,GAAG,EAAEH,SAAP;AAAkBI,QAAAA,KAAK,EAAEzD,UAAU,CAACoD,GAAX;AAAzB,OAAd;AACAN,MAAAA,gBAAgB,CAACY,QAAjB,CAA0BR,QAA1B,EAAoCK,KAApC;AACA,aAAOA,KAAP;AACD,KAVD,CAUE,OAAOI,KAAP,EAAc;AACdb,MAAAA,gBAAgB,CAACc,QAAjB,CAA0BV,QAA1B,EAAoCS,KAApC;AACA,YAAMA,KAAN;AACD;AACF;;AAED,WAAeE,cAAf,CACE7B,IADF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEEC,YAAAA,IAFF,2DAESvB,iBAFT;AAGEwB,YAAAA,KAHF,2DAGUvB,kBAHV;AAKER,YAAAA,2BAA2B;AAErBkC,YAAAA,KAPR,GAOgBU,YAAY,CAACf,IAAD,CAP5B;AAQQiB,YAAAA,cARR,GAQyBhD,YAAY,CAACiC,KAAD,CARrC;AASQgB,YAAAA,QATR,GASsBb,KATtB,SAS+BJ,IAT/B,SASuCgB,cATvC;;AAAA,iBAWMH,gBAAgB,CAACK,GAAjB,CAAqBD,QAArB,CAXN;AAAA;AAAA;AAAA;;AAAA,6CAYWJ,gBAAgB,CAACM,GAAjB,CAAqBF,QAArB,CAZX;;AAAA;AAAA;AAAA;AAAA,6CAe4B3C,aAAa,CAACuD,eAAd,CACtB3C,aADsB,EAEtBkB,KAFsB,EAGtBJ,IAHsB,EAItBgB,cAJsB,CAf5B;;AAAA;AAeUI,YAAAA,SAfV;AAqBUE,YAAAA,KArBV,GAqBkB;AAAEC,cAAAA,GAAG,EAAEH,SAAP;AAAkBI,cAAAA,KAAK,EAAEzD,UAAU,CAACoD,GAAX;AAAzB,aArBlB;AAsBIN,YAAAA,gBAAgB,CAACY,QAAjB,CAA0BR,QAA1B,EAAoCK,KAApC;AAtBJ,6CAuBWA,KAvBX;;AAAA;AAAA;AAAA;AAyBIT,YAAAA,gBAAgB,CAACc,QAAjB,CAA0BV,QAA1B;AAzBJ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AA8BA,WAAea,QAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwBC,YAAAA,IAAxB,8DAA+BjD,QAA/B;;AAAA,kBACMhB,QAAQ,CAACkE,EAAT,KAAgB,KADtB;AAAA;AAAA;AAAA;;AAEI9D,YAAAA,2BAA2B;;AAF/B,gBAGS6D,IAHT;AAAA;AAAA;AAAA;;AAAA,kBAIY,IAAIE,KAAJ,CAAU,sDAAV,CAJZ;;AAAA;AAAA;AAAA,6CAMU3D,aAAa,CAAC4D,oBAAd,OAAA5D,aAAa,qBAAyByD,IAAI,CAACI,KAAL,CAAW,GAAX,CAAzB,EANvB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAUA,WAASC,OAAT,CAAiBrC,IAAjB,EAAuB;AACrB,WAAOsC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqC5D,QAArC,EAA+CmB,IAA/C,CAAP;AACD;;AAED,WAAS0C,cAAT,GAA0B;AACxB,WAAO7D,QAAP;AACD;;AAED,WAAS8D,aAAT,GAAyB;AACvB,WAAOxD,aAAP;AACD;;AAEDM,EAAAA,IAAI,CAACmD,MAAL,GAAcvE,yBAAyB,CAACoB,IAAD,CAAvC;AACAA,EAAAA,IAAI,CAACoD,aAAL,GAAqBpD,IAAI,CAACqD,UAA1B;AACArD,EAAAA,IAAI,CAACoC,cAAL,GAAsBA,cAAtB;AACApC,EAAAA,IAAI,CAACuB,kBAAL,GAA0BA,kBAA1B;AACAvB,EAAAA,IAAI,CAACsC,QAAL,GAAgBA,QAAhB;AACAtC,EAAAA,IAAI,CAAC4C,OAAL,GAAeA,OAAf;AACA5C,EAAAA,IAAI,CAACiD,cAAL,GAAsBA,cAAtB;AACAjD,EAAAA,IAAI,CAACkD,aAAL,GAAqBA,aAArB;AAEA,SAAOlD,IAAP;AACD","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n  NativeModules,\n  Platform,\n  PixelRatio,\n  processColor,\n  Text,\n} from './react-native';\n\nimport ensureNativeModuleAvailable from './ensure-native-module-available';\nimport createIconSourceCache from './create-icon-source-cache';\nimport createIconButtonComponent from './icon-button';\nimport createTabBarItemIOSComponent from './tab-bar-item-ios';\n\nexport const NativeIconAPI =\n  NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport const DEFAULT_ICON_SIZE = 12;\nexport const DEFAULT_ICON_COLOR = 'black';\n\nexport default function createIconSet(\n  glyphMap,\n  fontFamily,\n  fontFile,\n  fontStyle\n) {\n  // Android doesn't care about actual fontFamily name, it will only look in fonts folder.\n  const fontBasename = fontFile\n    ? fontFile.replace(/\\.(otf|ttf)$/, '')\n    : fontFamily;\n\n  const fontReference = Platform.select({\n    windows: `/Assets/${fontFile}#${fontFamily}`,\n    android: fontBasename,\n    web: fontBasename,\n    default: fontFamily,\n  });\n\n  class Icon extends PureComponent {\n    root = null;\n\n    static defaultProps = {\n      size: DEFAULT_ICON_SIZE,\n      allowFontScaling: false,\n    };\n\n    setNativeProps(nativeProps) {\n      if (this.root) {\n        this.root.setNativeProps(nativeProps);\n      }\n    }\n\n    handleRef = ref => {\n      this.root = ref;\n    };\n\n    render() {\n      const { name, size, color, style, children, ...props } = this.props;\n\n      let glyph = name ? glyphMap[name] || '?' : '';\n      if (typeof glyph === 'number') {\n        glyph = String.fromCodePoint(glyph);\n      }\n\n      const styleDefaults = {\n        fontSize: size,\n        color,\n      };\n\n      const styleOverrides = {\n        fontFamily: fontReference,\n        fontWeight: 'normal',\n        fontStyle: 'normal',\n      };\n\n      props.style = [styleDefaults, style, styleOverrides, fontStyle || {}];\n      props.ref = this.handleRef;\n\n      return (\n        <Text {...props}>\n          {glyph}\n          {children}\n        </Text>\n      );\n    }\n  }\n\n  const imageSourceCache = createIconSourceCache();\n\n  function resolveGlyph(name) {\n    const glyph = glyphMap[name] || '?';\n    if (typeof glyph === 'number') {\n      return String.fromCodePoint(glyph);\n    }\n    return glyph;\n  }\n\n  function getImageSourceSync(\n    name,\n    size = DEFAULT_ICON_SIZE,\n    color = DEFAULT_ICON_COLOR\n  ) {\n    ensureNativeModuleAvailable();\n\n    const glyph = resolveGlyph(name);\n    const processedColor = processColor(color);\n    const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n    if (imageSourceCache.has(cacheKey)) {\n      return imageSourceCache.get(cacheKey);\n    }\n    try {\n      const imagePath = NativeIconAPI.getImageForFontSync(\n        fontReference,\n        glyph,\n        size,\n        processedColor\n      );\n      const value = { uri: imagePath, scale: PixelRatio.get() };\n      imageSourceCache.setValue(cacheKey, value);\n      return value;\n    } catch (error) {\n      imageSourceCache.setError(cacheKey, error);\n      throw error;\n    }\n  }\n\n  async function getImageSource(\n    name,\n    size = DEFAULT_ICON_SIZE,\n    color = DEFAULT_ICON_COLOR\n  ) {\n    ensureNativeModuleAvailable();\n\n    const glyph = resolveGlyph(name);\n    const processedColor = processColor(color);\n    const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n    if (imageSourceCache.has(cacheKey)) {\n      return imageSourceCache.get(cacheKey);\n    }\n    try {\n      const imagePath = await NativeIconAPI.getImageForFont(\n        fontReference,\n        glyph,\n        size,\n        processedColor\n      );\n      const value = { uri: imagePath, scale: PixelRatio.get() };\n      imageSourceCache.setValue(cacheKey, value);\n      return value;\n    } catch (error) {\n      imageSourceCache.setError(cacheKey, error);\n      throw error;\n    }\n  }\n\n  async function loadFont(file = fontFile) {\n    if (Platform.OS === 'ios') {\n      ensureNativeModuleAvailable();\n      if (!file) {\n        throw new Error('Unable to load font, because no file was specified. ');\n      }\n      await NativeIconAPI.loadFontWithFileName(...file.split('.'));\n    }\n  }\n\n  function hasIcon(name) {\n    return Object.prototype.hasOwnProperty.call(glyphMap, name);\n  }\n\n  function getRawGlyphMap() {\n    return glyphMap;\n  }\n\n  function getFontFamily() {\n    return fontReference;\n  }\n\n  Icon.Button = createIconButtonComponent(Icon);\n  Icon.TabBarItemIOS = Icon.TabBarItem;\n  Icon.getImageSource = getImageSource;\n  Icon.getImageSourceSync = getImageSourceSync;\n  Icon.loadFont = loadFont;\n  Icon.hasIcon = hasIcon;\n  Icon.getRawGlyphMap = getRawGlyphMap;\n  Icon.getFontFamily = getFontFamily;\n\n  return Icon;\n}\n"]},"metadata":{},"sourceType":"module"}