{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["import React, { useEffect } from \"react\";\n//import PropTypes from \"prop-types\";\nconst fontUrl = \"https://country-flag.proca.app/font/TwemojiCountryFlags.woff2\";\nconst fontName = \"countryFlags\";\nconst className = \"country-flag\";\nlet hasEffectRun = false;\n\nconst nativeFlag = () => {\n  const userAgent = window.navigator.userAgent;\n  return userAgent.indexOf(\"Win\") === -1;\n};\n\nexport function useCountryFlag(options) {\n  const cn = options?.className || className;\n  useEffect(() => {\n    if (hasEffectRun) {\n      // Run the effect logic only once\n      return;\n    }\n\n    hasEffectRun = true;\n    const css = `.${cn} {font-family: \"${fontName}\"}`;\n\n    const loadFont = async () => {\n      const customFont = new FontFace(fontName, \"url(\" + fontUrl + \")\", {\n        unicodeRange:\n          \"U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067, U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F\",\n      });\n\n      try {\n        await customFont.load();\n        document.fonts.add(customFont);\n      } catch {\n        console.log(\"can't load font\");\n      }\n    };\n\n    if (nativeFlag()) return;\n\n    loadFont();\n    const style = document.createElement(\"style\");\n    style.textContent = css;\n    style.id = \"react-emoji-flag\";\n    document.head.appendChild(style);\n  }, [cn]);\n}\n\nexport const flag = (isoCode) => {\n  const offset = 127397;\n  if (!isoCode || isoCode.toUpperCase() === \"ZZ\") return \"\";\n  return isoCode\n    .toUpperCase()\n    .replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + offset));\n  // U+1F6A9\n};\n\nexport const CountryFlag = (props) => {\n  const cn = props?.className || className;\n  useCountryFlag({ className: cn }); // load the font and create style if needed\n  return (\n    <span className={cn} title={props.title || props.countryCode}>\n      {flag(props.countryCode)}\n    </span>\n  );\n};\n\n/*\nCountryFlag.propTypes = {\n  title: PropTypes.node,\n  countryCode: PropTypes.node,\n  className: PropTypes.node,\n};\n*/\n\nexport default CountryFlag;\n"],"names":["_catch","body","recover","result","e","then","fontUrl","fontName","className","hasEffectRun","nativeFlag","userAgent","window","navigator","indexOf","useCountryFlag","options","cn","useEffect","css","loadFont","customFont","FontFace","unicodeRange","_temp","Promise","resolve","load","document","fonts","add","console","log","reject","style","createElement","textContent","id","head","appendChild","flag","isoCode","offset","toUpperCase","replace","char","String","fromCodePoint","charCodeAt","CountryFlag","props","React","title","countryCode"],"mappings":"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"}