{"version":3,"file":"loadESModule.mjs","sources":["../../../../../../../core/src/utils/loadESModule.ts"],"sourcesContent":["const ModulePromiseCache: Record<string, Promise<unknown>> = {};\n\nexport const __clearcache = () => Object.keys(ModulePromiseCache).forEach((key) => delete ModulePromiseCache[key]);\n\nexport async function loadESModule<T>(url: string, moduleFromGlobalScope: () => T): Promise<T> {\n  if (ModulePromiseCache[url] !== undefined) {\n    return ModulePromiseCache[url] as Promise<T>;\n  }\n\n  ModulePromiseCache[url] = loadESModuleFromNetwork(url, moduleFromGlobalScope);\n  return ModulePromiseCache[url] as Promise<T>;\n}\n\nfunction loadESModuleFromNetwork<T>(url: string, moduleFromGlobalScope: () => T): Promise<T> {\n  return new Promise((resolve, reject) => {\n    const maybeScript = findScript(url);\n    if (maybeScript && maybeScript.dataset.loaded === 'true') {\n      try {\n        resolve(moduleFromGlobalScope());\n      } catch (err) {\n        return reject(new Error(`${url} already loaded, but module was not found in global scope: ${err}`));\n      }\n    }\n\n    const script = createScript(url);\n\n    script.addEventListener('load', () => {\n      script.dataset.loaded = 'true';\n      try {\n        resolve(moduleFromGlobalScope());\n      } catch (err) {\n        reject(new Error(`${url} was loaded, but module was not found in global scope: ${err}`));\n      }\n    });\n\n    script.addEventListener('error', (err) => {\n      reject(new Error(`${url} could not be loaded: ${err}`));\n    });\n  });\n}\n\nconst findScriptsInDom = (url: string) => document.querySelectorAll<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\nfunction findScript(url: string): HTMLScriptElement | undefined {\n  const scripts = findScriptsInDom(url);\n  if (scripts[0]) {\n    return scripts[0];\n  }\n}\n\nfunction createScript(url: string): HTMLScriptElement {\n  const script = document.createElement('script');\n  script.setAttribute('src', url);\n  script.setAttribute('async', 'true');\n  script.setAttribute('defer', 'true');\n  document.head.appendChild(script);\n  return script;\n}\n"],"names":["ModulePromiseCache","loadESModule","url","moduleFromGlobalScope","undefined","loadESModuleFromNetwork","Promise","resolve","reject","maybeScript","findScript","dataset","loaded","err","Error","script","createScript","addEventListener","findScriptsInDom","document","querySelectorAll","scripts","createElement","setAttribute","head","appendChild"],"mappings":"AAAA,MAAMA,qBAAuD,EAAC;AAIvD,eAAeC,YAAAA,CAAgBC,GAAW,EAAEC,qBAA8B,EAAA;AAC/E,IAAA,IAAIH,kBAAkB,CAACE,GAAAA,CAAI,KAAKE,SAAAA,EAAW;QACzC,OAAOJ,kBAAkB,CAACE,GAAAA,CAAI;AAChC,IAAA;AAEAF,IAAAA,kBAAkB,CAACE,GAAAA,CAAI,GAAGG,uBAAAA,CAAwBH,GAAAA,EAAKC,qBAAAA,CAAAA;IACvD,OAAOH,kBAAkB,CAACE,GAAAA,CAAI;AAChC;AAEA,SAASG,uBAAAA,CAA2BH,GAAW,EAAEC,qBAA8B,EAAA;IAC7E,OAAO,IAAIG,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;AAC3B,QAAA,MAAMC,cAAcC,UAAAA,CAAWR,GAAAA,CAAAA;AAC/B,QAAA,IAAIO,eAAeA,WAAAA,CAAYE,OAAO,CAACC,MAAM,KAAK,MAAA,EAAQ;YACxD,IAAI;gBACFL,OAAAA,CAAQJ,qBAAAA,EAAAA,CAAAA;AACV,YAAA,CAAA,CAAE,OAAOU,GAAAA,EAAK;AACZ,gBAAA,OAAOL,OAAO,IAAIM,KAAAA,CAAM,GAAGZ,GAAAA,CAAI,2DAA2D,EAAEW,GAAAA,CAAAA,CAAK,CAAA,CAAA;AACnG,YAAA;AACF,QAAA;AAEA,QAAA,MAAME,SAASC,YAAAA,CAAad,GAAAA,CAAAA;QAE5Ba,MAAAA,CAAOE,gBAAgB,CAAC,MAAA,EAAQ,IAAA;YAC9BF,MAAAA,CAAOJ,OAAO,CAACC,MAAM,GAAG,MAAA;YACxB,IAAI;gBACFL,OAAAA,CAAQJ,qBAAAA,EAAAA,CAAAA;AACV,YAAA,CAAA,CAAE,OAAOU,GAAAA,EAAK;AACZL,gBAAAA,MAAAA,CAAO,IAAIM,KAAAA,CAAM,CAAA,EAAGZ,GAAAA,CAAI,uDAAuD,EAAEW,GAAAA,CAAAA,CAAK,CAAA,CAAA;AACxF,YAAA;AACF,QAAA,CAAA,CAAA;QAEAE,MAAAA,CAAOE,gBAAgB,CAAC,OAAA,EAAS,CAACJ,GAAAA,GAAAA;AAChCL,YAAAA,MAAAA,CAAO,IAAIM,KAAAA,CAAM,CAAA,EAAGZ,GAAAA,CAAI,sBAAsB,EAAEW,GAAAA,CAAAA,CAAK,CAAA,CAAA;AACvD,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AACF;AAEA,MAAMK,gBAAAA,GAAmB,CAAChB,GAAAA,GAAgBiB,QAAAA,CAASC,gBAAgB,CAAoB,CAAC,YAAY,EAAElB,GAAAA,CAAI,EAAE,CAAC,CAAA;AAE7G,SAASQ,WAAWR,GAAW,EAAA;AAC7B,IAAA,MAAMmB,UAAUH,gBAAAA,CAAiBhB,GAAAA,CAAAA;IACjC,IAAImB,OAAO,CAAC,CAAA,CAAE,EAAE;QACd,OAAOA,OAAO,CAAC,CAAA,CAAE;AACnB,IAAA;AACF;AAEA,SAASL,aAAad,GAAW,EAAA;IAC/B,MAAMa,MAAAA,GAASI,QAAAA,CAASG,aAAa,CAAC,QAAA,CAAA;IACtCP,MAAAA,CAAOQ,YAAY,CAAC,KAAA,EAAOrB,GAAAA,CAAAA;IAC3Ba,MAAAA,CAAOQ,YAAY,CAAC,OAAA,EAAS,MAAA,CAAA;IAC7BR,MAAAA,CAAOQ,YAAY,CAAC,OAAA,EAAS,MAAA,CAAA;IAC7BJ,QAAAA,CAASK,IAAI,CAACC,WAAW,CAACV,MAAAA,CAAAA;IAC1B,OAAOA,MAAAA;AACT;;;;"}