{"version":3,"file":"load.jsx","sourceRoot":"","sources":["../../../abstraction/load.tsx"],"names":[],"mappings":";;AAAA,oCAAsC;AAEtC,mCAAmC;AACnC,SAAS,YAAY;IACnB,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QACxC,iEAAiE;QACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAED,MAAM,GAAG,GAAG,sFAAsF,CAAC;IAEnG,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,WAAW,CAAC;IACxB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IAEpB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAc,CAAC,0BAA0B,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAE9F,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAc,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAE5F,MAAM,gCAAgC,GAAG,kBAAU,EAAQ,CAAC;AAC5D,SAAgB,aAAa;IAC3B,IAAI,cAAc,EAAE,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE;QAClE,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAChD;IAED,IAAI,CAAC,gBAAgB,EAAE,EAAE;QACtB,MAAc,CAAC,qBAAqB,GAAG,GAAG,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAc,CAAC,wBAAwB,GAAG,IAAI,CAAC;YAChD,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QACd,MAAc,CAAC,0BAA0B,GAAG,IAAI,CAAC;KACnD;IAED,OAAO,gCAAgC,CAAC,OAAO,CAAC;AAClD,CAAC;AAjBD,sCAiBC","sourcesContent":["import { resolvable } from \"../utils\";\r\n\r\n// Injects the Recaptcha script tag\r\nfunction injectScript() {\r\n  if (document.querySelector(\"#recaptcha\")) {\r\n    // Must throw if it already exists, this lets us find bugs easier\r\n    throw new Error(\"Script already exists in document!\");\r\n  }\r\n\r\n  const url = `https://www.google.com/recaptcha/api.js?onload=GoogleRecaptchaLoaded&render=explicit`;\r\n\r\n  const script = document.createElement(\"script\");\r\n  script.id = \"recaptcha\";\r\n  script.src = url;\r\n  script.type = \"text/javascript\";\r\n  script.async = true;\r\n  script.defer = true;\r\n\r\n  document.head.appendChild(script);\r\n}\r\n\r\nconst scriptIsInjected = () =>\r\n  typeof window !== \"undefined\" ? (window as any).hasInjectedRecaptchaScript === true : false;\r\n\r\nconst scriptIsLoaded = () =>\r\n  typeof window !== \"undefined\" ? (window as any).hasLoadedRecaptchaScript === true : false;\r\n\r\nconst recaptchaScriptDidLoadResolvable = resolvable<null>();\r\nexport function loadRecaptcha() {\r\n  if (scriptIsLoaded() && !recaptchaScriptDidLoadResolvable.resolved) {\r\n    recaptchaScriptDidLoadResolvable.resolve(null);\r\n  }\r\n\r\n  if (!scriptIsInjected()) {\r\n    (window as any).GoogleRecaptchaLoaded = () => {\r\n      console.info(\"[Recaptcha] Loaded script\");\r\n      (window as any).hasLoadedRecaptchaScript = true;\r\n      recaptchaScriptDidLoadResolvable.resolve(null);\r\n    };\r\n\r\n    injectScript();\r\n    (window as any).hasInjectedRecaptchaScript = true;\r\n  }\r\n\r\n  return recaptchaScriptDidLoadResolvable.promise;\r\n}\r\n"]}