{
  "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"]
}