{"ast":null,"code":"\"use strict\";\n\nvar _objectWithoutPropertiesLoose = require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\");\nconst _excluded = [\"name\", \"size\", \"color\", \"style\", \"children\", \"allowFontScaling\", \"innerRef\"];\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createIconSet = createIconSet;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _reactNative = require(\"react-native-web/dist/index\");\nvar _createIconSourceCache = _interopRequireDefault(require(\"./create-icon-source-cache.js\"));\nvar _defaults = require(\"./defaults.js\");\nvar _dynamicFontLoading = require(\"./dynamicLoading/dynamic-font-loading\");\nvar _dynamicLoadingSetting = require(\"./dynamicLoading/dynamic-loading-setting.js\");\nvar _getImageSource = require(\"./get-image-source.js\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _interopRequireDefault(e) {\n  return e && e.__esModule ? e : {\n    default: e\n  };\n}\nfunction _getRequireWildcardCache(e) {\n  if (\"function\" != typeof WeakMap) return null;\n  var r = new WeakMap(),\n    t = new WeakMap();\n  return (_getRequireWildcardCache = function (e) {\n    return e ? t : r;\n  })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n  if (!r && e && e.__esModule) return e;\n  if (null === e || \"object\" != typeof e && \"function\" != typeof e) return {\n    default: e\n  };\n  var t = _getRequireWildcardCache(r);\n  if (t && t.has(e)) return t.get(e);\n  var n = {\n      __proto__: null\n    },\n    a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n  for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n    var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n    i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n  }\n  return n.default = e, t && t.set(e, n), n;\n}\nfunction createIconSet(glyphMap, postScriptNameOrOptions, fontFileNameParam, fontStyleParam) {\n  const {\n    postScriptName,\n    fontFileName,\n    fontStyle\n  } = typeof postScriptNameOrOptions === 'string' ? {\n    postScriptName: postScriptNameOrOptions,\n    fontFileName: fontFileNameParam,\n    fontStyle: fontStyleParam\n  } : postScriptNameOrOptions;\n  const fontBasename = fontFileName ? fontFileName.replace(/\\.(otf|ttf)$/, '') : postScriptName;\n  const fontReference = _reactNative.Platform.select({\n    windows: `/Assets/${fontFileName}#${postScriptName}`,\n    android: fontBasename,\n    default: postScriptName\n  });\n  const styleOverrides = {\n    fontFamily: fontReference,\n    fontWeight: 'normal',\n    fontStyle: 'normal'\n  };\n  const resolveGlyph = name => {\n    const glyph = glyphMap[name];\n    if (typeof glyph === 'number') {\n      return String.fromCodePoint(glyph);\n    }\n    return '?';\n  };\n  const Icon = _ref => {\n    let {\n        name,\n        size = _defaults.DEFAULT_ICON_SIZE,\n        color = _defaults.DEFAULT_ICON_COLOR,\n        style,\n        children,\n        allowFontScaling = false,\n        innerRef\n      } = _ref,\n      props = _objectWithoutPropertiesLoose(_ref, _excluded);\n    const [isFontLoaded, setIsFontLoaded] = _react.default.useState((0, _dynamicLoadingSetting.isDynamicLoadingEnabled)() ? _dynamicFontLoading.dynamicLoader.isLoaded(fontReference) : true);\n    const glyph = isFontLoaded && name ? resolveGlyph(name) : '';\n    (0, _react.useEffect)(() => {\n      let isMounted = true;\n      if (!isFontLoaded && typeof postScriptNameOrOptions === 'object' && typeof postScriptNameOrOptions.fontSource !== 'undefined') {\n        _dynamicFontLoading.dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource).finally(() => {\n          if (isMounted) {\n            setIsFontLoaded(true);\n          }\n        });\n      }\n      return () => {\n        isMounted = false;\n      };\n    }, []);\n    const styleDefaults = {\n      fontSize: size,\n      color\n    };\n    const newProps = Object.assign({}, props, {\n      style: [styleDefaults, style, styleOverrides, fontStyle || {}],\n      allowFontScaling\n    });\n    return (0, _jsxRuntime.jsxs)(_reactNative.Text, Object.assign({\n      ref: innerRef,\n      selectable: false\n    }, newProps, {\n      children: [glyph, children]\n    }));\n  };\n  const WrappedIcon = (0, _react.forwardRef)((props, ref) => (0, _jsxRuntime.jsx)(Icon, Object.assign({\n    innerRef: ref\n  }, props)));\n  WrappedIcon.displayName = 'Icon';\n  const imageSourceCache = (0, _createIconSourceCache.default)();\n  const getImageSource = async (name, size, color) => {\n    if (typeof postScriptNameOrOptions === 'object' && typeof postScriptNameOrOptions.fontSource !== 'undefined') {\n      await _dynamicFontLoading.dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource);\n    }\n    return (0, _getImageSource.getImageSource)(imageSourceCache, fontReference, resolveGlyph(name), size, color);\n  };\n  const getImageSourceSync = (name, size, color) => (0, _getImageSource.getImageSourceSync)(imageSourceCache, fontReference, resolveGlyph(name), size, color);\n  const IconNamespace = Object.assign(WrappedIcon, {\n    getImageSource,\n    getImageSourceSync\n  });\n  return IconNamespace;\n}","map":{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createIconSourceCache","_interopRequireDefault","_defaults","_dynamicFontLoading","_dynamicLoadingSetting","_getImageSource","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createIconSet","glyphMap","postScriptNameOrOptions","fontFileNameParam","fontStyleParam","postScriptName","fontFileName","fontStyle","fontBasename","replace","fontReference","Platform","select","windows","android","styleOverrides","fontFamily","fontWeight","resolveGlyph","name","glyph","String","fromCodePoint","Icon","_ref","size","DEFAULT_ICON_SIZE","color","DEFAULT_ICON_COLOR","style","children","allowFontScaling","innerRef","props","_objectWithoutPropertiesLoose","_excluded","isFontLoaded","setIsFontLoaded","useState","isDynamicLoadingEnabled","dynamicLoader","isLoaded","useEffect","isMounted","fontSource","loadFontAsync","finally","styleDefaults","fontSize","newProps","assign","jsxs","Text","ref","selectable","WrappedIcon","forwardRef","jsx","displayName","imageSourceCache","getImageSource","getImageSourceSync","IconNamespace"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-native-vector-icons/common/src/create-icon-set.tsx"],"sourcesContent":["// eslint-disable-next-line import/no-extraneous-dependencies\nimport React, { forwardRef, type Ref, useEffect } from 'react';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Platform, Text, type TextProps, type TextStyle } from 'react-native';\n\nimport createIconSourceCache from './create-icon-source-cache';\nimport { DEFAULT_ICON_COLOR, DEFAULT_ICON_SIZE } from './defaults';\nimport { dynamicLoader } from './dynamicLoading/dynamic-font-loading';\nimport { isDynamicLoadingEnabled } from './dynamicLoading/dynamic-loading-setting';\nimport type { FontSource } from './dynamicLoading/types';\nimport { getImageSource as getImageSourceImpl, getImageSourceSync as getImageSourceSyncImpl } from './get-image-source';\n\ntype ValueData = { uri: string; scale: number };\ntype GetImageSourceSyncIconFunc<GM> = (name: GM, size?: number, color?: TextStyle['color']) => ValueData | undefined;\ntype GetImageSourceIconFunc<GM> = (\n  name: GM,\n  size?: number,\n  color?: TextStyle['color'],\n) => Promise<ValueData | undefined>;\n\nexport type IconProps<T> = TextProps & {\n  name: T;\n  size?: number;\n  color?: TextStyle['color'];\n  innerRef?: Ref<Text>;\n};\n\ntype IconComponent<GM extends Record<string, number>> = React.FC<\n  TextProps & {\n    name: keyof GM;\n    size?: number;\n    color?: TextStyle['color'];\n    innerRef?: Ref<Text>;\n  } & React.RefAttributes<Text>\n> & {\n  getImageSource: GetImageSourceIconFunc<keyof GM>;\n  getImageSourceSync: GetImageSourceSyncIconFunc<keyof GM>;\n};\n\nexport type CreateIconSetOptions = {\n  postScriptName: string;\n  fontFileName: string;\n  fontSource?: FontSource;\n  fontStyle?: TextProps['style'];\n};\n\nexport function createIconSet<GM extends Record<string, number>>(\n  glyphMap: GM,\n  postScriptName: string,\n  fontFileName: string,\n  fontStyle?: TextProps['style'],\n): IconComponent<GM>;\nexport function createIconSet<GM extends Record<string, number>>(\n  glyphMap: GM,\n  options: CreateIconSetOptions,\n): IconComponent<GM>;\nexport function createIconSet<GM extends Record<string, number>>(\n  glyphMap: GM,\n  postScriptNameOrOptions: string | CreateIconSetOptions,\n  fontFileNameParam?: string,\n  fontStyleParam?: TextProps['style'],\n): IconComponent<GM> {\n  const { postScriptName, fontFileName, fontStyle } =\n    typeof postScriptNameOrOptions === 'string'\n      ? {\n          postScriptName: postScriptNameOrOptions,\n          fontFileName: fontFileNameParam,\n          fontStyle: fontStyleParam,\n        }\n      : postScriptNameOrOptions;\n\n  const fontBasename = fontFileName ? fontFileName.replace(/\\.(otf|ttf)$/, '') : postScriptName;\n\n  const fontReference = Platform.select({\n    windows: `/Assets/${fontFileName}#${postScriptName}`,\n    android: fontBasename,\n    default: postScriptName,\n  });\n\n  const styleOverrides: TextProps['style'] = {\n    fontFamily: fontReference,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n  };\n\n  const resolveGlyph = (name: keyof GM) => {\n    const glyph = glyphMap[name];\n\n    if (typeof glyph === 'number') {\n      return String.fromCodePoint(glyph);\n    }\n\n    return '?';\n  };\n\n  const Icon = ({\n    name,\n    size = DEFAULT_ICON_SIZE,\n    color = DEFAULT_ICON_COLOR,\n    style,\n    children,\n    allowFontScaling = false,\n    innerRef,\n    ...props\n  }: IconProps<keyof GM>) => {\n    const [isFontLoaded, setIsFontLoaded] = React.useState(\n      isDynamicLoadingEnabled() ? dynamicLoader.isLoaded(fontReference) : true,\n    );\n    const glyph = isFontLoaded && name ? resolveGlyph(name) : '';\n\n    // biome-ignore lint/correctness/useExhaustiveDependencies: the dependencies never change\n    useEffect(() => {\n      let isMounted = true;\n\n      if (\n        !isFontLoaded &&\n        typeof postScriptNameOrOptions === 'object' &&\n        typeof postScriptNameOrOptions.fontSource !== 'undefined'\n      ) {\n        dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource).finally(() => {\n          if (isMounted) {\n            setIsFontLoaded(true);\n          }\n        });\n      }\n      return () => {\n        isMounted = false;\n      };\n    }, []);\n\n    const styleDefaults = {\n      fontSize: size,\n      color,\n    };\n\n    const newProps: TextProps = {\n      ...props,\n      style: [styleDefaults, style, styleOverrides, fontStyle || {}],\n      allowFontScaling,\n    };\n\n    return (\n      <Text ref={innerRef} selectable={false} {...newProps}>\n        {glyph}\n        {children}\n      </Text>\n    );\n  };\n\n  const WrappedIcon = forwardRef<Text, IconProps<keyof typeof glyphMap>>((props, ref) => (\n    <Icon innerRef={ref} {...props} />\n  ));\n  WrappedIcon.displayName = 'Icon';\n\n  const imageSourceCache = createIconSourceCache();\n\n  const getImageSource: GetImageSourceIconFunc<keyof GM> = async (name, size, color) => {\n    if (typeof postScriptNameOrOptions === 'object' && typeof postScriptNameOrOptions.fontSource !== 'undefined') {\n      await dynamicLoader.loadFontAsync(fontReference, postScriptNameOrOptions.fontSource);\n    }\n    return getImageSourceImpl(imageSourceCache, fontReference, resolveGlyph(name), size, color);\n  };\n\n  const getImageSourceSync: GetImageSourceSyncIconFunc<keyof GM> = (name, size, color) =>\n    getImageSourceSyncImpl(imageSourceCache, fontReference, resolveGlyph(name), size, color);\n\n  const IconNamespace = Object.assign(WrappedIcon, {\n    getImageSource,\n    getImageSourceSync,\n  });\n\n  return IconNamespace;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":true},"sourceType":"script","externalDependencies":[]}