{ "version": 3, "sources": ["../../../lib.web.lazy_load/index.ts"], "sourcesContent": ["import {all_finished} from \"@cling/lib.shared.utils\"\n\nfunction load_css(css_file: string): Promise<any> {\n const probe_div = document.createElement(\"div\")\n probe_div.setAttribute(\n \"class\",\n css_file.substring(0, css_file.indexOf(\".\")).replace(/_/g, \"-\") + \"-css-loaded-probe\",\n )\n probe_div.setAttribute(\"style\", \"display:none\")\n document.body.appendChild(probe_div)\n if (window.getComputedStyle(probe_div).top === \"123456px\") {\n return Promise.resolve()\n }\n return new Promise<any>((resolve, reject) => {\n const link = document.createElement(\"link\")\n link.setAttribute(\"rel\", \"stylesheet\")\n link.setAttribute(\"href\", \"/c/dist/\" + css_file)\n link.addEventListener(\"load\", resolve)\n link.addEventListener(\"error\", reject)\n document.head!.appendChild(link)\n // Some browsers do not fire the load event on <link> elements, therefore\n // we periodically probe, if the CSS file has successfully been loaded ...\n function probe() {\n if (window.getComputedStyle(probe_div).top === \"123456px\") {\n resolve(undefined)\n } else {\n window.setTimeout(probe, 113)\n }\n }\n window.setTimeout(probe, 113)\n })\n}\n\nexport function load_js(\n src_or_attrs: string | ({src: string} & {[name: string]: string}),\n loaded: () => any,\n): Promise<void> {\n if (loaded()) {\n return Promise.resolve()\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\")\n if (typeof src_or_attrs === \"string\") {\n script.setAttribute(\"src\", src_or_attrs)\n } else {\n for (const [name, value] of Object.entries(src_or_attrs)) {\n script.setAttribute(name, value!)\n }\n }\n script.addEventListener(\"load\", () => {\n // Make sure the loaded JavaScript was already evaluated ...\n if (loaded()) {\n resolve()\n }\n })\n script.addEventListener(\"error\", reject)\n document.body.appendChild(script)\n function probe() {\n if (loaded()) {\n resolve()\n } else {\n window.setTimeout(probe, 113)\n }\n }\n window.setTimeout(probe, 113)\n })\n}\n\nlet perfect_scrollbar_promise: Promise<any>\n\nexport function load_perfect_scrollbar(): Promise<any> {\n if (!perfect_scrollbar_promise) {\n perfect_scrollbar_promise = all_finished([\n import(\"perfect-scrollbar\").then((m) => ((window as any).PerfectScrollbar = m.default)),\n load_css(\"perfect_scrollbar.0751d541.css\"),\n ])\n }\n return perfect_scrollbar_promise\n}\n\nlet photoswipe_promise: Promise<any>\n\nexport function load_photoswipe(): Promise<any> {\n if (!photoswipe_promise) {\n photoswipe_promise = all_finished([\n import(\"photoswipe\").then((m) => ((window as any).PhotoSwipe = (m as any).default)),\n load_css(\"photoswipe.2ccb61cf.css\"),\n ])\n }\n return photoswipe_promise\n}\n\nlet chargebee_promise: Promise<void>\n\nexport function load_chargebee(domain?: \"https://payment.cling.com\"): Promise<void> {\n if (!chargebee_promise) {\n const attrs = {src: `${domain || \"https://js.chargebee.com\"}/v2/chargebee.js`}\n if (domain) {\n ;(attrs as any)[\"data-cb-domain\"] = domain\n }\n chargebee_promise = load_js(attrs, () => (window as any).Chargebee)\n }\n return chargebee_promise\n}\n\n/**\n * Implementation note: Unlike most of the functions here, this function will try to load the JS\n * on every call. This is important - see usages.\n */\nexport function load_jitsi_iframe_api(): Promise<void> {\n return load_js(\n `https://meet.${location.host}/external_api.js?v=stable-7439-2-cling-1`,\n () => (window as any).JitsiMeetExternalAPI,\n )\n}\n"], "mappings": "gFAEA,SAASA,EAASC,EAAgC,CAC9C,IAAMC,EAAY,SAAS,cAAc,KAAK,EAO9C,OANAA,EAAU,aACN,QACAD,EAAS,UAAU,EAAGA,EAAS,QAAQ,GAAG,CAAC,EAAE,QAAQ,KAAM,GAAG,EAAI,mBACtE,EACAC,EAAU,aAAa,QAAS,cAAc,EAC9C,SAAS,KAAK,YAAYA,CAAS,EAC/B,OAAO,iBAAiBA,CAAS,EAAE,MAAQ,WACpC,QAAQ,QAAQ,EAEpB,IAAI,QAAa,CAACC,EAASC,IAAW,CACzC,IAAMC,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,aAAa,MAAO,YAAY,EACrCA,EAAK,aAAa,OAAQ,WAAaJ,CAAQ,EAC/CI,EAAK,iBAAiB,OAAQF,CAAO,EACrCE,EAAK,iBAAiB,QAASD,CAAM,EACrC,SAAS,KAAM,YAAYC,CAAI,EAG/B,SAASC,GAAQ,CACT,OAAO,iBAAiBJ,CAAS,EAAE,MAAQ,WAC3CC,EAAQ,MAAS,EAEjB,OAAO,WAAWG,EAAO,GAAG,CAEpC,CANSC,EAAAD,EAAA,SAOT,OAAO,WAAWA,EAAO,GAAG,CAChC,CAAC,CACL,CA7BSC,EAAAP,EAAA,YA+BF,SAASQ,EACZC,EACAC,EACa,CACb,OAAIA,EAAO,EACA,QAAQ,QAAQ,EAEpB,IAAI,QAAQ,CAACP,EAASC,IAAW,CACpC,IAAMO,EAAS,SAAS,cAAc,QAAQ,EAC9C,GAAI,OAAOF,GAAiB,SACxBE,EAAO,aAAa,MAAOF,CAAY,MAEvC,QAAW,CAACG,EAAMC,CAAK,IAAK,OAAO,QAAQJ,CAAY,EACnDE,EAAO,aAAaC,EAAMC,CAAM,EAGxCF,EAAO,iBAAiB,OAAQ,IAAM,CAE9BD,EAAO,GACPP,EAAQ,CAEhB,CAAC,EACDQ,EAAO,iBAAiB,QAASP,CAAM,EACvC,SAAS,KAAK,YAAYO,CAAM,EAChC,SAASL,GAAQ,CACTI,EAAO,EACPP,EAAQ,EAER,OAAO,WAAWG,EAAO,GAAG,CAEpC,CANSC,EAAAD,EAAA,SAOT,OAAO,WAAWA,EAAO,GAAG,CAChC,CAAC,CACL,CAjCgBC,EAAAC,EAAA,WAmChB,IAAIM,EAEG,SAASC,GAAuC,CACnD,OAAKD,IACDA,EAA4BE,EAAa,CACrC,OAAO,qCAAmB,EAAE,KAAMC,GAAQ,OAAe,iBAAmBA,EAAE,OAAQ,EACtFjB,EAAS,gCAAgC,CAC7C,CAAC,GAEEc,CACX,CARgBP,EAAAQ,EAAA,0BAUhB,IAAIG,EAEG,SAASC,GAAgC,CAC5C,OAAKD,IACDA,EAAqBF,EAAa,CAC9B,OAAO,0BAAY,EAAE,KAAMC,GAAQ,OAAe,WAAcA,EAAU,OAAQ,EAClFjB,EAAS,yBAAyB,CACtC,CAAC,GAEEkB,CACX,CARgBX,EAAAY,EAAA,mBAUhB,IAAIC,EAEG,SAASC,EAAeC,EAAqD,CAChF,GAAI,CAACF,EAAmB,CACpB,IAAMG,EAAQ,CAAC,IAAK,GAAGD,GAAU,0BAA0B,kBAAkB,EACzEA,IACEC,EAAc,gBAAgB,EAAID,GAExCF,EAAoBZ,EAAQe,EAAO,IAAO,OAAe,SAAS,CACtE,CACA,OAAOH,CACX,CATgBb,EAAAc,EAAA", "names": ["load_css", "css_file", "probe_div", "resolve", "reject", "link", "probe", "__name", "load_js", "src_or_attrs", "loaded", "script", "name", "value", "perfect_scrollbar_promise", "load_perfect_scrollbar", "all_finished", "m", "photoswipe_promise", "load_photoswipe", "chargebee_promise", "load_chargebee", "domain", "attrs"] }