123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- Stencil Client Patch Browser v4.20.0 | MIT Licensed | https://stenciljs.com
- */
- // src/client/client-patch-browser.ts
- import { BUILD, NAMESPACE } from "@stencil/core/internal/app-data";
- import { consoleDevInfo, doc, H, promiseResolve } from "@stencil/core";
- var patchBrowser = () => {
- if (BUILD.isDev && !BUILD.isTesting) {
- consoleDevInfo("Running in development mode.");
- }
- if (BUILD.cloneNodeFix) {
- patchCloneNodeFix(H.prototype);
- }
- const scriptElm = BUILD.scriptDataOpts ? 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 (importMeta !== "") {
- opts.resourcesUrl = new URL(".", importMeta).href;
- }
- return promiseResolve(opts);
- };
- var 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++) {
- if (srcChildNodes[i].nodeType !== 2) {
- clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
- }
- }
- }
- return clonedNode;
- };
- };
- export {
- patchBrowser
- };
|