drizzle-cube 0.3.21 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +1 -1
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +1 -1
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +1 -1
- package/dist/adapters/{mcp-transport-B37JTeww.cjs → mcp-transport-49vIZe0U.cjs} +91 -91
- package/dist/adapters/{mcp-transport-DHBUNdYg.js → mcp-transport-CxemGJYK.js} +2379 -2344
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +1 -1
- package/dist/client/charts/chartConfigs.d.ts +21 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{RetentionCombinedChart-DsWhPI0q.js → RetentionCombinedChart-DpEKFYsd.js} +3 -3
- package/dist/client/chunks/RetentionCombinedChart-DpEKFYsd.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-DcZgXtPK.js → analysis-builder-BCAr4mEO.js} +9 -9
- package/dist/client/chunks/{analysis-builder-DcZgXtPK.js.map → analysis-builder-BCAr4mEO.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-ZnrPzt_d.js → analysis-builder-shared-D-5OhHaS.js} +5 -5
- package/dist/client/chunks/{analysis-builder-shared-ZnrPzt_d.js.map → analysis-builder-shared-D-5OhHaS.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-BUc21L0U.js → chart-activity-grid-CCGyWo1c.js} +116 -106
- package/dist/client/chunks/chart-activity-grid-CCGyWo1c.js.map +1 -0
- package/dist/client/chunks/chart-area-INsj4GFi.js +233 -0
- package/dist/client/chunks/chart-area-INsj4GFi.js.map +1 -0
- package/dist/client/chunks/chart-bar-BKRPTqiM.js +228 -0
- package/dist/client/chunks/chart-bar-BKRPTqiM.js.map +1 -0
- package/dist/client/chunks/{chart-bubble-CO7qvWR9.js → chart-bubble-BGGAQQUQ.js} +2 -2
- package/dist/client/chunks/{chart-bubble-CO7qvWR9.js.map → chart-bubble-BGGAQQUQ.js.map} +1 -1
- package/dist/client/chunks/{chart-config-activity-grid-BBSNCbkb.js → chart-config-activity-grid-CAlo1cHA.js} +3 -2
- package/dist/client/chunks/{chart-config-activity-grid-BBSNCbkb.js.map → chart-config-activity-grid-CAlo1cHA.js.map} +1 -1
- package/dist/client/chunks/{chart-config-bar-BJKGnfLt.js → chart-config-bar-soxw6m2o.js} +2 -1
- package/dist/client/chunks/chart-config-bar-soxw6m2o.js.map +1 -0
- package/dist/client/chunks/{chart-config-line-DR0ThxZy.js → chart-config-line-D5ME6w0v.js} +2 -1
- package/dist/client/chunks/chart-config-line-D5ME6w0v.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-BM5lgH-w.js → chart-config-pie-DlHa2jTy.js} +2 -1
- package/dist/client/chunks/chart-config-pie-DlHa2jTy.js.map +1 -0
- package/dist/client/chunks/{chart-config-tree-map-CLmRvvMR.js → chart-config-tree-map-IRAYf9YM.js} +3 -2
- package/dist/client/chunks/{chart-config-tree-map-CLmRvvMR.js.map → chart-config-tree-map-IRAYf9YM.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-bclSKgkZ.js → chart-data-table-BcH_h6kZ.js} +3 -3
- package/dist/client/chunks/{chart-data-table-bclSKgkZ.js.map → chart-data-table-BcH_h6kZ.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-FvDvq015.js → chart-funnel-DI8RMacf.js} +3 -3
- package/dist/client/chunks/chart-funnel-DI8RMacf.js.map +1 -0
- package/dist/client/chunks/{chart-heat-map-GpFE-PFB.js → chart-heat-map-D3xNV9ep.js} +2 -2
- package/dist/client/chunks/{chart-heat-map-GpFE-PFB.js.map → chart-heat-map-D3xNV9ep.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-jmz-CK8X.js → chart-kpi-delta-BJMQKPor.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-jmz-CK8X.js.map → chart-kpi-delta-BJMQKPor.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DbSmomE8.js → chart-kpi-number-B8u4tWmu.js} +2 -2
- package/dist/client/chunks/{chart-kpi-number-DbSmomE8.js.map → chart-kpi-number-B8u4tWmu.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-erI9U7PZ.js → chart-kpi-text--r1d4zAz.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-erI9U7PZ.js.map → chart-kpi-text--r1d4zAz.js.map} +1 -1
- package/dist/client/chunks/chart-line-DgFmGdWW.js +414 -0
- package/dist/client/chunks/chart-line-DgFmGdWW.js.map +1 -0
- package/dist/client/chunks/chart-pie-DC7axSwd.js +137 -0
- package/dist/client/chunks/chart-pie-DC7axSwd.js.map +1 -0
- package/dist/client/chunks/{chart-radar-BE6xsFiF.js → chart-radar-BDKgpLw5.js} +33 -33
- package/dist/client/chunks/chart-radar-BDKgpLw5.js.map +1 -0
- package/dist/client/chunks/{chart-radial-bar-BEEwtFDc.js → chart-radial-bar-BYNng7Nz.js} +7 -6
- package/dist/client/chunks/chart-radial-bar-BYNng7Nz.js.map +1 -0
- package/dist/client/chunks/{chart-sankey-Dt3KaYrH.js → chart-sankey-CpsKerey.js} +2 -2
- package/dist/client/chunks/{chart-sankey-Dt3KaYrH.js.map → chart-sankey-CpsKerey.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-gAlYkQcW.js → chart-scatter-CXqFltJg.js} +11 -11
- package/dist/client/chunks/chart-scatter-CXqFltJg.js.map +1 -0
- package/dist/client/chunks/{chart-sunburst-D0Lvdjwu.js → chart-sunburst-DSsO2CzY.js} +2 -2
- package/dist/client/chunks/{chart-sunburst-D0Lvdjwu.js.map → chart-sunburst-DSsO2CzY.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-Bv_PYe0c.js → chart-tree-map-D_SeBBD-.js} +77 -57
- package/dist/client/chunks/chart-tree-map-D_SeBBD-.js.map +1 -0
- package/dist/client/chunks/{chartConfigRegistry-BumUIPw4.js → chartConfigRegistry-DNEbwgTc.js} +6 -6
- package/dist/client/chunks/{chartConfigRegistry-BumUIPw4.js.map → chartConfigRegistry-DNEbwgTc.js.map} +1 -1
- package/dist/client/chunks/{charts-DqWRT0TE.js → charts-CsEtJy5f.js} +17 -17
- package/dist/client/chunks/charts-CsEtJy5f.js.map +1 -0
- package/dist/client/chunks/{charts-core-BfxnhMfd.js → charts-core-8jDh3mKC.js} +64 -63
- package/dist/client/chunks/charts-core-8jDh3mKC.js.map +1 -0
- package/dist/client/chunks/{charts-loader-DCGbL50r.js → charts-loader-sNk3q8UX.js} +20 -20
- package/dist/client/chunks/{charts-loader-DCGbL50r.js.map → charts-loader-sNk3q8UX.js.map} +1 -1
- package/dist/client/chunks/{components-NmBmOEqV.js → components-BsV0_0jR.js} +3579 -2880
- package/dist/client/chunks/components-BsV0_0jR.js.map +1 -0
- package/dist/client/chunks/{hooks-D7APQ8uS.js → hooks-CKYzVf_7.js} +3 -3
- package/dist/client/chunks/{hooks-D7APQ8uS.js.map → hooks-CKYzVf_7.js.map} +1 -1
- package/dist/client/chunks/{index-CBvXpG92.js → index-_2PSgbkC.js} +270 -261
- package/dist/client/chunks/index-_2PSgbkC.js.map +1 -0
- package/dist/client/chunks/{providers-Cj7PQfXn.js → providers-BBrUJB2U.js} +2 -2
- package/dist/client/chunks/{providers-Cj7PQfXn.js.map → providers-BBrUJB2U.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-ZSi3voVl.js → useDirtyStateTracking-DDQ_Lbki.js} +2 -2
- package/dist/client/chunks/{useDirtyStateTracking-ZSi3voVl.js.map → useDirtyStateTracking-DDQ_Lbki.js.map} +1 -1
- package/dist/client/components/DrillBreadcrumb.d.ts +6 -0
- package/dist/client/components/DrillMenu.d.ts +8 -0
- package/dist/client/components.js +2 -2
- package/dist/client/hooks/useDrillInteraction.d.ts +9 -0
- package/dist/client/hooks.js +3 -3
- package/dist/client/index.js +9 -9
- package/dist/client/providers.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/types/drill.d.ts +240 -0
- package/dist/client/types.d.ts +53 -2
- package/dist/client/utils/drillQueryBuilder.d.ts +41 -0
- package/dist/client-bundle-stats.html +1 -1
- package/dist/server/index.cjs +25 -25
- package/dist/server/index.d.ts +78 -0
- package/dist/server/index.js +2117 -2082
- package/package.json +1 -1
- package/dist/client/chunks/RetentionCombinedChart-DsWhPI0q.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-BUc21L0U.js.map +0 -1
- package/dist/client/chunks/chart-area-B_64FScj.js +0 -190
- package/dist/client/chunks/chart-area-B_64FScj.js.map +0 -1
- package/dist/client/chunks/chart-bar-Ctiy2tpQ.js +0 -216
- package/dist/client/chunks/chart-bar-Ctiy2tpQ.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-BJKGnfLt.js.map +0 -1
- package/dist/client/chunks/chart-config-line-DR0ThxZy.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-BM5lgH-w.js.map +0 -1
- package/dist/client/chunks/chart-funnel-FvDvq015.js.map +0 -1
- package/dist/client/chunks/chart-line-B0YOZ88n.js +0 -364
- package/dist/client/chunks/chart-line-B0YOZ88n.js.map +0 -1
- package/dist/client/chunks/chart-pie-CImB6r4F.js +0 -125
- package/dist/client/chunks/chart-pie-CImB6r4F.js.map +0 -1
- package/dist/client/chunks/chart-radar-BE6xsFiF.js.map +0 -1
- package/dist/client/chunks/chart-radial-bar-BEEwtFDc.js.map +0 -1
- package/dist/client/chunks/chart-scatter-gAlYkQcW.js.map +0 -1
- package/dist/client/chunks/chart-tree-map-Bv_PYe0c.js.map +0 -1
- package/dist/client/chunks/charts-DqWRT0TE.js.map +0 -1
- package/dist/client/chunks/charts-core-BfxnhMfd.js.map +0 -1
- package/dist/client/chunks/components-NmBmOEqV.js.map +0 -1
- package/dist/client/chunks/index-CBvXpG92.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CBvXpG92.js","sources":["../../../node_modules/modern-screenshot/dist/index.mjs"],"sourcesContent":["function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().implementation.createHTMLDocument();\n const base = doc.createElement(\"base\");\n const a = doc.createElement(\"a\");\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl)\n base.href = baseUrl;\n a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.body) {\n return cloneNode(iframe.contentDocument.body, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule, index) => {\n if (isCSSImportRule(cssRule)) {\n let importIndex = index + 1;\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n styleSheet.insertRule(\n rule,\n rule.startsWith(\"@import\") ? importIndex += 1 : styleSheet.cssRules.length\n );\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n const cssRules = styleSheets.flatMap((styleSheet) => Array.from(styleSheet.cssRules));\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\n\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n"],"names":["changeJpegDpi","uint8Array","dpi","_P","_H","_Y","_S","pngDataTable","createPngDataTable","crcTable","n","c","k","calcCrc","searchStartOfPhys","length","i","changePngDpi","overwritepHYs","physChunk","crc","crcChunk","startingIndex","chunkLength","finalHeader","b64PhysSignature1","b64PhysSignature2","b64PhysSignature3","detectPhysChunkFromDataUrl","dataUrl","b64index","PREFIX","IN_BROWSER","SUPPORT_WEB_WORKER","SUPPORT_ATOB","SUPPORT_BTOA","USER_AGENT","IN_CHROME","IN_SAFARI","IN_FIREFOX","isContext","value","isCssFontFaceRule","rule","isCSSImportRule","isElementNode","node","isSVGElementNode","isSVGImageElementNode","isSVGUseElementNode","isHTMLElementNode","isCommentNode","isTextNode","isImageElement","isVideoElement","isCanvasElement","isTextareaElement","isInputElement","isStyleElement","isScriptElement","isSelectElement","isSlotElement","isIFrameElement","consoleWarn","args","supportWebp","ownerDocument","canvas","isDataUrl","url","resolveUrl","baseUrl","doc","getDocument","base","a","target","XMLNS","createSvg","width","height","svg","svgToDataUrl","removeControlCharacter","xhtml","canvasToBlob","type","quality","resolve","reject","blob","error","dataUrlToBlob","header","base64","decoded","buffer","readBlob","reader","blobToDataUrl","blobToArrayBuffer","createImage","img","loadMedia","media","options","timeout","userOnError","onWarn","timer","removeEventListeners","onResolve","currentSrc","onLoadeddata","onError","onLoad","waitUntilLoad","selectors","el","uuid","counter","random","splitFontFamily","fontFamily","val","uid","createLogger","debug","prefix","label","getDefaultRequestInit","bypassingCache","orCreateContext","createContext","scale","workerUrl","workerNumber","features","ownerWindow","requests","context","createStyleElement","worker","event","result","key","resolveBoundingBox","style","cssText","box","imageToCanvas","image","log","drawImageCount","drawImageInterval","loaded","context2d","createCanvas","drawImage","backgroundColor","max","cloneCanvas","dataURL","cloned","ctx","clonedCtx","cloneIframe","iframe","cloneNode","cloneImage","cloneVideo","video","canPlay","cloneElement","getSandBox","sandbox","ignoredStyles","includedAttributes","getDefaultStyle","pseudoElement","defaultComputedStyles","nodeName","isSvgNode","attributes","name","sandboxWindow","sandboxDocument","root","computedStyle","styles","len","getDiffStyle","defaultStyle","includeStyleProperties","diffStyle","prefixs","prefixTree","applyTo","priority","subIndex","map","copyCssStyles","isRoot","currentParentNodeStyle","clonedStyle","_","copyInputValue","pseudoClasses","scrollbarPseudoClasses","copyPseudoClass","copyScrollbar","addWordToFontFamilies","svgStyleElement","svgStyles","currentNodeStyle","copyBy","pseudoClass","content","klasses","cloneStyle","err","allClasses","excludeParentNodes","appendChildNode","child","childCloned","restoreScrollPosition","cloneChildNodes","firstChild","nodes","chlidCloned","scrollTop","scrollLeft","transform","matrix","b","d","applyCssStyleWithOptions","NORMAL_ATTRIBUTE_RE","fontFamilies","onCloneEachNode","cloned2","names","overflow","textTransform","families","addWordToFontFamilies2","word","family","text","destroyContext","baseFetch","responseType","requestInit","controller","response","contextFetch","rawUrl","requestType","imageDom","acceptOfImage","fetchFn","placeholderImage","font","workers","request","canFontMinify","fontTexts","needFontMinify","baseFetchOptions","replaceCssUrlToDataUrl","isImage","hasCssUrl","parseCssUrls","toRE","URL_RE","raw","quotation","escaped","properties","embedCssStyleImage","property","newValue","embedImageElement","originalSrc","embedSvgUse","svgDefsElement","href","svgUrl","id","query","definition","res","svgData","embedNode","tasks","embedWebFont","clone","fontCssTexts","filterPreferredFormat","styleSheets","styleSheet","cssRule","index","importIndex","replacedCssText","parseCss","cssText2","COMMENTS_RE","KEYFRAMES_RE","source","matches","IMPORT_RE","UNIFIED_RE","URL_WITH_FORMAT_RE","FONT_SRC_RE","str","preferredFormat","match","src","format","domToForeignObjectSvg","progress","autoDestruct","onCloneNode","onEmbedNode","onCreateForeignObjectSvg","allCssText","count","current","runTask","task","createForeignObjectSvg","foreignObject","domToCanvas","domToBlob","arrayBuffer","domToDataUrl","body","headerLength","b64Index","stringHeader","restOfData","headerBytes","finalArray","base64Header","domToSvg","svgImage","domToImage","domToJpeg","domToPixel","domToPng","domToWebp"],"mappings":"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","x_google_ignoreList":[0]}
|