You need to sign in or sign up before continuing.
fe774ceec457e1be84530ec20bec920d.json 16.4 KB
{"ast":null,"code":"var _interopRequireWildcard=require(\"@babel/runtime/helpers/interopRequireWildcard\");var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=createIconSet;exports.DEFAULT_ICON_COLOR=exports.DEFAULT_ICON_SIZE=exports.NativeIconAPI=void 0;var _toConsumableArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _classCallCheck2=_interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));var _createClass2=_interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));var _possibleConstructorReturn2=_interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));var _getPrototypeOf3=_interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));var _inherits2=_interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));var _react=_interopRequireWildcard(require(\"react\"));var _propTypes=_interopRequireDefault(require(\"prop-types\"));var _NativeModules=_interopRequireDefault(require(\"react-native-web/dist/exports/NativeModules\"));var _Platform=_interopRequireDefault(require(\"react-native-web/dist/exports/Platform\"));var _PixelRatio=_interopRequireDefault(require(\"react-native-web/dist/exports/PixelRatio\"));var _processColor=_interopRequireDefault(require(\"react-native-web/dist/exports/processColor\"));var _Text=_interopRequireDefault(require(\"react-native-web/dist/exports/Text\"));var _ensureNativeModuleAvailable=_interopRequireDefault(require(\"./ensure-native-module-available\"));var _iconButton=_interopRequireDefault(require(\"./icon-button\"));var _tabBarItemIos=_interopRequireDefault(require(\"./tab-bar-item-ios\"));var _toolbarAndroid=_interopRequireDefault(require(\"./toolbar-android\"));var NativeIconAPI=_NativeModules.default.RNVectorIconsManager||_NativeModules.default.RNVectorIconsModule;exports.NativeIconAPI=NativeIconAPI;var DEFAULT_ICON_SIZE=12;exports.DEFAULT_ICON_SIZE=DEFAULT_ICON_SIZE;var DEFAULT_ICON_COLOR='black';exports.DEFAULT_ICON_COLOR=DEFAULT_ICON_COLOR;function createIconSet(glyphMap,fontFamily,fontFile,fontStyle){var fontBasename=fontFile?fontFile.replace(/\\.(otf|ttf)$/,''):fontFamily;var fontReference=_Platform.default.select({windows:\"Assets/\"+fontFile+\"#\"+fontFamily,android:fontBasename,web:fontBasename,default:fontFamily});var IconNamePropType=_propTypes.default.oneOf(Object.keys(glyphMap));var Icon=function(_PureComponent){(0,_inherits2.default)(Icon,_PureComponent);function Icon(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,Icon);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(Icon)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.root=null;_this.handleRef=function(ref){_this.root=ref;};return _this;}(0,_createClass2.default)(Icon,[{key:\"setNativeProps\",value:function setNativeProps(nativeProps){if(this.root){this.root.setNativeProps(nativeProps);}}},{key:\"render\",value:function render(){var _this$props=this.props,name=_this$props.name,size=_this$props.size,color=_this$props.color,style=_this$props.style,children=_this$props.children,props=(0,_objectWithoutProperties2.default)(_this$props,[\"name\",\"size\",\"color\",\"style\",\"children\"]);var glyph=name?glyphMap[name]||'?':'';if(typeof glyph==='number'){glyph=String.fromCharCode(glyph);}var styleDefaults={fontSize:size,color:color};var styleOverrides={fontFamily:fontReference,fontWeight:'normal',fontStyle:'normal'};props.style=[styleDefaults,style,styleOverrides,fontStyle||{}];props.ref=this.handleRef;return _react.default.createElement(_Text.default,props,glyph,children);}}]);return Icon;}(_react.PureComponent);Icon.propTypes={allowFontScaling:_propTypes.default.bool,name:IconNamePropType,size:_propTypes.default.number,color:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.number]),children:_propTypes.default.node,style:_propTypes.default.any};Icon.defaultProps={size:DEFAULT_ICON_SIZE,allowFontScaling:false};var imageSourceCache={};function getImageSource(name){var size=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_ICON_SIZE;var color=arguments.length>2&&arguments[2]!==undefined?arguments[2]:DEFAULT_ICON_COLOR;(0,_ensureNativeModuleAvailable.default)();var glyph=glyphMap[name]||'?';if(typeof glyph==='number'){glyph=String.fromCharCode(glyph);}var processedColor=(0,_processColor.default)(color);var cacheKey=glyph+\":\"+size+\":\"+processedColor;var scale=_PixelRatio.default.get();return new Promise(function(resolve,reject){var cached=imageSourceCache[cacheKey];if(typeof cached!=='undefined'){if(!cached||cached instanceof Error){reject(cached);}else{resolve({uri:cached,scale:scale});}}else{NativeIconAPI.getImageForFont(fontReference,glyph,size,processedColor,function(err,image){var error=typeof err==='string'?new Error(err):err;imageSourceCache[cacheKey]=image||error||false;if(!error&&image){resolve({uri:image,scale:scale});}else{reject(error);}});}});}function loadFont(){var file=arguments.length>0&&arguments[0]!==undefined?arguments[0]:fontFile;if(_Platform.default.OS==='ios'){(0,_ensureNativeModuleAvailable.default)();if(!file){return Promise.reject(new Error('Unable to load font, because no file was specified. '));}return NativeIconAPI.loadFontWithFileName.apply(NativeIconAPI,(0,_toConsumableArray2.default)(file.split('.')));}return Promise.resolve();}function hasIcon(name){return Object.prototype.hasOwnProperty.call(glyphMap,name);}function getRawGlyphMap(){return glyphMap;}function getFontFamily(){return fontReference;}Icon.Button=(0,_iconButton.default)(Icon);Icon.TabBarItem=(0,_tabBarItemIos.default)(IconNamePropType,getImageSource);Icon.TabBarItemIOS=Icon.TabBarItem;Icon.ToolbarAndroid=(0,_toolbarAndroid.default)(IconNamePropType,getImageSource);Icon.getImageSource=getImageSource;Icon.loadFont=loadFont;Icon.hasIcon=hasIcon;Icon.getRawGlyphMap=getRawGlyphMap;Icon.getFontFamily=getFontFamily;return Icon;}","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-set.js"],"names":["NativeIconAPI","NativeModules","RNVectorIconsManager","RNVectorIconsModule","DEFAULT_ICON_SIZE","DEFAULT_ICON_COLOR","createIconSet","glyphMap","fontFamily","fontFile","fontStyle","fontBasename","replace","fontReference","Platform","select","windows","android","web","default","IconNamePropType","PropTypes","oneOf","Object","keys","Icon","root","handleRef","ref","nativeProps","setNativeProps","props","name","size","color","style","children","glyph","String","fromCharCode","styleDefaults","fontSize","styleOverrides","fontWeight","PureComponent","propTypes","allowFontScaling","bool","number","oneOfType","string","node","any","defaultProps","imageSourceCache","getImageSource","processedColor","cacheKey","scale","PixelRatio","get","Promise","resolve","reject","cached","Error","uri","getImageForFont","err","image","error","loadFont","file","OS","loadFontWithFileName","split","hasIcon","prototype","hasOwnProperty","call","getRawGlyphMap","getFontFamily","Button","TabBarItem","TabBarItemIOS","ToolbarAndroid"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { NativeModules, Platform, PixelRatio, processColor, Text } from 'react-native';\n\nimport ensureNativeModuleAvailable from './ensure-native-module-available';\nimport createIconButtonComponent from './icon-button';\nimport createTabBarItemIOSComponent from './tab-bar-item-ios';\nimport createToolbarAndroidComponent from './toolbar-android';\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  const IconNamePropType = PropTypes.oneOf(Object.keys(glyphMap));\n\n  class Icon extends PureComponent {\n    static propTypes = {\n      allowFontScaling: PropTypes.bool,\n      name: IconNamePropType,\n      size: PropTypes.number,\n      color: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n      children: PropTypes.node,\n      style: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n    };\n\n    static defaultProps = {\n      size: DEFAULT_ICON_SIZE,\n      allowFontScaling: false,\n    };\n\n    root = null;\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.fromCharCode(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 = {};\n\n  function getImageSource(\n    name,\n    size = DEFAULT_ICON_SIZE,\n    color = DEFAULT_ICON_COLOR\n  ) {\n    ensureNativeModuleAvailable();\n\n    let glyph = glyphMap[name] || '?';\n    if (typeof glyph === 'number') {\n      glyph = String.fromCharCode(glyph);\n    }\n\n    const processedColor = processColor(color);\n    const cacheKey = `${glyph}:${size}:${processedColor}`;\n    const scale = PixelRatio.get();\n\n    return new Promise((resolve, reject) => {\n      const cached = imageSourceCache[cacheKey];\n      if (typeof cached !== 'undefined') {\n        if (!cached || cached instanceof Error) {\n          reject(cached);\n        } else {\n          resolve({ uri: cached, scale });\n        }\n      } else {\n        NativeIconAPI.getImageForFont(\n          fontReference,\n          glyph,\n          size,\n          processedColor,\n          (err, image) => {\n            const error = typeof err === 'string' ? new Error(err) : err;\n            imageSourceCache[cacheKey] = image || error || false;\n            if (!error && image) {\n              resolve({ uri: image, scale });\n            } else {\n              reject(error);\n            }\n          }\n        );\n      }\n    });\n  }\n\n  function loadFont(file = fontFile) {\n    if (Platform.OS === 'ios') {\n      ensureNativeModuleAvailable();\n      if (!file) {\n        return Promise.reject(\n          new Error('Unable to load font, because no file was specified. ')\n        );\n      }\n      return NativeIconAPI.loadFontWithFileName(...file.split('.'));\n    }\n    return Promise.resolve();\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.TabBarItem = createTabBarItemIOSComponent(\n    IconNamePropType,\n    getImageSource\n  );\n  Icon.TabBarItemIOS = Icon.TabBarItem;\n  Icon.ToolbarAndroid = createToolbarAndroidComponent(\n    IconNamePropType,\n    getImageSource\n  );\n  Icon.getImageSource = getImageSource;\n  Icon.loadFont = loadFont;\n  Icon.hasIcon = hasIcon;\n  Icon.getRawGlyphMap = getRawGlyphMap;\n  Icon.getFontFamily = getFontFamily;\n\n  return Icon;\n}\n"]},"metadata":{},"sourceType":"script"}