bulmil
Version:

113 lines (109 loc) • 4.99 kB
JavaScript
const index = require('./index-a18287bc.js');
/*
Stencil Client Patch v1.17.3 | MIT Licensed | https://stenciljs.com
*/
const noop = () => {
/* noop*/
};
const IS_DENO_ENV = typeof Deno !== 'undefined';
const IS_NODE_ENV = !IS_DENO_ENV &&
typeof global !== 'undefined' &&
typeof require === 'function' &&
!!global.process &&
typeof __filename === 'string' &&
(!global.origin || typeof global.origin !== 'string');
const IS_DENO_WINDOWS_ENV = IS_DENO_ENV && Deno.build.os === 'windows';
const getCurrentDirectory = IS_NODE_ENV ? process.cwd : IS_DENO_ENV ? Deno.cwd : () => '/';
const exit = IS_NODE_ENV ? process.exit : IS_DENO_ENV ? Deno.exit : noop;
const getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\s|-/g, '_')}`;
const patchEsm = () => {
// NOTE!! This fn cannot use async/await!
// @ts-ignore
if ( !(index.CSS && index.CSS.supports && index.CSS.supports('color', 'var(--c)'))) {
// @ts-ignore
return Promise.resolve().then(function () { return require(/* webpackChunkName: "polyfills-css-shim" */ './css-shim-0abe6f52.js'); }).then(() => {
if ((index.plt.$cssShim$ = index.win.__cssshim)) {
return index.plt.$cssShim$.i();
}
else {
// for better minification
return 0;
}
});
}
return index.promiseResolve();
};
const patchBrowser = () => {
{
// shim css vars
index.plt.$cssShim$ = index.win.__cssshim;
}
// @ts-ignore
const scriptElm = Array.from(index.doc.querySelectorAll('script')).find(s => new RegExp(`\/${index.NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) || s.getAttribute('data-stencil-namespace') === index.NAMESPACE)
;
const opts = scriptElm['data-opts'] || {} ;
if ( '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 */
},
};
}
{
opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, index.win.location.href)).href;
{
patchDynamicImport(opts.resourcesUrl, scriptElm);
}
if ( !index.win.customElements) {
// module support, but no custom elements support (Old Edge)
// @ts-ignore
return Promise.resolve().then(function () { return require(/* webpackChunkName: "polyfills-dom" */ './dom-c3bc978c.js'); }).then(() => opts);
}
}
return index.promiseResolve(opts);
};
const patchDynamicImport = (base, orgScriptElm) => {
const importFunctionName = getDynamicImportFunction(index.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
index.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();
index.win[importFunctionName] = (src) => {
const url = new URL(src, base).href;
let mod = moduleMap.get(url);
if (!mod) {
const script = index.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(index.win[importFunctionName].m);
script.remove();
};
});
moduleMap.set(url, mod);
index.doc.head.appendChild(script);
}
return mod;
};
}
};
exports.patchBrowser = patchBrowser;
exports.patchEsm = patchEsm;
;