| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | 
							- /*
 
-  Stencil Client Patch Browser v2.18.1 | MIT Licensed | https://stenciljs.com
 
-  */
 
- import { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';
 
- import { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';
 
- const getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\s|-/g, '_')}`;
 
- const patchBrowser = () => {
 
-     // NOTE!! This fn cannot use async/await!
 
-     if (BUILD.isDev && !BUILD.isTesting) {
 
-         consoleDevInfo('Running in development mode.');
 
-     }
 
-     if (BUILD.cssVarShim) {
 
-         // shim css vars
 
-         plt.$cssShim$ = win.__cssshim;
 
-     }
 
-     if (BUILD.cloneNodeFix) {
 
-         // opted-in to polyfill cloneNode() for slot polyfilled components
 
-         patchCloneNodeFix(H.prototype);
 
-     }
 
-     if (BUILD.profile && !performance.mark) {
 
-         // not all browsers support performance.mark/measure (Safari 10)
 
-         // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,
 
-         // simply stub the implementations out.
 
-         // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)
 
-         // @ts-ignore
 
-         performance.mark = performance.measure = () => {
 
-             /*noop*/
 
-         };
 
-         performance.getEntriesByName = () => [];
 
-     }
 
-     // @ts-ignore
 
-     const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim
 
-         ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\/${NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) ||
 
-             s.getAttribute('data-stencil-namespace') === NAMESPACE)
 
-         : null;
 
-     const importMeta = import.meta.url;
 
-     const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};
 
-     if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {
 
-         // Safari < v11 support: This IF is true if it's Safari below v11.
 
-         // This fn cannot use async/await since Safari didn't support it until v11,
 
-         // however, Safari 10 did support modules. Safari 10 also didn't support "nomodule",
 
-         // so both the ESM file and nomodule file would get downloaded. Only Safari
 
-         // has 'onbeforeload' in the script, and "history.scrollRestoration" was added
 
-         // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.
 
-         // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.
 
-         return {
 
-             then() {
 
-                 /* promise noop */
 
-             },
 
-         };
 
-     }
 
-     if (!BUILD.safari10 && importMeta !== '') {
 
-         opts.resourcesUrl = new URL('.', importMeta).href;
 
-     }
 
-     else if (BUILD.dynamicImportShim || BUILD.safari10) {
 
-         opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;
 
-         if (BUILD.dynamicImportShim) {
 
-             patchDynamicImport(opts.resourcesUrl, scriptElm);
 
-         }
 
-         if (BUILD.dynamicImportShim && !win.customElements) {
 
-             // module support, but no custom elements support (Old Edge)
 
-             // @ts-ignore
 
-             return import(/* webpackChunkName: "polyfills-dom" */ './dom.js').then(() => opts);
 
-         }
 
-     }
 
-     return promiseResolve(opts);
 
- };
 
- const patchDynamicImport = (base, orgScriptElm) => {
 
-     const importFunctionName = getDynamicImportFunction(NAMESPACE);
 
-     try {
 
-         // test if this browser supports dynamic imports
 
-         // There is a caching issue in V8, that breaks using import() in Function
 
-         // By generating a random string, we can workaround it
 
-         // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info
 
-         win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);
 
-     }
 
-     catch (e) {
 
-         // this shim is specifically for browsers that do support "esm" imports
 
-         // however, they do NOT support "dynamic" imports
 
-         // basically this code is for old Edge, v18 and below
 
-         const moduleMap = new Map();
 
-         win[importFunctionName] = (src) => {
 
-             const url = new URL(src, base).href;
 
-             let mod = moduleMap.get(url);
 
-             if (!mod) {
 
-                 const script = doc.createElement('script');
 
-                 script.type = 'module';
 
-                 script.crossOrigin = orgScriptElm.crossOrigin;
 
-                 script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {
 
-                     type: 'application/javascript',
 
-                 }));
 
-                 mod = new Promise((resolve) => {
 
-                     script.onload = () => {
 
-                         resolve(win[importFunctionName].m);
 
-                         script.remove();
 
-                     };
 
-                 });
 
-                 moduleMap.set(url, mod);
 
-                 doc.head.appendChild(script);
 
-             }
 
-             return mod;
 
-         };
 
-     }
 
- };
 
- const patchCloneNodeFix = (HTMLElementPrototype) => {
 
-     const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;
 
-     HTMLElementPrototype.cloneNode = function (deep) {
 
-         if (this.nodeName === 'TEMPLATE') {
 
-             return nativeCloneNodeFn.call(this, deep);
 
-         }
 
-         const clonedNode = nativeCloneNodeFn.call(this, false);
 
-         const srcChildNodes = this.childNodes;
 
-         if (deep) {
 
-             for (let i = 0; i < srcChildNodes.length; i++) {
 
-                 // Node.ATTRIBUTE_NODE === 2, and checking because IE11
 
-                 if (srcChildNodes[i].nodeType !== 2) {
 
-                     clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
 
-                 }
 
-             }
 
-         }
 
-         return clonedNode;
 
-     };
 
- };
 
- export { patchBrowser };
 
 
  |