@sailfish-rrweb/replay 0.2.5 → 0.2.7
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/replay.cjs +61 -11993
- package/dist/replay.cjs.map +1 -1
- package/dist/replay.js +5543 -9601
- package/dist/replay.js.br +0 -0
- package/dist/replay.js.gz +0 -0
- package/dist/replay.js.map +1 -1
- package/dist/replay.umd.cjs +71 -12058
- package/dist/replay.umd.cjs.map +1 -7
- package/dist/replay.umd.min.cjs +38 -38
- package/dist/replay.umd.min.cjs.map +3 -3
- package/dist/replay.umd.umd.cjs +86 -0
- package/dist/replay.umd.umd.cjs.map +7 -0
- package/dist/replay.umd.umd.min.cjs +86 -0
- package/dist/replay.umd.umd.min.cjs.map +7 -0
- package/dist/style.css +1 -79
- package/dist/style.css.br +0 -0
- package/dist/style.css.gz +0 -0
- package/dist/style.min.css.br +0 -0
- package/dist/style.min.css.gz +0 -0
- package/dist/style.min.css.map +2 -2
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../rrweb/dist/rrweb.js"],
|
|
4
|
-
"sourcesContent": ["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$2 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$2 || {});\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const host = n2 == null ? void 0 : n2.host;\n return Boolean((host == null ? void 0 : host.shadowRoot) === n2);\n}\nfunction isNativeShadowDom(shadowRoot) {\n return Object.prototype.toString.call(shadowRoot) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n return rules2 ? fixBrowserCompatibilityIssuesInCSS(\n Array.from(rules2, stringifyRule).join(\"\")\n ) : null;\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2) {\n let importStringified;\n if (isCSSImportRule(rule2)) {\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n }\n } else if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n return fixSafariColons(rule2.cssText);\n }\n return importStringified || rule2.cssText;\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n let returnText = \"\";\n const actualType = type && toLowerCase(type);\n let masked = false;\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n returnText = maskInputFn(text, element);\n } else {\n returnText = \"*\".repeat(text.length);\n }\n masked = text !== returnText;\n }\n return { value: returnText, masked };\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a2, b) {\n if (!a2 || !b || a2.type !== b.type) return false;\n if (a2.type === NodeType$2.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$2.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$2.Comment || a2.type === NodeType$2.Text || a2.type === NodeType$2.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$2.Element)\n return a2.tagName === b.tagName && JSON.stringify(a2.attributes) === JSON.stringify(b.attributes) && a2.isSVG === b.isSVG && a2.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nlet canvasService;\nlet canvasCtx;\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absoluteToStylesheet(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(node2.parentNode, regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(node2.parentNode, regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!el.childNodes.length) {\n return false;\n }\n } else if (node2.parentElement === null) {\n return false;\n } else {\n el = node2.parentElement;\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$2.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$2.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$2.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$2.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$2.Comment,\n textContent: n2.textContent || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n var _a2;\n const { needsMask, maskTextFn, rootId } = options;\n const parentTagName = n2.parentNode && n2.parentNode.tagName;\n let textContent = n2.textContent;\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isStyle && textContent) {\n try {\n if (n2.nextSibling || n2.previousSibling) {\n } else if ((_a2 = n2.parentNode.sheet) == null ? void 0 : _a2.cssRules) {\n textContent = stringifyStylesheet(\n n2.parentNode.sheet\n );\n }\n } catch (err) {\n console.warn(\n `Cannot get CSS styles from text's parentNode. Error: ${err}`,\n n2\n );\n }\n textContent = absoluteToStylesheet(textContent, getHref(options.doc));\n }\n if (isScript) {\n textContent = \"SCRIPT_PLACEHOLDER\";\n }\n if (!isStyle && !isScript && textContent && needsMask) {\n textContent = maskTextFn ? maskTextFn(textContent, n2.parentElement) : textContent.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$2.Text,\n textContent: textContent || \"\",\n isStyle,\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === \"style\" && n2.sheet && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n !(n2.innerText || n2.textContent || \"\").trim().length) {\n const cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n attributes._cssText = absoluteToStylesheet(cssText, getHref(doc));\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n const maskResult = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n attributes.value = maskResult.value;\n if (maskResult.masked) {\n attributes.masked = true;\n }\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$2.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$2.Comment) {\n return true;\n } else if (sn.type === NodeType$2.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$2.Text && !_serializedNode.isStyle && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$2.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRoot = n2.shadowRoot;\n if (shadowRoot && isNativeShadowDom(shadowRoot))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$2.Document || serializedNode.type === NodeType$2.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n };\n if (serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n for (const childN of Array.from(n2.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n if (isElement(n2) && n2.shadowRoot) {\n for (const childN of Array.from(n2.shadowRoot.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(n2.shadowRoot) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n2.parentNode && isShadowRoot(n2.parentNode) && isNativeShadowDom(n2.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index) => {\n let number = start + 1 + index;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index, stringRepresentation);\n }\n return pos;\n }\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation);\n end = this.positionInside(index + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet$1 = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1, customAlphabet: customAlphabet$1 };\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid$2(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index], index);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index) => i2(child.toProxy(), index);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$2 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index = this.index(child);\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$2;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$2;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.39\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$2;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (!selector.includes(\":\")) {\n return;\n }\n const selectorParts = selector.replace(/\\n/g, \" \").split(\" \");\n const pseudoedSelectorParts = [];\n selectorParts.forEach(function(selectorPart) {\n const pseudos = selectorPart.match(/::?([^:]+)/g);\n if (!pseudos) {\n pseudoedSelectorParts.push(selectorPart);\n return;\n }\n const baseSelector = selectorPart.substr(\n 0,\n selectorPart.length - pseudos.join(\"\").length\n );\n const classPseudos = pseudos.map(function(pseudo) {\n const pseudoToCheck = pseudo.replace(/\\(.*/g, \"\");\n if (pseudoToCheck !== \":hover\") {\n return pseudo;\n }\n if (pseudo.match(/^::/)) {\n return pseudo;\n }\n pseudo = pseudo.substr(1);\n pseudo = pseudo.replace(/\\(/g, \"\\\\(\");\n pseudo = pseudo.replace(/\\)/g, \"\\\\)\");\n return \".\\\\:\" + pseudo;\n });\n pseudoedSelectorParts.push(baseSelector + classPseudos.join(\"\"));\n });\n addSelector(pseudoedSelectorParts.join(\" \"));\n function addSelector(newSelector) {\n if (newSelector && newSelector !== selector) {\n rule2.selector += \",\\n\" + newSelector;\n }\n }\n });\n }\n };\n }\n};\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n2) {\n let tagName = tagMap[n2.tagName] ? tagMap[n2.tagName] : n2.tagName;\n if (tagName === \"link\" && n2.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n const ast = postcss$1$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n const result2 = ast.css;\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$2.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$2.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$2.Element: {\n const tagName = getTagName(n2);\n let node2;\n if (n2.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n2.isCustom && // If the browser supports custom elements\n ((_a2 = doc.defaultView) == null ? void 0 : _a2.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n2.tagName)\n )\n doc.defaultView.customElements.define(\n n2.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n2.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n2.attributes, name)) {\n continue;\n }\n let value = n2.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n const isTextarea = tagName === \"textarea\" && name === \"value\";\n const isRemoteOrDynamicCss = tagName === \"style\" && name === \"_cssText\";\n if (isRemoteOrDynamicCss && hackCss && typeof value === \"string\") {\n value = adaptCssForReplay(value, cache);\n }\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === \"string\") {\n node2.appendChild(doc.createTextNode(value));\n n2.childNodes = [];\n continue;\n }\n try {\n if (n2.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n2.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n2.attributes.rel === \"preload\" || n2.attributes.rel === \"modulepreload\") && n2.attributes.as === \"script\") {\n } else if (tagName === \"link\" && n2.attributes.rel === \"prefetch\" && typeof n2.attributes.href === \"string\" && n2.attributes.href.endsWith(\".js\")) {\n } else if (tagName === \"img\" && n2.attributes.srcset && n2.attributes.rr_dataURL) {\n node2.setAttribute(\"original-srcset\", n2.attributes.srcset);\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\"original-src\", n2.attributes.src);\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.width = value.toString();\n } else if (name === \"rr_height\") {\n node2.style.height = value.toString();\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n }\n }\n if (n2.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType$2.Text:\n return doc.createTextNode(\n n2.isStyle && hackCss ? adaptCssForReplay(n2.textContent, cache) : n2.textContent\n );\n case NodeType$2.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$2.Comment:\n return doc.createComment(n2.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n2, options) {\n const {\n doc,\n mirror: mirror2,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror2.has(n2.id)) {\n const nodeInMirror = mirror2.getNode(n2.id);\n const meta = mirror2.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n2)) return mirror2.getNode(n2.id);\n }\n let node2 = buildNode(n2, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n2.rootId && mirror2.getNode(n2.rootId) !== doc) {\n mirror2.replace(n2.rootId, doc);\n }\n if (n2.type === NodeType$2.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$2.DocumentType) {\n if (n2.childNodes[0].type === NodeType$2.Element && \"xmlns\" in n2.childNodes[0].attributes && n2.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n );\n } else {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n );\n }\n }\n node2 = doc;\n }\n mirror2.add(node2, n2);\n if ((n2.type === NodeType$2.Document || n2.type === NodeType$2.Element) && !skipChild) {\n for (const childN of n2.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n2.type === NodeType$2.Document && childN.type == NodeType$2.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror2, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror2.getIds()) {\n if (mirror2.has(id)) {\n walk(mirror2.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror2) {\n const n2 = mirror2.getMeta(node2);\n if ((n2 == null ? void 0 : n2.type) !== NodeType$2.Element) {\n return;\n }\n const el = node2;\n for (const name in n2.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n2.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n2.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n2, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror: mirror2 = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n2, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror2, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror2);\n });\n return node2;\n}\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d, _e, _f;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : (doc == null ? void 0 : doc.documentElement.scrollLeft) || ((_b = (_a2 = doc == null ? void 0 : doc.body) == null ? void 0 : _a2.parentElement) == null ? void 0 : _b.scrollLeft) || ((_c = doc == null ? void 0 : doc.body) == null ? void 0 : _c.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || ((_e = (_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.parentElement) == null ? void 0 : _e.scrollTop) || ((_f = doc == null ? void 0 : doc.body) == null ? void 0 : _f.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : node2.parentElement;\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n if (target.parentNode && target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = (...args) => {\n let node2 = args[0];\n if (!(0 in args)) {\n throw new TypeError(\"1 argument is required\");\n }\n do {\n if (this === node2) {\n return true;\n }\n } while (node2 = node2 && node2.parentNode);\n return false;\n };\n }\n}\nfunction queueToResolveTrees(queue) {\n const queueNodeMap = {};\n const putIntoMap = (m, parent) => {\n const nodeInTree = {\n value: m,\n parent,\n children: []\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n const queueNodeTrees = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent)\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (let i2 = tree.children.length - 1; i2 >= 0; i2--) {\n iterateResolveTree(tree.children[i2], cb);\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction getBaseDimension(node2, rootIframe) {\n var _a2, _b;\n const frameElement = (_b = (_a2 = node2.ownerDocument) == null ? void 0 : _a2.defaultView) == null ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale + frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale + frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale\n };\n}\nfunction hasShadowRoot(n2) {\n return Boolean(n2 == null ? void 0 : n2.shadowRoot);\n}\nfunction getNestedRule(rules2, position) {\n const rule2 = rules2[position[0]];\n if (position.length === 1) {\n return rule2;\n } else {\n return getNestedRule(\n rule2.cssRules[position[1]].cssRules,\n position.slice(2)\n );\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n const positions = [...nestedIndex];\n const index = positions.pop();\n return { positions, index };\n}\nfunction uniqueTextMutations(mutations) {\n const idSet = /* @__PURE__ */ new Set();\n const uniqueMutations = [];\n for (let i2 = mutations.length; i2--; ) {\n const mutation = mutations[i2];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n return uniqueMutations;\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2, _b;\n let shadowHost = null;\n if (((_b = (_a2 = n2.getRootNode) == null ? void 0 : _a2.call(n2)) == null ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && n2.getRootNode().host)\n shadowHost = n2.getRootNode().host;\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return doc.contains(shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return doc.contains(n2) || shadowHostInDom(n2);\n}\nconst utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StyleSheetMirror,\n get _mirror() {\n return _mirror;\n },\n closestElementOfNode,\n getBaseDimension,\n getNestedRule,\n getPositionsAndIndex,\n getRootShadowHost,\n getShadowHost,\n getWindowHeight,\n getWindowScroll,\n getWindowWidth,\n hasShadowRoot,\n hookSetter,\n inDom,\n isAncestorRemoved,\n isBlocked,\n isIgnored,\n isSerialized,\n isSerializedIframe,\n isSerializedStylesheet,\n iterateResolveTree,\n legacy_isTouchEvent,\n get nowTimestamp() {\n return nowTimestamp;\n },\n on,\n patch,\n polyfill: polyfill$1,\n queueToResolveTrees,\n shadowHostInDom,\n throttle,\n uniqueTextMutations\n}, Symbol.toStringTag, { value: \"Module\" }));\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n // @ts-expect-error\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"@sailfish-rrweb/rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n }\n // @ts-expect-error\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType$2.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n if (!n2.parentNode || !inDom(n2) || n2.parentNode.tagName === \"TEXTAREA\") {\n return;\n }\n const parentId = isShadowRoot(n2.parentNode) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(n2.parentNode);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(n2.shadowRoot, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n }\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removes, n2, this.mirror) && !this.movedSet.has(n2.parentNode)) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removes, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(candidate.value.parentNode);\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(_node.value.parentNode);\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n if (unhandledNode.parentNode && unhandledNode.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = unhandledNode.parentNode.host;\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n if (n2.parentNode && n2.parentNode.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(n2.parentNode);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n item.attributes.value = Array.from(\n textarea.childNodes,\n (cn) => cn.textContent || \"\"\n ).join(\"\");\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = m.target.textContent;\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n const maskResult = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n value = maskResult.value;\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(m.target.host) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n n2.childNodes.forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n n2.shadowRoot.childNodes.forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n n2.childNodes.forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.length === 0) return false;\n return _isParentRemoved(removes, n2, mirror2);\n}\nfunction _isParentRemoved(removes, n2, mirror2) {\n let node2 = n2.parentNode;\n while (node2) {\n const parentId = mirror2.getId(node2);\n if (removes.some((r2) => r2.id === parentId)) {\n return true;\n }\n node2 = node2.parentNode;\n }\n return false;\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const { parentNode } = n2;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return _isAncestorInSet(set, parentNode);\n}\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n var _a2, _b;\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n let mutationObserverCtor = window.MutationObserver || /**\n * Some websites may disable MutationObserver by removing it from the window object.\n * If someone is using rrweb to build a browser extention or things like it, they\n * could not change the website's code but can have an opportunity to inject some\n * code before the website executing its JS logic.\n * Then they can do this to store the native MutationObserver:\n * window.__rrMutationObserver = MutationObserver\n */\n window.__rrMutationObserver;\n const angularZoneSymbol = (_b = (_a2 = window == null ? void 0 : window.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, \"MutationObserver\");\n if (angularZoneSymbol && window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n const observer = new mutationObserverCtor(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = target.parentElement;\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n const { value: maskedValue, masked } = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n text = maskedValue;\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, masked, userTriggered } : { text, isChecked, masked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, masked, userTriggered: false } : { text: text2, isChecked: !isChecked, masked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked || lastInputValue.masked !== v2.masked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index = rules2.indexOf(childRule);\n pos.unshift(index);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules2.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host) {\n var _a2, _b, _c;\n let hostId = null;\n if (host.nodeName === \"#document\") hostId = mirror2.getId(host);\n else hostId = mirror2.getId(host.host);\n const patchTarget = host.nodeName === \"#document\" ? (_a2 = host.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof self !== \"undefined\" && self.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL);\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nvar decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index = list2.indexOf(value);\n if (index === -1) {\n index = list2.length;\n list2.push(value);\n }\n return index;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot, doc) {\n if (!isNativeShadowDom(shadowRoot)) return;\n if (this.shadowDoms.has(shadowRoot)) return;\n this.shadowDoms.add(shadowRoot);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot.adoptedStyleSheets && shadowRoot.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot.adoptedStyleSheets,\n this.mirror.getId(shadowRoot.host)\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const shadowRoot = original.call(this, option);\n if (this.shadowRoot && inDom(this))\n manager.addShadowRoot(this.shadowRoot, doc);\n return shadowRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index) => ({\n rule: stringifyRule(r2),\n index\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"@sailfish-rrweb/rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(n2.shadowRoot, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nfunction mitt$1(n2) {\n return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 ? i2.push(e2) : n2.set(t2, [e2]);\n }, off: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && (e2 ? i2.splice(i2.indexOf(e2) >>> 0, 1) : n2.set(t2, []));\n }, emit: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && i2.slice().map(function(n3) {\n n3(e2);\n }), (i2 = n2.get(\"*\")) && i2.slice().map(function(n3) {\n n3(t2, e2);\n });\n } };\n}\nconst mittProxy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mitt$1\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp22 = Object.defineProperty;\nvar __defNormalProp22 = (obj, key, value) => key in obj ? __defProp22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField22 = (obj, key, value) => __defNormalProp22(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nlet Mirror$1 = class Mirror2 {\n constructor() {\n __publicField22(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField22(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index) => {\n let number = start + 1 + index;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index, stringRepresentation);\n }\n return pos;\n }\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation);\n end = this.positionInside(index + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index], index);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index) => i2(child.toProxy(), index);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index = this.index(child);\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self2 = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self2.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.39\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField2(this, \"nodeType\", 9);\n __publicField2(this, \"nodeName\", \"#document\");\n __publicField2(this, \"compatMode\", \"CSS1Compat\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Document);\n __publicField2(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(content) {\n let publicId;\n if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField2(this, \"nodeType\", 10);\n __publicField2(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField2(this, \"name\");\n __publicField2(this, \"publicId\");\n __publicField2(this, \"systemId\");\n __publicField2(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField2(this, \"nodeType\", 1);\n __publicField2(this, \"RRNodeType\", NodeType$1.Element);\n __publicField2(this, \"tagName\");\n __publicField2(this, \"attributes\", {});\n __publicField2(this, \"shadowRoot\", null);\n __publicField2(this, \"scrollLeft\");\n __publicField2(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n return this.attributes[name] || null;\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot;\n return shadowRoot;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"currentTime\");\n __publicField2(this, \"volume\");\n __publicField2(this, \"paused\");\n __publicField2(this, \"muted\");\n __publicField2(this, \"playbackRate\");\n __publicField2(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 3);\n __publicField2(this, \"nodeName\", \"#text\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Text);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 8);\n __publicField2(this, \"nodeName\", \"#comment\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeName\", \"#cdata-section\");\n __publicField2(this, \"nodeType\", 4);\n __publicField2(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField2(this, \"onChange\");\n __publicField2(this, \"classes\", []);\n __publicField2(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField2(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a2;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a2 = oldTree.parentNode) == null ? void 0 : _a2.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a2;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation2) => replayer.applyCanvas(\n canvasMutation2.event,\n canvasMutation2.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a2 = replayer.afterAppend) == null ? void 0 : _a2.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else oldTree.setAttribute(name, newValue);\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e2) {\n console.warn(e2);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i2 = oldStartIndex; i2 <= oldEndIndex; i2++) {\n const oldChild2 = oldChildren[i2];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i2;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e2) {\n console.warn(e2);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e2) {\n console.warn(e2);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e2) {\n console.warn(e2);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e2) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror2) {\n super();\n __publicField2(this, \"UNSERIALIZED_STARTING_ID\", -2);\n __publicField2(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField2(this, \"mirror\", createMirror());\n __publicField2(this, \"scrollData\", null);\n if (mirror2) {\n this.mirror = mirror2;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"inputData\", null);\n __publicField2(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rr_dataURL\", null);\n __publicField2(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror2) {\n super(upperTagName);\n __publicField2(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror2;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror22();\n}\nclass Mirror22 {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nconst webGLVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nfunction deserializeArg(imageMap, ctx, preload) {\n return async (arg) => {\n if (arg && typeof arg === \"object\" && \"rr_type\" in arg) {\n if (preload) preload.isUnchanged = false;\n if (arg.rr_type === \"ImageBitmap\" && \"args\" in arg) {\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n return await createImageBitmap.apply(null, args);\n } else if (\"index\" in arg) {\n if (preload || ctx === null) return arg;\n const { rr_type: name, index } = arg;\n return variableListFor(ctx, name)[index];\n } else if (\"args\" in arg) {\n const { rr_type: name, args } = arg;\n const ctor = window[name];\n return new ctor(\n ...await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload))\n )\n );\n } else if (\"base64\" in arg) {\n return decode(arg.base64);\n } else if (\"src\" in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image2 = new Image();\n image2.src = arg.src;\n imageMap.set(arg.src, image2);\n return image2;\n }\n } else if (\"data\" in arg && arg.rr_type === \"Blob\") {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload))\n );\n const blob2 = new Blob(blobContents, {\n type: arg.type\n });\n return blob2;\n }\n } else if (Array.isArray(arg)) {\n const result2 = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload))\n );\n return result2;\n }\n return arg;\n };\n}\nasync function canvasMutation$1({\n event,\n mutations,\n target,\n imageMap,\n errorHandler: errorHandler2\n}) {\n const ctx = target.getContext(\"2d\");\n if (!ctx) {\n errorHandler2(mutations[0], new Error(\"Canvas context is null\"));\n return;\n }\n const mutationArgsPromises = mutations.map(\n async (mutation) => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n }\n );\n const args = await Promise.all(mutationArgsPromises);\n args.forEach((args2, index) => {\n const mutation = mutations[index];\n try {\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n if (mutation.property === \"drawImage\" && typeof mutation.args[0] === \"string\") {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args2);\n }\n } catch (error) {\n errorHandler2(mutation, error);\n }\n return;\n });\n}\nfunction getContext(target, type) {\n try {\n if (type === CanvasContext.WebGL) {\n return target.getContext(\"webgl\") || target.getContext(\"experimental-webgl\");\n }\n return target.getContext(\"webgl2\");\n } catch (e2) {\n return null;\n }\n}\nconst WebGLVariableConstructorsNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\"\n];\nfunction saveToWebGLVarMap(ctx, result2) {\n if (!(result2 == null ? void 0 : result2.constructor)) return;\n const { name } = result2.constructor;\n if (!WebGLVariableConstructorsNames.includes(name)) return;\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result2)) variables.push(result2);\n}\nasync function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler: errorHandler2\n}) {\n try {\n const ctx = getContext(target, type);\n if (!ctx) return;\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx))\n );\n const result2 = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result2);\n const debugMode = false;\n if (debugMode) ;\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nasync function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler: errorHandler2\n}) {\n try {\n const precomputedMutation = canvasEventMap.get(event) || mutation;\n const commands = \"commands\" in precomputedMutation ? precomputedMutation.commands : [precomputedMutation];\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i2 = 0; i2 < commands.length; i2++) {\n const command = commands[i2];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n }\n return;\n }\n await canvasMutation$1({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t2, n2) {\n var e2 = \"function\" == typeof Symbol && t2[Symbol.iterator];\n if (!e2) return t2;\n var r2, o2, i2 = e2.call(t2), a2 = [];\n try {\n for (; (void 0 === n2 || n2-- > 0) && !(r2 = i2.next()).done; ) a2.push(r2.value);\n } catch (t3) {\n o2 = { error: t3 };\n } finally {\n try {\n r2 && !r2.done && (e2 = i2.return) && e2.call(i2);\n } finally {\n if (o2) throw o2.error;\n }\n }\n return a2;\n}\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nvar e = { type: \"xstate.init\" };\nfunction r(t2) {\n return void 0 === t2 ? [] : [].concat(t2);\n}\nfunction o(t2) {\n return { type: \"xstate.assign\", assignment: t2 };\n}\nfunction i(t2, n2) {\n return \"string\" == typeof (t2 = \"string\" == typeof t2 && n2 && n2[t2] ? n2[t2] : t2) ? { type: t2 } : \"function\" == typeof t2 ? { type: t2.name, exec: t2 } : t2;\n}\nfunction a(t2) {\n return function(n2) {\n return t2 === n2;\n };\n}\nfunction u(t2) {\n return \"string\" == typeof t2 ? { type: t2 } : t2;\n}\nfunction c(t2, n2) {\n return { value: t2, context: n2, actions: [], changed: false, matches: a(t2) };\n}\nfunction f(t2, n2, e2) {\n var r2 = n2, o2 = false;\n return [t2.filter(function(t3) {\n if (\"xstate.assign\" === t3.type) {\n o2 = true;\n var n3 = Object.assign({}, r2);\n return \"function\" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(o3) {\n n3[o3] = \"function\" == typeof t3.assignment[o3] ? t3.assignment[o3](r2, e2) : t3.assignment[o3];\n }), r2 = n3, false;\n }\n return true;\n }), r2, o2];\n}\nfunction s(n2, o2) {\n void 0 === o2 && (o2 = {});\n var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {\n return i(t2, o2.actions);\n }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {\n var s3, l3, v3 = \"string\" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(o3), x2 = n2.states[p];\n if (x2.on) {\n var m = r(x2.on[d.type]);\n try {\n for (var h = function(t2) {\n var n3 = \"function\" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;\n if (e3) return e3.call(t2);\n if (t2 && \"number\" == typeof t2.length) return { next: function() {\n return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };\n } };\n throw new TypeError(n3 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(m), b = h.next(); !b.done; b = h.next()) {\n var S = b.value;\n if (void 0 === S) return c(p, g);\n var w = \"string\" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {\n return true;\n } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];\n if (O(g, d)) {\n var q = t(f((_ ? r(R) : [].concat(x2.exit, R, T.entry).filter(function(t2) {\n return t2;\n })).map(function(t2) {\n return i(t2, y._options.actions);\n }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;\n return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };\n }\n }\n } catch (t2) {\n s3 = { error: t2 };\n } finally {\n try {\n b && !b.done && (l3 = h.return) && l3.call(h);\n } finally {\n if (s3) throw s3.error;\n }\n }\n }\n return c(p, g);\n } };\n return y;\n}\nvar l = function(t2, n2) {\n return t2.actions.forEach(function(e2) {\n var r2 = e2.exec;\n return r2 && r2(t2.context, n2);\n });\n};\nfunction v(t2) {\n var r2 = t2.initialState, o2 = n.NotStarted, i2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {\n o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach(function(t3) {\n return t3(r2);\n }));\n }, subscribe: function(t3) {\n return i2.add(t3), t3(r2), { unsubscribe: function() {\n return i2.delete(t3);\n } };\n }, start: function(i3) {\n if (i3) {\n var u2 = \"object\" == typeof i3 ? i3 : { context: t2.config.context, value: i3 };\n r2 = { value: u2.value, actions: [], context: u2.context, matches: a(u2.value) };\n }\n return o2 = n.Running, l(r2, e), c2;\n }, stop: function() {\n return o2 = n.Stopped, i2.clear(), c2;\n }, get state() {\n return r2;\n }, get status() {\n return o2;\n } };\n return c2;\n}\nclass Timer {\n constructor(actions = [], config) {\n __publicField(this, \"timeOffset\", 0);\n __publicField(this, \"speed\");\n __publicField(this, \"actions\");\n __publicField(this, \"raf\", null);\n __publicField(this, \"lastTimestamp\");\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n addAction(action) {\n const rafWasActive = this.raf === true;\n if (!this.actions.length || this.actions[this.actions.length - 1].delay <= action.delay) {\n this.actions.push(action);\n } else {\n const index = this.findActionIndex(action);\n this.actions.splice(index, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true;\n }\n }\n clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n setSpeed(speed) {\n this.speed = speed;\n }\n isActive() {\n return this.raf !== null;\n }\n findActionIndex(action) {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n return mid + 1;\n }\n }\n return start;\n }\n}\nfunction addDelay(event, baselineTime) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions && event.data.positions.length) {\n const firstOffset = event.data.positions[0].timeOffset;\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\nfunction discardPriorSnapshots(events, baselineTime) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\n const playerMachine = s(\n {\n id: \"player\",\n context,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n },\n {\n actions: {\n castEvent: o({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === \"CAST_EVENT\") {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n }\n }),\n recordTimeOffset: o((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if (\"payload\" in event && \"timeOffset\" in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset\n };\n }),\n play(ctx) {\n var _a2;\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n for (const event of events) {\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n let lastPlayedTimestamp = lastPlayedEvent == null ? void 0 : lastPlayedEvent.timestamp;\n if ((lastPlayedEvent == null ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\n lastPlayedTimestamp = lastPlayedEvent.timestamp + ((_a2 = lastPlayedEvent.data.positions[0]) == null ? void 0 : _a2.timeOffset);\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n const syncEvents = new Array();\n for (const event of neededEvents) {\n if (lastPlayedTimestamp && lastPlayedTimestamp < baselineTime && (event.timestamp <= lastPlayedTimestamp || event === lastPlayedEvent)) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: o((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null\n };\n }),\n startLive: o({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === \"TO_LIVE\" && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n }\n }),\n addEvent: o((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === \"ADD_EVENT\") {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n return { ...ctx, events };\n })\n }\n }\n );\n return v(playerMachine);\n}\nfunction createSpeedService(context) {\n const speedMachine = s(\n {\n id: \"speed\",\n context,\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if (\"payload\" in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: o({\n normalSpeed: (ctx) => ctx.timer.speed\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n }\n }\n }\n );\n return v(speedMachine);\n}\nclass MediaManager {\n constructor(options) {\n __publicField(this, \"mediaMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"warn\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"emitter\");\n __publicField(this, \"getCurrentTime\");\n __publicField(this, \"metadataCallbackMap\", /* @__PURE__ */ new Map());\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n start() {\n this.syncAllMediaElements();\n }\n pause() {\n this.syncAllMediaElements({ pause: true });\n }\n seekTo({\n time,\n target,\n mediaState\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp = time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset = differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1e3 * mediaState.playbackRate;\n const duration = \"duration\" in target && target.duration;\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n let seekToTime = mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n if (target.loop && // RRMediaElement doesn't have a duration property\n duration !== false) {\n seekToTime = seekToTime % duration;\n }\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n waitForMetadata(target) {\n if (this.metadataCallbackMap.has(target)) return;\n if (!(\"addEventListener\" in target)) return;\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n };\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener(\"loadedmetadata\", onLoadedMetadata, {\n once: true\n });\n }\n getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n }) {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n const isPlaying = type === MediaInteractions.Play || type !== MediaInteractions.Pause && ((lastState == null ? void 0 : lastState.isPlaying) || target.getAttribute(\"autoplay\") !== null);\n const mediaState = {\n isPlaying,\n currentTimeAtLastInteraction: currentTime ?? (lastState == null ? void 0 : lastState.currentTimeAtLastInteraction) ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? (lastState == null ? void 0 : lastState.playbackRate) ?? 1,\n volume: volume ?? (lastState == null ? void 0 : lastState.volume) ?? 1,\n muted: muted ?? (lastState == null ? void 0 : lastState.muted) ?? target.getAttribute(\"muted\") === null,\n loop: loop ?? (lastState == null ? void 0 : lastState.loop) ?? target.getAttribute(\"loop\") === null\n };\n return mediaState;\n }\n syncTargetWithState(target) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const playbackRate = mediaState.playbackRate * this.speedService.state.context.timer.speed;\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n if (target.playbackRate !== playbackRate) {\n target.playbackRate = playbackRate;\n }\n if (isPlaying && !playerIsPaused) {\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`\n );\n }\n }\n addMediaElements(node2, timeOffset, mirror2) {\n if (![\"AUDIO\", \"VIDEO\"].includes(node2.nodeName)) return;\n const target = node2;\n const serializedNode = mirror2.getMeta(target);\n if (!serializedNode || !(\"attributes\" in serializedNode)) return;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const mediaAttributes = serializedNode.attributes;\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === \"played\";\n } else {\n isPlaying = target.getAttribute(\"autoplay\") !== null;\n }\n if (isPlaying && playerIsPaused) target.pause();\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === \"number\") {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === \"boolean\") {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute(\"muted\") !== null;\n }\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === \"boolean\") {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute(\"loop\") !== null;\n }\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === \"number\") {\n volume = mediaAttributes.rr_mediaVolume;\n }\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === \"number\") {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop\n });\n this.syncTargetWithState(target);\n }\n mediaMutation({\n target,\n timeOffset,\n mutation\n }) {\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n })\n );\n this.syncTargetWithState(target);\n }\n isSupportedMediaElement(node2) {\n return [\"AUDIO\", \"VIDEO\"].includes(node2.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nfunction polyfill(w = window, d = document) {\n if (\"scrollBehavior\" in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n const Element2 = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element2.prototype.scroll || scrollElement,\n scrollIntoView: Element2.prototype.scrollIntoView\n };\n const now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = [\"MSIE \", \"Trident/\", \"Edge/\"];\n return new RegExp(userAgentPatterns.join(\"|\")).test(userAgent);\n }\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n function scrollElement(x2, y) {\n this.scrollLeft = x2;\n this.scrollTop = y;\n }\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== \"object\" || firstArg.behavior === void 0 || firstArg.behavior === \"auto\" || firstArg.behavior === \"instant\") {\n return true;\n }\n if (typeof firstArg === \"object\" && firstArg.behavior === \"smooth\") {\n return false;\n }\n throw new TypeError(\n \"behavior member of ScrollOptions \" + firstArg.behavior + \" is not a valid value for enumeration ScrollBehavior.\"\n );\n }\n function hasScrollableSpace(el, axis) {\n if (axis === \"Y\") {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === \"X\") {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)[\"overflow\" + axis];\n return overflowValue === \"auto\" || overflowValue === \"scroll\";\n }\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, \"Y\") && canOverflow(el, \"Y\");\n const isScrollableX = hasScrollableSpace(el, \"X\") && canOverflow(el, \"X\");\n return isScrollableY || isScrollableX;\n }\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n elapsed = elapsed > 1 ? 1 : elapsed;\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n function smoothScroll(el, x2, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n step({\n scrollable,\n method,\n startTime,\n startX,\n startY,\n x: x2,\n y\n });\n }\n w.scroll = w.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : w.scrollY || w.pageYOffset\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== void 0 ? ~~arguments[0].left : w.scrollX || w.pageXOffset,\n arguments[0].top !== void 0 ? ~~arguments[0].top : w.scrollY || w.pageYOffset\n );\n };\n w.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : 0,\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n Element2.prototype.scroll = Element2.prototype.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n if (typeof arguments[0] === \"number\" && arguments[1] === void 0) {\n throw new SyntaxError(\"Value could not be converted\");\n }\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] !== \"object\" ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop\n );\n return;\n }\n const left = arguments[0].left;\n const top = arguments[0].top;\n smoothScroll.call(\n this,\n this,\n typeof left === \"undefined\" ? this.scrollLeft : ~~left,\n typeof top === \"undefined\" ? this.scrollTop : ~~top\n );\n };\n Element2.prototype.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop\n );\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n Element2.prototype.scrollIntoView = function() {\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === void 0 ? true : arguments[0]\n );\n return;\n }\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n if (w.getComputedStyle(scrollableParent).position !== \"fixed\") {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: \"smooth\"\n });\n }\n } else {\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: \"smooth\"\n });\n }\n };\n}\nconst rules = (blockClass) => [\n `.${blockClass} { background: currentColor }`,\n \"noscript { display: none !important; }\"\n];\nconst SKIP_TIME_INTERVAL = 5 * 1e3;\nconst mitt = mitt$1 || mittProxy;\nconst REPLAY_CONSOLE_PREFIX = \"[replayer]\";\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n};\nfunction indicatesTouchDevice(e2) {\n return e2.type == EventType.IncrementalSnapshot && (e2.data.source == IncrementalSource.TouchMove || e2.data.source == IncrementalSource.MouseInteraction && e2.data.type == MouseInteractions.TouchStart);\n}\nclass Replayer {\n constructor(events, config) {\n __publicField(this, \"wrapper\");\n __publicField(this, \"iframe\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"config\");\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n __publicField(this, \"usingVirtualDom\", false);\n __publicField(this, \"virtualDom\", new RRDocument());\n __publicField(this, \"mouse\");\n __publicField(this, \"mouseTail\", null);\n __publicField(this, \"tailPositions\", []);\n __publicField(this, \"emitter\", mitt());\n __publicField(this, \"nextUserInteractionEvent\");\n __publicField(this, \"legacy_missingNodeRetryMap\", {});\n // The replayer uses the cache to speed up replay and scrubbing.\n __publicField(this, \"cache\", createCache());\n __publicField(this, \"imageMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"mirror\", createMirror$2());\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n // Used to track video & audio elements, and keep them in sync with general playback.\n __publicField(this, \"mediaManager\");\n __publicField(this, \"firstFullSnapshot\", null);\n __publicField(this, \"newDocumentQueue\", []);\n __publicField(this, \"mousePos\", null);\n __publicField(this, \"touchActive\", null);\n __publicField(this, \"lastMouseDownEvent\", null);\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n __publicField(this, \"lastHoveredRootNode\");\n // In the fast-forward mode, only the last selection data needs to be applied.\n __publicField(this, \"lastSelectionData\", null);\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n __publicField(this, \"constructedStyleMutations\", []);\n // Similar to the reason for constructedStyleMutations.\n __publicField(this, \"adoptedStyleSheets\", []);\n __publicField(this, \"handleResize\", (dimension) => {\n this.iframe.style.display = \"inherit\";\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute(\"width\", String(dimension.width));\n el.setAttribute(\"height\", String(dimension.height));\n }\n });\n __publicField(this, \"applyEventsSynchronously\", (events) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n });\n __publicField(this, \"getCastFn\", (event, isSync = false) => {\n let castFn;\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n var _a2;\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n this.firstFullSnapshot = true;\n return;\n }\n } else {\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay - event.delay > this.config.inactivePeriodThreshold * this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime = (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay - event.delay\n );\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed\n )\n };\n this.speedService.send({ type: \"FAST_FORWARD\", payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.handler) plugin3.handler(event, isSync, { replayer: this });\n }\n this.service.send({ type: \"CAST_EVENT\", payload: { event } });\n const last_index = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && event === this.service.state.context.events[last_index]) {\n const finish = () => {\n if (last_index < this.service.state.context.events.length - 1) {\n return;\n }\n this.backToNormal();\n this.service.send(\"END\");\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finish_buffer = 50;\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length) {\n finish_buffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finish_buffer);\n }\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n });\n if (!(config == null ? void 0 : config.liveMode) && events.length < 2) {\n throw new Error(\"Replayer need at least 2 events.\");\n }\n const defaultConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1e3,\n showWarning: true,\n showDebug: false,\n blockClass: \"rr-block\",\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true,\n // Virtual-dom optimization is enabled by default.\n logger: console\n };\n this.config = Object.assign({}, defaultConfig, config);\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\n this.setupDom();\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.getMirror) plugin3.getMirror({ nodeMirror: this.mirror });\n }\n this.emitter.on(ReplayerEvents.Flush, () => {\n if (this.usingVirtualDom) {\n const replayerHandler = {\n mirror: this.mirror,\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (data, styleSheet) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node2, id) => {\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n }\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror\n );\n } catch (e2) {\n console.warn(e2);\n }\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node,\n this.mirror,\n this.virtualDom.mirror\n );\n diff(\n realNode,\n value.node,\n replayerHandler,\n this.virtualDom.mirror\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData\n );\n this.mousePos = null;\n }\n if (this.touchActive === true) {\n this.mouse.classList.add(\"touch-active\");\n } else if (this.touchActive === false) {\n this.mouse.classList.remove(\"touch-active\");\n }\n this.touchActive = null;\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n });\n const timer = new Timer([], {\n speed: this.config.speed\n });\n this.service = createPlayerService(\n {\n events: events.map((e2) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e2);\n }\n return e2;\n }).sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }\n );\n this.service.start();\n this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer\n });\n this.speedService.start();\n this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this)\n });\n const firstMeta = this.service.state.context.events.find(\n (e2) => e2.type === EventType.Meta\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e2) => e2.type === EventType.FullSnapshot\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data;\n setTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(() => {\n var _a2;\n if (this.firstFullSnapshot) {\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot\n );\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(\n firstFullsnapshot.data.initialOffset\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add(\"touch-device\");\n }\n }\n get timer() {\n return this.service.state.context.timer;\n }\n on(event, handler) {\n this.emitter.on(event, handler);\n return this;\n }\n off(event, handler) {\n this.emitter.off(event, handler);\n return this;\n }\n setConfig(config) {\n Object.keys(config).forEach((key) => {\n config[key];\n this.config[key] = config[key];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== \"undefined\") {\n this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: config.speed\n }\n });\n }\n if (typeof config.mouseTail !== \"undefined\") {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = \"none\";\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = \"inherit\";\n }\n }\n }\n getMetaData() {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp\n };\n }\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n getCurrentTime() {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n getTimeOffset() {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n getMirror() {\n return this.mirror;\n }\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n play(timeOffset = 0) {\n var _a2, _b;\n if (this.service.state.matches(\"paused\")) {\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n } else {\n this.service.send({ type: \"PAUSE\" });\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.remove(\"@sailfish-rrweb/rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Start);\n }\n pause(timeOffset) {\n var _a2, _b;\n if (timeOffset === void 0 && this.service.state.matches(\"playing\")) {\n this.service.send({ type: \"PAUSE\" });\n }\n if (typeof timeOffset === \"number\") {\n this.play(timeOffset);\n this.service.send({ type: \"PAUSE\" });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.add(\"@sailfish-rrweb/rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Pause);\n }\n resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n destroy() {\n this.pause();\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.config.root.removeChild(this.wrapper);\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n startLive(baselineTime) {\n this.service.send({ type: \"TO_LIVE\", payload: { baselineTime } });\n }\n addEvent(rawEvent) {\n const event = this.config.unpackFn ? this.config.unpackFn(rawEvent) : rawEvent;\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add(\"touch-device\");\n }\n void Promise.resolve().then(\n () => this.service.send({ type: \"ADD_EVENT\", payload: { event } })\n );\n }\n enableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"auto\");\n this.iframe.style.pointerEvents = \"auto\";\n }\n disableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"no\");\n this.iframe.style.pointerEvents = \"none\";\n }\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n resetCache() {\n this.cache = createCache();\n }\n setupDom() {\n this.wrapper = document.createElement(\"div\");\n this.wrapper.classList.add(\"replayer-wrapper\");\n this.config.root.appendChild(this.wrapper);\n this.mouse = document.createElement(\"div\");\n this.mouse.classList.add(\"replayer-mouse\");\n this.wrapper.appendChild(this.mouse);\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.mouseTail.style.display = \"inherit\";\n this.wrapper.appendChild(this.mouseTail);\n }\n this.iframe = document.createElement(\"iframe\");\n const attributes = [\"allow-same-origin\"];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push(\"allow-scripts\");\n }\n this.iframe.style.display = \"none\";\n this.iframe.setAttribute(\"sandbox\", attributes.join(\" \"));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n polyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument\n );\n polyfill$1(this.iframe.contentWindow);\n }\n }\n rebuildFullSnapshot(event, isSync = false) {\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n \"Found unresolved missing node map\",\n this.legacy_missingNodeRetryMap\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collected = [];\n const afterAppend = (builtNode, id) => {\n this.collectIframeAndAttachDocument(collected, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror\n );\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n for (const { mutationInQueue, builtNode } of collected) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"@sailfish-rrweb/rrweb-paused\");\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n insertStyleRules(documentElement, head) {\n var _a2;\n const injectStylesRules = rules(\n this.config.blockClass\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n \"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\"\n );\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId)\n );\n documentElement.insertBefore(styleEl, head);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index) => ({\n rule: cssText,\n index\n }))\n });\n } else {\n const styleEl = document.createElement(\"style\");\n documentElement.insertBefore(\n styleEl,\n head\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n (_a2 = styleEl.sheet) == null ? void 0 : _a2.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n attachDocumentToIframe(mutation, iframeEl) {\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n const collected = [];\n const afterAppend = (builtNode, id) => {\n this.collectIframeAndAttachDocument(collected, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType$2.Element && (sn == null ? void 0 : sn.tagName.toUpperCase()) === \"HTML\") {\n const { documentElement, head } = iframeEl.contentDocument;\n this.insertStyleRules(\n documentElement,\n head\n );\n }\n if (this.usingVirtualDom) return;\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument,\n mirror: mirror2,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache\n });\n afterAppend(iframeEl.contentDocument, mutation.node.id);\n for (const { mutationInQueue, builtNode } of collected) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n collectIframeAndAttachDocument(collected, builtNode) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode)\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode\n });\n }\n }\n }\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n waitForStylesheetLoad() {\n var _a2;\n const head = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.head;\n if (head) {\n const unloadSheets = /* @__PURE__ */ new Set();\n let timer;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((css) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener(\"load\", () => {\n unloadSheets.delete(css);\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n if (unloadSheets.size > 0) {\n this.service.send({ type: \"PAUSE\" });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n async preloadAllImages() {\n const promises = [];\n for (const event of this.service.state.context.events) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.CanvasMutation) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event)\n );\n const commands = \"commands\" in event.data ? event.data.commands : [event.data];\n commands.forEach((c2) => {\n this.preloadImages(c2, event);\n });\n }\n }\n return Promise.all(promises);\n }\n preloadImages(data, event) {\n if (data.property === \"drawImage\" && typeof data.args[0] === \"string\" && !this.imageMap.has(event)) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n const imgd = ctx == null ? void 0 : ctx.createImageData(canvas.width, canvas.height);\n ctx == null ? void 0 : ctx.putImageData(imgd, 0, 0);\n }\n }\n async deserializeAndPreloadCanvasEvents(data, event) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true\n };\n if (\"commands\" in data) {\n const commands = await Promise.all(\n data.commands.map(async (c2) => {\n const args = await Promise.all(\n c2.args.map(deserializeArg(this.imageMap, null, status))\n );\n return { ...c2, args };\n })\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status))\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n applyIncremental(e2, isSync) {\n var _a2, _b, _c;\n const { data: d } = e2;\n switch (d.source) {\n case IncrementalSource.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: p.timeOffset + e2.timestamp - this.service.state.context.baselineTime\n };\n this.timer.addAction(action);\n });\n this.timer.addAction({\n doAction() {\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e2.delay - ((_a2 = d.positions[0]) == null ? void 0 : _a2.timeOffset)\n });\n }\n break;\n case IncrementalSource.MouseInteraction: {\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if (\"blur\" in target) {\n target.blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && target.focus) {\n target.focus({\n preventScroll: true\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n this.mouse.classList.remove(\"active\");\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"active\");\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"touch-active\");\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove(\"touch-active\");\n } else {\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove(\"touch-active\");\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource.Scroll: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource.Input: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction: {\n const target = this.usingVirtualDom ? this.virtualDom.mirror.getNode(d.id) : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target;\n const { events } = this.service.state.context;\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e2.timestamp - events[0].timestamp,\n mutation: d\n });\n break;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (_b = this.virtualDom.mirror.getNode(d.id)) == null ? void 0 : _b.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id\n );\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e2,\n mutation: d\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e2,\n mutation: d,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n }\n break;\n }\n case IncrementalSource.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer ? new Uint8Array(JSON.parse(d.fontSource)) : d.fontSource,\n d.descriptors\n );\n (_c = this.iframe.contentDocument) == null ? void 0 : _c.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n }\n }\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n applyMutation(d, isSync) {\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node,\n this.virtualDom,\n this.mirror\n );\n if (virtualNode) value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n d.removes = d.removes.filter((mutation) => {\n if (!mirror2.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n return;\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent)) {\n parent = parent.shadowRoot;\n }\n mirror2.removeNodeFromMap(target);\n if (parent)\n try {\n parent.removeChild(target);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_a2 = parent.rules) == null ? void 0 : _a2.length) > 0)\n parent.rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n \"parent could not remove child in mutation\",\n parent,\n target,\n d\n );\n } else {\n throw error;\n }\n }\n });\n const legacy_missingNodeMap = {\n ...this.legacy_missingNodeRetryMap\n };\n const queue = [];\n const nextNotInDOM = (mutation) => {\n let next = null;\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (mutation.nextId !== null && mutation.nextId !== void 0 && mutation.nextId !== -1 && !next) {\n return true;\n }\n return false;\n };\n const appendNode = (mutation) => {\n var _a2, _b;\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n if (mutation.node.type === NodeType$2.Document) {\n return this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n if (mutation.node.isShadow) {\n if (!hasShadowRoot(parent)) {\n parent.attachShadow({ mode: \"open\" });\n parent = parent.shadowRoot;\n } else parent = parent.shadowRoot;\n }\n let previous = null;\n let next = null;\n if (mutation.previousId) {\n previous = mirror2.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n if (mutation.node.rootId && !mirror2.getNode(mutation.node.rootId)) {\n return;\n }\n const targetDoc = mutation.node.rootId ? mirror2.getNode(mutation.node.rootId) : this.usingVirtualDom ? this.virtualDom : this.iframe.contentDocument;\n if (isSerializedIframe(parent, mirror2)) {\n this.attachDocumentToIframe(\n mutation,\n parent\n );\n return;\n }\n const afterAppend = (node2, id) => {\n if (this.usingVirtualDom) return;\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n };\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc,\n // can be Document or RRDocument\n mirror: mirror2,\n // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend\n });\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation\n };\n return;\n }\n const parentSn = mirror2.getMeta(parent);\n if (parentSn && parentSn.type === NodeType$2.Element && mutation.node.type === NodeType$2.Text) {\n const prospectiveSiblings = Array.isArray(parent.childNodes) ? parent.childNodes : Array.from(parent.childNodes);\n if (parentSn.tagName === \"textarea\") {\n for (const c2 of prospectiveSiblings) {\n if (c2.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c2);\n }\n }\n } else if (parentSn.tagName === \"style\" && prospectiveSiblings.length === 1) {\n for (const cssText of prospectiveSiblings) {\n if (cssText.nodeType === parent.TEXT_NODE && !mirror2.hasNode(cssText)) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if ((parentSn == null ? void 0 : parentSn.type) === NodeType$2.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType$2.DocumentType && ((_a2 = parentDoc.childNodes[0]) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_TYPE_NODE)\n parentDoc.removeChild(parentDoc.childNodes[0]);\n if (target.nodeName === \"HTML\" && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement\n );\n }\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n parent.insertBefore(\n target,\n previous.nextSibling\n );\n } else if (next && next.parentNode) {\n parent.contains(next) ? parent.insertBefore(target, next) : parent.insertBefore(target, null);\n } else {\n parent.appendChild(target);\n }\n afterAppend(target, mutation.node.id);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_b = parent.rules) == null ? void 0 : _b.length) > 0)\n parent.rules = [];\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation\n );\n }\n };\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n const startTime = Date.now();\n while (queue.length) {\n const resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn(\n \"Timeout in the loop, please check the resolve tree data:\",\n resolveTrees\n );\n break;\n }\n for (const tree of resolveTrees) {\n const parent = mirror2.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n \"Drop resolve tree since there is no parent for the root node.\",\n tree\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n uniqueTextMutations(d.texts).forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n target.textContent = mutation.value;\n if (this.usingVirtualDom) {\n const parent = target.parentNode;\n if (((_a2 = parent == null ? void 0 : parent.rules) == null ? void 0 : _a2.length) > 0) parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === \"string\") {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n target.removeAttribute(attributeName);\n } else if (typeof value === \"string\") {\n try {\n if (attributeName === \"_cssText\" && (target.nodeName === \"LINK\" || target.nodeName === \"STYLE\")) {\n try {\n const newSn = mirror2.getMeta(\n target\n );\n Object.assign(\n newSn.attributes,\n mutation.attributes\n );\n const newNode = buildNodeWithSN(newSn, {\n doc: target.ownerDocument,\n // can be Document or RRDocument\n mirror: mirror2,\n skipChild: true,\n hackCss: true,\n cache: this.cache\n });\n const siblingNode = target.nextSibling;\n const parentNode = target.parentNode;\n if (newNode && parentNode) {\n parentNode.removeChild(target);\n parentNode.insertBefore(\n newNode,\n siblingNode\n );\n mirror2.replace(mutation.id, newNode);\n break;\n }\n } catch (e2) {\n }\n }\n if (attributeName === \"value\" && target.nodeName === \"TEXTAREA\") {\n const textarea = target;\n textarea.childNodes.forEach(\n (c2) => textarea.removeChild(c2)\n );\n const tn = (_a2 = target.ownerDocument) == null ? void 0 : _a2.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn);\n }\n } else {\n target.setAttribute(\n attributeName,\n value\n );\n }\n } catch (error) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n error\n );\n }\n } else if (attributeName === \"style\") {\n const styleValues = value;\n const targetEl = target;\n for (const s2 in styleValues) {\n if (styleValues[s2] === false) {\n targetEl.style.removeProperty(s2);\n } else if (styleValues[s2] instanceof Array) {\n const svp = styleValues[s2];\n targetEl.style.setProperty(s2, svp[0], svp[1]);\n } else {\n const svs = styleValues[s2];\n targetEl.style.setProperty(s2, svs);\n }\n }\n }\n }\n }\n });\n }\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n applyScroll(d, isSync) {\n var _a2, _b;\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else if ((sn == null ? void 0 : sn.type) === NodeType$2.Document) {\n (_b = target.defaultView) == null ? void 0 : _b.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else {\n try {\n target.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } catch (error) {\n }\n }\n }\n applyInput(d) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n target.checked = d.isChecked;\n target.value = d.text;\n } catch (error) {\n }\n }\n applySelection(d) {\n try {\n const selectionSet = /* @__PURE__ */ new Set();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n if (!startContainer || !endContainer) return;\n const result2 = new Range();\n result2.setStart(startContainer, startOffset);\n result2.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc == null ? void 0 : doc.getSelection();\n selection && selectionSet.add(selection);\n return {\n range: result2,\n selection\n };\n });\n selectionSet.forEach((s2) => s2.removeAllRanges());\n ranges.forEach((r2) => {\n var _a2;\n return r2 && ((_a2 = r2.selection) == null ? void 0 : _a2.addRange(r2.range));\n });\n } catch (error) {\n }\n }\n applyStyleSheetMutation(data) {\n var _a2;\n let styleSheet = null;\n if (data.styleId) styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet = ((_a2 = this.mirror.getNode(data.id)) == null ? void 0 : _a2.sheet) || null;\n if (!styleSheet) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n applyStyleSheetRule(data, styleSheet) {\n var _a2, _b, _c, _d;\n (_a2 = data.adds) == null ? void 0 : _a2.forEach(({ rule: rule2, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule2, index);\n } else {\n const index = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule2, index);\n }\n } catch (e2) {\n }\n });\n (_b = data.removes) == null ? void 0 : _b.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n styleSheet == null ? void 0 : styleSheet.deleteRule(nestedIndex);\n }\n } catch (e2) {\n }\n });\n if (data.replace)\n try {\n void ((_c = styleSheet.replace) == null ? void 0 : _c.call(styleSheet, data.replace));\n } catch (e2) {\n }\n if (data.replaceSync)\n try {\n (_d = styleSheet.replaceSync) == null ? void 0 : _d.call(styleSheet, data.replaceSync);\n } catch (e2) {\n }\n }\n applyStyleDeclaration(data, styleSheet) {\n if (data.set) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority\n );\n }\n if (data.remove) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.removeProperty(data.remove.property);\n }\n }\n applyAdoptedStyleSheet(data) {\n var _a2;\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) return;\n (_a2 = data.styles) == null ? void 0 : _a2.forEach((style) => {\n var _a3;\n let newStyleSheet = null;\n let hostWindow = null;\n if (hasShadowRoot(targetHost))\n hostWindow = ((_a3 = targetHost.ownerDocument) == null ? void 0 : _a3.defaultView) || null;\n else if (targetHost.nodeName === \"#document\")\n hostWindow = targetHost.defaultView;\n if (!hostWindow) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.StyleSheetRule,\n adds: style.rules\n },\n newStyleSheet\n );\n } catch (e2) {\n }\n });\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost2, styleIds) => {\n const stylesToAdopt = styleIds.map((styleId) => this.styleMirror.getStyle(styleId)).filter((style) => style !== null);\n if (hasShadowRoot(targetHost2))\n targetHost2.shadowRoot.adoptedStyleSheets = stylesToAdopt;\n else if (targetHost2.nodeName === \"#document\")\n targetHost2.adoptedStyleSheets = stylesToAdopt;\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost2, styleIds),\n 0 + 100 * count\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node: node2, mutation } = previousInMap;\n parent.insertBefore(node2, target);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n if (nextInMap) {\n const { node: node2, mutation } = nextInMap;\n parent.insertBefore(\n node2,\n target.nextSibling\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n }\n moveAndHover(x2, y, id, isSync, debugData) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n const base = getBaseDimension(target, this.iframe);\n const _x = x2 * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target);\n }\n drawMouseTail(position) {\n if (!this.mouseTail) {\n return;\n }\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true ? defaultMouseTailConfig : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext(\"2d\");\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n this.tailPositions.push(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n hoverElements(el) {\n var _a2;\n (_a2 = this.lastHoveredRootNode || this.iframe.contentDocument) == null ? void 0 : _a2.querySelectorAll(\".\\\\:hover\").forEach((hoveredEl) => {\n hoveredEl.classList.remove(\":hover\");\n });\n this.lastHoveredRootNode = el.getRootNode();\n let currentEl = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(\":hover\");\n }\n currentEl = currentEl.parentElement;\n }\n }\n isUserInteraction(event) {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.Input;\n }\n backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches(\"normal\")) {\n return;\n }\n this.speedService.send({ type: \"BACK_TO_NORMAL\" });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n });\n }\n warnNodeNotFound(d, id) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n warnCanvasMutationFailed(d, error) {\n this.warn(`Has error on canvas update`, error, \"canvas mutation:\", d);\n }\n debugNodeNotFound(d, id) {\n this.debug(`Node with id '${id}' not found. `, d);\n }\n warn(...args) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n debug(...args) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n Replayer,\n ReplayerEvents,\n addCustomEvent,\n canvasMutation,\n freezePage,\n _mirror as mirror,\n record,\n takeFullSnapshot,\n utils\n};\n//# sourceMappingURL=rrweb.js.map\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["__defProp", "__defNormalProp", "obj", "key", "value", "__publicField", "_a", "__defProp$1", "__defNormalProp$1", "__publicField$1", "NodeType$2", "NodeType2", "isElement", "n2", "Mirror", "_a2", "id", "childNode", "node2", "meta", "oldNode", "createMirror$2", "toLowerCase", "str", "isNodeMetaEqual", "a2", "b", "getDefaultExportFromCjs$1", "x2", "getAugmentedNamespace$1", "f2", "a22", "k", "d", "picocolors_browser$1", "x$1", "create$1", "picocolors_browserExports$1", "__viteBrowserExternal$2", "__viteBrowserExternal$1$1", "require$$2$1", "pico$1", "terminalHighlight$1$1", "CssSyntaxError$3$1", "CssSyntaxError", "message", "line", "column", "source", "file", "plugin22", "color", "css", "lines", "start", "end", "maxWidth", "mark", "aside", "bold", "gray", "red", "text", "index", "number", "gutter", "spacing", "code", "cssSyntaxError$1", "symbols$1", "DEFAULT_RAW$1", "capitalize$1", "Stringifier$2$1", "builder", "semicolon", "name", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "i2", "child", "before", "left", "right", "string", "own", "parent", "root2", "method", "p", "parts", "prop", "raw", "stringifier$1", "Stringifier$1$1", "stringify$4$1", "stringify_1$1", "isClean$2$1", "my$2$1", "CssSyntaxError$2$1", "Stringifier2$1", "stringify$3$1", "cloneNode$1", "cloned", "type", "j", "Node$4$1", "defaults", "error", "s2", "add", "overrides", "keepBetween", "opts", "next", "stringRepresentation", "pos", "defaultType", "nodes", "bookmark", "foundSelf", "result2", "_", "inputs", "fixed", "emitInputs", "inputsNextIndex", "inputId", "input2", "stringifier2", "data", "node$1", "Node$3$1", "Declaration$4$1", "__spreadProps", "__spreadValues", "declaration$1", "urlAlphabet$1", "customAlphabet$1", "alphabet", "defaultSize", "size", "nanoid$1$1", "nonSecure$1", "SourceMapConsumer$2$1", "SourceMapGenerator$2$1", "existsSync$1", "readFileSync$1", "dirname$1$1", "join$1", "fromBase64$1", "PreviousMap$2$1", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "encoding", "sourceMapString", "map", "comments", "path", "prevPath", "previousMap$1", "SourceMapConsumer$1$1", "SourceMapGenerator$1$1", "fileURLToPath$1", "pathToFileURL$1$1", "isAbsolute$1", "resolve$1$1", "nanoid$2", "terminalHighlight$2", "CssSyntaxError$1$1", "PreviousMap$1$1", "fromOffsetCache$1", "sourceMapAvailable$1$1", "pathAvailable$1$1", "Input$4$1", "endLine", "endColumn", "origin", "offset", "lastLine", "lineToIndex", "prevIndex", "l2", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "json", "input$1", "SourceMapConsumer$3", "SourceMapGenerator$3", "dirname$2", "relative$1", "resolve$2", "sep$1", "pathToFileURL$2", "Input$3$1", "sourceMapAvailable$2", "pathAvailable$2", "MapGenerator$2$1", "stringify2", "cssString", "content", "eol", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "url", "mapGenerator$1", "Node$2$1", "Comment$4$1", "comment$1", "isClean$1$1", "my$1$1", "Declaration$3$1", "Comment$3$1", "Node$1$1", "parse$4$1", "Rule$4$1", "AtRule$4$1", "Root$6$1", "cleanSource$1", "markDirtyUp$1", "Container$7$1", "Container", "children", "callback", "iterator", "condition", "args", "cb", "other", "exist", "existIndex", "sample", "pattern", "decl", "e2", "selector", "dependant", "container$1", "Container$6$1", "LazyResult$4$1", "Processor$3$1", "Document$3$1", "document$2", "Warning$2$1", "text", "opts", "range", "opt", "warning$1", "Warning$1$1", "Result$3$1", "processor2", "root2", "warning2", "i2", "result$1", "SINGLE_QUOTE$1", "DOUBLE_QUOTE$1", "BACKSLASH$1", "SLASH$1", "NEWLINE$1", "SPACE$1", "FEED$1", "TAB$1", "CR$1", "OPEN_SQUARE$1", "CLOSE_SQUARE$1", "OPEN_PARENTHESES$1", "CLOSE_PARENTHESES$1", "OPEN_CURLY$1", "CLOSE_CURLY$1", "SEMICOLON$1", "ASTERISK$1", "COLON$1", "AT$1", "RE_AT_END$1", "RE_WORD_END$1", "RE_BAD_BRACKET$1", "RE_HEX_ESCAPE$1", "tokenize$1", "input2", "options", "css", "ignore", "code", "next", "quote", "content", "escape", "escaped", "escapePos", "prev", "n2", "currentToken", "length", "pos", "buffer", "returned", "position", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "Container$5$1", "container$1", "AtRule$3$1", "defaults", "children", "atRule$1", "Container$4$1", "LazyResult$3$1", "Processor$2$1", "Root$5$1", "child", "sample", "type", "nodes", "node2", "index", "dependant", "root$1", "list$2$1", "string", "spaces", "separators", "last", "array", "current", "split", "func", "inQuote", "prevQuote", "letter", "list_1$1", "Container$3$1", "list$1$1", "Rule$3$1", "values", "match", "sep2", "rule$1", "Declaration$2$1", "declaration$1", "tokenizer2$1", "Comment$2$1", "comment$1", "AtRule$2$1", "Root$4$1", "Rule$2$1", "SAFE_COMMENT_NEIGHBOR$1", "findLastWithPosition$1", "tokens", "Parser$1$1", "shift", "open", "params", "brackets", "colon", "founded", "j", "element", "customProperty", "firstSpaces", "cache", "str", "offset", "start", "end", "bracket", "prop", "value", "clean", "raw", "all", "lastTokenType", "from", "result2", "parser$1", "Container$2$1", "Parser2$1", "Input$2$1", "input$1", "parse$3$1", "parser2", "e2", "parse_1$1", "isClean$3", "my$3", "symbols$1", "MapGenerator$1$1", "mapGenerator$1", "stringify$2$1", "stringify_1$1", "Container$1$1", "Document$2$1", "document$2", "Result$2$1", "result$1", "parse$2$1", "parse_1$1", "Root$3$1", "root$1", "TYPE_TO_CLASS_NAME$1", "PLUGIN_PROPS$1", "NOT_VISITORS$1", "CHILDREN$1", "isPromise$1", "obj", "getEvents$1", "node2", "key", "type", "toStack$1", "events", "cleanMarks$1", "isClean$3", "i2", "postcss$2$1", "LazyResult$2$1", "LazyResult", "processor2", "css", "opts", "root2", "parser2", "error", "my$3", "Container$1$1", "__spreadProps", "__spreadValues", "plugin22", "onRejected", "onFinally", "err", "add", "cb", "event", "filter", "promise", "stack", "e2", "visitor", "roots", "subRoot", "str", "stringify$2$1", "data", "MapGenerator$1$1", "onFulfilled", "visitors", "visit2", "iterator", "child", "dependant", "lazyResult$1", "Document$2$1", "MapGenerator2$1", "mapGenerator$1", "stringify$1$1", "stringify_1$1", "parse$1$1", "parse_1$1", "Result$1$1", "result$1", "NoWorkResult$1$1", "processor2", "css", "opts", "root2", "str", "stringify$1$1", "self2", "map", "MapGenerator2$1", "generatedCSS", "generatedMap", "onRejected", "onFinally", "onFulfilled", "parser2", "error", "noWorkResult$1", "NoWorkResult2$1", "LazyResult$1$1", "lazyResult$1", "Document$1$1", "document$2", "Root$2$1", "root$1", "Processor$1$1", "plugins", "normalized", "i2", "plugin22", "processor$1", "Declaration$1$1", "declaration$1", "PreviousMap2$1", "previousMap$1", "Comment$1$1", "comment$1", "AtRule$1$1", "atRule$1", "Input$1$1", "input$1", "Root$1$1", "Rule$1$1", "rule$1", "fromJSON$1$1", "json", "inputs", "n2", "_a", "ownInputs", "defaults", "__objRest", "input2", "inputHydrated", "__spreadProps", "__spreadValues", "_b", "inputId", "source", "fromJSON_1$1", "CssSyntaxError2$1", "cssSyntaxError$1", "Declaration2$1", "LazyResult2$1", "Container2$1", "container$1", "Processor2$1", "stringify$5", "stringify_1$1", "fromJSON$2", "Document22", "Warning2$1", "warning$1", "Comment2$1", "AtRule2$1", "Result2$1", "Input2$1", "parse$5", "list$3", "list_1$1", "Rule2$1", "Root2$1", "Node2$1", "node$1", "postcss$3", "name", "initializer", "warningPrinted", "creator", "args", "transformer", "cache", "processOpts", "pluginOpts", "postcss_1$1", "postcss$1$1", "getDefaultExportFromCjs$1", "MEDIA_SELECTOR", "MEDIA_SELECTOR_GLOBAL", "mediaSelectorPlugin", "atrule", "pseudoClassPlugin", "fixed", "rule2", "selector", "selectorParts", "pseudoedSelectorParts", "selectorPart", "pseudos", "baseSelector", "classPseudos", "pseudo", "addSelector", "newSelector", "tagMap", "getTagName", "tagName", "adaptCssForReplay", "cssText", "cachedStyle", "result2", "createCache", "buildNode", "options", "_a2", "doc", "hackCss", "NodeType$2", "node2", "specialAttributes", "value", "isTextarea", "isRemoteOrDynamicCss", "image", "ctx", "e2", "buildNodeWithSN", "mirror2", "skipChild", "afterAppend", "nodeInMirror", "meta", "isNodeMetaEqual", "childN", "childNode", "isElement", "htmlElement", "body", "child", "visit", "onVisit", "walk", "id", "handleScroll", "el", "rebuild", "Mirror", "visitedNode", "EventType", "EventType2", "IncrementalSource", "IncrementalSource2", "MouseInteractions", "MouseInteractions2", "CanvasContext", "CanvasContext2", "MediaInteractions", "MediaInteractions2", "ReplayerEvents", "ReplayerEvents2", "DEPARTED_MIRROR_ACCESS_WARNING", "_mirror", "target", "prop", "receiver", "polyfill$1", "win", "queueToResolveTrees", "queue", "queueNodeMap", "putIntoMap", "m", "parent", "nodeInTree", "queueNodeTrees", "mutation", "nextId", "parentId", "nextInTree", "idx", "parentInTree", "iterateResolveTree", "tree", "cb", "isSerializedIframe", "getBaseDimension", "rootIframe", "frameElement", "frameDimension", "frameBaseDimension", "relativeScale", "hasShadowRoot", "getNestedRule", "rules2", "position", "getPositionsAndIndex", "nestedIndex", "positions", "index", "uniqueTextMutations", "mutations", "idSet", "uniqueMutations", "StyleSheetMirror", "__publicField", "stylesheet", "newId", "encodedJs", "decodeBase64", "base64", "c2", "chars", "lookup", "i$1", "decode", "bufferLength", "len", "p", "encoded1", "encoded2", "encoded3", "encoded4", "arraybuffer", "bytes", "x2", "cleanFrame", "err", "createMirror$2", "mitt$1", "t2", "n3", "mittProxy", "__defProp2", "__defNormalProp2", "obj", "key", "__publicField2", "__defProp22", "__defNormalProp22", "__publicField22", "NodeType$1", "NodeType2", "Mirror$1", "oldNode", "createMirror$1", "getDefaultExportFromCjs", "getAugmentedNamespace", "f2", "a2", "a22", "k", "d", "picocolors_browser", "x", "create", "picocolors_browserExports", "__viteBrowserExternal", "__viteBrowserExternal$1", "require$$2", "pico", "terminalHighlight$1", "CssSyntaxError$3", "CssSyntaxError2", "message", "line", "column", "file", "color", "lines", "start", "end", "maxWidth", "mark", "aside", "bold", "gray", "red", "text", "number", "gutter", "spacing", "code", "cssSyntaxError", "symbols", "DEFAULT_RAW", "capitalize", "Stringifier$2", "builder", "semicolon", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "before", "left", "right", "string", "own", "method", "parts", "raw", "stringifier", "Stringifier$1", "stringify$4", "stringify_1", "isClean$2", "my$2", "CssSyntaxError$2", "Stringifier22", "stringify$3", "cloneNode", "cloned", "type", "j", "Node$4", "s2", "add", "overrides", "keepBetween", "next", "stringRepresentation", "pos", "defaultType", "nodes", "bookmark", "foundSelf", "_", "emitInputs", "inputsNextIndex", "stringifier2", "data", "node", "Node$3", "Declaration$4", "declaration", "urlAlphabet", "customAlphabet", "alphabet", "defaultSize", "size", "nanoid$1", "nonSecure", "SourceMapConsumer$2", "SourceMapGenerator$2", "existsSync", "readFileSync", "dirname$1", "join", "fromBase64", "PreviousMap$2", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "encoding", "sourceMapString", "comments", "path", "prevPath", "previousMap", "SourceMapConsumer$1", "SourceMapGenerator$1", "fileURLToPath", "pathToFileURL$1", "isAbsolute", "resolve$1", "nanoid", "terminalHighlight", "CssSyntaxError$1", "PreviousMap$1", "fromOffsetCache", "sourceMapAvailable$1", "pathAvailable$1", "Input$4", "endLine", "endColumn", "origin", "offset", "lastLine", "lineToIndex", "prevIndex", "l2", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "input", "SourceMapConsumer", "SourceMapGenerator", "dirname", "relative", "resolve", "sep", "pathToFileURL", "Input$3", "sourceMapAvailable", "pathAvailable", "MapGenerator$2", "stringify2", "cssString", "content", "eol", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "url", "mapGenerator", "Node$2", "Comment$4", "comment", "isClean$1", "my$1", "Declaration$3", "Comment$3", "Node$1", "parse$4", "Rule$4", "AtRule$4", "Root$6", "cleanSource", "markDirtyUp", "Container$7", "Container2", "children", "callback", "iterator", "condition", "other", "exist", "existIndex", "sample", "pattern", "decl", "dependant", "container", "Container$6", "LazyResult$4", "Processor$3", "Document$3", "document$1", "Warning$2", "text", "opts", "range", "opt", "warning", "Warning$1", "Result$3", "processor2", "root2", "warning2", "i2", "result", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACKSLASH", "SLASH", "NEWLINE", "SPACE", "FEED", "TAB", "CR", "OPEN_SQUARE", "CLOSE_SQUARE", "OPEN_PARENTHESES", "CLOSE_PARENTHESES", "OPEN_CURLY", "CLOSE_CURLY", "SEMICOLON", "ASTERISK", "COLON", "AT", "RE_AT_END", "RE_WORD_END", "RE_BAD_BRACKET", "RE_HEX_ESCAPE", "tokenize", "input2", "options", "css", "ignore", "code", "next", "quote", "content", "escape", "escaped", "escapePos", "prev", "n2", "currentToken", "length", "pos", "buffer", "returned", "position", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "Container$5", "container", "AtRule$3", "defaults", "children", "atRule", "Container$4", "LazyResult$3", "Processor$2", "Root$5", "child", "sample", "type", "nodes", "node2", "index", "dependant", "root", "list$2", "string", "spaces", "separators", "last", "array", "current", "split", "func", "inQuote", "prevQuote", "letter", "list_1", "Container$3", "list$1", "Rule$3", "values", "match", "sep2", "rule", "Declaration$2", "declaration", "tokenizer22", "Comment$2", "comment", "AtRule$2", "Root$4", "Rule$2", "SAFE_COMMENT_NEIGHBOR", "findLastWithPosition", "tokens", "Parser$1", "shift", "open", "params", "brackets", "colon", "founded", "j", "element", "customProperty", "firstSpaces", "cache", "str", "offset", "start", "end", "bracket", "prop", "value", "clean", "raw", "all", "lastTokenType", "from", "result2", "parser", "Container$2", "Parser22", "Input$2", "input", "parse$3", "parser2", "e2", "parse_1", "isClean", "my", "symbols", "MapGenerator$1", "mapGenerator", "stringify$2", "stringify_1", "Container$1", "Document$2", "document$1", "Result$2", "result", "parse$2", "parse_1", "Root$3", "root", "TYPE_TO_CLASS_NAME", "PLUGIN_PROPS", "NOT_VISITORS", "CHILDREN", "isPromise", "obj", "getEvents", "node2", "key", "type", "toStack", "events", "cleanMarks", "isClean", "i2", "postcss$2", "LazyResult$2", "LazyResult2", "processor2", "css", "opts", "root2", "parser2", "error", "my", "Container$1", "__spreadProps", "__spreadValues", "plugin22", "onRejected", "onFinally", "err", "add", "cb", "event", "filter", "promise", "stack", "e2", "visitor", "roots", "subRoot", "str", "stringify$2", "data", "MapGenerator$1", "onFulfilled", "visitors", "visit2", "iterator", "child", "dependant", "lazyResult", "Document$2", "MapGenerator22", "mapGenerator", "stringify$1", "stringify_1", "parse$1", "parse_1", "Result$1", "result", "NoWorkResult$1", "processor2", "css", "opts", "root2", "str", "stringify$1", "self2", "map", "MapGenerator22", "generatedCSS", "generatedMap", "onRejected", "onFinally", "onFulfilled", "parser2", "error", "noWorkResult", "NoWorkResult22", "LazyResult$1", "lazyResult", "Document$1", "document$1", "Root$2", "root", "Processor$1", "plugins", "normalized", "i2", "plugin22", "processor", "Declaration$1", "declaration", "PreviousMap22", "previousMap", "Comment$1", "comment", "AtRule$1", "atRule", "Input$1", "input", "Root$1", "Rule$1", "rule", "fromJSON$1", "json", "inputs", "n2", "_a", "ownInputs", "defaults", "__objRest", "input2", "inputHydrated", "__spreadProps", "__spreadValues", "_b", "inputId", "source", "fromJSON_1", "CssSyntaxError22", "cssSyntaxError", "Declaration22", "LazyResult22", "Container22", "container", "Processor22", "stringify", "stringify_1", "fromJSON", "Document222", "Warning22", "warning", "Comment22", "AtRule22", "Result22", "Input22", "parse", "list", "list_1", "Rule22", "Root22", "Node22", "node", "postcss", "name", "initializer", "warningPrinted", "creator", "args", "transformer", "cache", "processOpts", "pluginOpts", "postcss_1", "postcss$1", "getDefaultExportFromCjs", "parseCSSText", "cssText", "res", "listDelimiter", "propertyDelimiter", "comment2", "item", "tmp", "camelize", "toCSSText", "style", "properties", "value", "normalizedName", "hyphenate", "camelizeRE", "CUSTOM_PROPERTY_REGEX", "_", "c2", "hyphenateRE", "BaseRRNode", "_args", "__publicField2", "childNodes", "childIterator", "node2", "_newChild", "_refChild", "_node", "BaseRRDocument", "NodeType$1", "_a2", "newChild", "nodeType", "s2", "child", "appendChild", "refChild", "insertBefore", "removeChild", "content", "publicId", "doctype", "_namespace", "_qualifiedName", "_doctype", "qualifiedName", "systemId", "BaseRRDocumentType", "tagName", "element", "BaseRRElement", "_namespaceURI", "data", "text", "BaseRRText", "BaseRRComment", "CDATASection", "BaseRRCDATASection", "result2", "textContent", "ClassList", "newClassName", "hyphenateRE2", "priority", "attribute", "_init", "shadowRoot", "_event", "attributeString", "BaseRRMediaElement", "classText", "onChange", "classNames", "className", "classes", "parent", "NodeType", "NodeType2", "NAMESPACES", "SVGTagMap", "createdNodeSet", "diff", "oldTree", "newTree", "replayer", "rrnodeMirror", "diffBeforeUpdatingChildren", "diffChildren", "diffAfterUpdatingChildren", "sameNodeType", "calibratedOldTree", "createOrGetNode", "nodeMatching", "newMeta", "oldElement", "newRRElement", "oldContentDocument", "diffProps", "scrollData", "oldMediaElement", "newMediaRRElement", "rrCanvasElement", "image", "ctx", "canvasMutation2", "styleSheet", "oldAttributes", "newAttributes", "newValue", "sn", "oldChildren", "newChildren", "oldStartIndex", "oldEndIndex", "newStartIndex", "newEndIndex", "oldStartNode", "oldEndNode", "newStartNode", "newEndNode", "oldIdToIndex", "indexInOld", "e2", "oldChild2", "nodeToMove", "newNode", "referenceRRNode", "referenceNode", "oldChild", "rrNode", "domMirror", "nodeId", "node1", "rrdomMirror", "node1Id", "node2Id", "RRDocument", "mirror2", "createMirror", "documentTypeNode", "RRDocumentType", "upperTagName", "RRMediaElement", "RRIFrameElement", "RRCanvasElement", "RRStyleElement", "RRElement", "commentNode", "RRComment", "sectionNode", "RRCDATASection", "textNode", "RRText", "getValidTagName", "buildFromNode", "rrdom", "parentRRNode", "documentType", "elementNode", "rrElement", "getDefaultSN", "buildFromDom", "dom", "createMirror$1", "walk2", "iframeDoc", "childNode", "Mirror22", "id", "meta", "oldNode", "webGLVarMap", "variableListFor", "ctor", "contextMap", "deserializeArg", "imageMap", "preload", "arg", "index", "decode", "image2", "blobContents", "canvasMutation$1", "event", "mutations", "target", "errorHandler2", "mutationArgsPromises", "mutation", "args2", "original", "getContext", "type", "CanvasContext", "WebGLVariableConstructorsNames", "saveToWebGLVarMap", "variables", "webglMutation", "debugMode", "canvasMutation", "canvasEventMap", "precomputedMutation", "commands", "command", "t", "t2", "r2", "o2", "a2", "t3", "n", "e", "r", "o", "i", "a", "u", "c", "f", "n3", "o3", "s", "l2", "v2", "y", "s3", "l3", "v3", "p", "g", "d", "x2", "m", "h", "e3", "b", "S", "w", "j", "E", "R", "N", "O", "k", "T", "q", "z", "A", "B", "C", "l", "v", "i3", "u2", "Timer", "actions", "config", "__publicField", "action", "rafWasActive", "time", "speed", "start", "end", "mid", "addDelay", "baselineTime", "EventType", "IncrementalSource", "firstOffset", "firstTimestamp", "discardPriorSnapshots", "events", "idx", "createPlayerService", "context", "getCastFn", "applyEventsSynchronously", "emitter", "playerMachine", "timeOffset", "timer", "lastPlayedEvent", "neededEvents", "lastPlayedTimestamp", "ReplayerEvents", "syncEvents", "castFn", "machineEvent", "insertionIndex", "isSync", "createSpeedService", "speedMachine", "MediaManager", "options", "_mediaState", "mediaState", "mediaPlaybackOffset", "duration", "seekToTime", "onLoadedMetadata", "lastState", "playbackRate", "currentTime", "muted", "volume", "loop", "MediaInteractions", "_c", "_d", "_e", "isPlaying", "playerIsPaused", "serializedNode", "mediaAttributes", "currentTimeAtLastInteraction", "polyfill", "Element2", "SCROLL_TIME", "scrollElement", "now", "isMicrosoftBrowser", "userAgent", "userAgentPatterns", "ROUNDING_TOLERANCE", "ease", "shouldBailOut", "firstArg", "hasScrollableSpace", "el", "axis", "canOverflow", "overflowValue", "isScrollable", "isScrollableY", "isScrollableX", "findScrollableParent", "step", "currentX", "currentY", "elapsed", "smoothScroll", "scrollable", "startX", "startY", "method", "startTime", "left", "top", "scrollableParent", "parentRects", "clientRects", "rules", "blockClass", "SKIP_TIME_INTERVAL", "mitt", "mitt$1", "mittProxy", "REPLAY_CONSOLE_PREFIX", "defaultMouseTailConfig", "indicatesTouchDevice", "MouseInteractions", "Replayer", "createCache", "createMirror$2", "StyleSheetMirror", "dimension", "skipTime", "payload", "plugin3", "last_index", "finish", "finish_buffer", "defaultConfig", "replayerHandler", "canvasEvent", "canvasMutationData", "key", "realNode", "a1", "state", "firstMeta", "firstFullsnapshot", "width", "height", "handler", "firstEvent", "lastEvent", "rawEvent", "attributes", "polyfill$1", "collected", "afterAppend", "builtNode", "rebuild", "mutationInQueue", "documentElement", "head", "injectStylesRules", "styleEl", "iframeEl", "NodeType$2", "buildNodeWithSN", "isSerializedIframe", "unloadSheets", "beforeLoadState", "stateHandler", "unsubscribe", "promises", "canvas", "imgd", "status", "lastPosition", "toLowerCase", "triggerFocus", "mediaEl", "fontFace", "virtualNode", "hasShadowRoot", "legacy_missingNodeMap", "queue", "nextNotInDOM", "next", "appendNode", "previous", "targetDoc", "parentSn", "prospectiveSiblings", "parentDoc", "targetId", "resolveTrees", "queueToResolveTrees", "tree", "iterateResolveTree", "uniqueTextMutations", "attributeName", "newSn", "siblingNode", "parentNode", "textarea", "tn", "styleValues", "targetEl", "svp", "svs", "selectionSet", "ranges", "startOffset", "endOffset", "startContainer", "endContainer", "doc", "selection", "rule2", "nestedIndex", "positions", "getPositionsAndIndex", "getNestedRule", "targetHost", "_a3", "newStyleSheet", "hostWindow", "MAX_RETRY_TIME", "count", "adoptStyleSheets", "targetHost2", "styleIds", "stylesToAdopt", "styleId", "targetMutation", "previousId", "nextId", "previousInMap", "nextInMap", "debugData", "base", "getBaseDimension", "_x", "_y", "position", "lineCap", "lineWidth", "strokeStyle", "draw", "hoveredEl", "currentEl"]
|
|
4
|
+
"sourcesContent": ["var Ea = Object.defineProperty;\nvar Ia = (r, e, t) => e in r ? Ea(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;\nvar w = (r, e, t) => Ia(r, typeof e != \"symbol\" ? e + \"\" : e, t);\nvar ka = Object.defineProperty, Ta = (r, e, t) => e in r ? ka(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, hn = (r, e, t) => Ta(r, typeof e != \"symbol\" ? e + \"\" : e, t), I = /* @__PURE__ */ ((r) => (r[r.Document = 0] = \"Document\", r[r.DocumentType = 1] = \"DocumentType\", r[r.Element = 2] = \"Element\", r[r.Text = 3] = \"Text\", r[r.CDATA = 4] = \"CDATA\", r[r.Comment = 5] = \"Comment\", r))(I || {});\nfunction vs(r) {\n return r.nodeType === r.ELEMENT_NODE;\n}\nfunction et(r) {\n const e = r == null ? void 0 : r.host;\n return (e == null ? void 0 : e.shadowRoot) === r;\n}\nfunction tt(r) {\n return Object.prototype.toString.call(r) === \"[object ShadowRoot]\";\n}\nfunction Na(r) {\n return r.includes(\" background-clip: text;\") && !r.includes(\" -webkit-background-clip: text;\") && (r = r.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n )), r;\n}\nfunction Oa(r) {\n const { cssText: e } = r;\n if (e.split('\"').length < 3) return e;\n const t = [\"@import\", `url(${JSON.stringify(r.href)})`];\n return r.layerName === \"\" ? t.push(\"layer\") : r.layerName && t.push(`layer(${r.layerName})`), r.supportsText && t.push(`supports(${r.supportsText})`), r.media.length && t.push(r.media.mediaText), t.join(\" \") + \";\";\n}\nfunction Jt(r) {\n try {\n const e = r.rules || r.cssRules;\n return e ? Na(\n Array.from(e, Ci).join(\"\")\n ) : null;\n } catch {\n return null;\n }\n}\nfunction Ci(r) {\n let e;\n if (Da(r))\n try {\n e = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n Jt(r.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n Oa(r);\n } catch {\n }\n else if (Aa(r) && r.selectorText.includes(\":\"))\n return Ra(r.cssText);\n return e || r.cssText;\n}\nfunction Ra(r) {\n const e = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return r.replace(e, \"$1\\\\$2\");\n}\nfunction Da(r) {\n return \"styleSheet\" in r;\n}\nfunction Aa(r) {\n return \"selectorText\" in r;\n}\nlet Cs = class {\n constructor() {\n hn(this, \"idNodeMap\", /* @__PURE__ */ new Map()), hn(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(e) {\n var t;\n return e ? ((t = this.getMeta(e)) == null ? void 0 : t.id) ?? -1 : -1;\n }\n getNode(e) {\n return this.idNodeMap.get(e) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(e) {\n return this.nodeMetaMap.get(e) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(e) {\n const t = this.getId(e);\n this.idNodeMap.delete(t), e.childNodes && e.childNodes.forEach(\n (s) => this.removeNodeFromMap(s)\n );\n }\n has(e) {\n return this.idNodeMap.has(e);\n }\n hasNode(e) {\n return this.nodeMetaMap.has(e);\n }\n add(e, t) {\n const s = t.id;\n this.idNodeMap.set(s, e), this.nodeMetaMap.set(e, t);\n }\n replace(e, t) {\n const s = this.getNode(e);\n if (s) {\n const n = this.nodeMetaMap.get(s);\n n && this.nodeMetaMap.set(t, n);\n }\n this.idNodeMap.set(e, t);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map(), this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction Mi() {\n return new Cs();\n}\nfunction Ms({\n element: r,\n maskInputOptions: e,\n tagName: t,\n type: s,\n value: n,\n maskInputFn: i\n}) {\n let a = n || \"\", o = \"\";\n const l = s && Se(s);\n let c = !1;\n return (e[t.toLowerCase()] || l && e[l]) && (i ? o = i(a, r) : o = \"*\".repeat(a.length), c = a !== o), { value: o, masked: c };\n}\nfunction Se(r) {\n return r.toLowerCase();\n}\nconst pn = \"__rrweb_original__\";\nfunction La(r) {\n const e = r.getContext(\"2d\");\n if (!e) return !0;\n const t = 50;\n for (let s = 0; s < r.width; s += t)\n for (let n = 0; n < r.height; n += t) {\n const i = e.getImageData, a = pn in i ? i[pn] : i;\n if (new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n a.call(\n e,\n s,\n n,\n Math.min(t, r.width - s),\n Math.min(t, r.height - n)\n ).data.buffer\n ).some((o) => o !== 0)) return !1;\n }\n return !0;\n}\nfunction Pa(r, e) {\n return !r || !e || r.type !== e.type ? !1 : r.type === I.Document ? r.compatMode === e.compatMode : r.type === I.DocumentType ? r.name === e.name && r.publicId === e.publicId && r.systemId === e.systemId : r.type === I.Comment || r.type === I.Text || r.type === I.CDATA ? r.textContent === e.textContent : r.type === I.Element ? r.tagName === e.tagName && JSON.stringify(r.attributes) === JSON.stringify(e.attributes) && r.isSVG === e.isSVG && r.needBlock === e.needBlock : !1;\n}\nfunction xs(r) {\n const e = r.type;\n return r.hasAttribute(\"data-rr-is-password\") ? \"password\" : e ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n Se(e)\n ) : null;\n}\nfunction xi(r, e) {\n let t;\n try {\n t = new URL(r, e ?? window.location.href);\n } catch {\n return null;\n }\n const s = /\\.([0-9a-z]+)(?:$)/i, n = t.pathname.match(s);\n return (n == null ? void 0 : n[1]) ?? null;\n}\nlet Fa = 1;\nconst _a = new RegExp(\"[^a-z0-9-_:]\"), nt = -2;\nfunction Ei() {\n return Fa++;\n}\nfunction $a(r) {\n if (r instanceof HTMLFormElement)\n return \"form\";\n const e = Se(r.tagName);\n return _a.test(e) ? \"div\" : e;\n}\nfunction Ua(r) {\n let e = \"\";\n return r.indexOf(\"//\") > -1 ? e = r.split(\"/\").slice(0, 3).join(\"/\") : e = r.split(\"/\")[0], e = e.split(\"?\")[0], e;\n}\nlet Re, dn;\nconst Wa = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm, Ba = /^(?:[a-z+]+:)?\\/\\//i, Va = /^www\\..*/i, za = /^(data:)([^,]*),(.*)/i;\nfunction Qt(r, e) {\n return (r || \"\").replace(\n Wa,\n (t, s, n, i, a, o) => {\n const l = n || a || o, c = s || i || \"\";\n if (!l)\n return t;\n if (Ba.test(l) || Va.test(l))\n return `url(${c}${l}${c})`;\n if (za.test(l))\n return `url(${c}${l}${c})`;\n if (l[0] === \"/\")\n return `url(${c}${Ua(e) + l}${c})`;\n const u = e.split(\"/\"), p = l.split(\"/\");\n u.pop();\n for (const d of p)\n d !== \".\" && (d === \"..\" ? u.pop() : u.push(d));\n return `url(${c}${u.join(\"/\")}${c})`;\n }\n );\n}\nconst ja = /^[^ \\t\\n\\r\\u000c]+/, Ga = /^[, \\t\\n\\r\\u000c]+/;\nfunction Ha(r, e) {\n if (e.trim() === \"\")\n return e;\n let t = 0;\n function s(i) {\n let a;\n const o = i.exec(e.substring(t));\n return o ? (a = o[0], t += a.length, a) : \"\";\n }\n const n = [];\n for (; s(Ga), !(t >= e.length); ) {\n let i = s(ja);\n if (i.slice(-1) === \",\")\n i = Kt(r, i.substring(0, i.length - 1)), n.push(i);\n else {\n let a = \"\";\n i = Kt(r, i);\n let o = !1;\n for (; ; ) {\n const l = e.charAt(t);\n if (l === \"\") {\n n.push((i + a).trim());\n break;\n } else if (o)\n l === \")\" && (o = !1);\n else if (l === \",\") {\n t += 1, n.push((i + a).trim());\n break;\n } else l === \"(\" && (o = !0);\n a += l, t += 1;\n }\n }\n }\n return n.join(\", \");\n}\nconst fn = /* @__PURE__ */ new WeakMap();\nfunction Kt(r, e) {\n return !e || e.trim() === \"\" ? e : fr(r, e);\n}\nfunction Ya(r) {\n return !!(r.tagName === \"svg\" || r.ownerSVGElement);\n}\nfunction fr(r, e) {\n let t = fn.get(r);\n if (t || (t = r.createElement(\"a\"), fn.set(r, t)), !e)\n e = \"\";\n else if (e.startsWith(\"blob:\") || e.startsWith(\"data:\"))\n return e;\n return t.setAttribute(\"href\", e), t.href;\n}\nfunction Ii(r, e, t, s) {\n return s && (t === \"src\" || t === \"href\" && !(e === \"use\" && s[0] === \"#\") || t === \"xlink:href\" && s[0] !== \"#\" || t === \"background\" && (e === \"table\" || e === \"td\" || e === \"th\") ? Kt(r, s) : t === \"srcset\" ? Ha(r, s) : t === \"style\" ? Qt(s, fr(r)) : e === \"object\" && t === \"data\" ? Kt(r, s) : s);\n}\nfunction ki(r, e, t) {\n return (r === \"video\" || r === \"audio\") && e === \"autoplay\";\n}\nfunction Xa(r, e, t) {\n try {\n if (typeof e == \"string\") {\n if (r.classList.contains(e))\n return !0;\n } else\n for (let s = r.classList.length; s--; ) {\n const n = r.classList[s];\n if (e.test(n))\n return !0;\n }\n if (t)\n return r.matches(t);\n } catch {\n }\n return !1;\n}\nfunction qt(r, e, t) {\n if (!r) return !1;\n if (r.nodeType !== r.ELEMENT_NODE)\n return t ? qt(r.parentNode, e, t) : !1;\n for (let s = r.classList.length; s--; ) {\n const n = r.classList[s];\n if (e.test(n))\n return !0;\n }\n return t ? qt(r.parentNode, e, t) : !1;\n}\nfunction Ti(r, e, t, s) {\n let n;\n if (vs(r)) {\n if (n = r, !n.childNodes.length)\n return !1;\n } else {\n if (r.parentElement === null)\n return !1;\n n = r.parentElement;\n }\n try {\n if (typeof e == \"string\") {\n if (s) {\n if (n.closest(`.${e}`)) return !0;\n } else if (n.classList.contains(e)) return !0;\n } else if (qt(n, e, s)) return !0;\n if (t) {\n if (s) {\n if (n.closest(t)) return !0;\n } else if (n.matches(t)) return !0;\n }\n } catch {\n }\n return !1;\n}\nfunction Za(r, e, t) {\n const s = r.contentWindow;\n if (!s)\n return;\n let n = !1, i;\n try {\n i = s.document.readyState;\n } catch {\n return;\n }\n if (i !== \"complete\") {\n const o = setTimeout(() => {\n n || (e(), n = !0);\n }, t);\n r.addEventListener(\"load\", () => {\n clearTimeout(o), n = !0, e();\n });\n return;\n }\n const a = \"about:blank\";\n if (s.location.href !== a || r.src === a || r.src === \"\")\n return setTimeout(e, 0), r.addEventListener(\"load\", e);\n r.addEventListener(\"load\", e);\n}\nfunction Ja(r, e, t) {\n let s = !1, n;\n try {\n n = r.sheet;\n } catch {\n return;\n }\n if (n) return;\n const i = setTimeout(() => {\n s || (e(), s = !0);\n }, t);\n r.addEventListener(\"load\", () => {\n clearTimeout(i), s = !0, e();\n });\n}\nfunction Qa(r, e) {\n const {\n doc: t,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n needsMask: a,\n inlineStylesheet: o,\n maskInputOptions: l = {},\n maskTextFn: c,\n maskInputFn: u,\n dataURLOptions: p = {},\n inlineImages: d,\n recordCanvas: f,\n keepIframeSrcFn: y,\n newlyAddedElement: h = !1\n } = e, b = Ka(t, s);\n switch (r.nodeType) {\n case r.DOCUMENT_NODE:\n return r.compatMode !== \"CSS1Compat\" ? {\n type: I.Document,\n childNodes: [],\n compatMode: r.compatMode\n // probably \"BackCompat\"\n } : {\n type: I.Document,\n childNodes: []\n };\n case r.DOCUMENT_TYPE_NODE:\n return {\n type: I.DocumentType,\n name: r.name,\n publicId: r.publicId,\n systemId: r.systemId,\n rootId: b\n };\n case r.ELEMENT_NODE:\n return el(r, {\n doc: t,\n blockClass: n,\n blockSelector: i,\n inlineStylesheet: o,\n maskInputOptions: l,\n maskInputFn: u,\n dataURLOptions: p,\n inlineImages: d,\n recordCanvas: f,\n keepIframeSrcFn: y,\n newlyAddedElement: h,\n rootId: b\n });\n case r.TEXT_NODE:\n return qa(r, {\n doc: t,\n needsMask: a,\n maskTextFn: c,\n rootId: b\n });\n case r.CDATA_SECTION_NODE:\n return {\n type: I.CDATA,\n textContent: \"\",\n rootId: b\n };\n case r.COMMENT_NODE:\n return {\n type: I.Comment,\n textContent: r.textContent || \"\",\n rootId: b\n };\n default:\n return !1;\n }\n}\nfunction Ka(r, e) {\n if (!e.hasNode(r)) return;\n const t = e.getId(r);\n return t === 1 ? void 0 : t;\n}\nfunction qa(r, e) {\n var t;\n const { needsMask: s, maskTextFn: n, rootId: i } = e, a = r.parentNode && r.parentNode.tagName;\n let o = r.textContent;\n const l = a === \"STYLE\" ? !0 : void 0, c = a === \"SCRIPT\" ? !0 : void 0;\n if (l && o) {\n try {\n r.nextSibling || r.previousSibling || (t = r.parentNode.sheet) != null && t.cssRules && (o = Jt(\n r.parentNode.sheet\n ));\n } catch (u) {\n console.warn(\n `Cannot get CSS styles from text's parentNode. Error: ${u}`,\n r\n );\n }\n o = Qt(o, fr(e.doc));\n }\n return c && (o = \"SCRIPT_PLACEHOLDER\"), !l && !c && o && s && (o = n ? n(o, r.parentElement) : o.replace(/[\\S]/g, \"*\")), {\n type: I.Text,\n textContent: o || \"\",\n isStyle: l,\n rootId: i\n };\n}\nfunction el(r, e) {\n const {\n doc: t,\n blockClass: s,\n blockSelector: n,\n inlineStylesheet: i,\n maskInputOptions: a = {},\n maskInputFn: o,\n dataURLOptions: l = {},\n inlineImages: c,\n recordCanvas: u,\n keepIframeSrcFn: p,\n newlyAddedElement: d = !1,\n rootId: f\n } = e, y = Xa(r, s, n), h = $a(r);\n let b = {};\n const g = r.attributes.length;\n for (let m = 0; m < g; m++) {\n const v = r.attributes[m];\n ki(h, v.name, v.value) || (b[v.name] = Ii(\n t,\n h,\n Se(v.name),\n v.value\n ));\n }\n if (h === \"link\" && i) {\n const m = Array.from(t.styleSheets).find((E) => E.href === r.href);\n let v = null;\n m && (v = Jt(m)), v && (delete b.rel, delete b.href, b._cssText = Qt(v, m.href));\n }\n if (h === \"style\" && r.sheet && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n !(r.innerText || r.textContent || \"\").trim().length) {\n const m = Jt(\n r.sheet\n );\n m && (b._cssText = Qt(m, fr(t)));\n }\n if (h === \"input\" || h === \"textarea\" || h === \"select\") {\n const m = r.value, v = r.checked;\n if (b.type !== \"radio\" && b.type !== \"checkbox\" && b.type !== \"submit\" && b.type !== \"button\" && m) {\n const E = Ms({\n element: r,\n type: xs(r),\n tagName: h,\n value: m,\n maskInputOptions: a,\n maskInputFn: o\n });\n b.value = E.value, E.masked && (b.masked = !0);\n } else v && (b.checked = v);\n }\n if (h === \"option\" && (r.selected && !a.select ? b.selected = !0 : delete b.selected), h === \"canvas\" && u) {\n if (r.__context === \"2d\")\n La(r) || (b.rr_dataURL = r.toDataURL(\n l.type,\n l.quality\n ));\n else if (!(\"__context\" in r)) {\n const m = r.toDataURL(\n l.type,\n l.quality\n ), v = t.createElement(\"canvas\");\n v.width = r.width, v.height = r.height;\n const E = v.toDataURL(\n l.type,\n l.quality\n );\n m !== E && (b.rr_dataURL = m);\n }\n }\n if (h === \"img\" && c) {\n Re || (Re = t.createElement(\"canvas\"), dn = Re.getContext(\"2d\"));\n const m = r, v = m.currentSrc || m.getAttribute(\"src\") || \"<unknown-src>\", E = m.crossOrigin, T = () => {\n m.removeEventListener(\"load\", T);\n try {\n Re.width = m.naturalWidth, Re.height = m.naturalHeight, dn.drawImage(m, 0, 0), b.rr_dataURL = Re.toDataURL(\n l.type,\n l.quality\n );\n } catch (O) {\n if (m.crossOrigin !== \"anonymous\") {\n m.crossOrigin = \"anonymous\", m.complete && m.naturalWidth !== 0 ? T() : m.addEventListener(\"load\", T);\n return;\n } else\n console.warn(\n `Cannot inline img src=${v}! Error: ${O}`\n );\n }\n m.crossOrigin === \"anonymous\" && (E ? b.crossOrigin = E : m.removeAttribute(\"crossorigin\"));\n };\n m.complete && m.naturalWidth !== 0 ? T() : m.addEventListener(\"load\", T);\n }\n if (h === \"audio\" || h === \"video\") {\n const m = b;\n m.rr_mediaState = r.paused ? \"paused\" : \"played\", m.rr_mediaCurrentTime = r.currentTime, m.rr_mediaPlaybackRate = r.playbackRate, m.rr_mediaMuted = r.muted, m.rr_mediaLoop = r.loop, m.rr_mediaVolume = r.volume;\n }\n if (d || (r.scrollLeft && (b.rr_scrollLeft = r.scrollLeft), r.scrollTop && (b.rr_scrollTop = r.scrollTop)), y) {\n const { width: m, height: v } = r.getBoundingClientRect();\n b = {\n class: b.class,\n rr_width: `${m}px`,\n rr_height: `${v}px`\n };\n }\n h === \"iframe\" && !p(b.src) && (r.contentDocument || (b.rr_src = b.src), delete b.src);\n let S;\n try {\n customElements.get(h) && (S = !0);\n } catch {\n }\n return {\n type: I.Element,\n tagName: h,\n attributes: b,\n childNodes: [],\n isSVG: Ya(r) || void 0,\n needBlock: y,\n rootId: f,\n isCustom: S\n };\n}\nfunction W(r) {\n return r == null ? \"\" : r.toLowerCase();\n}\nfunction tl(r, e) {\n return !!(e.comment && r.type === I.Comment || r.type === I.Element && (e.script && // script tag\n (r.tagName === \"script\" || // (module)preload link\n r.tagName === \"link\" && (r.attributes.rel === \"preload\" || r.attributes.rel === \"modulepreload\") && r.attributes.as === \"script\" || // prefetch link\n r.tagName === \"link\" && r.attributes.rel === \"prefetch\" && typeof r.attributes.href == \"string\" && xi(r.attributes.href) === \"js\") || e.headFavicon && (r.tagName === \"link\" && r.attributes.rel === \"shortcut icon\" || r.tagName === \"meta\" && (W(r.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || W(r.attributes.name) === \"application-name\" || W(r.attributes.rel) === \"icon\" || W(r.attributes.rel) === \"apple-touch-icon\" || W(r.attributes.rel) === \"shortcut icon\")) || r.tagName === \"meta\" && (e.headMetaDescKeywords && W(r.attributes.name).match(/^description|keywords$/) || e.headMetaSocial && (W(r.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n W(r.attributes.name).match(/^(og|twitter):/) || W(r.attributes.name) === \"pinterest\") || e.headMetaRobots && (W(r.attributes.name) === \"robots\" || W(r.attributes.name) === \"googlebot\" || W(r.attributes.name) === \"bingbot\") || e.headMetaHttpEquiv && r.attributes[\"http-equiv\"] !== void 0 || e.headMetaAuthorship && (W(r.attributes.name) === \"author\" || W(r.attributes.name) === \"generator\" || W(r.attributes.name) === \"framework\" || W(r.attributes.name) === \"publisher\" || W(r.attributes.name) === \"progid\" || W(r.attributes.property).match(/^article:/) || W(r.attributes.property).match(/^product:/)) || e.headMetaVerification && (W(r.attributes.name) === \"google-site-verification\" || W(r.attributes.name) === \"yandex-verification\" || W(r.attributes.name) === \"csrf-token\" || W(r.attributes.name) === \"p:domain_verify\" || W(r.attributes.name) === \"verify-v1\" || W(r.attributes.name) === \"verification\" || W(r.attributes.name) === \"shopify-checkout-api-token\"))));\n}\nfunction Pe(r, e) {\n const {\n doc: t,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n maskTextClass: a,\n maskTextSelector: o,\n skipChild: l = !1,\n inlineStylesheet: c = !0,\n maskInputOptions: u = {},\n maskTextFn: p,\n maskInputFn: d,\n slimDOMOptions: f,\n dataURLOptions: y = {},\n inlineImages: h = !1,\n recordCanvas: b = !1,\n onSerialize: g,\n onIframeLoad: S,\n iframeLoadTimeout: m = 5e3,\n onStylesheetLoad: v,\n stylesheetLoadTimeout: E = 5e3,\n keepIframeSrcFn: T = () => !1,\n newlyAddedElement: O = !1\n } = e;\n let { needsMask: $ } = e, { preserveWhiteSpace: Y = !0 } = e;\n $ || ($ = Ti(\n r,\n a,\n o,\n $ === void 0\n ));\n const Q = Qa(r, {\n doc: t,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n needsMask: $,\n inlineStylesheet: c,\n maskInputOptions: u,\n maskTextFn: p,\n maskInputFn: d,\n dataURLOptions: y,\n inlineImages: h,\n recordCanvas: b,\n keepIframeSrcFn: T,\n newlyAddedElement: O\n });\n if (!Q)\n return console.warn(r, \"not serialized\"), null;\n let K;\n s.hasNode(r) ? K = s.getId(r) : tl(Q, f) || !Y && Q.type === I.Text && !Q.isStyle && !Q.textContent.replace(/^\\s+|\\s+$/gm, \"\").length ? K = nt : K = Ei();\n const k = Object.assign(Q, { id: K });\n if (s.add(r, k), K === nt)\n return null;\n g && g(r);\n let ee = !l;\n if (k.type === I.Element) {\n ee = ee && !k.needBlock, delete k.needBlock;\n const X = r.shadowRoot;\n X && tt(X) && (k.isShadowHost = !0);\n }\n if ((k.type === I.Document || k.type === I.Element) && ee) {\n f.headWhitespace && k.type === I.Element && k.tagName === \"head\" && (Y = !1);\n const X = {\n doc: t,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n needsMask: $,\n maskTextClass: a,\n maskTextSelector: o,\n skipChild: l,\n inlineStylesheet: c,\n maskInputOptions: u,\n maskTextFn: p,\n maskInputFn: d,\n slimDOMOptions: f,\n dataURLOptions: y,\n inlineImages: h,\n recordCanvas: b,\n preserveWhiteSpace: Y,\n onSerialize: g,\n onIframeLoad: S,\n iframeLoadTimeout: m,\n onStylesheetLoad: v,\n stylesheetLoadTimeout: E,\n keepIframeSrcFn: T\n };\n if (!(k.type === I.Element && k.tagName === \"textarea\" && k.attributes.value !== void 0)) for (const ae of Array.from(r.childNodes)) {\n const q = Pe(ae, X);\n q && k.childNodes.push(q);\n }\n if (vs(r) && r.shadowRoot)\n for (const ae of Array.from(r.shadowRoot.childNodes)) {\n const q = Pe(ae, X);\n q && (tt(r.shadowRoot) && (q.isShadow = !0), k.childNodes.push(q));\n }\n }\n return r.parentNode && et(r.parentNode) && tt(r.parentNode) && (k.isShadow = !0), k.type === I.Element && k.tagName === \"iframe\" && Za(\n r,\n () => {\n const X = r.contentDocument;\n if (X && S) {\n const ae = Pe(X, {\n doc: X,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n needsMask: $,\n maskTextClass: a,\n maskTextSelector: o,\n skipChild: !1,\n inlineStylesheet: c,\n maskInputOptions: u,\n maskTextFn: p,\n maskInputFn: d,\n slimDOMOptions: f,\n dataURLOptions: y,\n inlineImages: h,\n recordCanvas: b,\n preserveWhiteSpace: Y,\n onSerialize: g,\n onIframeLoad: S,\n iframeLoadTimeout: m,\n onStylesheetLoad: v,\n stylesheetLoadTimeout: E,\n keepIframeSrcFn: T\n });\n ae && S(\n r,\n ae\n );\n }\n },\n m\n ), k.type === I.Element && k.tagName === \"link\" && typeof k.attributes.rel == \"string\" && (k.attributes.rel === \"stylesheet\" || k.attributes.rel === \"preload\" && typeof k.attributes.href == \"string\" && xi(k.attributes.href) === \"css\") && Ja(\n r,\n () => {\n if (v) {\n const X = Pe(r, {\n doc: t,\n mirror: s,\n blockClass: n,\n blockSelector: i,\n needsMask: $,\n maskTextClass: a,\n maskTextSelector: o,\n skipChild: !1,\n inlineStylesheet: c,\n maskInputOptions: u,\n maskTextFn: p,\n maskInputFn: d,\n slimDOMOptions: f,\n dataURLOptions: y,\n inlineImages: h,\n recordCanvas: b,\n preserveWhiteSpace: Y,\n onSerialize: g,\n onIframeLoad: S,\n iframeLoadTimeout: m,\n onStylesheetLoad: v,\n stylesheetLoadTimeout: E,\n keepIframeSrcFn: T\n });\n X && v(\n r,\n X\n );\n }\n },\n E\n ), k;\n}\nfunction rl(r, e) {\n const {\n mirror: t = new Cs(),\n blockClass: s = \"rr-block\",\n blockSelector: n = null,\n maskTextClass: i = \"rr-mask\",\n maskTextSelector: a = null,\n inlineStylesheet: o = !0,\n inlineImages: l = !1,\n recordCanvas: c = !1,\n maskAllInputs: u = !1,\n maskTextFn: p,\n maskInputFn: d,\n slimDOM: f = !1,\n dataURLOptions: y,\n preserveWhiteSpace: h,\n onSerialize: b,\n onIframeLoad: g,\n iframeLoadTimeout: S,\n onStylesheetLoad: m,\n stylesheetLoadTimeout: v,\n keepIframeSrcFn: E = () => !1\n } = e || {};\n return Pe(r, {\n doc: r,\n mirror: t,\n blockClass: s,\n blockSelector: n,\n maskTextClass: i,\n maskTextSelector: a,\n skipChild: !1,\n inlineStylesheet: o,\n maskInputOptions: u === !0 ? {\n color: !0,\n date: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0,\n textarea: !0,\n select: !0,\n password: !0\n } : u === !1 ? {\n password: !0\n } : u,\n maskTextFn: p,\n maskInputFn: d,\n slimDOMOptions: f === !0 || f === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: !0,\n comment: !0,\n headFavicon: !0,\n headWhitespace: !0,\n headMetaDescKeywords: f === \"all\",\n // destructive\n headMetaSocial: !0,\n headMetaRobots: !0,\n headMetaHttpEquiv: !0,\n headMetaAuthorship: !0,\n headMetaVerification: !0\n }\n ) : f === !1 ? {} : f,\n dataURLOptions: y,\n inlineImages: l,\n recordCanvas: c,\n preserveWhiteSpace: h,\n onSerialize: b,\n onIframeLoad: g,\n iframeLoadTimeout: S,\n onStylesheetLoad: m,\n stylesheetLoadTimeout: v,\n keepIframeSrcFn: E,\n newlyAddedElement: !1\n });\n}\nfunction sl(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nfunction nl(r) {\n if (r.__esModule) return r;\n var e = r.default;\n if (typeof e == \"function\") {\n var t = function s() {\n return this instanceof s ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);\n };\n t.prototype = e.prototype;\n } else t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(s) {\n var n = Object.getOwnPropertyDescriptor(r, s);\n Object.defineProperty(t, s, n.get ? n : {\n enumerable: !0,\n get: function() {\n return r[s];\n }\n });\n }), t;\n}\nvar Es = { exports: {} }, B = String, Ni = function() {\n return { isColorSupported: !1, reset: B, bold: B, dim: B, italic: B, underline: B, inverse: B, hidden: B, strikethrough: B, black: B, red: B, green: B, yellow: B, blue: B, magenta: B, cyan: B, white: B, gray: B, bgBlack: B, bgRed: B, bgGreen: B, bgYellow: B, bgBlue: B, bgMagenta: B, bgCyan: B, bgWhite: B };\n};\nEs.exports = Ni();\nEs.exports.createColors = Ni;\nvar il = Es.exports;\nconst ol = {}, al = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: ol\n}, Symbol.toStringTag, { value: \"Module\" })), ie = /* @__PURE__ */ nl(al);\nlet mn = il, gn = ie, Wr = class Oi extends Error {\n constructor(e, t, s, n, i, a) {\n super(e), this.name = \"CssSyntaxError\", this.reason = e, i && (this.file = i), n && (this.source = n), a && (this.plugin = a), typeof t < \"u\" && typeof s < \"u\" && (typeof t == \"number\" ? (this.line = t, this.column = s) : (this.line = t.line, this.column = t.column, this.endLine = s.line, this.endColumn = s.column)), this.setMessage(), Error.captureStackTrace && Error.captureStackTrace(this, Oi);\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\", this.message += this.file ? this.file : \"<css input>\", typeof this.line < \"u\" && (this.message += \":\" + this.line + \":\" + this.column), this.message += \": \" + this.reason;\n }\n showSourceCode(e) {\n if (!this.source) return \"\";\n let t = this.source;\n e == null && (e = mn.isColorSupported), gn && e && (t = gn(t));\n let s = t.split(/\\r?\\n/), n = Math.max(this.line - 3, 0), i = Math.min(this.line + 2, s.length), a = String(i).length, o, l;\n if (e) {\n let { bold: c, gray: u, red: p } = mn.createColors(!0);\n o = (d) => c(p(d)), l = (d) => u(d);\n } else\n o = l = (c) => c;\n return s.slice(n, i).map((c, u) => {\n let p = n + 1 + u, d = \" \" + (\" \" + p).slice(-a) + \" | \";\n if (p === this.line) {\n let f = l(d.replace(/\\d/g, \" \")) + c.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return o(\">\") + l(d) + c + `\n ` + f + o(\"^\");\n }\n return \" \" + l(d) + c;\n }).join(`\n`);\n }\n toString() {\n let e = this.showSourceCode();\n return e && (e = `\n\n` + e + `\n`), this.name + \": \" + this.message + e;\n }\n};\nvar Is = Wr;\nWr.default = Wr;\nvar ft = {};\nft.isClean = Symbol(\"isClean\");\nft.my = Symbol(\"my\");\nconst yn = {\n after: `\n`,\n beforeClose: `\n`,\n beforeComment: `\n`,\n beforeDecl: `\n`,\n beforeOpen: \" \",\n beforeRule: `\n`,\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: !1\n};\nfunction ll(r) {\n return r[0].toUpperCase() + r.slice(1);\n}\nlet Br = class {\n constructor(r) {\n this.builder = r;\n }\n atrule(r, e) {\n let t = \"@\" + r.name, s = r.params ? this.rawValue(r, \"params\") : \"\";\n if (typeof r.raws.afterName < \"u\" ? t += r.raws.afterName : s && (t += \" \"), r.nodes)\n this.block(r, t + s);\n else {\n let n = (r.raws.between || \"\") + (e ? \";\" : \"\");\n this.builder(t + s + n, r);\n }\n }\n beforeAfter(r, e) {\n let t;\n r.type === \"decl\" ? t = this.raw(r, null, \"beforeDecl\") : r.type === \"comment\" ? t = this.raw(r, null, \"beforeComment\") : e === \"before\" ? t = this.raw(r, null, \"beforeRule\") : t = this.raw(r, null, \"beforeClose\");\n let s = r.parent, n = 0;\n for (; s && s.type !== \"root\"; )\n n += 1, s = s.parent;\n if (t.includes(`\n`)) {\n let i = this.raw(r, null, \"indent\");\n if (i.length)\n for (let a = 0; a < n; a++) t += i;\n }\n return t;\n }\n block(r, e) {\n let t = this.raw(r, \"between\", \"beforeOpen\");\n this.builder(e + t + \"{\", r, \"start\");\n let s;\n r.nodes && r.nodes.length ? (this.body(r), s = this.raw(r, \"after\")) : s = this.raw(r, \"after\", \"emptyBody\"), s && this.builder(s), this.builder(\"}\", r, \"end\");\n }\n body(r) {\n let e = r.nodes.length - 1;\n for (; e > 0 && r.nodes[e].type === \"comment\"; )\n e -= 1;\n let t = this.raw(r, \"semicolon\");\n for (let s = 0; s < r.nodes.length; s++) {\n let n = r.nodes[s], i = this.raw(n, \"before\");\n i && this.builder(i), this.stringify(n, e !== s || t);\n }\n }\n comment(r) {\n let e = this.raw(r, \"left\", \"commentLeft\"), t = this.raw(r, \"right\", \"commentRight\");\n this.builder(\"/*\" + e + r.text + t + \"*/\", r);\n }\n decl(r, e) {\n let t = this.raw(r, \"between\", \"colon\"), s = r.prop + t + this.rawValue(r, \"value\");\n r.important && (s += r.raws.important || \" !important\"), e && (s += \";\"), this.builder(s, r);\n }\n document(r) {\n this.body(r);\n }\n raw(r, e, t) {\n let s;\n if (t || (t = e), e && (s = r.raws[e], typeof s < \"u\"))\n return s;\n let n = r.parent;\n if (t === \"before\" && (!n || n.type === \"root\" && n.first === r || n && n.type === \"document\"))\n return \"\";\n if (!n) return yn[t];\n let i = r.root();\n if (i.rawCache || (i.rawCache = {}), typeof i.rawCache[t] < \"u\")\n return i.rawCache[t];\n if (t === \"before\" || t === \"after\")\n return this.beforeAfter(r, t);\n {\n let a = \"raw\" + ll(t);\n this[a] ? s = this[a](i, r) : i.walk((o) => {\n if (s = o.raws[e], typeof s < \"u\") return !1;\n });\n }\n return typeof s > \"u\" && (s = yn[t]), i.rawCache[t] = s, s;\n }\n rawBeforeClose(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length > 0 && typeof t.raws.after < \"u\")\n return e = t.raws.after, e.includes(`\n`) && (e = e.replace(/[^\\n]+$/, \"\")), !1;\n }), e && (e = e.replace(/\\S/g, \"\")), e;\n }\n rawBeforeComment(r, e) {\n let t;\n return r.walkComments((s) => {\n if (typeof s.raws.before < \"u\")\n return t = s.raws.before, t.includes(`\n`) && (t = t.replace(/[^\\n]+$/, \"\")), !1;\n }), typeof t > \"u\" ? t = this.raw(e, null, \"beforeDecl\") : t && (t = t.replace(/\\S/g, \"\")), t;\n }\n rawBeforeDecl(r, e) {\n let t;\n return r.walkDecls((s) => {\n if (typeof s.raws.before < \"u\")\n return t = s.raws.before, t.includes(`\n`) && (t = t.replace(/[^\\n]+$/, \"\")), !1;\n }), typeof t > \"u\" ? t = this.raw(e, null, \"beforeRule\") : t && (t = t.replace(/\\S/g, \"\")), t;\n }\n rawBeforeOpen(r) {\n let e;\n return r.walk((t) => {\n if (t.type !== \"decl\" && (e = t.raws.between, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawBeforeRule(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && (t.parent !== r || r.first !== t) && typeof t.raws.before < \"u\")\n return e = t.raws.before, e.includes(`\n`) && (e = e.replace(/[^\\n]+$/, \"\")), !1;\n }), e && (e = e.replace(/\\S/g, \"\")), e;\n }\n rawColon(r) {\n let e;\n return r.walkDecls((t) => {\n if (typeof t.raws.between < \"u\")\n return e = t.raws.between.replace(/[^\\s:]/g, \"\"), !1;\n }), e;\n }\n rawEmptyBody(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length === 0 && (e = t.raws.after, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawIndent(r) {\n if (r.raws.indent) return r.raws.indent;\n let e;\n return r.walk((t) => {\n let s = t.parent;\n if (s && s !== r && s.parent && s.parent === r && typeof t.raws.before < \"u\") {\n let n = t.raws.before.split(`\n`);\n return e = n[n.length - 1], e = e.replace(/\\S/g, \"\"), !1;\n }\n }), e;\n }\n rawSemicolon(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length && t.last.type === \"decl\" && (e = t.raws.semicolon, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawValue(r, e) {\n let t = r[e], s = r.raws[e];\n return s && s.value === t ? s.raw : t;\n }\n root(r) {\n this.body(r), r.raws.after && this.builder(r.raws.after);\n }\n rule(r) {\n this.block(r, this.rawValue(r, \"selector\")), r.raws.ownSemicolon && this.builder(r.raws.ownSemicolon, r, \"end\");\n }\n stringify(r, e) {\n if (!this[r.type])\n throw new Error(\n \"Unknown AST node type \" + r.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n this[r.type](r, e);\n }\n};\nvar Ri = Br;\nBr.default = Br;\nlet cl = Ri;\nfunction Vr(r, e) {\n new cl(e).stringify(r);\n}\nvar mr = Vr;\nVr.default = Vr;\nlet { isClean: Ct, my: ul } = ft, hl = Is, pl = Ri, dl = mr;\nfunction zr(r, e) {\n let t = new r.constructor();\n for (let s in r) {\n if (!Object.prototype.hasOwnProperty.call(r, s) || s === \"proxyCache\") continue;\n let n = r[s], i = typeof n;\n s === \"parent\" && i === \"object\" ? e && (t[s] = e) : s === \"source\" ? t[s] = n : Array.isArray(n) ? t[s] = n.map((a) => zr(a, t)) : (i === \"object\" && n !== null && (n = zr(n)), t[s] = n);\n }\n return t;\n}\nlet jr = class {\n constructor(e = {}) {\n this.raws = {}, this[Ct] = !1, this[ul] = !0;\n for (let t in e)\n if (t === \"nodes\") {\n this.nodes = [];\n for (let s of e[t])\n typeof s.clone == \"function\" ? this.append(s.clone()) : this.append(s);\n } else\n this[t] = e[t];\n }\n addToError(e) {\n if (e.postcssNode = this, e.stack && this.source && /\\n\\s{4}at /.test(e.stack)) {\n let t = this.source;\n e.stack = e.stack.replace(\n /\\n\\s{4}at /,\n `$&${t.input.from}:${t.start.line}:${t.start.column}$&`\n );\n }\n return e;\n }\n after(e) {\n return this.parent.insertAfter(this, e), this;\n }\n assign(e = {}) {\n for (let t in e)\n this[t] = e[t];\n return this;\n }\n before(e) {\n return this.parent.insertBefore(this, e), this;\n }\n cleanRaws(e) {\n delete this.raws.before, delete this.raws.after, e || delete this.raws.between;\n }\n clone(e = {}) {\n let t = zr(this);\n for (let s in e)\n t[s] = e[s];\n return t;\n }\n cloneAfter(e = {}) {\n let t = this.clone(e);\n return this.parent.insertAfter(this, t), t;\n }\n cloneBefore(e = {}) {\n let t = this.clone(e);\n return this.parent.insertBefore(this, t), t;\n }\n error(e, t = {}) {\n if (this.source) {\n let { end: s, start: n } = this.rangeBy(t);\n return this.source.input.error(\n e,\n { column: n.column, line: n.line },\n { column: s.column, line: s.line },\n t\n );\n }\n return new hl(e);\n }\n getProxyProcessor() {\n return {\n get(e, t) {\n return t === \"proxyOf\" ? e : t === \"root\" ? () => e.root().toProxy() : e[t];\n },\n set(e, t, s) {\n return e[t] === s || (e[t] = s, (t === \"prop\" || t === \"value\" || t === \"name\" || t === \"params\" || t === \"important\" || /* c8 ignore next */\n t === \"text\") && e.markDirty()), !0;\n }\n };\n }\n markDirty() {\n if (this[Ct]) {\n this[Ct] = !1;\n let e = this;\n for (; e = e.parent; )\n e[Ct] = !1;\n }\n }\n next() {\n if (!this.parent) return;\n let e = this.parent.index(this);\n return this.parent.nodes[e + 1];\n }\n positionBy(e, t) {\n let s = this.source.start;\n if (e.index)\n s = this.positionInside(e.index, t);\n else if (e.word) {\n t = this.toString();\n let n = t.indexOf(e.word);\n n !== -1 && (s = this.positionInside(n, t));\n }\n return s;\n }\n positionInside(e, t) {\n let s = t || this.toString(), n = this.source.start.column, i = this.source.start.line;\n for (let a = 0; a < e; a++)\n s[a] === `\n` ? (n = 1, i += 1) : n += 1;\n return { column: n, line: i };\n }\n prev() {\n if (!this.parent) return;\n let e = this.parent.index(this);\n return this.parent.nodes[e - 1];\n }\n rangeBy(e) {\n let t = {\n column: this.source.start.column,\n line: this.source.start.line\n }, s = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: t.column + 1,\n line: t.line\n };\n if (e.word) {\n let n = this.toString(), i = n.indexOf(e.word);\n i !== -1 && (t = this.positionInside(i, n), s = this.positionInside(i + e.word.length, n));\n } else\n e.start ? t = {\n column: e.start.column,\n line: e.start.line\n } : e.index && (t = this.positionInside(e.index)), e.end ? s = {\n column: e.end.column,\n line: e.end.line\n } : typeof e.endIndex == \"number\" ? s = this.positionInside(e.endIndex) : e.index && (s = this.positionInside(e.index + 1));\n return (s.line < t.line || s.line === t.line && s.column <= t.column) && (s = { column: t.column + 1, line: t.line }), { end: s, start: t };\n }\n raw(e, t) {\n return new pl().raw(this, e, t);\n }\n remove() {\n return this.parent && this.parent.removeChild(this), this.parent = void 0, this;\n }\n replaceWith(...e) {\n if (this.parent) {\n let t = this, s = !1;\n for (let n of e)\n n === this ? s = !0 : s ? (this.parent.insertAfter(t, n), t = n) : this.parent.insertBefore(t, n);\n s || this.remove();\n }\n return this;\n }\n root() {\n let e = this;\n for (; e.parent && e.parent.type !== \"document\"; )\n e = e.parent;\n return e;\n }\n toJSON(e, t) {\n let s = {}, n = t == null;\n t = t || /* @__PURE__ */ new Map();\n let i = 0;\n for (let a in this) {\n if (!Object.prototype.hasOwnProperty.call(this, a) || a === \"parent\" || a === \"proxyCache\") continue;\n let o = this[a];\n if (Array.isArray(o))\n s[a] = o.map((l) => typeof l == \"object\" && l.toJSON ? l.toJSON(null, t) : l);\n else if (typeof o == \"object\" && o.toJSON)\n s[a] = o.toJSON(null, t);\n else if (a === \"source\") {\n let l = t.get(o.input);\n l == null && (l = i, t.set(o.input, i), i++), s[a] = {\n end: o.end,\n inputId: l,\n start: o.start\n };\n } else\n s[a] = o;\n }\n return n && (s.inputs = [...t.keys()].map((a) => a.toJSON())), s;\n }\n toProxy() {\n return this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), this.proxyCache;\n }\n toString(e = dl) {\n e.stringify && (e = e.stringify);\n let t = \"\";\n return e(this, (s) => {\n t += s;\n }), t;\n }\n warn(e, t, s) {\n let n = { node: this };\n for (let i in s) n[i] = s[i];\n return e.warn(t, n);\n }\n get proxyOf() {\n return this;\n }\n};\nvar gr = jr;\njr.default = jr;\nlet fl = gr, Gr = class extends fl {\n constructor(e) {\n e && typeof e.value < \"u\" && typeof e.value != \"string\" && (e = { ...e, value: String(e.value) }), super(e), this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar yr = Gr;\nGr.default = Gr;\nlet ml = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\", gl = (r, e = 21) => (t = e) => {\n let s = \"\", n = t;\n for (; n--; )\n s += r[Math.random() * r.length | 0];\n return s;\n}, yl = (r = 21) => {\n let e = \"\", t = r;\n for (; t--; )\n e += ml[Math.random() * 64 | 0];\n return e;\n};\nvar wl = { nanoid: yl, customAlphabet: gl };\nlet { SourceMapConsumer: wn, SourceMapGenerator: bn } = ie, { existsSync: bl, readFileSync: Sl } = ie, { dirname: Nr, join: vl } = ie;\nfunction Cl(r) {\n return Buffer ? Buffer.from(r, \"base64\").toString() : window.atob(r);\n}\nlet Hr = class {\n constructor(e, t) {\n if (t.map === !1) return;\n this.loadAnnotation(e), this.inline = this.startWith(this.annotation, \"data:\");\n let s = t.map ? t.map.prev : void 0, n = this.loadMap(t.from, s);\n !this.mapFile && t.from && (this.mapFile = t.from), this.mapFile && (this.root = Nr(this.mapFile)), n && (this.text = n);\n }\n consumer() {\n return this.consumerCache || (this.consumerCache = new wn(this.text)), this.consumerCache;\n }\n decodeInline(e) {\n let t = /^data:application\\/json;charset=utf-?8;base64,/, s = /^data:application\\/json;base64,/, n = /^data:application\\/json;charset=utf-?8,/, i = /^data:application\\/json,/;\n if (n.test(e) || i.test(e))\n return decodeURIComponent(e.substr(RegExp.lastMatch.length));\n if (t.test(e) || s.test(e))\n return Cl(e.substr(RegExp.lastMatch.length));\n let a = e.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + a);\n }\n getAnnotationURL(e) {\n return e.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(e) {\n return typeof e != \"object\" ? !1 : typeof e.mappings == \"string\" || typeof e._mappings == \"string\" || Array.isArray(e.sections);\n }\n loadAnnotation(e) {\n let t = e.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!t) return;\n let s = e.lastIndexOf(t.pop()), n = e.indexOf(\"*/\", s);\n s > -1 && n > -1 && (this.annotation = this.getAnnotationURL(e.substring(s, n)));\n }\n loadFile(e) {\n if (this.root = Nr(e), bl(e))\n return this.mapFile = e, Sl(e, \"utf-8\").toString().trim();\n }\n loadMap(e, t) {\n if (t === !1) return !1;\n if (t) {\n if (typeof t == \"string\")\n return t;\n if (typeof t == \"function\") {\n let s = t(e);\n if (s) {\n let n = this.loadFile(s);\n if (!n)\n throw new Error(\n \"Unable to load previous source map: \" + s.toString()\n );\n return n;\n }\n } else {\n if (t instanceof wn)\n return bn.fromSourceMap(t).toString();\n if (t instanceof bn)\n return t.toString();\n if (this.isMap(t))\n return JSON.stringify(t);\n throw new Error(\n \"Unsupported previous source map format: \" + t.toString()\n );\n }\n } else {\n if (this.inline)\n return this.decodeInline(this.annotation);\n if (this.annotation) {\n let s = this.annotation;\n return e && (s = vl(Nr(e), s)), this.loadFile(s);\n }\n }\n }\n startWith(e, t) {\n return e ? e.substr(0, t.length) === t : !1;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar Di = Hr;\nHr.default = Hr;\nlet { SourceMapConsumer: Ml, SourceMapGenerator: xl } = ie, { fileURLToPath: Sn, pathToFileURL: Mt } = ie, { isAbsolute: Yr, resolve: Xr } = ie, { nanoid: El } = wl, Or = ie, vn = Is, Il = Di, Rr = Symbol(\"fromOffsetCache\"), kl = !!(Ml && xl), Cn = !!(Xr && Yr), er = class {\n constructor(e, t = {}) {\n if (e === null || typeof e > \"u\" || typeof e == \"object\" && !e.toString)\n throw new Error(`PostCSS received ${e} instead of CSS string`);\n if (this.css = e.toString(), this.css[0] === \"\\uFEFF\" || this.css[0] === \"\" ? (this.hasBOM = !0, this.css = this.css.slice(1)) : this.hasBOM = !1, t.from && (!Cn || /^\\w+:\\/\\//.test(t.from) || Yr(t.from) ? this.file = t.from : this.file = Xr(t.from)), Cn && kl) {\n let s = new Il(this.css, t);\n if (s.text) {\n this.map = s;\n let n = s.consumer().file;\n !this.file && n && (this.file = this.mapResolve(n));\n }\n }\n this.file || (this.id = \"<input css \" + El(6) + \">\"), this.map && (this.map.file = this.from);\n }\n error(e, t, s, n = {}) {\n let i, a, o;\n if (t && typeof t == \"object\") {\n let c = t, u = s;\n if (typeof c.offset == \"number\") {\n let p = this.fromOffset(c.offset);\n t = p.line, s = p.col;\n } else\n t = c.line, s = c.column;\n if (typeof u.offset == \"number\") {\n let p = this.fromOffset(u.offset);\n a = p.line, o = p.col;\n } else\n a = u.line, o = u.column;\n } else if (!s) {\n let c = this.fromOffset(t);\n t = c.line, s = c.col;\n }\n let l = this.origin(t, s, a, o);\n return l ? i = new vn(\n e,\n l.endLine === void 0 ? l.line : { column: l.column, line: l.line },\n l.endLine === void 0 ? l.column : { column: l.endColumn, line: l.endLine },\n l.source,\n l.file,\n n.plugin\n ) : i = new vn(\n e,\n a === void 0 ? t : { column: s, line: t },\n a === void 0 ? s : { column: o, line: a },\n this.css,\n this.file,\n n.plugin\n ), i.input = { column: s, endColumn: o, endLine: a, line: t, source: this.css }, this.file && (Mt && (i.input.url = Mt(this.file).toString()), i.input.file = this.file), i;\n }\n fromOffset(e) {\n let t, s;\n if (this[Rr])\n s = this[Rr];\n else {\n let i = this.css.split(`\n`);\n s = new Array(i.length);\n let a = 0;\n for (let o = 0, l = i.length; o < l; o++)\n s[o] = a, a += i[o].length + 1;\n this[Rr] = s;\n }\n t = s[s.length - 1];\n let n = 0;\n if (e >= t)\n n = s.length - 1;\n else {\n let i = s.length - 2, a;\n for (; n < i; )\n if (a = n + (i - n >> 1), e < s[a])\n i = a - 1;\n else if (e >= s[a + 1])\n n = a + 1;\n else {\n n = a;\n break;\n }\n }\n return {\n col: e - s[n] + 1,\n line: n + 1\n };\n }\n mapResolve(e) {\n return /^\\w+:\\/\\//.test(e) ? e : Xr(this.map.consumer().sourceRoot || this.map.root || \".\", e);\n }\n origin(e, t, s, n) {\n if (!this.map) return !1;\n let i = this.map.consumer(), a = i.originalPositionFor({ column: t, line: e });\n if (!a.source) return !1;\n let o;\n typeof s == \"number\" && (o = i.originalPositionFor({ column: n, line: s }));\n let l;\n Yr(a.source) ? l = Mt(a.source) : l = new URL(\n a.source,\n this.map.consumer().sourceRoot || Mt(this.map.mapFile)\n );\n let c = {\n column: a.column,\n endColumn: o && o.column,\n endLine: o && o.line,\n line: a.line,\n url: l.toString()\n };\n if (l.protocol === \"file:\")\n if (Sn)\n c.file = Sn(l);\n else\n throw new Error(\"file: protocol is not available in this PostCSS build\");\n let u = i.sourceContentFor(a.source);\n return u && (c.source = u), c;\n }\n toJSON() {\n let e = {};\n for (let t of [\"hasBOM\", \"css\", \"file\", \"id\"])\n this[t] != null && (e[t] = this[t]);\n return this.map && (e.map = { ...this.map }, e.map.consumerCache && (e.map.consumerCache = void 0)), e;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar wr = er;\ner.default = er;\nOr && Or.registerInput && Or.registerInput(er);\nlet { SourceMapConsumer: Ai, SourceMapGenerator: zt } = ie, { dirname: jt, relative: Li, resolve: Pi, sep: Fi } = ie, { pathToFileURL: Mn } = ie, Tl = wr, Nl = !!(Ai && zt), Ol = !!(jt && Pi && Li && Fi), Rl = class {\n constructor(e, t, s, n) {\n this.stringify = e, this.mapOpts = s.map || {}, this.root = t, this.opts = s, this.css = n, this.originalCSS = n, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute, this.memoizedFileURLs = /* @__PURE__ */ new Map(), this.memoizedPaths = /* @__PURE__ */ new Map(), this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let e;\n this.isInline() ? e = \"data:application/json;base64,\" + this.toBase64(this.map.toString()) : typeof this.mapOpts.annotation == \"string\" ? e = this.mapOpts.annotation : typeof this.mapOpts.annotation == \"function\" ? e = this.mapOpts.annotation(this.opts.to, this.root) : e = this.outputFile() + \".map\";\n let t = `\n`;\n this.css.includes(`\\r\n`) && (t = `\\r\n`), this.css += t + \"/*# sourceMappingURL=\" + e + \" */\";\n }\n applyPrevMaps() {\n for (let e of this.previous()) {\n let t = this.toUrl(this.path(e.file)), s = e.root || jt(e.file), n;\n this.mapOpts.sourcesContent === !1 ? (n = new Ai(e.text), n.sourcesContent && (n.sourcesContent = null)) : n = e.consumer(), this.map.applySourceMap(n, t, this.toUrl(this.path(s)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation !== !1)\n if (this.root) {\n let e;\n for (let t = this.root.nodes.length - 1; t >= 0; t--)\n e = this.root.nodes[t], e.type === \"comment\" && e.text.indexOf(\"# sourceMappingURL=\") === 0 && this.root.removeChild(t);\n } else this.css && (this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\"));\n }\n generate() {\n if (this.clearAnnotation(), Ol && Nl && this.isMap())\n return this.generateMap();\n {\n let e = \"\";\n return this.stringify(this.root, (t) => {\n e += t;\n }), [e];\n }\n }\n generateMap() {\n if (this.root)\n this.generateString();\n else if (this.previous().length === 1) {\n let e = this.previous()[0].consumer();\n e.file = this.outputFile(), this.map = zt.fromSourceMap(e, {\n ignoreInvalidMapping: !0\n });\n } else\n this.map = new zt({\n file: this.outputFile(),\n ignoreInvalidMapping: !0\n }), this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n return this.isSourcesContent() && this.setSourcesContent(), this.root && this.previous().length > 0 && this.applyPrevMaps(), this.isAnnotation() && this.addAnnotation(), this.isInline() ? [this.css] : [this.css, this.map];\n }\n generateString() {\n this.css = \"\", this.map = new zt({\n file: this.outputFile(),\n ignoreInvalidMapping: !0\n });\n let e = 1, t = 1, s = \"<no source>\", n = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n }, i, a;\n this.stringify(this.root, (o, l, c) => {\n if (this.css += o, l && c !== \"end\" && (n.generated.line = e, n.generated.column = t - 1, l.source && l.source.start ? (n.source = this.sourcePath(l), n.original.line = l.source.start.line, n.original.column = l.source.start.column - 1, this.map.addMapping(n)) : (n.source = s, n.original.line = 1, n.original.column = 0, this.map.addMapping(n))), i = o.match(/\\n/g), i ? (e += i.length, a = o.lastIndexOf(`\n`), t = o.length - a) : t += o.length, l && c !== \"start\") {\n let u = l.parent || { raws: {} };\n (!(l.type === \"decl\" || l.type === \"atrule\" && !l.nodes) || l !== u.last || u.raws.semicolon) && (l.source && l.source.end ? (n.source = this.sourcePath(l), n.original.line = l.source.end.line, n.original.column = l.source.end.column - 1, n.generated.line = e, n.generated.column = t - 2, this.map.addMapping(n)) : (n.source = s, n.original.line = 1, n.original.column = 0, n.generated.line = e, n.generated.column = t - 1, this.map.addMapping(n)));\n }\n });\n }\n isAnnotation() {\n return this.isInline() ? !0 : typeof this.mapOpts.annotation < \"u\" ? this.mapOpts.annotation : this.previous().length ? this.previous().some((e) => e.annotation) : !0;\n }\n isInline() {\n if (typeof this.mapOpts.inline < \"u\")\n return this.mapOpts.inline;\n let e = this.mapOpts.annotation;\n return typeof e < \"u\" && e !== !0 ? !1 : this.previous().length ? this.previous().some((t) => t.inline) : !0;\n }\n isMap() {\n return typeof this.opts.map < \"u\" ? !!this.opts.map : this.previous().length > 0;\n }\n isSourcesContent() {\n return typeof this.mapOpts.sourcesContent < \"u\" ? this.mapOpts.sourcesContent : this.previous().length ? this.previous().some((e) => e.withContent()) : !0;\n }\n outputFile() {\n return this.opts.to ? this.path(this.opts.to) : this.opts.from ? this.path(this.opts.from) : \"to.css\";\n }\n path(e) {\n if (this.mapOpts.absolute || e.charCodeAt(0) === 60 || /^\\w+:\\/\\//.test(e)) return e;\n let t = this.memoizedPaths.get(e);\n if (t) return t;\n let s = this.opts.to ? jt(this.opts.to) : \".\";\n typeof this.mapOpts.annotation == \"string\" && (s = jt(Pi(s, this.mapOpts.annotation)));\n let n = Li(s, e);\n return this.memoizedPaths.set(e, n), n;\n }\n previous() {\n if (!this.previousMaps)\n if (this.previousMaps = [], this.root)\n this.root.walk((e) => {\n if (e.source && e.source.input.map) {\n let t = e.source.input.map;\n this.previousMaps.includes(t) || this.previousMaps.push(t);\n }\n });\n else {\n let e = new Tl(this.originalCSS, this.opts);\n e.map && this.previousMaps.push(e.map);\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let e = {};\n if (this.root)\n this.root.walk((t) => {\n if (t.source) {\n let s = t.source.input.from;\n if (s && !e[s]) {\n e[s] = !0;\n let n = this.usesFileUrls ? this.toFileUrl(s) : this.toUrl(this.path(s));\n this.map.setSourceContent(n, t.source.input.css);\n }\n }\n });\n else if (this.css) {\n let t = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(t, this.css);\n }\n }\n sourcePath(e) {\n return this.mapOpts.from ? this.toUrl(this.mapOpts.from) : this.usesFileUrls ? this.toFileUrl(e.source.input.from) : this.toUrl(this.path(e.source.input.from));\n }\n toBase64(e) {\n return Buffer ? Buffer.from(e).toString(\"base64\") : window.btoa(unescape(encodeURIComponent(e)));\n }\n toFileUrl(e) {\n let t = this.memoizedFileURLs.get(e);\n if (t) return t;\n if (Mn) {\n let s = Mn(e).toString();\n return this.memoizedFileURLs.set(e, s), s;\n } else\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n toUrl(e) {\n let t = this.memoizedURLs.get(e);\n if (t) return t;\n Fi === \"\\\\\" && (e = e.replace(/\\\\/g, \"/\"));\n let s = encodeURI(e).replace(/[#?]/g, encodeURIComponent);\n return this.memoizedURLs.set(e, s), s;\n }\n};\nvar _i = Rl;\nlet Dl = gr, Zr = class extends Dl {\n constructor(e) {\n super(e), this.type = \"comment\";\n }\n};\nvar br = Zr;\nZr.default = Zr;\nlet { isClean: $i, my: Ui } = ft, Wi = yr, Bi = br, Al = gr, Vi, ks, Ts, zi;\nfunction ji(r) {\n return r.map((e) => (e.nodes && (e.nodes = ji(e.nodes)), delete e.source, e));\n}\nfunction Gi(r) {\n if (r[$i] = !1, r.proxyOf.nodes)\n for (let e of r.proxyOf.nodes)\n Gi(e);\n}\nlet de = class Hi extends Al {\n append(...e) {\n for (let t of e) {\n let s = this.normalize(t, this.last);\n for (let n of s) this.proxyOf.nodes.push(n);\n }\n return this.markDirty(), this;\n }\n cleanRaws(e) {\n if (super.cleanRaws(e), this.nodes)\n for (let t of this.nodes) t.cleanRaws(e);\n }\n each(e) {\n if (!this.proxyOf.nodes) return;\n let t = this.getIterator(), s, n;\n for (; this.indexes[t] < this.proxyOf.nodes.length && (s = this.indexes[t], n = e(this.proxyOf.nodes[s], s), n !== !1); )\n this.indexes[t] += 1;\n return delete this.indexes[t], n;\n }\n every(e) {\n return this.nodes.every(e);\n }\n getIterator() {\n this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1;\n let e = this.lastEach;\n return this.indexes[e] = 0, e;\n }\n getProxyProcessor() {\n return {\n get(e, t) {\n return t === \"proxyOf\" ? e : e[t] ? t === \"each\" || typeof t == \"string\" && t.startsWith(\"walk\") ? (...s) => e[t](\n ...s.map((n) => typeof n == \"function\" ? (i, a) => n(i.toProxy(), a) : n)\n ) : t === \"every\" || t === \"some\" ? (s) => e[t](\n (n, ...i) => s(n.toProxy(), ...i)\n ) : t === \"root\" ? () => e.root().toProxy() : t === \"nodes\" ? e.nodes.map((s) => s.toProxy()) : t === \"first\" || t === \"last\" ? e[t].toProxy() : e[t] : e[t];\n },\n set(e, t, s) {\n return e[t] === s || (e[t] = s, (t === \"name\" || t === \"params\" || t === \"selector\") && e.markDirty()), !0;\n }\n };\n }\n index(e) {\n return typeof e == \"number\" ? e : (e.proxyOf && (e = e.proxyOf), this.proxyOf.nodes.indexOf(e));\n }\n insertAfter(e, t) {\n let s = this.index(e), n = this.normalize(t, this.proxyOf.nodes[s]).reverse();\n s = this.index(e);\n for (let a of n) this.proxyOf.nodes.splice(s + 1, 0, a);\n let i;\n for (let a in this.indexes)\n i = this.indexes[a], s < i && (this.indexes[a] = i + n.length);\n return this.markDirty(), this;\n }\n insertBefore(e, t) {\n let s = this.index(e), n = s === 0 ? \"prepend\" : !1, i = this.normalize(t, this.proxyOf.nodes[s], n).reverse();\n s = this.index(e);\n for (let o of i) this.proxyOf.nodes.splice(s, 0, o);\n let a;\n for (let o in this.indexes)\n a = this.indexes[o], s <= a && (this.indexes[o] = a + i.length);\n return this.markDirty(), this;\n }\n normalize(e, t) {\n if (typeof e == \"string\")\n e = ji(Vi(e).nodes);\n else if (typeof e > \"u\")\n e = [];\n else if (Array.isArray(e)) {\n e = e.slice(0);\n for (let s of e)\n s.parent && s.parent.removeChild(s, \"ignore\");\n } else if (e.type === \"root\" && this.type !== \"document\") {\n e = e.nodes.slice(0);\n for (let s of e)\n s.parent && s.parent.removeChild(s, \"ignore\");\n } else if (e.type)\n e = [e];\n else if (e.prop) {\n if (typeof e.value > \"u\")\n throw new Error(\"Value field is missed in node creation\");\n typeof e.value != \"string\" && (e.value = String(e.value)), e = [new Wi(e)];\n } else if (e.selector)\n e = [new ks(e)];\n else if (e.name)\n e = [new Ts(e)];\n else if (e.text)\n e = [new Bi(e)];\n else\n throw new Error(\"Unknown node type in node creation\");\n return e.map((s) => (s[Ui] || Hi.rebuild(s), s = s.proxyOf, s.parent && s.parent.removeChild(s), s[$i] && Gi(s), typeof s.raws.before > \"u\" && t && typeof t.raws.before < \"u\" && (s.raws.before = t.raws.before.replace(/\\S/g, \"\")), s.parent = this.proxyOf, s));\n }\n prepend(...e) {\n e = e.reverse();\n for (let t of e) {\n let s = this.normalize(t, this.first, \"prepend\").reverse();\n for (let n of s) this.proxyOf.nodes.unshift(n);\n for (let n in this.indexes)\n this.indexes[n] = this.indexes[n] + s.length;\n }\n return this.markDirty(), this;\n }\n push(e) {\n return e.parent = this, this.proxyOf.nodes.push(e), this;\n }\n removeAll() {\n for (let e of this.proxyOf.nodes) e.parent = void 0;\n return this.proxyOf.nodes = [], this.markDirty(), this;\n }\n removeChild(e) {\n e = this.index(e), this.proxyOf.nodes[e].parent = void 0, this.proxyOf.nodes.splice(e, 1);\n let t;\n for (let s in this.indexes)\n t = this.indexes[s], t >= e && (this.indexes[s] = t - 1);\n return this.markDirty(), this;\n }\n replaceValues(e, t, s) {\n return s || (s = t, t = {}), this.walkDecls((n) => {\n t.props && !t.props.includes(n.prop) || t.fast && !n.value.includes(t.fast) || (n.value = n.value.replace(e, s));\n }), this.markDirty(), this;\n }\n some(e) {\n return this.nodes.some(e);\n }\n walk(e) {\n return this.each((t, s) => {\n let n;\n try {\n n = e(t, s);\n } catch (i) {\n throw t.addToError(i);\n }\n return n !== !1 && t.walk && (n = t.walk(e)), n;\n });\n }\n walkAtRules(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"atrule\" && e.test(s.name))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"atrule\" && s.name === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"atrule\")\n return t(s, n);\n }));\n }\n walkComments(e) {\n return this.walk((t, s) => {\n if (t.type === \"comment\")\n return e(t, s);\n });\n }\n walkDecls(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"decl\" && e.test(s.prop))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"decl\" && s.prop === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"decl\")\n return t(s, n);\n }));\n }\n walkRules(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"rule\" && e.test(s.selector))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"rule\" && s.selector === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"rule\")\n return t(s, n);\n }));\n }\n get first() {\n if (this.proxyOf.nodes)\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (this.proxyOf.nodes)\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nde.registerParse = (r) => {\n Vi = r;\n};\nde.registerRule = (r) => {\n ks = r;\n};\nde.registerAtRule = (r) => {\n Ts = r;\n};\nde.registerRoot = (r) => {\n zi = r;\n};\nvar Ie = de;\nde.default = de;\nde.rebuild = (r) => {\n r.type === \"atrule\" ? Object.setPrototypeOf(r, Ts.prototype) : r.type === \"rule\" ? Object.setPrototypeOf(r, ks.prototype) : r.type === \"decl\" ? Object.setPrototypeOf(r, Wi.prototype) : r.type === \"comment\" ? Object.setPrototypeOf(r, Bi.prototype) : r.type === \"root\" && Object.setPrototypeOf(r, zi.prototype), r[Ui] = !0, r.nodes && r.nodes.forEach((e) => {\n de.rebuild(e);\n });\n};\nlet Ll = Ie, Yi, Xi, it = class extends Ll {\n constructor(e) {\n super({ type: \"document\", ...e }), this.nodes || (this.nodes = []);\n }\n toResult(e = {}) {\n return new Yi(new Xi(), this, e).stringify();\n }\n};\nit.registerLazyResult = (r) => {\n Yi = r;\n};\nit.registerProcessor = (r) => {\n Xi = r;\n};\nvar Ns = it;\nit.default = it;\nlet xn = {};\nvar Zi = function(r) {\n xn[r] || (xn[r] = !0, typeof console < \"u\" && console.warn && console.warn(r));\n};\nlet Jr = class {\n constructor(e, t = {}) {\n if (this.type = \"warning\", this.text = e, t.node && t.node.source) {\n let s = t.node.rangeBy(t);\n this.line = s.start.line, this.column = s.start.column, this.endLine = s.end.line, this.endColumn = s.end.column;\n }\n for (let s in t) this[s] = t[s];\n }\n toString() {\n return this.node ? this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message : this.plugin ? this.plugin + \": \" + this.text : this.text;\n }\n};\nvar Ji = Jr;\nJr.default = Jr;\nlet Pl = Ji, Qr = class {\n constructor(e, t, s) {\n this.processor = e, this.messages = [], this.root = t, this.opts = s, this.css = void 0, this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(e, t = {}) {\n t.plugin || this.lastPlugin && this.lastPlugin.postcssPlugin && (t.plugin = this.lastPlugin.postcssPlugin);\n let s = new Pl(e, t);\n return this.messages.push(s), s;\n }\n warnings() {\n return this.messages.filter((e) => e.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar Os = Qr;\nQr.default = Qr;\nconst Dr = 39, En = 34, xt = 92, In = 47, Et = 10, Ze = 32, It = 12, kt = 9, Tt = 13, Fl = 91, _l = 93, $l = 40, Ul = 41, Wl = 123, Bl = 125, Vl = 59, zl = 42, jl = 58, Gl = 64, Nt = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g, Ot = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g, Hl = /.[\\r\\n\"'(/\\\\]/, kn = /[\\da-f]/i;\nvar Yl = function(r, e = {}) {\n let t = r.css.valueOf(), s = e.ignoreErrors, n, i, a, o, l, c, u, p, d, f, y = t.length, h = 0, b = [], g = [];\n function S() {\n return h;\n }\n function m(O) {\n throw r.error(\"Unclosed \" + O, h);\n }\n function v() {\n return g.length === 0 && h >= y;\n }\n function E(O) {\n if (g.length) return g.pop();\n if (h >= y) return;\n let $ = O ? O.ignoreUnclosed : !1;\n switch (n = t.charCodeAt(h), n) {\n case Et:\n case Ze:\n case kt:\n case Tt:\n case It: {\n i = h;\n do\n i += 1, n = t.charCodeAt(i);\n while (n === Ze || n === Et || n === kt || n === Tt || n === It);\n f = [\"space\", t.slice(h, i)], h = i - 1;\n break;\n }\n case Fl:\n case _l:\n case Wl:\n case Bl:\n case jl:\n case Vl:\n case Ul: {\n let Y = String.fromCharCode(n);\n f = [Y, Y, h];\n break;\n }\n case $l: {\n if (p = b.length ? b.pop()[1] : \"\", d = t.charCodeAt(h + 1), p === \"url\" && d !== Dr && d !== En && d !== Ze && d !== Et && d !== kt && d !== It && d !== Tt) {\n i = h;\n do {\n if (c = !1, i = t.indexOf(\")\", i + 1), i === -1)\n if (s || $) {\n i = h;\n break;\n } else\n m(\"bracket\");\n for (u = i; t.charCodeAt(u - 1) === xt; )\n u -= 1, c = !c;\n } while (c);\n f = [\"brackets\", t.slice(h, i + 1), h, i], h = i;\n } else\n i = t.indexOf(\")\", h + 1), o = t.slice(h, i + 1), i === -1 || Hl.test(o) ? f = [\"(\", \"(\", h] : (f = [\"brackets\", o, h, i], h = i);\n break;\n }\n case Dr:\n case En: {\n a = n === Dr ? \"'\" : '\"', i = h;\n do {\n if (c = !1, i = t.indexOf(a, i + 1), i === -1)\n if (s || $) {\n i = h + 1;\n break;\n } else\n m(\"string\");\n for (u = i; t.charCodeAt(u - 1) === xt; )\n u -= 1, c = !c;\n } while (c);\n f = [\"string\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n case Gl: {\n Nt.lastIndex = h + 1, Nt.test(t), Nt.lastIndex === 0 ? i = t.length - 1 : i = Nt.lastIndex - 2, f = [\"at-word\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n case xt: {\n for (i = h, l = !0; t.charCodeAt(i + 1) === xt; )\n i += 1, l = !l;\n if (n = t.charCodeAt(i + 1), l && n !== In && n !== Ze && n !== Et && n !== kt && n !== Tt && n !== It && (i += 1, kn.test(t.charAt(i)))) {\n for (; kn.test(t.charAt(i + 1)); )\n i += 1;\n t.charCodeAt(i + 1) === Ze && (i += 1);\n }\n f = [\"word\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n default: {\n n === In && t.charCodeAt(h + 1) === zl ? (i = t.indexOf(\"*/\", h + 2) + 1, i === 0 && (s || $ ? i = t.length : m(\"comment\")), f = [\"comment\", t.slice(h, i + 1), h, i], h = i) : (Ot.lastIndex = h + 1, Ot.test(t), Ot.lastIndex === 0 ? i = t.length - 1 : i = Ot.lastIndex - 2, f = [\"word\", t.slice(h, i + 1), h, i], b.push(f), h = i);\n break;\n }\n }\n return h++, f;\n }\n function T(O) {\n g.push(O);\n }\n return {\n back: T,\n endOfFile: v,\n nextToken: E,\n position: S\n };\n};\nlet Qi = Ie, tr = class extends Qi {\n constructor(e) {\n super(e), this.type = \"atrule\";\n }\n append(...e) {\n return this.proxyOf.nodes || (this.nodes = []), super.append(...e);\n }\n prepend(...e) {\n return this.proxyOf.nodes || (this.nodes = []), super.prepend(...e);\n }\n};\nvar Rs = tr;\ntr.default = tr;\nQi.registerAtRule(tr);\nlet Ki = Ie, qi, eo, We = class extends Ki {\n constructor(e) {\n super(e), this.type = \"root\", this.nodes || (this.nodes = []);\n }\n normalize(e, t, s) {\n let n = super.normalize(e);\n if (t) {\n if (s === \"prepend\")\n this.nodes.length > 1 ? t.raws.before = this.nodes[1].raws.before : delete t.raws.before;\n else if (this.first !== t)\n for (let i of n)\n i.raws.before = t.raws.before;\n }\n return n;\n }\n removeChild(e, t) {\n let s = this.index(e);\n return !t && s === 0 && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[s].raws.before), super.removeChild(e);\n }\n toResult(e = {}) {\n return new qi(new eo(), this, e).stringify();\n }\n};\nWe.registerLazyResult = (r) => {\n qi = r;\n};\nWe.registerProcessor = (r) => {\n eo = r;\n};\nvar mt = We;\nWe.default = We;\nKi.registerRoot(We);\nlet ot = {\n comma(r) {\n return ot.split(r, [\",\"], !0);\n },\n space(r) {\n let e = [\" \", `\n`, \"\t\"];\n return ot.split(r, e);\n },\n split(r, e, t) {\n let s = [], n = \"\", i = !1, a = 0, o = !1, l = \"\", c = !1;\n for (let u of r)\n c ? c = !1 : u === \"\\\\\" ? c = !0 : o ? u === l && (o = !1) : u === '\"' || u === \"'\" ? (o = !0, l = u) : u === \"(\" ? a += 1 : u === \")\" ? a > 0 && (a -= 1) : a === 0 && e.includes(u) && (i = !0), i ? (n !== \"\" && s.push(n.trim()), n = \"\", i = !1) : n += u;\n return (t || n !== \"\") && s.push(n.trim()), s;\n }\n};\nvar to = ot;\not.default = ot;\nlet ro = Ie, Xl = to, rr = class extends ro {\n constructor(e) {\n super(e), this.type = \"rule\", this.nodes || (this.nodes = []);\n }\n get selectors() {\n return Xl.comma(this.selector);\n }\n set selectors(e) {\n let t = this.selector ? this.selector.match(/,\\s*/) : null, s = t ? t[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = e.join(s);\n }\n};\nvar Ds = rr;\nrr.default = rr;\nro.registerRule(rr);\nlet Zl = yr, Jl = Yl, Ql = br, Kl = Rs, ql = mt, Tn = Ds;\nconst Nn = {\n empty: !0,\n space: !0\n};\nfunction ec(r) {\n for (let e = r.length - 1; e >= 0; e--) {\n let t = r[e], s = t[3] || t[2];\n if (s) return s;\n }\n}\nlet tc = class {\n constructor(e) {\n this.input = e, this.root = new ql(), this.current = this.root, this.spaces = \"\", this.semicolon = !1, this.createTokenizer(), this.root.source = { input: e, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(e) {\n let t = new Kl();\n t.name = e[1].slice(1), t.name === \"\" && this.unnamedAtrule(t, e), this.init(t, e[2]);\n let s, n, i, a = !1, o = !1, l = [], c = [];\n for (; !this.tokenizer.endOfFile(); ) {\n if (e = this.tokenizer.nextToken(), s = e[0], s === \"(\" || s === \"[\" ? c.push(s === \"(\" ? \")\" : \"]\") : s === \"{\" && c.length > 0 ? c.push(\"}\") : s === c[c.length - 1] && c.pop(), c.length === 0)\n if (s === \";\") {\n t.source.end = this.getPosition(e[2]), t.source.end.offset++, this.semicolon = !0;\n break;\n } else if (s === \"{\") {\n o = !0;\n break;\n } else if (s === \"}\") {\n if (l.length > 0) {\n for (i = l.length - 1, n = l[i]; n && n[0] === \"space\"; )\n n = l[--i];\n n && (t.source.end = this.getPosition(n[3] || n[2]), t.source.end.offset++);\n }\n this.end(e);\n break;\n } else\n l.push(e);\n else\n l.push(e);\n if (this.tokenizer.endOfFile()) {\n a = !0;\n break;\n }\n }\n t.raws.between = this.spacesAndCommentsFromEnd(l), l.length ? (t.raws.afterName = this.spacesAndCommentsFromStart(l), this.raw(t, \"params\", l), a && (e = l[l.length - 1], t.source.end = this.getPosition(e[3] || e[2]), t.source.end.offset++, this.spaces = t.raws.between, t.raws.between = \"\")) : (t.raws.afterName = \"\", t.params = \"\"), o && (t.nodes = [], this.current = t);\n }\n checkMissedSemicolon(e) {\n let t = this.colon(e);\n if (t === !1) return;\n let s = 0, n;\n for (let i = t - 1; i >= 0 && (n = e[i], !(n[0] !== \"space\" && (s += 1, s === 2))); i--)\n ;\n throw this.input.error(\n \"Missed semicolon\",\n n[0] === \"word\" ? n[3] + 1 : n[2]\n );\n }\n colon(e) {\n let t = 0, s, n, i;\n for (let [a, o] of e.entries()) {\n if (s = o, n = s[0], n === \"(\" && (t += 1), n === \")\" && (t -= 1), t === 0 && n === \":\")\n if (!i)\n this.doubleColon(s);\n else {\n if (i[0] === \"word\" && i[1] === \"progid\")\n continue;\n return a;\n }\n i = s;\n }\n return !1;\n }\n comment(e) {\n let t = new Ql();\n this.init(t, e[2]), t.source.end = this.getPosition(e[3] || e[2]), t.source.end.offset++;\n let s = e[1].slice(2, -2);\n if (/^\\s*$/.test(s))\n t.text = \"\", t.raws.left = s, t.raws.right = \"\";\n else {\n let n = s.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n t.text = n[2], t.raws.left = n[1], t.raws.right = n[3];\n }\n }\n createTokenizer() {\n this.tokenizer = Jl(this.input);\n }\n decl(e, t) {\n let s = new Zl();\n this.init(s, e[0][2]);\n let n = e[e.length - 1];\n for (n[0] === \";\" && (this.semicolon = !0, e.pop()), s.source.end = this.getPosition(\n n[3] || n[2] || ec(e)\n ), s.source.end.offset++; e[0][0] !== \"word\"; )\n e.length === 1 && this.unknownWord(e), s.raws.before += e.shift()[1];\n for (s.source.start = this.getPosition(e[0][2]), s.prop = \"\"; e.length; ) {\n let l = e[0][0];\n if (l === \":\" || l === \"space\" || l === \"comment\")\n break;\n s.prop += e.shift()[1];\n }\n s.raws.between = \"\";\n let i;\n for (; e.length; )\n if (i = e.shift(), i[0] === \":\") {\n s.raws.between += i[1];\n break;\n } else\n i[0] === \"word\" && /\\w/.test(i[1]) && this.unknownWord([i]), s.raws.between += i[1];\n (s.prop[0] === \"_\" || s.prop[0] === \"*\") && (s.raws.before += s.prop[0], s.prop = s.prop.slice(1));\n let a = [], o;\n for (; e.length && (o = e[0][0], !(o !== \"space\" && o !== \"comment\")); )\n a.push(e.shift());\n this.precheckMissedSemicolon(e);\n for (let l = e.length - 1; l >= 0; l--) {\n if (i = e[l], i[1].toLowerCase() === \"!important\") {\n s.important = !0;\n let c = this.stringFrom(e, l);\n c = this.spacesFromEnd(e) + c, c !== \" !important\" && (s.raws.important = c);\n break;\n } else if (i[1].toLowerCase() === \"important\") {\n let c = e.slice(0), u = \"\";\n for (let p = l; p > 0; p--) {\n let d = c[p][0];\n if (u.trim().indexOf(\"!\") === 0 && d !== \"space\")\n break;\n u = c.pop()[1] + u;\n }\n u.trim().indexOf(\"!\") === 0 && (s.important = !0, s.raws.important = u, e = c);\n }\n if (i[0] !== \"space\" && i[0] !== \"comment\")\n break;\n }\n e.some((l) => l[0] !== \"space\" && l[0] !== \"comment\") && (s.raws.between += a.map((l) => l[1]).join(\"\"), a = []), this.raw(s, \"value\", a.concat(e), t), s.value.includes(\":\") && !t && this.checkMissedSemicolon(e);\n }\n doubleColon(e) {\n throw this.input.error(\n \"Double colon\",\n { offset: e[2] },\n { offset: e[2] + e[1].length }\n );\n }\n emptyRule(e) {\n let t = new Tn();\n this.init(t, e[2]), t.selector = \"\", t.raws.between = \"\", this.current = t;\n }\n end(e) {\n this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.semicolon = !1, this.current.raws.after = (this.current.raws.after || \"\") + this.spaces, this.spaces = \"\", this.current.parent ? (this.current.source.end = this.getPosition(e[2]), this.current.source.end.offset++, this.current = this.current.parent) : this.unexpectedClose(e);\n }\n endFile() {\n this.current.parent && this.unclosedBlock(), this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.current.raws.after = (this.current.raws.after || \"\") + this.spaces, this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(e) {\n if (this.spaces += e[1], this.current.nodes) {\n let t = this.current.nodes[this.current.nodes.length - 1];\n t && t.type === \"rule\" && !t.raws.ownSemicolon && (t.raws.ownSemicolon = this.spaces, this.spaces = \"\");\n }\n }\n // Helpers\n getPosition(e) {\n let t = this.input.fromOffset(e);\n return {\n column: t.col,\n line: t.line,\n offset: e\n };\n }\n init(e, t) {\n this.current.push(e), e.source = {\n input: this.input,\n start: this.getPosition(t)\n }, e.raws.before = this.spaces, this.spaces = \"\", e.type !== \"comment\" && (this.semicolon = !1);\n }\n other(e) {\n let t = !1, s = null, n = !1, i = null, a = [], o = e[1].startsWith(\"--\"), l = [], c = e;\n for (; c; ) {\n if (s = c[0], l.push(c), s === \"(\" || s === \"[\")\n i || (i = c), a.push(s === \"(\" ? \")\" : \"]\");\n else if (o && n && s === \"{\")\n i || (i = c), a.push(\"}\");\n else if (a.length === 0)\n if (s === \";\")\n if (n) {\n this.decl(l, o);\n return;\n } else\n break;\n else if (s === \"{\") {\n this.rule(l);\n return;\n } else if (s === \"}\") {\n this.tokenizer.back(l.pop()), t = !0;\n break;\n } else s === \":\" && (n = !0);\n else s === a[a.length - 1] && (a.pop(), a.length === 0 && (i = null));\n c = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile() && (t = !0), a.length > 0 && this.unclosedBracket(i), t && n) {\n if (!o)\n for (; l.length && (c = l[l.length - 1][0], !(c !== \"space\" && c !== \"comment\")); )\n this.tokenizer.back(l.pop());\n this.decl(l, o);\n } else\n this.unknownWord(l);\n }\n parse() {\n let e;\n for (; !this.tokenizer.endOfFile(); )\n switch (e = this.tokenizer.nextToken(), e[0]) {\n case \"space\":\n this.spaces += e[1];\n break;\n case \";\":\n this.freeSemicolon(e);\n break;\n case \"}\":\n this.end(e);\n break;\n case \"comment\":\n this.comment(e);\n break;\n case \"at-word\":\n this.atrule(e);\n break;\n case \"{\":\n this.emptyRule(e);\n break;\n default:\n this.other(e);\n break;\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(e, t, s, n) {\n let i, a, o = s.length, l = \"\", c = !0, u, p;\n for (let d = 0; d < o; d += 1)\n i = s[d], a = i[0], a === \"space\" && d === o - 1 && !n ? c = !1 : a === \"comment\" ? (p = s[d - 1] ? s[d - 1][0] : \"empty\", u = s[d + 1] ? s[d + 1][0] : \"empty\", !Nn[p] && !Nn[u] ? l.slice(-1) === \",\" ? c = !1 : l += i[1] : c = !1) : l += i[1];\n if (!c) {\n let d = s.reduce((f, y) => f + y[1], \"\");\n e.raws[t] = { raw: d, value: l };\n }\n e[t] = l;\n }\n rule(e) {\n e.pop();\n let t = new Tn();\n this.init(t, e[0][2]), t.raws.between = this.spacesAndCommentsFromEnd(e), this.raw(t, \"selector\", e), this.current = t;\n }\n spacesAndCommentsFromEnd(e) {\n let t, s = \"\";\n for (; e.length && (t = e[e.length - 1][0], !(t !== \"space\" && t !== \"comment\")); )\n s = e.pop()[1] + s;\n return s;\n }\n // Errors\n spacesAndCommentsFromStart(e) {\n let t, s = \"\";\n for (; e.length && (t = e[0][0], !(t !== \"space\" && t !== \"comment\")); )\n s += e.shift()[1];\n return s;\n }\n spacesFromEnd(e) {\n let t, s = \"\";\n for (; e.length && (t = e[e.length - 1][0], t === \"space\"); )\n s = e.pop()[1] + s;\n return s;\n }\n stringFrom(e, t) {\n let s = \"\";\n for (let n = t; n < e.length; n++)\n s += e[n][1];\n return e.splice(t, e.length - t), s;\n }\n unclosedBlock() {\n let e = this.current.source.start;\n throw this.input.error(\"Unclosed block\", e.line, e.column);\n }\n unclosedBracket(e) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: e[2] },\n { offset: e[2] + 1 }\n );\n }\n unexpectedClose(e) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: e[2] },\n { offset: e[2] + 1 }\n );\n }\n unknownWord(e) {\n throw this.input.error(\n \"Unknown word\",\n { offset: e[0][2] },\n { offset: e[0][2] + e[0][1].length }\n );\n }\n unnamedAtrule(e, t) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: t[2] },\n { offset: t[2] + t[1].length }\n );\n }\n};\nvar rc = tc;\nlet sc = Ie, nc = rc, ic = wr;\nfunction sr(r, e) {\n let t = new ic(r, e), s = new nc(t);\n try {\n s.parse();\n } catch (n) {\n throw process.env.NODE_ENV !== \"production\" && n.name === \"CssSyntaxError\" && e && e.from && (/\\.scss$/i.test(e.from) ? n.message += `\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser` : /\\.sass/i.test(e.from) ? n.message += `\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser` : /\\.less$/i.test(e.from) && (n.message += `\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)), n;\n }\n return s.root;\n}\nvar As = sr;\nsr.default = sr;\nsc.registerParse(sr);\nlet { isClean: ce, my: oc } = ft, ac = _i, lc = mr, cc = Ie, uc = Ns, hc = Zi, On = Os, pc = As, dc = mt;\nconst fc = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n}, mc = {\n AtRule: !0,\n AtRuleExit: !0,\n Comment: !0,\n CommentExit: !0,\n Declaration: !0,\n DeclarationExit: !0,\n Document: !0,\n DocumentExit: !0,\n Once: !0,\n OnceExit: !0,\n postcssPlugin: !0,\n prepare: !0,\n Root: !0,\n RootExit: !0,\n Rule: !0,\n RuleExit: !0\n}, gc = {\n Once: !0,\n postcssPlugin: !0,\n prepare: !0\n}, Be = 0;\nfunction Je(r) {\n return typeof r == \"object\" && typeof r.then == \"function\";\n}\nfunction so(r) {\n let e = !1, t = fc[r.type];\n return r.type === \"decl\" ? e = r.prop.toLowerCase() : r.type === \"atrule\" && (e = r.name.toLowerCase()), e && r.append ? [\n t,\n t + \"-\" + e,\n Be,\n t + \"Exit\",\n t + \"Exit-\" + e\n ] : e ? [t, t + \"-\" + e, t + \"Exit\", t + \"Exit-\" + e] : r.append ? [t, Be, t + \"Exit\"] : [t, t + \"Exit\"];\n}\nfunction Rn(r) {\n let e;\n return r.type === \"document\" ? e = [\"Document\", Be, \"DocumentExit\"] : r.type === \"root\" ? e = [\"Root\", Be, \"RootExit\"] : e = so(r), {\n eventIndex: 0,\n events: e,\n iterator: 0,\n node: r,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction Kr(r) {\n return r[ce] = !1, r.nodes && r.nodes.forEach((e) => Kr(e)), r;\n}\nlet qr = {}, Ve = class no {\n constructor(e, t, s) {\n this.stringified = !1, this.processed = !1;\n let n;\n if (typeof t == \"object\" && t !== null && (t.type === \"root\" || t.type === \"document\"))\n n = Kr(t);\n else if (t instanceof no || t instanceof On)\n n = Kr(t.root), t.map && (typeof s.map > \"u\" && (s.map = {}), s.map.inline || (s.map.inline = !1), s.map.prev = t.map);\n else {\n let i = pc;\n s.syntax && (i = s.syntax.parse), s.parser && (i = s.parser), i.parse && (i = i.parse);\n try {\n n = i(t, s);\n } catch (a) {\n this.processed = !0, this.error = a;\n }\n n && !n[oc] && cc.rebuild(n);\n }\n this.result = new On(e, n, s), this.helpers = { ...qr, postcss: qr, result: this.result }, this.plugins = this.processor.plugins.map((i) => typeof i == \"object\" && i.prepare ? { ...i, ...i.prepare(this.result) } : i);\n }\n async() {\n return this.error ? Promise.reject(this.error) : this.processed ? Promise.resolve(this.result) : (this.processing || (this.processing = this.runAsync()), this.processing);\n }\n catch(e) {\n return this.async().catch(e);\n }\n finally(e) {\n return this.async().then(e, e);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(e, t) {\n let s = this.result.lastPlugin;\n try {\n if (t && t.addToError(e), this.error = e, e.name === \"CssSyntaxError\" && !e.plugin)\n e.plugin = s.postcssPlugin, e.setMessage();\n else if (s.postcssVersion && process.env.NODE_ENV !== \"production\") {\n let n = s.postcssPlugin, i = s.postcssVersion, a = this.result.processor.version, o = i.split(\".\"), l = a.split(\".\");\n (o[0] !== l[0] || parseInt(o[1]) > parseInt(l[1])) && console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + a + \", but \" + n + \" uses \" + i + \". Perhaps this is the source of the error below.\"\n );\n }\n } catch (n) {\n console && console.error && console.error(n);\n }\n return e;\n }\n prepareVisitors() {\n this.listeners = {};\n let e = (t, s, n) => {\n this.listeners[s] || (this.listeners[s] = []), this.listeners[s].push([t, n]);\n };\n for (let t of this.plugins)\n if (typeof t == \"object\")\n for (let s in t) {\n if (!mc[s] && /^[A-Z]/.test(s))\n throw new Error(\n `Unknown event ${s} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n if (!gc[s])\n if (typeof t[s] == \"object\")\n for (let n in t[s])\n n === \"*\" ? e(t, s, t[s][n]) : e(\n t,\n s + \"-\" + n.toLowerCase(),\n t[s][n]\n );\n else typeof t[s] == \"function\" && e(t, s, t[s]);\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let e = 0; e < this.plugins.length; e++) {\n let t = this.plugins[e], s = this.runOnRoot(t);\n if (Je(s))\n try {\n await s;\n } catch (n) {\n throw this.handleError(n);\n }\n }\n if (this.prepareVisitors(), this.hasListener) {\n let e = this.result.root;\n for (; !e[ce]; ) {\n e[ce] = !0;\n let t = [Rn(e)];\n for (; t.length > 0; ) {\n let s = this.visitTick(t);\n if (Je(s))\n try {\n await s;\n } catch (n) {\n let i = t[t.length - 1].node;\n throw this.handleError(n, i);\n }\n }\n }\n if (this.listeners.OnceExit)\n for (let [t, s] of this.listeners.OnceExit) {\n this.result.lastPlugin = t;\n try {\n if (e.type === \"document\") {\n let n = e.nodes.map(\n (i) => s(i, this.helpers)\n );\n await Promise.all(n);\n } else\n await s(e, this.helpers);\n } catch (n) {\n throw this.handleError(n);\n }\n }\n }\n return this.processed = !0, this.stringify();\n }\n runOnRoot(e) {\n this.result.lastPlugin = e;\n try {\n if (typeof e == \"object\" && e.Once) {\n if (this.result.root.type === \"document\") {\n let t = this.result.root.nodes.map(\n (s) => e.Once(s, this.helpers)\n );\n return Je(t[0]) ? Promise.all(t) : t;\n }\n return e.Once(this.result.root, this.helpers);\n } else if (typeof e == \"function\")\n return e(this.result.root, this.result);\n } catch (t) {\n throw this.handleError(t);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = !0, this.sync();\n let e = this.result.opts, t = lc;\n e.syntax && (t = e.syntax.stringify), e.stringifier && (t = e.stringifier), t.stringify && (t = t.stringify);\n let s = new ac(t, this.result.root, this.result.opts).generate();\n return this.result.css = s[0], this.result.map = s[1], this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n if (this.processed = !0, this.processing)\n throw this.getAsyncError();\n for (let e of this.plugins) {\n let t = this.runOnRoot(e);\n if (Je(t))\n throw this.getAsyncError();\n }\n if (this.prepareVisitors(), this.hasListener) {\n let e = this.result.root;\n for (; !e[ce]; )\n e[ce] = !0, this.walkSync(e);\n if (this.listeners.OnceExit)\n if (e.type === \"document\")\n for (let t of e.nodes)\n this.visitSync(this.listeners.OnceExit, t);\n else\n this.visitSync(this.listeners.OnceExit, e);\n }\n return this.result;\n }\n then(e, t) {\n return process.env.NODE_ENV !== \"production\" && (\"from\" in this.opts || hc(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n )), this.async().then(e, t);\n }\n toString() {\n return this.css;\n }\n visitSync(e, t) {\n for (let [s, n] of e) {\n this.result.lastPlugin = s;\n let i;\n try {\n i = n(t, this.helpers);\n } catch (a) {\n throw this.handleError(a, t.proxyOf);\n }\n if (t.type !== \"root\" && t.type !== \"document\" && !t.parent)\n return !0;\n if (Je(i))\n throw this.getAsyncError();\n }\n }\n visitTick(e) {\n let t = e[e.length - 1], { node: s, visitors: n } = t;\n if (s.type !== \"root\" && s.type !== \"document\" && !s.parent) {\n e.pop();\n return;\n }\n if (n.length > 0 && t.visitorIndex < n.length) {\n let [a, o] = n[t.visitorIndex];\n t.visitorIndex += 1, t.visitorIndex === n.length && (t.visitors = [], t.visitorIndex = 0), this.result.lastPlugin = a;\n try {\n return o(s.toProxy(), this.helpers);\n } catch (l) {\n throw this.handleError(l, s);\n }\n }\n if (t.iterator !== 0) {\n let a = t.iterator, o;\n for (; o = s.nodes[s.indexes[a]]; )\n if (s.indexes[a] += 1, !o[ce]) {\n o[ce] = !0, e.push(Rn(o));\n return;\n }\n t.iterator = 0, delete s.indexes[a];\n }\n let i = t.events;\n for (; t.eventIndex < i.length; ) {\n let a = i[t.eventIndex];\n if (t.eventIndex += 1, a === Be) {\n s.nodes && s.nodes.length && (s[ce] = !0, t.iterator = s.getIterator());\n return;\n } else if (this.listeners[a]) {\n t.visitors = this.listeners[a];\n return;\n }\n }\n e.pop();\n }\n walkSync(e) {\n e[ce] = !0;\n let t = so(e);\n for (let s of t)\n if (s === Be)\n e.nodes && e.each((n) => {\n n[ce] || this.walkSync(n);\n });\n else {\n let n = this.listeners[s];\n if (n && this.visitSync(n, e.toProxy()))\n return;\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nVe.registerPostcss = (r) => {\n qr = r;\n};\nvar io = Ve;\nVe.default = Ve;\ndc.registerLazyResult(Ve);\nuc.registerLazyResult(Ve);\nlet yc = _i, wc = mr, bc = Zi, Sc = As;\nconst vc = Os;\nlet es = class {\n constructor(e, t, s) {\n t = t.toString(), this.stringified = !1, this._processor = e, this._css = t, this._opts = s, this._map = void 0;\n let n, i = wc;\n this.result = new vc(this._processor, n, this._opts), this.result.css = t;\n let a = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return a.root;\n }\n });\n let o = new yc(i, n, this._opts, t);\n if (o.isMap()) {\n let [l, c] = o.generate();\n l && (this.result.css = l), c && (this.result.map = c);\n } else\n o.clearAnnotation(), this.result.css = o.css;\n }\n async() {\n return this.error ? Promise.reject(this.error) : Promise.resolve(this.result);\n }\n catch(e) {\n return this.async().catch(e);\n }\n finally(e) {\n return this.async().then(e, e);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(e, t) {\n return process.env.NODE_ENV !== \"production\" && (\"from\" in this._opts || bc(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n )), this.async().then(e, t);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root)\n return this._root;\n let e, t = Sc;\n try {\n e = t(this._css, this._opts);\n } catch (s) {\n this.error = s;\n }\n if (this.error)\n throw this.error;\n return this._root = e, e;\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar Cc = es;\nes.default = es;\nlet Mc = Cc, xc = io, Ec = Ns, Ic = mt, at = class {\n constructor(e = []) {\n this.version = \"8.4.39\", this.plugins = this.normalize(e);\n }\n normalize(e) {\n let t = [];\n for (let s of e)\n if (s.postcss === !0 ? s = s() : s.postcss && (s = s.postcss), typeof s == \"object\" && Array.isArray(s.plugins))\n t = t.concat(s.plugins);\n else if (typeof s == \"object\" && s.postcssPlugin)\n t.push(s);\n else if (typeof s == \"function\")\n t.push(s);\n else if (typeof s == \"object\" && (s.parse || s.stringify)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n } else\n throw new Error(s + \" is not a PostCSS plugin\");\n return t;\n }\n process(e, t = {}) {\n return !this.plugins.length && !t.parser && !t.stringifier && !t.syntax ? new Mc(this, e, t) : new xc(this, e, t);\n }\n use(e) {\n return this.plugins = this.plugins.concat(this.normalize([e])), this;\n }\n};\nvar kc = at;\nat.default = at;\nIc.registerProcessor(at);\nEc.registerProcessor(at);\nlet Tc = yr, Nc = Di, Oc = br, Rc = Rs, Dc = wr, Ac = mt, Lc = Ds;\nfunction lt(r, e) {\n if (Array.isArray(r)) return r.map((n) => lt(n));\n let { inputs: t, ...s } = r;\n if (t) {\n e = [];\n for (let n of t) {\n let i = { ...n, __proto__: Dc.prototype };\n i.map && (i.map = {\n ...i.map,\n __proto__: Nc.prototype\n }), e.push(i);\n }\n }\n if (s.nodes && (s.nodes = r.nodes.map((n) => lt(n, e))), s.source) {\n let { inputId: n, ...i } = s.source;\n s.source = i, n != null && (s.source.input = e[n]);\n }\n if (s.type === \"root\")\n return new Ac(s);\n if (s.type === \"decl\")\n return new Tc(s);\n if (s.type === \"rule\")\n return new Lc(s);\n if (s.type === \"comment\")\n return new Oc(s);\n if (s.type === \"atrule\")\n return new Rc(s);\n throw new Error(\"Unknown node type: \" + r.type);\n}\nvar Pc = lt;\nlt.default = lt;\nlet Fc = Is, oo = yr, _c = io, $c = Ie, Ls = kc, Uc = mr, Wc = Pc, ao = Ns, Bc = Ji, lo = br, co = Rs, Vc = Os, zc = wr, jc = As, Gc = to, uo = Ds, ho = mt, Hc = gr;\nfunction F(...r) {\n return r.length === 1 && Array.isArray(r[0]) && (r = r[0]), new Ls(r);\n}\nF.plugin = function(r, e) {\n let t = !1;\n function s(...i) {\n console && console.warn && !t && (t = !0, console.warn(\n r + `: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`\n ), process.env.LANG && process.env.LANG.startsWith(\"cn\") && console.warn(\n r + `: 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226`\n ));\n let a = e(...i);\n return a.postcssPlugin = r, a.postcssVersion = new Ls().version, a;\n }\n let n;\n return Object.defineProperty(s, \"postcss\", {\n get() {\n return n || (n = s()), n;\n }\n }), s.process = function(i, a, o) {\n return F([s(o)]).process(i, a);\n }, s;\n};\nF.stringify = Uc;\nF.parse = jc;\nF.fromJSON = Wc;\nF.list = Gc;\nF.comment = (r) => new lo(r);\nF.atRule = (r) => new co(r);\nF.decl = (r) => new oo(r);\nF.rule = (r) => new uo(r);\nF.root = (r) => new ho(r);\nF.document = (r) => new ao(r);\nF.CssSyntaxError = Fc;\nF.Declaration = oo;\nF.Container = $c;\nF.Processor = Ls;\nF.Document = ao;\nF.Comment = lo;\nF.Warning = Bc;\nF.AtRule = co;\nF.Result = Vc;\nF.Input = zc;\nF.Rule = uo;\nF.Root = ho;\nF.Node = Hc;\n_c.registerPostcss(F);\nvar Yc = F;\nF.default = F;\nconst z = /* @__PURE__ */ sl(Yc);\nz.stringify;\nz.fromJSON;\nz.plugin;\nz.parse;\nz.list;\nz.document;\nz.comment;\nz.atRule;\nz.rule;\nz.decl;\nz.root;\nz.CssSyntaxError;\nz.Declaration;\nz.Container;\nz.Processor;\nz.Document;\nz.Comment;\nz.Warning;\nz.AtRule;\nz.Result;\nz.Input;\nz.Rule;\nz.Root;\nz.Node;\nconst Xc = /(max|min)-device-(width|height)/, Dn = new RegExp(Xc.source, \"g\"), Zc = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(r) {\n r.params.match(Dn) && (r.params = r.params.replace(Dn, \"$1-$2\"));\n }\n };\n }\n}, Jc = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const r = [];\n return {\n Rule: function(e) {\n r.indexOf(e) === -1 && (r.push(e), e.selectors.forEach(function(t) {\n if (!t.includes(\":\"))\n return;\n const s = t.replace(/\\n/g, \" \").split(\" \"), n = [];\n s.forEach(function(a) {\n const o = a.match(/::?([^:]+)/g);\n if (!o) {\n n.push(a);\n return;\n }\n const l = a.substr(\n 0,\n a.length - o.join(\"\").length\n ), c = o.map(function(u) {\n return u.replace(/\\(.*/g, \"\") !== \":hover\" || u.match(/^::/) ? u : (u = u.substr(1), u = u.replace(/\\(/g, \"\\\\(\"), u = u.replace(/\\)/g, \"\\\\)\"), \".\\\\:\" + u);\n });\n n.push(l + c.join(\"\"));\n }), i(n.join(\" \"));\n function i(a) {\n a && a !== t && (e.selector += `,\n` + a);\n }\n }));\n }\n };\n }\n}, An = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction Qc(r) {\n let e = An[r.tagName] ? An[r.tagName] : r.tagName;\n return e === \"link\" && r.attributes._cssText && (e = \"style\"), e;\n}\nfunction Ln(r, e) {\n const t = e == null ? void 0 : e.stylesWithHoverClass.get(r);\n if (t) return t;\n const s = z([\n Zc,\n Jc\n ]).process(r).css;\n return e == null || e.stylesWithHoverClass.set(r, s), s;\n}\nfunction Pn() {\n return {\n stylesWithHoverClass: /* @__PURE__ */ new Map()\n };\n}\nfunction Kc(r, e) {\n var t;\n const { doc: s, hackCss: n, cache: i } = e;\n switch (r.type) {\n case I.Document:\n return s.implementation.createDocument(null, \"\", null);\n case I.DocumentType:\n return s.implementation.createDocumentType(\n r.name || \"html\",\n r.publicId,\n r.systemId\n );\n case I.Element: {\n const a = Qc(r);\n let o;\n r.isSVG ? o = s.createElementNS(\"http://www.w3.org/2000/svg\", a) : (\n // If the tag name is a custom element name\n (r.isCustom && // If the browser supports custom elements\n (t = s.defaultView) != null && t.customElements && // If the custom element hasn't been defined yet\n !s.defaultView.customElements.get(r.tagName) && s.defaultView.customElements.define(\n r.tagName,\n class extends s.defaultView.HTMLElement {\n }\n ), o = s.createElement(a))\n );\n const l = {};\n for (const c in r.attributes) {\n if (!Object.prototype.hasOwnProperty.call(r.attributes, c))\n continue;\n let u = r.attributes[c];\n if (a === \"option\" && c === \"selected\" && u === !1 || u === null)\n continue;\n if (u === !0 && (u = \"\"), c.startsWith(\"rr_\")) {\n l[c] = u;\n continue;\n }\n const p = a === \"textarea\" && c === \"value\", d = a === \"style\" && c === \"_cssText\";\n if (d && n && typeof u == \"string\" && (u = Ln(u, i)), (p || d) && typeof u == \"string\") {\n o.appendChild(s.createTextNode(u)), r.childNodes = [];\n continue;\n }\n try {\n if (r.isSVG && c === \"xlink:href\")\n o.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n c,\n u.toString()\n );\n else if (c === \"onload\" || c === \"onclick\" || c.substring(0, 7) === \"onmouse\")\n o.setAttribute(\"_\" + c, u.toString());\n else if (a === \"meta\" && r.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && c === \"content\") {\n o.setAttribute(\"csp-content\", u.toString());\n continue;\n } else a === \"link\" && (r.attributes.rel === \"preload\" || r.attributes.rel === \"modulepreload\") && r.attributes.as === \"script\" || a === \"link\" && r.attributes.rel === \"prefetch\" && typeof r.attributes.href == \"string\" && r.attributes.href.endsWith(\".js\") || (a === \"img\" && r.attributes.srcset && r.attributes.rr_dataURL ? o.setAttribute(\"original-srcset\", r.attributes.srcset) : o.setAttribute(c, u.toString()));\n } catch {\n }\n }\n for (const c in l) {\n const u = l[c];\n if (a === \"canvas\" && c === \"rr_dataURL\") {\n const p = s.createElement(\"img\");\n p.onload = () => {\n const d = o.getContext(\"2d\");\n d && d.drawImage(p, 0, 0, p.width, p.height);\n }, p.src = u.toString(), o.RRNodeType && (o.rr_dataURL = u.toString());\n } else if (a === \"img\" && c === \"rr_dataURL\") {\n const p = o;\n p.currentSrc.startsWith(\"data:\") || (p.setAttribute(\"original-src\", r.attributes.src), p.src = u.toString());\n }\n if (c === \"rr_width\")\n o.style.width = u.toString();\n else if (c === \"rr_height\")\n o.style.height = u.toString();\n else if (c === \"rr_mediaCurrentTime\" && typeof u == \"number\")\n o.currentTime = u;\n else if (c === \"rr_mediaState\")\n switch (u) {\n case \"played\":\n o.play().catch((p) => console.warn(\"media playback error\", p));\n break;\n case \"paused\":\n o.pause();\n break;\n }\n else c === \"rr_mediaPlaybackRate\" && typeof u == \"number\" ? o.playbackRate = u : c === \"rr_mediaMuted\" && typeof u == \"boolean\" ? o.muted = u : c === \"rr_mediaLoop\" && typeof u == \"boolean\" ? o.loop = u : c === \"rr_mediaVolume\" && typeof u == \"number\" && (o.volume = u);\n }\n if (r.isShadowHost)\n if (!o.shadowRoot)\n o.attachShadow({ mode: \"open\" });\n else\n for (; o.shadowRoot.firstChild; )\n o.shadowRoot.removeChild(o.shadowRoot.firstChild);\n return o;\n }\n case I.Text:\n return s.createTextNode(\n r.isStyle && n ? Ln(r.textContent, i) : r.textContent\n );\n case I.CDATA:\n return s.createCDATASection(r.textContent);\n case I.Comment:\n return s.createComment(r.textContent);\n default:\n return null;\n }\n}\nfunction rt(r, e) {\n const {\n doc: t,\n mirror: s,\n skipChild: n = !1,\n hackCss: i = !0,\n afterAppend: a,\n cache: o\n } = e;\n if (s.has(r.id)) {\n const c = s.getNode(r.id), u = s.getMeta(c);\n if (Pa(u, r)) return s.getNode(r.id);\n }\n let l = Kc(r, { doc: t, hackCss: i, cache: o });\n if (!l)\n return null;\n if (r.rootId && s.getNode(r.rootId) !== t && s.replace(r.rootId, t), r.type === I.Document && (t.close(), t.open(), r.compatMode === \"BackCompat\" && r.childNodes && r.childNodes[0].type !== I.DocumentType && (r.childNodes[0].type === I.Element && \"xmlns\" in r.childNodes[0].attributes && r.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\" ? t.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n ) : t.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n )), l = t), s.add(l, r), (r.type === I.Document || r.type === I.Element) && !n)\n for (const c of r.childNodes) {\n const u = rt(c, {\n doc: t,\n mirror: s,\n skipChild: !1,\n hackCss: i,\n afterAppend: a,\n cache: o\n });\n if (!u) {\n console.warn(\"Failed to rebuild\", c);\n continue;\n }\n if (c.isShadow && vs(l) && l.shadowRoot)\n l.shadowRoot.appendChild(u);\n else if (r.type === I.Document && c.type == I.Element) {\n const p = u;\n let d = null;\n p.childNodes.forEach((f) => {\n f.nodeName === \"BODY\" && (d = f);\n }), d ? (p.removeChild(d), l.appendChild(u), p.appendChild(d)) : l.appendChild(u);\n } else\n l.appendChild(u);\n a && a(u, c.id);\n }\n return l;\n}\nfunction qc(r, e) {\n function t(s) {\n e(s);\n }\n for (const s of r.getIds())\n r.has(s) && t(r.getNode(s));\n}\nfunction eu(r, e) {\n const t = e.getMeta(r);\n if ((t == null ? void 0 : t.type) !== I.Element)\n return;\n const s = r;\n for (const n in t.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(t.attributes, n) && n.startsWith(\"rr_\")))\n continue;\n const i = t.attributes[n];\n n === \"rr_scrollLeft\" && (s.scrollLeft = i), n === \"rr_scrollTop\" && (s.scrollTop = i);\n }\n}\nfunction tu(r, e) {\n const {\n doc: t,\n onVisit: s,\n hackCss: n = !0,\n afterAppend: i,\n cache: a,\n mirror: o = new Cs()\n } = e, l = rt(r, {\n doc: t,\n mirror: o,\n skipChild: !1,\n hackCss: n,\n afterAppend: i,\n cache: a\n });\n return qc(o, (c) => {\n s && s(c), eu(c, o);\n }), l;\n}\nvar x = /* @__PURE__ */ ((r) => (r[r.DomContentLoaded = 0] = \"DomContentLoaded\", r[r.Load = 1] = \"Load\", r[r.FullSnapshot = 2] = \"FullSnapshot\", r[r.IncrementalSnapshot = 3] = \"IncrementalSnapshot\", r[r.Meta = 4] = \"Meta\", r[r.Custom = 5] = \"Custom\", r[r.Plugin = 6] = \"Plugin\", r))(x || {}), C = /* @__PURE__ */ ((r) => (r[r.Mutation = 0] = \"Mutation\", r[r.MouseMove = 1] = \"MouseMove\", r[r.MouseInteraction = 2] = \"MouseInteraction\", r[r.Scroll = 3] = \"Scroll\", r[r.ViewportResize = 4] = \"ViewportResize\", r[r.Input = 5] = \"Input\", r[r.TouchMove = 6] = \"TouchMove\", r[r.MediaInteraction = 7] = \"MediaInteraction\", r[r.StyleSheetRule = 8] = \"StyleSheetRule\", r[r.CanvasMutation = 9] = \"CanvasMutation\", r[r.Font = 10] = \"Font\", r[r.Log = 11] = \"Log\", r[r.Drag = 12] = \"Drag\", r[r.StyleDeclaration = 13] = \"StyleDeclaration\", r[r.Selection = 14] = \"Selection\", r[r.AdoptedStyleSheet = 15] = \"AdoptedStyleSheet\", r[r.CustomElement = 16] = \"CustomElement\", r))(C || {}), L = /* @__PURE__ */ ((r) => (r[r.MouseUp = 0] = \"MouseUp\", r[r.MouseDown = 1] = \"MouseDown\", r[r.Click = 2] = \"Click\", r[r.ContextMenu = 3] = \"ContextMenu\", r[r.DblClick = 4] = \"DblClick\", r[r.Focus = 5] = \"Focus\", r[r.Blur = 6] = \"Blur\", r[r.TouchStart = 7] = \"TouchStart\", r[r.TouchMove_Departed = 8] = \"TouchMove_Departed\", r[r.TouchEnd = 9] = \"TouchEnd\", r[r.TouchCancel = 10] = \"TouchCancel\", r))(L || {}), pe = /* @__PURE__ */ ((r) => (r[r.Mouse = 0] = \"Mouse\", r[r.Pen = 1] = \"Pen\", r[r.Touch = 2] = \"Touch\", r))(pe || {}), fe = /* @__PURE__ */ ((r) => (r[r[\"2D\"] = 0] = \"2D\", r[r.WebGL = 1] = \"WebGL\", r[r.WebGL2 = 2] = \"WebGL2\", r))(fe || {}), ye = /* @__PURE__ */ ((r) => (r[r.Play = 0] = \"Play\", r[r.Pause = 1] = \"Pause\", r[r.Seeked = 2] = \"Seeked\", r[r.VolumeChange = 3] = \"VolumeChange\", r[r.RateChange = 4] = \"RateChange\", r))(ye || {}), A = /* @__PURE__ */ ((r) => (r.Start = \"start\", r.Pause = \"pause\", r.Resume = \"resume\", r.Resize = \"resize\", r.Finish = \"finish\", r.FullsnapshotRebuilded = \"fullsnapshot-rebuilded\", r.LoadStylesheetStart = \"load-stylesheet-start\", r.LoadStylesheetEnd = \"load-stylesheet-end\", r.SkipStart = \"skip-start\", r.SkipEnd = \"skip-end\", r.MouseInteraction = \"mouse-interaction\", r.EventCast = \"event-cast\", r.CustomEvent = \"custom-event\", r.Flush = \"flush\", r.StateChange = \"state-change\", r.PlayBack = \"play-back\", r.Destroy = \"destroy\", r))(A || {});\nfunction Z(r, e, t = document) {\n const s = { capture: !0, passive: !0 };\n return t.addEventListener(r, e, s), () => t.removeEventListener(r, e, s);\n}\nconst De = `Please stop import mirror directly. Instead of that,\\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\nor you can use record.mirror to access the mirror instance during recording.`;\nlet ts = {\n map: {},\n getId() {\n return console.error(De), -1;\n },\n getNode() {\n return console.error(De), null;\n },\n removeNodeFromMap() {\n console.error(De);\n },\n has() {\n return console.error(De), !1;\n },\n reset() {\n console.error(De);\n }\n};\ntypeof window < \"u\" && window.Proxy && window.Reflect && (ts = new Proxy(ts, {\n get(r, e, t) {\n return e === \"map\" && console.error(De), Reflect.get(r, e, t);\n }\n}));\nfunction ze(r, e, t = {}) {\n let s = null, n = 0;\n return function(...i) {\n const a = Date.now();\n !n && t.leading === !1 && (n = a);\n const o = e - (a - n), l = this;\n o <= 0 || o > e ? (s && (clearTimeout(s), s = null), n = a, r.apply(l, i)) : !s && t.trailing !== !1 && (s = setTimeout(() => {\n n = t.leading === !1 ? 0 : Date.now(), s = null, r.apply(l, i);\n }, o));\n };\n}\nfunction gt(r, e, t, s, n = window) {\n const i = n.Object.getOwnPropertyDescriptor(r, e);\n return n.Object.defineProperty(\n r,\n e,\n s ? t : {\n set(a) {\n setTimeout(() => {\n t.set.call(this, a);\n }, 0), i && i.set && i.set.call(this, a);\n }\n }\n ), () => gt(r, e, i || {}, !0);\n}\nfunction ke(r, e, t) {\n try {\n if (!(e in r))\n return () => {\n };\n const s = r[e], n = t(s);\n return typeof n == \"function\" && (n.prototype = n.prototype || {}, Object.defineProperties(n, {\n __rrweb_original__: {\n enumerable: !1,\n value: s\n }\n })), r[e] = n, () => {\n r[e] = s;\n };\n } catch {\n return () => {\n };\n }\n}\nlet ct = Date.now;\n/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString()) || (ct = () => (/* @__PURE__ */ new Date()).getTime());\nfunction Ps(r) {\n var t, s, n, i, a, o;\n const e = r.document;\n return {\n left: e.scrollingElement ? e.scrollingElement.scrollLeft : r.pageXOffset !== void 0 ? r.pageXOffset : (e == null ? void 0 : e.documentElement.scrollLeft) || ((s = (t = e == null ? void 0 : e.body) == null ? void 0 : t.parentElement) == null ? void 0 : s.scrollLeft) || ((n = e == null ? void 0 : e.body) == null ? void 0 : n.scrollLeft) || 0,\n top: e.scrollingElement ? e.scrollingElement.scrollTop : r.pageYOffset !== void 0 ? r.pageYOffset : (e == null ? void 0 : e.documentElement.scrollTop) || ((a = (i = e == null ? void 0 : e.body) == null ? void 0 : i.parentElement) == null ? void 0 : a.scrollTop) || ((o = e == null ? void 0 : e.body) == null ? void 0 : o.scrollTop) || 0\n };\n}\nfunction Fs() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction _s() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction $s(r) {\n return r ? r.nodeType === r.ELEMENT_NODE ? r : r.parentElement : null;\n}\nfunction J(r, e, t, s) {\n if (!r)\n return !1;\n const n = $s(r);\n if (!n)\n return !1;\n try {\n if (typeof e == \"string\") {\n if (n.classList.contains(e) || s && n.closest(\".\" + e) !== null) return !0;\n } else if (qt(n, e, s)) return !0;\n } catch {\n }\n return !!(t && (n.matches(t) || s && n.closest(t) !== null));\n}\nfunction po(r, e) {\n return e.getId(r) !== -1;\n}\nfunction Gt(r, e, t) {\n return r.tagName === \"TITLE\" && t.headTitleMutations ? !0 : e.getId(r) === nt;\n}\nfunction Us(r, e) {\n if (et(r))\n return !1;\n const t = e.getId(r);\n return e.has(t) ? r.parentNode && r.parentNode.nodeType === r.DOCUMENT_NODE ? !1 : r.parentNode ? Us(r.parentNode, e) : !0 : !0;\n}\nfunction nr(r) {\n return !!r.changedTouches;\n}\nfunction Ws(r = window) {\n \"NodeList\" in r && !r.NodeList.prototype.forEach && (r.NodeList.prototype.forEach = Array.prototype.forEach), \"DOMTokenList\" in r && !r.DOMTokenList.prototype.forEach && (r.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = (...e) => {\n let t = e[0];\n if (!(0 in e))\n throw new TypeError(\"1 argument is required\");\n do\n if (this === t)\n return !0;\n while (t = t && t.parentNode);\n return !1;\n });\n}\nfunction fo(r) {\n const e = {}, t = (n, i) => {\n const a = {\n value: n,\n parent: i,\n children: []\n };\n return e[n.node.id] = a, a;\n }, s = [];\n for (const n of r) {\n const { nextId: i, parentId: a } = n;\n if (i && i in e) {\n const o = e[i];\n if (o.parent) {\n const l = o.parent.children.indexOf(o);\n o.parent.children.splice(\n l,\n 0,\n t(n, o.parent)\n );\n } else {\n const l = s.indexOf(o);\n s.splice(l, 0, t(n, null));\n }\n continue;\n }\n if (a in e) {\n const o = e[a];\n o.children.push(t(n, o));\n continue;\n }\n s.push(t(n, null));\n }\n return s;\n}\nfunction Bs(r, e) {\n e(r.value);\n for (let t = r.children.length - 1; t >= 0; t--)\n Bs(r.children[t], e);\n}\nfunction Ue(r, e) {\n return !!(r.nodeName === \"IFRAME\" && e.getMeta(r));\n}\nfunction Vs(r, e) {\n return !!(r.nodeName === \"LINK\" && r.nodeType === r.ELEMENT_NODE && r.getAttribute && r.getAttribute(\"rel\") === \"stylesheet\" && e.getMeta(r));\n}\nfunction zs(r, e) {\n var a, o;\n const t = (o = (a = r.ownerDocument) == null ? void 0 : a.defaultView) == null ? void 0 : o.frameElement;\n if (!t || t === e)\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n const s = t.getBoundingClientRect(), n = zs(t, e), i = s.height / t.clientHeight;\n return {\n x: s.x * n.relativeScale + n.x,\n y: s.y * n.relativeScale + n.y,\n relativeScale: i,\n absoluteScale: n.absoluteScale * i\n };\n}\nfunction we(r) {\n return !!(r != null && r.shadowRoot);\n}\nfunction Fe(r, e) {\n const t = r[e[0]];\n return e.length === 1 ? t : Fe(\n t.cssRules[e[1]].cssRules,\n e.slice(2)\n );\n}\nfunction rs(r) {\n const e = [...r], t = e.pop();\n return { positions: e, index: t };\n}\nfunction mo(r) {\n const e = /* @__PURE__ */ new Set(), t = [];\n for (let s = r.length; s--; ) {\n const n = r[s];\n e.has(n.id) || (t.push(n), e.add(n.id));\n }\n return t;\n}\nclass js {\n constructor() {\n w(this, \"id\", 1);\n w(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(e) {\n return this.styleIDMap.get(e) ?? -1;\n }\n has(e) {\n return this.styleIDMap.has(e);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(e, t) {\n if (this.has(e)) return this.getId(e);\n let s;\n return t === void 0 ? s = this.id++ : s = t, this.styleIDMap.set(e, s), this.idStyleMap.set(s, e), s;\n }\n getStyle(e) {\n return this.idStyleMap.get(e) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap(), this.idStyleMap = /* @__PURE__ */ new Map(), this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction Gs(r) {\n var t, s;\n let e = null;\n return ((s = (t = r.getRootNode) == null ? void 0 : t.call(r)) == null ? void 0 : s.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && r.getRootNode().host && (e = r.getRootNode().host), e;\n}\nfunction go(r) {\n let e = r, t;\n for (; t = Gs(e); )\n e = t;\n return e;\n}\nfunction yo(r) {\n const e = r.ownerDocument;\n if (!e) return !1;\n const t = go(r);\n return e.contains(t);\n}\nfunction Hs(r) {\n const e = r.ownerDocument;\n return e ? e.contains(r) || yo(r) : !1;\n}\nconst Rd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StyleSheetMirror: js,\n get _mirror() {\n return ts;\n },\n closestElementOfNode: $s,\n getBaseDimension: zs,\n getNestedRule: Fe,\n getPositionsAndIndex: rs,\n getRootShadowHost: go,\n getShadowHost: Gs,\n getWindowHeight: Fs,\n getWindowScroll: Ps,\n getWindowWidth: _s,\n hasShadowRoot: we,\n hookSetter: gt,\n inDom: Hs,\n isAncestorRemoved: Us,\n isBlocked: J,\n isIgnored: Gt,\n isSerialized: po,\n isSerializedIframe: Ue,\n isSerializedStylesheet: Vs,\n iterateResolveTree: Bs,\n legacy_isTouchEvent: nr,\n get nowTimestamp() {\n return ct;\n },\n on: Z,\n patch: ke,\n polyfill: Ws,\n queueToResolveTrees: fo,\n shadowHostInDom: yo,\n throttle: ze,\n uniqueTextMutations: mo\n}, Symbol.toStringTag, { value: \"Module\" }));\nlet st;\nfunction ru(r) {\n st = r;\n}\nfunction su() {\n st = void 0;\n}\nconst R = (r) => st ? (...t) => {\n try {\n return r(...t);\n } catch (s) {\n if (st && st(s) === !0)\n return;\n throw s;\n }\n} : r;\nclass Fn {\n constructor(e) {\n w(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = e;\n }\n getId(e, t, s, n) {\n const i = s || this.getIdToRemoteIdMap(e), a = n || this.getRemoteIdToIdMap(e);\n let o = i.get(t);\n return o || (o = this.generateIdFn(), i.set(t, o), a.set(o, t)), o;\n }\n getIds(e, t) {\n const s = this.getIdToRemoteIdMap(e), n = this.getRemoteIdToIdMap(e);\n return t.map(\n (i) => this.getId(e, i, s, n)\n );\n }\n getRemoteId(e, t, s) {\n const n = s || this.getRemoteIdToIdMap(e);\n if (typeof t != \"number\") return t;\n const i = n.get(t);\n return i || -1;\n }\n getRemoteIds(e, t) {\n const s = this.getRemoteIdToIdMap(e);\n return t.map((n) => this.getRemoteId(e, n, s));\n }\n reset(e) {\n if (!e) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap(), this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(e), this.iframeRemoteIdToIdMap.delete(e);\n }\n getIdToRemoteIdMap(e) {\n let t = this.iframeIdToRemoteIdMap.get(e);\n return t || (t = /* @__PURE__ */ new Map(), this.iframeIdToRemoteIdMap.set(e, t)), t;\n }\n getRemoteIdToIdMap(e) {\n let t = this.iframeRemoteIdToIdMap.get(e);\n return t || (t = /* @__PURE__ */ new Map(), this.iframeRemoteIdToIdMap.set(e, t)), t;\n }\n}\nclass nu {\n constructor(e) {\n w(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n w(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"crossOriginIframeMirror\", new Fn(Ei));\n w(this, \"crossOriginIframeStyleMirror\");\n w(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"mirror\");\n w(this, \"mutationCb\");\n // @ts-expect-error\n w(this, \"wrappedEmit\");\n w(this, \"loadListener\");\n w(this, \"stylesheetManager\");\n w(this, \"recordCrossOriginIframes\");\n this.mutationCb = e.mutationCb, this.wrappedEmit = e.wrappedEmit, this.stylesheetManager = e.stylesheetManager, this.recordCrossOriginIframes = e.recordCrossOriginIframes, this.crossOriginIframeStyleMirror = new Fn(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n ), this.mirror = e.mirror, this.recordCrossOriginIframes && window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n addIframe(e) {\n this.iframes.set(e, !0), e.contentWindow && this.crossOriginIframeMap.set(e.contentWindow, e);\n }\n addLoadListener(e) {\n this.loadListener = e;\n }\n attachIframe(e, t) {\n var s, n;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(e),\n nextId: null,\n node: t\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: !0\n }), this.recordCrossOriginIframes && ((s = e.contentWindow) == null || s.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n )), (n = this.loadListener) == null || n.call(this, e), e.contentDocument && e.contentDocument.adoptedStyleSheets && e.contentDocument.adoptedStyleSheets.length > 0 && this.stylesheetManager.adoptStyleSheets(\n e.contentDocument.adoptedStyleSheets,\n this.mirror.getId(e.contentDocument)\n );\n }\n handleMessage(e) {\n const t = e;\n t.data.type !== \"@sailfish-rrweb/rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n (t.origin, t.data.origin);\n }\n // @ts-expect-error\n transformCrossOriginEvent(e, t) {\n var s;\n switch (t.type) {\n case x.FullSnapshot: {\n this.crossOriginIframeMirror.reset(e), this.crossOriginIframeStyleMirror.reset(e), this.replaceIdOnNode(t.data.node, e);\n const n = t.data.node.id;\n return this.crossOriginIframeRootIdMap.set(e, n), this.patchRootIdOnNode(t.data.node, n), {\n timestamp: t.timestamp,\n type: x.IncrementalSnapshot,\n data: {\n source: C.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(e),\n nextId: null,\n node: t.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: !0\n }\n };\n }\n case x.Meta:\n case x.Load:\n case x.DomContentLoaded:\n return !1;\n case x.Plugin:\n return t;\n case x.Custom:\n return this.replaceIds(\n t.data.payload,\n e,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n ), t;\n case x.IncrementalSnapshot:\n switch (t.data.source) {\n case C.Mutation:\n return t.data.adds.forEach((n) => {\n this.replaceIds(n, e, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]), this.replaceIdOnNode(n.node, e);\n const i = this.crossOriginIframeRootIdMap.get(e);\n i && this.patchRootIdOnNode(n.node, i);\n }), t.data.removes.forEach((n) => {\n this.replaceIds(n, e, [\"parentId\", \"id\"]);\n }), t.data.attributes.forEach((n) => {\n this.replaceIds(n, e, [\"id\"]);\n }), t.data.texts.forEach((n) => {\n this.replaceIds(n, e, [\"id\"]);\n }), t;\n case C.Drag:\n case C.TouchMove:\n case C.MouseMove:\n return t.data.positions.forEach((n) => {\n this.replaceIds(n, e, [\"id\"]);\n }), t;\n case C.ViewportResize:\n return !1;\n case C.MediaInteraction:\n case C.MouseInteraction:\n case C.Scroll:\n case C.CanvasMutation:\n case C.Input:\n return this.replaceIds(t.data, e, [\"id\"]), t;\n case C.StyleSheetRule:\n case C.StyleDeclaration:\n return this.replaceIds(t.data, e, [\"id\"]), this.replaceStyleIds(t.data, e, [\"styleId\"]), t;\n case C.Font:\n return t;\n case C.Selection:\n return t.data.ranges.forEach((n) => {\n this.replaceIds(n, e, [\"start\", \"end\"]);\n }), t;\n case C.AdoptedStyleSheet:\n return this.replaceIds(t.data, e, [\"id\"]), this.replaceStyleIds(t.data, e, [\"styleIds\"]), (s = t.data.styles) == null || s.forEach((n) => {\n this.replaceStyleIds(n, e, [\"styleId\"]);\n }), t;\n }\n }\n return !1;\n }\n replace(e, t, s, n) {\n for (const i of n)\n !Array.isArray(t[i]) && typeof t[i] != \"number\" || (Array.isArray(t[i]) ? t[i] = e.getIds(\n s,\n t[i]\n ) : t[i] = e.getId(s, t[i]));\n return t;\n }\n replaceIds(e, t, s) {\n return this.replace(this.crossOriginIframeMirror, e, t, s);\n }\n replaceStyleIds(e, t, s) {\n return this.replace(this.crossOriginIframeStyleMirror, e, t, s);\n }\n replaceIdOnNode(e, t) {\n this.replaceIds(e, t, [\"id\", \"rootId\"]), \"childNodes\" in e && e.childNodes.forEach((s) => {\n this.replaceIdOnNode(s, t);\n });\n }\n patchRootIdOnNode(e, t) {\n e.type !== I.Document && !e.rootId && (e.rootId = t), \"childNodes\" in e && e.childNodes.forEach((s) => {\n this.patchRootIdOnNode(s, t);\n });\n }\n}\nfunction _n(r) {\n return \"__ln\" in r;\n}\nclass iu {\n constructor() {\n w(this, \"length\", 0);\n w(this, \"head\", null);\n w(this, \"tail\", null);\n }\n get(e) {\n if (e >= this.length)\n throw new Error(\"Position outside of list range\");\n let t = this.head;\n for (let s = 0; s < e; s++)\n t = (t == null ? void 0 : t.next) || null;\n return t;\n }\n addNode(e) {\n const t = {\n value: e,\n previous: null,\n next: null\n };\n if (e.__ln = t, e.previousSibling && _n(e.previousSibling)) {\n const s = e.previousSibling.__ln.next;\n t.next = s, t.previous = e.previousSibling.__ln, e.previousSibling.__ln.next = t, s && (s.previous = t);\n } else if (e.nextSibling && _n(e.nextSibling) && e.nextSibling.__ln.previous) {\n const s = e.nextSibling.__ln.previous;\n t.previous = s, t.next = e.nextSibling.__ln, e.nextSibling.__ln.previous = t, s && (s.next = t);\n } else\n this.head && (this.head.previous = t), t.next = this.head, this.head = t;\n t.next === null && (this.tail = t), this.length++;\n }\n removeNode(e) {\n const t = e.__ln;\n this.head && (t.previous ? (t.previous.next = t.next, t.next ? t.next.previous = t.previous : this.tail = t.previous) : (this.head = t.next, this.head ? this.head.previous = null : this.tail = null), e.__ln && delete e.__ln, this.length--);\n }\n}\nconst $n = (r, e) => `${r}@${e}`;\nclass ou {\n constructor() {\n w(this, \"frozen\", !1);\n w(this, \"locked\", !1);\n w(this, \"texts\", []);\n w(this, \"attributes\", []);\n w(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"removes\", []);\n w(this, \"mapRemoves\", []);\n w(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n w(this, \"addedSet\", /* @__PURE__ */ new Set());\n w(this, \"movedSet\", /* @__PURE__ */ new Set());\n w(this, \"droppedSet\", /* @__PURE__ */ new Set());\n w(this, \"mutationCb\");\n w(this, \"blockClass\");\n w(this, \"blockSelector\");\n w(this, \"maskTextClass\");\n w(this, \"maskTextSelector\");\n w(this, \"inlineStylesheet\");\n w(this, \"maskInputOptions\");\n w(this, \"maskTextFn\");\n w(this, \"maskInputFn\");\n w(this, \"keepIframeSrcFn\");\n w(this, \"recordCanvas\");\n w(this, \"inlineImages\");\n w(this, \"slimDOMOptions\");\n w(this, \"dataURLOptions\");\n w(this, \"doc\");\n w(this, \"mirror\");\n w(this, \"iframeManager\");\n w(this, \"stylesheetManager\");\n w(this, \"shadowDomManager\");\n w(this, \"canvasManager\");\n w(this, \"processedNodeManager\");\n w(this, \"unattachedDoc\");\n w(this, \"processMutations\", (e) => {\n e.forEach(this.processMutation), this.emit();\n });\n w(this, \"emit\", () => {\n if (this.frozen || this.locked)\n return;\n const e = [], t = /* @__PURE__ */ new Set(), s = new iu(), n = (l) => {\n let c = l, u = nt;\n for (; u === nt; )\n c = c && c.nextSibling, u = c && this.mirror.getId(c);\n return u;\n }, i = (l) => {\n if (!l.parentNode || !Hs(l) || l.parentNode.tagName === \"TEXTAREA\")\n return;\n const c = et(l.parentNode) ? this.mirror.getId(Gs(l)) : this.mirror.getId(l.parentNode), u = n(l);\n if (c === -1 || u === -1)\n return s.addNode(l);\n const p = Pe(l, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: !0,\n newlyAddedElement: !0,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (d) => {\n Ue(d, this.mirror) && this.iframeManager.addIframe(d), Vs(d, this.mirror) && this.stylesheetManager.trackLinkElement(\n d\n ), we(l) && this.shadowDomManager.addShadowRoot(l.shadowRoot, this.doc);\n },\n onIframeLoad: (d, f) => {\n this.iframeManager.attachIframe(d, f), this.shadowDomManager.observeAttachShadow(d);\n },\n onStylesheetLoad: (d, f) => {\n this.stylesheetManager.attachLinkElement(d, f);\n }\n });\n p && (e.push({\n parentId: c,\n nextId: u,\n node: p\n }), t.add(p.id));\n };\n for (; this.mapRemoves.length; )\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n for (const l of this.movedSet)\n Un(this.removes, l, this.mirror) && !this.movedSet.has(l.parentNode) || i(l);\n for (const l of this.addedSet)\n !Wn(this.droppedSet, l) && !Un(this.removes, l, this.mirror) || Wn(this.movedSet, l) ? i(l) : this.droppedSet.add(l);\n let a = null;\n for (; s.length; ) {\n let l = null;\n if (a) {\n const c = this.mirror.getId(a.value.parentNode), u = n(a.value);\n c !== -1 && u !== -1 && (l = a);\n }\n if (!l) {\n let c = s.tail;\n for (; c; ) {\n const u = c;\n if (c = c.previous, u) {\n const p = this.mirror.getId(u.value.parentNode);\n if (n(u.value) === -1) continue;\n if (p !== -1) {\n l = u;\n break;\n } else {\n const f = u.value;\n if (f.parentNode && f.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const y = f.parentNode.host;\n if (this.mirror.getId(y) !== -1) {\n l = u;\n break;\n }\n }\n }\n }\n }\n }\n if (!l) {\n for (; s.head; )\n s.removeNode(s.head.value);\n break;\n }\n a = l.previous, s.removeNode(l.value), i(l.value);\n }\n const o = {\n texts: this.texts.map((l) => {\n const c = l.node;\n return c.parentNode && c.parentNode.tagName === \"TEXTAREA\" && this.genTextAreaValueMutation(c.parentNode), {\n id: this.mirror.getId(c),\n value: l.value\n };\n }).filter((l) => !t.has(l.id)).filter((l) => this.mirror.has(l.id)),\n attributes: this.attributes.map((l) => {\n const { attributes: c } = l;\n if (typeof c.style == \"string\") {\n const u = JSON.stringify(l.styleDiff), p = JSON.stringify(l._unchangedStyles);\n u.length < c.style.length && (u + p).split(\"var(\").length === c.style.split(\"var(\").length && (c.style = l.styleDiff);\n }\n return {\n id: this.mirror.getId(l.node),\n attributes: c\n };\n }).filter((l) => !t.has(l.id)).filter((l) => this.mirror.has(l.id)),\n removes: this.removes,\n adds: e\n };\n !o.texts.length && !o.attributes.length && !o.removes.length && !o.adds.length || (this.texts = [], this.attributes = [], this.attributeMap = /* @__PURE__ */ new WeakMap(), this.removes = [], this.addedSet = /* @__PURE__ */ new Set(), this.movedSet = /* @__PURE__ */ new Set(), this.droppedSet = /* @__PURE__ */ new Set(), this.movedMap = {}, this.mutationCb(o));\n });\n w(this, \"genTextAreaValueMutation\", (e) => {\n let t = this.attributeMap.get(e);\n t || (t = {\n node: e,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n }, this.attributes.push(t), this.attributeMap.set(e, t)), t.attributes.value = Array.from(\n e.childNodes,\n (s) => s.textContent || \"\"\n ).join(\"\");\n });\n w(this, \"processMutation\", (e) => {\n if (!Gt(e.target, this.mirror, this.slimDOMOptions))\n switch (e.type) {\n case \"characterData\": {\n const t = e.target.textContent;\n !J(e.target, this.blockClass, this.blockSelector, !1) && t !== e.oldValue && this.texts.push({\n value: Ti(\n e.target,\n this.maskTextClass,\n this.maskTextSelector,\n !0\n // checkAncestors\n ) && t ? this.maskTextFn ? this.maskTextFn(t, $s(e.target)) : t.replace(/[\\S]/g, \"*\") : t,\n node: e.target\n });\n break;\n }\n case \"attributes\": {\n const t = e.target;\n let s = e.attributeName, n = e.target.getAttribute(s);\n if (s === \"value\") {\n const a = xs(t);\n n = Ms({\n element: t,\n maskInputOptions: this.maskInputOptions,\n tagName: t.tagName,\n type: a,\n value: n,\n maskInputFn: this.maskInputFn\n }).value;\n }\n if (J(e.target, this.blockClass, this.blockSelector, !1) || n === e.oldValue)\n return;\n let i = this.attributeMap.get(e.target);\n if (t.tagName === \"IFRAME\" && s === \"src\" && !this.keepIframeSrcFn(n))\n if (!t.contentDocument)\n s = \"rr_src\";\n else\n return;\n if (i || (i = {\n node: e.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n }, this.attributes.push(i), this.attributeMap.set(e.target, i)), s === \"type\" && t.tagName === \"INPUT\" && (e.oldValue || \"\").toLowerCase() === \"password\" && t.setAttribute(\"data-rr-is-password\", \"true\"), !ki(t.tagName, s) && (i.attributes[s] = Ii(\n this.doc,\n Se(t.tagName),\n Se(s),\n n\n ), s === \"style\")) {\n if (!this.unattachedDoc)\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch {\n this.unattachedDoc = this.doc;\n }\n const a = this.unattachedDoc.createElement(\"span\");\n e.oldValue && a.setAttribute(\"style\", e.oldValue);\n for (const o of Array.from(t.style)) {\n const l = t.style.getPropertyValue(o), c = t.style.getPropertyPriority(o);\n l !== a.style.getPropertyValue(o) || c !== a.style.getPropertyPriority(o) ? c === \"\" ? i.styleDiff[o] = l : i.styleDiff[o] = [l, c] : i._unchangedStyles[o] = [l, c];\n }\n for (const o of Array.from(a.style))\n t.style.getPropertyValue(o) === \"\" && (i.styleDiff[o] = !1);\n }\n break;\n }\n case \"childList\": {\n if (J(e.target, this.blockClass, this.blockSelector, !0))\n return;\n if (e.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(e.target);\n return;\n }\n e.addedNodes.forEach((t) => this.genAdds(t, e.target)), e.removedNodes.forEach((t) => {\n const s = this.mirror.getId(t), n = et(e.target) ? this.mirror.getId(e.target.host) : this.mirror.getId(e.target);\n J(e.target, this.blockClass, this.blockSelector, !1) || Gt(t, this.mirror, this.slimDOMOptions) || !po(t, this.mirror) || (this.addedSet.has(t) ? (ss(this.addedSet, t), this.droppedSet.add(t)) : this.addedSet.has(e.target) && s === -1 || Us(e.target, this.mirror) || (this.movedSet.has(t) && this.movedMap[$n(s, n)] ? ss(this.movedSet, t) : this.removes.push({\n parentId: n,\n id: s,\n isShadow: et(e.target) && tt(e.target) ? !0 : void 0\n })), this.mapRemoves.push(t));\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n w(this, \"genAdds\", (e, t) => {\n if (!this.processedNodeManager.inOtherBuffer(e, this) && !(this.addedSet.has(e) || this.movedSet.has(e))) {\n if (this.mirror.hasNode(e)) {\n if (Gt(e, this.mirror, this.slimDOMOptions))\n return;\n this.movedSet.add(e);\n let s = null;\n t && this.mirror.hasNode(t) && (s = this.mirror.getId(t)), s && s !== -1 && (this.movedMap[$n(this.mirror.getId(e), s)] = !0);\n } else\n this.addedSet.add(e), this.droppedSet.delete(e);\n J(e, this.blockClass, this.blockSelector, !1) || (e.childNodes.forEach((s) => this.genAdds(s)), we(e) && e.shadowRoot.childNodes.forEach((s) => {\n this.processedNodeManager.add(s, this), this.genAdds(s, e);\n }));\n }\n });\n }\n init(e) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((t) => {\n this[t] = e[t];\n });\n }\n freeze() {\n this.frozen = !0, this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = !1, this.canvasManager.unfreeze(), this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = !0, this.canvasManager.lock();\n }\n unlock() {\n this.locked = !1, this.canvasManager.unlock(), this.emit();\n }\n reset() {\n this.shadowDomManager.reset(), this.canvasManager.reset();\n }\n}\nfunction ss(r, e) {\n r.delete(e), e.childNodes.forEach((t) => ss(r, t));\n}\nfunction Un(r, e, t) {\n return r.length === 0 ? !1 : au(r, e, t);\n}\nfunction au(r, e, t) {\n let s = e.parentNode;\n for (; s; ) {\n const n = t.getId(s);\n if (r.some((i) => i.id === n))\n return !0;\n s = s.parentNode;\n }\n return !1;\n}\nfunction Wn(r, e) {\n return r.size === 0 ? !1 : wo(r, e);\n}\nfunction wo(r, e) {\n const { parentNode: t } = e;\n return t ? r.has(t) ? !0 : wo(r, t) : !1;\n}\nconst Ee = [];\nfunction yt(r) {\n try {\n if (\"composedPath\" in r) {\n const e = r.composedPath();\n if (e.length)\n return e[0];\n } else if (\"path\" in r && r.path.length)\n return r.path[0];\n } catch {\n }\n return r && r.target;\n}\nfunction bo(r, e) {\n var a, o;\n const t = new ou();\n Ee.push(t), t.init(r);\n let s = window.MutationObserver || /**\n * Some websites may disable MutationObserver by removing it from the window object.\n * If someone is using rrweb to build a browser extention or things like it, they\n * could not change the website's code but can have an opportunity to inject some\n * code before the website executing its JS logic.\n * Then they can do this to store the native MutationObserver:\n * window.__rrMutationObserver = MutationObserver\n */\n window.__rrMutationObserver;\n const n = (o = (a = window == null ? void 0 : window.Zone) == null ? void 0 : a.__symbol__) == null ? void 0 : o.call(a, \"MutationObserver\");\n n && window[n] && (s = window[n]);\n const i = new s(\n R(t.processMutations.bind(t))\n );\n return i.observe(e, {\n attributes: !0,\n attributeOldValue: !0,\n characterData: !0,\n characterDataOldValue: !0,\n childList: !0,\n subtree: !0\n }), i;\n}\nfunction lu({\n mousemoveCb: r,\n sampling: e,\n doc: t,\n mirror: s\n}) {\n if (e.mousemove === !1)\n return () => {\n };\n const n = typeof e.mousemove == \"number\" ? e.mousemove : 50, i = typeof e.mousemoveCallback == \"number\" ? e.mousemoveCallback : 500;\n let a = [], o;\n const l = ze(\n R(\n (p) => {\n const d = Date.now() - o;\n r(\n a.map((f) => (f.timeOffset -= d, f)),\n p\n ), a = [], o = null;\n }\n ),\n i\n ), c = R(\n ze(\n R((p) => {\n const d = yt(p), { clientX: f, clientY: y } = nr(p) ? p.changedTouches[0] : p;\n o || (o = ct()), a.push({\n x: f,\n y,\n id: s.getId(d),\n timeOffset: ct() - o\n }), l(\n typeof DragEvent < \"u\" && p instanceof DragEvent ? C.Drag : p instanceof MouseEvent ? C.MouseMove : C.TouchMove\n );\n }),\n n,\n {\n trailing: !1\n }\n )\n ), u = [\n Z(\"mousemove\", c, t),\n Z(\"touchmove\", c, t),\n Z(\"drag\", c, t)\n ];\n return R(() => {\n u.forEach((p) => p());\n });\n}\nfunction cu({\n mouseInteractionCb: r,\n doc: e,\n mirror: t,\n blockClass: s,\n blockSelector: n,\n sampling: i\n}) {\n if (i.mouseInteraction === !1)\n return () => {\n };\n const a = i.mouseInteraction === !0 || i.mouseInteraction === void 0 ? {} : i.mouseInteraction, o = [];\n let l = null;\n const c = (u) => (p) => {\n const d = yt(p);\n if (J(d, s, n, !0))\n return;\n let f = null, y = u;\n if (\"pointerType\" in p) {\n switch (p.pointerType) {\n case \"mouse\":\n f = pe.Mouse;\n break;\n case \"touch\":\n f = pe.Touch;\n break;\n case \"pen\":\n f = pe.Pen;\n break;\n }\n f === pe.Touch ? L[u] === L.MouseDown ? y = \"TouchStart\" : L[u] === L.MouseUp && (y = \"TouchEnd\") : pe.Pen;\n } else nr(p) && (f = pe.Touch);\n f !== null ? (l = f, (y.startsWith(\"Touch\") && f === pe.Touch || y.startsWith(\"Mouse\") && f === pe.Mouse) && (f = null)) : L[u] === L.Click && (f = l, l = null);\n const h = nr(p) ? p.changedTouches[0] : p;\n if (!h)\n return;\n const b = t.getId(d), { clientX: g, clientY: S } = h;\n R(r)({\n type: L[y],\n id: b,\n x: g,\n y: S,\n ...f !== null && { pointerType: f }\n });\n };\n return Object.keys(L).filter(\n (u) => Number.isNaN(Number(u)) && !u.endsWith(\"_Departed\") && a[u] !== !1\n ).forEach((u) => {\n let p = Se(u);\n const d = c(u);\n if (window.PointerEvent)\n switch (L[u]) {\n case L.MouseDown:\n case L.MouseUp:\n p = p.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case L.TouchStart:\n case L.TouchEnd:\n return;\n }\n o.push(Z(p, d, e));\n }), R(() => {\n o.forEach((u) => u());\n });\n}\nfunction So({\n scrollCb: r,\n doc: e,\n mirror: t,\n blockClass: s,\n blockSelector: n,\n sampling: i\n}) {\n const a = R(\n ze(\n R((o) => {\n const l = yt(o);\n if (!l || J(l, s, n, !0))\n return;\n const c = t.getId(l);\n if (l === e && e.defaultView) {\n const u = Ps(e.defaultView);\n r({\n id: c,\n x: u.left,\n y: u.top\n });\n } else\n r({\n id: c,\n x: l.scrollLeft,\n y: l.scrollTop\n });\n }),\n i.scroll || 100\n )\n );\n return Z(\"scroll\", a, e);\n}\nfunction uu({ viewportResizeCb: r }, { win: e }) {\n let t = -1, s = -1;\n const n = R(\n ze(\n R(() => {\n const i = Fs(), a = _s();\n (t !== i || s !== a) && (r({\n width: Number(a),\n height: Number(i)\n }), t = i, s = a);\n }),\n 200\n )\n );\n return Z(\"resize\", n, e);\n}\nconst hu = [\"INPUT\", \"TEXTAREA\", \"SELECT\"], Bn = /* @__PURE__ */ new WeakMap();\nfunction pu({\n inputCb: r,\n doc: e,\n mirror: t,\n blockClass: s,\n blockSelector: n,\n ignoreClass: i,\n ignoreSelector: a,\n maskInputOptions: o,\n maskInputFn: l,\n sampling: c,\n userTriggeredOnInput: u\n}) {\n function p(S) {\n let m = yt(S);\n const v = S.isTrusted, E = m && m.tagName;\n if (m && E === \"OPTION\" && (m = m.parentElement), !m || !E || hu.indexOf(E) < 0 || J(m, s, n, !0) || m.classList.contains(i) || a && m.matches(a))\n return;\n let T = m.value, O = !1;\n const $ = xs(m) || \"\", { value: Y, masked: Q } = Ms({\n element: m,\n maskInputOptions: o,\n tagName: E,\n type: $,\n value: T,\n maskInputFn: l\n });\n T = Y, ($ === \"radio\" || $ === \"checkbox\") && (O = m.checked), d(\n m,\n u ? { text: T, isChecked: O, masked: Q, userTriggered: v } : { text: T, isChecked: O, masked: Q }\n );\n const K = m.name;\n $ === \"radio\" && K && O && e.querySelectorAll(`input[type=\"radio\"][name=\"${K}\"]`).forEach((k) => {\n if (k !== m) {\n const ee = k.value;\n d(\n k,\n u ? { text: ee, isChecked: !O, masked: Q, userTriggered: !1 } : { text: ee, isChecked: !O, masked: Q }\n );\n }\n });\n }\n function d(S, m) {\n const v = Bn.get(S);\n if (!v || v.text !== m.text || v.isChecked !== m.isChecked || v.masked !== m.masked) {\n Bn.set(S, m);\n const E = t.getId(S);\n R(r)({\n ...m,\n id: E\n });\n }\n }\n const y = (c.input === \"last\" ? [\"change\"] : [\"input\", \"change\"]).map(\n (S) => Z(S, R(p), e)\n ), h = e.defaultView;\n if (!h)\n return () => {\n y.forEach((S) => S());\n };\n const b = h.Object.getOwnPropertyDescriptor(\n h.HTMLInputElement.prototype,\n \"value\"\n ), g = [\n [h.HTMLInputElement.prototype, \"value\"],\n [h.HTMLInputElement.prototype, \"checked\"],\n [h.HTMLSelectElement.prototype, \"value\"],\n [h.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [h.HTMLSelectElement.prototype, \"selectedIndex\"],\n [h.HTMLOptionElement.prototype, \"selected\"]\n ];\n return b && b.set && y.push(\n ...g.map(\n (S) => gt(\n S[0],\n S[1],\n {\n set() {\n R(p)({\n target: this,\n isTrusted: !1\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n !1,\n h\n )\n )\n ), R(() => {\n y.forEach((S) => S());\n });\n}\nfunction ir(r) {\n const e = [];\n function t(s, n) {\n if (Rt(\"CSSGroupingRule\") && s.parentRule instanceof CSSGroupingRule || Rt(\"CSSMediaRule\") && s.parentRule instanceof CSSMediaRule || Rt(\"CSSSupportsRule\") && s.parentRule instanceof CSSSupportsRule || Rt(\"CSSConditionRule\") && s.parentRule instanceof CSSConditionRule) {\n const a = Array.from(\n s.parentRule.cssRules\n ).indexOf(s);\n n.unshift(a);\n } else if (s.parentStyleSheet) {\n const a = Array.from(s.parentStyleSheet.cssRules).indexOf(s);\n n.unshift(a);\n }\n return n;\n }\n return t(r, e);\n}\nfunction ge(r, e, t) {\n let s, n;\n return r ? (r.ownerNode ? s = e.getId(r.ownerNode) : n = t.getId(r), {\n styleId: n,\n id: s\n }) : {};\n}\nfunction du({ styleSheetRuleCb: r, mirror: e, stylesheetManager: t }, { win: s }) {\n if (!s.CSSStyleSheet || !s.CSSStyleSheet.prototype)\n return () => {\n };\n const n = s.CSSStyleSheet.prototype.insertRule;\n s.CSSStyleSheet.prototype.insertRule = new Proxy(n, {\n apply: R(\n (u, p, d) => {\n const [f, y] = d, { id: h, styleId: b } = ge(\n p,\n e,\n t.styleMirror\n );\n return (h && h !== -1 || b && b !== -1) && r({\n id: h,\n styleId: b,\n adds: [{ rule: f, index: y }]\n }), u.apply(p, d);\n }\n )\n });\n const i = s.CSSStyleSheet.prototype.deleteRule;\n s.CSSStyleSheet.prototype.deleteRule = new Proxy(i, {\n apply: R(\n (u, p, d) => {\n const [f] = d, { id: y, styleId: h } = ge(\n p,\n e,\n t.styleMirror\n );\n return (y && y !== -1 || h && h !== -1) && r({\n id: y,\n styleId: h,\n removes: [{ index: f }]\n }), u.apply(p, d);\n }\n )\n });\n let a;\n s.CSSStyleSheet.prototype.replace && (a = s.CSSStyleSheet.prototype.replace, s.CSSStyleSheet.prototype.replace = new Proxy(a, {\n apply: R(\n (u, p, d) => {\n const [f] = d, { id: y, styleId: h } = ge(\n p,\n e,\n t.styleMirror\n );\n return (y && y !== -1 || h && h !== -1) && r({\n id: y,\n styleId: h,\n replace: f\n }), u.apply(p, d);\n }\n )\n }));\n let o;\n s.CSSStyleSheet.prototype.replaceSync && (o = s.CSSStyleSheet.prototype.replaceSync, s.CSSStyleSheet.prototype.replaceSync = new Proxy(o, {\n apply: R(\n (u, p, d) => {\n const [f] = d, { id: y, styleId: h } = ge(\n p,\n e,\n t.styleMirror\n );\n return (y && y !== -1 || h && h !== -1) && r({\n id: y,\n styleId: h,\n replaceSync: f\n }), u.apply(p, d);\n }\n )\n }));\n const l = {};\n Dt(\"CSSGroupingRule\") ? l.CSSGroupingRule = s.CSSGroupingRule : (Dt(\"CSSMediaRule\") && (l.CSSMediaRule = s.CSSMediaRule), Dt(\"CSSConditionRule\") && (l.CSSConditionRule = s.CSSConditionRule), Dt(\"CSSSupportsRule\") && (l.CSSSupportsRule = s.CSSSupportsRule));\n const c = {};\n return Object.entries(l).forEach(([u, p]) => {\n c[u] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: p.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: p.prototype.deleteRule\n }, p.prototype.insertRule = new Proxy(\n c[u].insertRule,\n {\n apply: R(\n (d, f, y) => {\n const [h, b] = y, { id: g, styleId: S } = ge(\n f.parentStyleSheet,\n e,\n t.styleMirror\n );\n return (g && g !== -1 || S && S !== -1) && r({\n id: g,\n styleId: S,\n adds: [\n {\n rule: h,\n index: [\n ...ir(f),\n b || 0\n // defaults to 0\n ]\n }\n ]\n }), d.apply(f, y);\n }\n )\n }\n ), p.prototype.deleteRule = new Proxy(\n c[u].deleteRule,\n {\n apply: R(\n (d, f, y) => {\n const [h] = y, { id: b, styleId: g } = ge(\n f.parentStyleSheet,\n e,\n t.styleMirror\n );\n return (b && b !== -1 || g && g !== -1) && r({\n id: b,\n styleId: g,\n removes: [\n { index: [...ir(f), h] }\n ]\n }), d.apply(f, y);\n }\n )\n }\n );\n }), R(() => {\n s.CSSStyleSheet.prototype.insertRule = n, s.CSSStyleSheet.prototype.deleteRule = i, a && (s.CSSStyleSheet.prototype.replace = a), o && (s.CSSStyleSheet.prototype.replaceSync = o), Object.entries(l).forEach(([u, p]) => {\n p.prototype.insertRule = c[u].insertRule, p.prototype.deleteRule = c[u].deleteRule;\n });\n });\n}\nfunction vo({\n mirror: r,\n stylesheetManager: e\n}, t) {\n var a, o, l;\n let s = null;\n t.nodeName === \"#document\" ? s = r.getId(t) : s = r.getId(t.host);\n const n = t.nodeName === \"#document\" ? (a = t.defaultView) == null ? void 0 : a.Document : (l = (o = t.ownerDocument) == null ? void 0 : o.defaultView) == null ? void 0 : l.ShadowRoot, i = n != null && n.prototype ? Object.getOwnPropertyDescriptor(\n n == null ? void 0 : n.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n return s === null || s === -1 || !n || !i ? () => {\n } : (Object.defineProperty(t, \"adoptedStyleSheets\", {\n configurable: i.configurable,\n enumerable: i.enumerable,\n get() {\n var c;\n return (c = i.get) == null ? void 0 : c.call(this);\n },\n set(c) {\n var p;\n const u = (p = i.set) == null ? void 0 : p.call(this, c);\n if (s !== null && s !== -1)\n try {\n e.adoptStyleSheets(c, s);\n } catch {\n }\n return u;\n }\n }), R(() => {\n Object.defineProperty(t, \"adoptedStyleSheets\", {\n configurable: i.configurable,\n enumerable: i.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: i.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: i.set\n });\n }));\n}\nfunction fu({\n styleDeclarationCb: r,\n mirror: e,\n ignoreCSSAttributes: t,\n stylesheetManager: s\n}, { win: n }) {\n const i = n.CSSStyleDeclaration.prototype.setProperty;\n n.CSSStyleDeclaration.prototype.setProperty = new Proxy(i, {\n apply: R(\n (o, l, c) => {\n var h;\n const [u, p, d] = c;\n if (t.has(u))\n return i.apply(l, [u, p, d]);\n const { id: f, styleId: y } = ge(\n (h = l.parentRule) == null ? void 0 : h.parentStyleSheet,\n e,\n s.styleMirror\n );\n return (f && f !== -1 || y && y !== -1) && r({\n id: f,\n styleId: y,\n set: {\n property: u,\n value: p,\n priority: d\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: ir(l.parentRule)\n }), o.apply(l, c);\n }\n )\n });\n const a = n.CSSStyleDeclaration.prototype.removeProperty;\n return n.CSSStyleDeclaration.prototype.removeProperty = new Proxy(a, {\n apply: R(\n (o, l, c) => {\n var f;\n const [u] = c;\n if (t.has(u))\n return a.apply(l, [u]);\n const { id: p, styleId: d } = ge(\n (f = l.parentRule) == null ? void 0 : f.parentStyleSheet,\n e,\n s.styleMirror\n );\n return (p && p !== -1 || d && d !== -1) && r({\n id: p,\n styleId: d,\n remove: {\n property: u\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: ir(l.parentRule)\n }), o.apply(l, c);\n }\n )\n }), R(() => {\n n.CSSStyleDeclaration.prototype.setProperty = i, n.CSSStyleDeclaration.prototype.removeProperty = a;\n });\n}\nfunction mu({\n mediaInteractionCb: r,\n blockClass: e,\n blockSelector: t,\n mirror: s,\n sampling: n,\n doc: i\n}) {\n const a = R(\n (l) => ze(\n R((c) => {\n const u = yt(c);\n if (!u || J(u, e, t, !0))\n return;\n const { currentTime: p, volume: d, muted: f, playbackRate: y, loop: h } = u;\n r({\n type: l,\n id: s.getId(u),\n currentTime: p,\n volume: d,\n muted: f,\n playbackRate: y,\n loop: h\n });\n }),\n n.media || 500\n )\n ), o = [\n Z(\"play\", a(ye.Play), i),\n Z(\"pause\", a(ye.Pause), i),\n Z(\"seeked\", a(ye.Seeked), i),\n Z(\"volumechange\", a(ye.VolumeChange), i),\n Z(\"ratechange\", a(ye.RateChange), i)\n ];\n return R(() => {\n o.forEach((l) => l());\n });\n}\nfunction gu({ fontCb: r, doc: e }) {\n const t = e.defaultView;\n if (!t)\n return () => {\n };\n const s = [], n = /* @__PURE__ */ new WeakMap(), i = t.FontFace;\n t.FontFace = function(l, c, u) {\n const p = new i(l, c, u);\n return n.set(p, {\n family: l,\n buffer: typeof c != \"string\",\n descriptors: u,\n fontSource: typeof c == \"string\" ? c : JSON.stringify(Array.from(new Uint8Array(c)))\n }), p;\n };\n const a = ke(\n e.fonts,\n \"add\",\n function(o) {\n return function(l) {\n return setTimeout(\n R(() => {\n const c = n.get(l);\n c && (r(c), n.delete(l));\n }),\n 0\n ), o.apply(this, [l]);\n };\n }\n );\n return s.push(() => {\n t.FontFace = i;\n }), s.push(a), R(() => {\n s.forEach((o) => o());\n });\n}\nfunction yu(r) {\n const { doc: e, mirror: t, blockClass: s, blockSelector: n, selectionCb: i } = r;\n let a = !0;\n const o = R(() => {\n const l = e.getSelection();\n if (!l || a && (l != null && l.isCollapsed)) return;\n a = l.isCollapsed || !1;\n const c = [], u = l.rangeCount || 0;\n for (let p = 0; p < u; p++) {\n const d = l.getRangeAt(p), { startContainer: f, startOffset: y, endContainer: h, endOffset: b } = d;\n J(f, s, n, !0) || J(h, s, n, !0) || c.push({\n start: t.getId(f),\n startOffset: y,\n end: t.getId(h),\n endOffset: b\n });\n }\n i({ ranges: c });\n });\n return o(), Z(\"selectionchange\", o);\n}\nfunction wu({\n doc: r,\n customElementCb: e\n}) {\n const t = r.defaultView;\n return !t || !t.customElements ? () => {\n } : ke(\n t.customElements,\n \"define\",\n function(n) {\n return function(i, a, o) {\n try {\n e({\n define: {\n name: i\n }\n });\n } catch {\n console.warn(`Custom element callback failed for ${i}`);\n }\n return n.apply(this, [i, a, o]);\n };\n }\n );\n}\nfunction bu(r, e) {\n const {\n mutationCb: t,\n mousemoveCb: s,\n mouseInteractionCb: n,\n scrollCb: i,\n viewportResizeCb: a,\n inputCb: o,\n mediaInteractionCb: l,\n styleSheetRuleCb: c,\n styleDeclarationCb: u,\n canvasMutationCb: p,\n fontCb: d,\n selectionCb: f,\n customElementCb: y\n } = r;\n r.mutationCb = (...h) => {\n e.mutation && e.mutation(...h), t(...h);\n }, r.mousemoveCb = (...h) => {\n e.mousemove && e.mousemove(...h), s(...h);\n }, r.mouseInteractionCb = (...h) => {\n e.mouseInteraction && e.mouseInteraction(...h), n(...h);\n }, r.scrollCb = (...h) => {\n e.scroll && e.scroll(...h), i(...h);\n }, r.viewportResizeCb = (...h) => {\n e.viewportResize && e.viewportResize(...h), a(...h);\n }, r.inputCb = (...h) => {\n e.input && e.input(...h), o(...h);\n }, r.mediaInteractionCb = (...h) => {\n e.mediaInteaction && e.mediaInteaction(...h), l(...h);\n }, r.styleSheetRuleCb = (...h) => {\n e.styleSheetRule && e.styleSheetRule(...h), c(...h);\n }, r.styleDeclarationCb = (...h) => {\n e.styleDeclaration && e.styleDeclaration(...h), u(...h);\n }, r.canvasMutationCb = (...h) => {\n e.canvasMutation && e.canvasMutation(...h), p(...h);\n }, r.fontCb = (...h) => {\n e.font && e.font(...h), d(...h);\n }, r.selectionCb = (...h) => {\n e.selection && e.selection(...h), f(...h);\n }, r.customElementCb = (...h) => {\n e.customElement && e.customElement(...h), y(...h);\n };\n}\nfunction Su(r, e = {}) {\n const t = r.doc.defaultView;\n if (!t)\n return () => {\n };\n bu(r, e);\n let s;\n r.recordDOM && (s = bo(r, r.doc));\n const n = lu(r), i = cu(r), a = So(r), o = uu(r, {\n win: t\n }), l = pu(r), c = mu(r);\n let u = () => {\n }, p = () => {\n }, d = () => {\n }, f = () => {\n };\n r.recordDOM && (u = du(r, { win: t }), p = vo(r, r.doc), d = fu(r, {\n win: t\n }), r.collectFonts && (f = gu(r)));\n const y = yu(r), h = wu(r), b = [];\n for (const g of r.plugins)\n b.push(\n g.observer(g.callback, t, g.options)\n );\n return R(() => {\n Ee.forEach((g) => g.reset()), s == null || s.disconnect(), n(), i(), a(), o(), l(), c(), u(), p(), d(), f(), y(), h(), b.forEach((g) => g());\n });\n}\nfunction Rt(r) {\n return typeof window[r] < \"u\";\n}\nfunction Dt(r) {\n return !!(typeof window[r] < \"u\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[r].prototype && \"insertRule\" in window[r].prototype && \"deleteRule\" in window[r].prototype);\n}\nconst Co = \"KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Zvcih2YXIgcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsdz10eXBlb2YgVWludDhBcnJheT4idSI/W106bmV3IFVpbnQ4QXJyYXkoMjU2KSxpPTA7aTxyLmxlbmd0aDtpKyspd1tyLmNoYXJDb2RlQXQoaSldPWk7dmFyIHA9ZnVuY3Rpb24ocyl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkocyksbixhPWUubGVuZ3RoLHQ9IiI7Zm9yKG49MDtuPGE7bis9Myl0Kz1yW2Vbbl0+PjJdLHQrPXJbKGVbbl0mMyk8PDR8ZVtuKzFdPj40XSx0Kz1yWyhlW24rMV0mMTUpPDwyfGVbbisyXT4+Nl0sdCs9cltlW24rMl0mNjNdO3JldHVybiBhJTM9PT0yP3Q9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0xKSsiPSI6YSUzPT09MSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0yKSsiPT0iKSx0fTtjb25zdCBsPW5ldyBNYXAsYj1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIHkocyxlLG4pe2NvbnN0IGE9YCR7c30tJHtlfWA7aWYoIk9mZnNjcmVlbkNhbnZhcyJpbiBnbG9iYWxUaGlzKXtpZihiLmhhcyhhKSlyZXR1cm4gYi5nZXQoYSk7Y29uc3QgdD1uZXcgT2Zmc2NyZWVuQ2FudmFzKHMsZSk7dC5nZXRDb250ZXh0KCIyZCIpO2NvbnN0IGc9YXdhaXQoYXdhaXQgdC5jb252ZXJ0VG9CbG9iKG4pKS5hcnJheUJ1ZmZlcigpLGM9cChnKTtyZXR1cm4gYi5zZXQoYSxjKSxjfWVsc2UgcmV0dXJuIiJ9Y29uc3Qgbz1zZWxmO28ub25tZXNzYWdlPWFzeW5jIGZ1bmN0aW9uKHMpe2lmKCJPZmZzY3JlZW5DYW52YXMiaW4gZ2xvYmFsVGhpcyl7Y29uc3R7aWQ6ZSxiaXRtYXA6bix3aWR0aDphLGhlaWdodDp0LGRhdGFVUkxPcHRpb25zOnV9PXMuZGF0YSxnPXkoYSx0LHUpLGM9bmV3IE9mZnNjcmVlbkNhbnZhcyhhLHQpO2MuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UobiwwLDApLG4uY2xvc2UoKTtjb25zdCBkPWF3YWl0IGMuY29udmVydFRvQmxvYih1KSx2PWQudHlwZSxoPWF3YWl0IGQuYXJyYXlCdWZmZXIoKSxmPXAoaCk7aWYoIWwuaGFzKGUpJiZhd2FpdCBnPT09ZilyZXR1cm4gbC5zZXQoZSxmKSxvLnBvc3RNZXNzYWdlKHtpZDplfSk7aWYobC5nZXQoZSk9PT1mKXJldHVybiBvLnBvc3RNZXNzYWdlKHtpZDplfSk7by5wb3N0TWVzc2FnZSh7aWQ6ZSx0eXBlOnYsYmFzZTY0OmYsd2lkdGg6YSxoZWlnaHQ6dH0pLGwuc2V0KGUsZil9ZWxzZSByZXR1cm4gby5wb3N0TWVzc2FnZSh7aWQ6cy5kYXRhLmlkfSl9fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtYml0bWFwLWRhdGEtdXJsLXdvcmtlci1Cb1hHVm1Zby5qcy5tYXAK\", vu = (r) => Uint8Array.from(atob(r), (e) => e.charCodeAt(0)), Vn = typeof self < \"u\" && self.Blob && new Blob([vu(Co)], { type: \"text/javascript;charset=utf-8\" });\nfunction Cu(r) {\n let e;\n try {\n if (e = Vn && (self.URL || self.webkitURL).createObjectURL(Vn), !e) throw \"\";\n const t = new Worker(e, {\n name: r == null ? void 0 : r.name\n });\n return t.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(e);\n }), t;\n } catch {\n return new Worker(\n \"data:text/javascript;base64,\" + Co,\n {\n name: r == null ? void 0 : r.name\n }\n );\n } finally {\n e && (self.URL || self.webkitURL).revokeObjectURL(e);\n }\n}\nvar _e = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", qe = typeof Uint8Array > \"u\" ? [] : new Uint8Array(256);\nfor (var At = 0; At < _e.length; At++)\n qe[_e.charCodeAt(At)] = At;\nvar Mu = function(r) {\n var e = new Uint8Array(r), t, s = e.length, n = \"\";\n for (t = 0; t < s; t += 3)\n n += _e[e[t] >> 2], n += _e[(e[t] & 3) << 4 | e[t + 1] >> 4], n += _e[(e[t + 1] & 15) << 2 | e[t + 2] >> 6], n += _e[e[t + 2] & 63];\n return s % 3 === 2 ? n = n.substring(0, n.length - 1) + \"=\" : s % 3 === 1 && (n = n.substring(0, n.length - 2) + \"==\"), n;\n}, xu = function(r) {\n var e = r.length * 0.75, t = r.length, s, n = 0, i, a, o, l;\n r[r.length - 1] === \"=\" && (e--, r[r.length - 2] === \"=\" && e--);\n var c = new ArrayBuffer(e), u = new Uint8Array(c);\n for (s = 0; s < t; s += 4)\n i = qe[r.charCodeAt(s)], a = qe[r.charCodeAt(s + 1)], o = qe[r.charCodeAt(s + 2)], l = qe[r.charCodeAt(s + 3)], u[n++] = i << 2 | a >> 4, u[n++] = (a & 15) << 4 | o >> 2, u[n++] = (o & 3) << 6 | l & 63;\n return c;\n};\nconst zn = /* @__PURE__ */ new Map();\nfunction Eu(r, e) {\n let t = zn.get(r);\n return t || (t = /* @__PURE__ */ new Map(), zn.set(r, t)), t.has(e) || t.set(e, []), t.get(e);\n}\nconst Mo = (r, e, t) => {\n if (!r || !(Eo(r, e) || typeof r == \"object\"))\n return;\n const s = r.constructor.name, n = Eu(t, s);\n let i = n.indexOf(r);\n return i === -1 && (i = n.length, n.push(r)), i;\n};\nfunction Ht(r, e, t) {\n if (r instanceof Array)\n return r.map((s) => Ht(s, e, t));\n if (r === null)\n return r;\n if (r instanceof Float32Array || r instanceof Float64Array || r instanceof Int32Array || r instanceof Uint32Array || r instanceof Uint8Array || r instanceof Uint16Array || r instanceof Int16Array || r instanceof Int8Array || r instanceof Uint8ClampedArray)\n return {\n rr_type: r.constructor.name,\n args: [Object.values(r)]\n };\n if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n r instanceof ArrayBuffer\n ) {\n const s = r.constructor.name, n = Mu(r);\n return {\n rr_type: s,\n base64: n\n };\n } else {\n if (r instanceof DataView)\n return {\n rr_type: r.constructor.name,\n args: [\n Ht(r.buffer, e, t),\n r.byteOffset,\n r.byteLength\n ]\n };\n if (r instanceof HTMLImageElement) {\n const s = r.constructor.name, { src: n } = r;\n return {\n rr_type: s,\n src: n\n };\n } else if (r instanceof HTMLCanvasElement) {\n const s = \"HTMLImageElement\", n = r.toDataURL();\n return {\n rr_type: s,\n src: n\n };\n } else {\n if (r instanceof ImageData)\n return {\n rr_type: r.constructor.name,\n args: [Ht(r.data, e, t), r.width, r.height]\n };\n if (Eo(r, e) || typeof r == \"object\") {\n const s = r.constructor.name, n = Mo(r, e, t);\n return {\n rr_type: s,\n index: n\n };\n }\n }\n }\n return r;\n}\nconst xo = (r, e, t) => r.map((s) => Ht(s, e, t)), Eo = (r, e) => !![\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n].filter(\n (n) => typeof e[n] == \"function\"\n).find(\n (n) => r instanceof e[n]\n);\nfunction Iu(r, e, t, s) {\n const n = [], i = Object.getOwnPropertyNames(\n e.CanvasRenderingContext2D.prototype\n );\n for (const a of i)\n try {\n if (typeof e.CanvasRenderingContext2D.prototype[a] != \"function\")\n continue;\n const o = ke(\n e.CanvasRenderingContext2D.prototype,\n a,\n function(l) {\n return function(...c) {\n return J(this.canvas, t, s, !0) || setTimeout(() => {\n const u = xo(c, e, this);\n r(this.canvas, {\n type: fe[\"2D\"],\n property: a,\n args: u\n });\n }, 0), l.apply(this, c);\n };\n }\n );\n n.push(o);\n } catch {\n const o = gt(\n e.CanvasRenderingContext2D.prototype,\n a,\n {\n set(l) {\n r(this.canvas, {\n type: fe[\"2D\"],\n property: a,\n args: [l],\n setter: !0\n });\n }\n }\n );\n n.push(o);\n }\n return () => {\n n.forEach((a) => a());\n };\n}\nfunction ku(r) {\n return r === \"experimental-webgl\" ? \"webgl\" : r;\n}\nfunction jn(r, e, t, s) {\n const n = [];\n try {\n const i = ke(\n r.HTMLCanvasElement.prototype,\n \"getContext\",\n function(a) {\n return function(o, ...l) {\n if (!J(this, e, t, !0)) {\n const c = ku(o);\n if (\"__context\" in this || (this.__context = c), s && [\"webgl\", \"webgl2\"].includes(c))\n if (l[0] && typeof l[0] == \"object\") {\n const u = l[0];\n u.preserveDrawingBuffer || (u.preserveDrawingBuffer = !0);\n } else\n l.splice(0, 1, {\n preserveDrawingBuffer: !0\n });\n }\n return a.apply(this, [o, ...l]);\n };\n }\n );\n n.push(i);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n n.forEach((i) => i());\n };\n}\nfunction Gn(r, e, t, s, n, i) {\n const a = [], o = Object.getOwnPropertyNames(r);\n for (const l of o)\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n ![\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(l)\n )\n try {\n if (typeof r[l] != \"function\")\n continue;\n const c = ke(\n r,\n l,\n function(u) {\n return function(...p) {\n const d = u.apply(this, p);\n if (Mo(d, i, this), \"tagName\" in this.canvas && !J(this.canvas, s, n, !0)) {\n const f = xo(p, i, this), y = {\n type: e,\n property: l,\n args: f\n };\n t(this.canvas, y);\n }\n return d;\n };\n }\n );\n a.push(c);\n } catch {\n const c = gt(r, l, {\n set(u) {\n t(this.canvas, {\n type: e,\n property: l,\n args: [u],\n setter: !0\n });\n }\n });\n a.push(c);\n }\n return a;\n}\nfunction Tu(r, e, t, s) {\n const n = [];\n return n.push(\n ...Gn(\n e.WebGLRenderingContext.prototype,\n fe.WebGL,\n r,\n t,\n s,\n e\n )\n ), typeof e.WebGL2RenderingContext < \"u\" && n.push(\n ...Gn(\n e.WebGL2RenderingContext.prototype,\n fe.WebGL2,\n r,\n t,\n s,\n e\n )\n ), () => {\n n.forEach((i) => i());\n };\n}\nclass Nu {\n constructor(e) {\n w(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n w(this, \"rafStamps\", { latestId: 0, invokeId: null });\n w(this, \"mirror\");\n w(this, \"mutationCb\");\n w(this, \"resetObservers\");\n w(this, \"frozen\", !1);\n w(this, \"locked\", !1);\n w(this, \"processMutation\", (e, t) => {\n (this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId || !this.rafStamps.invokeId) && (this.rafStamps.invokeId = this.rafStamps.latestId), this.pendingCanvasMutations.has(e) || this.pendingCanvasMutations.set(e, []), this.pendingCanvasMutations.get(e).push(t);\n });\n const {\n sampling: t = \"all\",\n win: s,\n blockClass: n,\n blockSelector: i,\n recordCanvas: a,\n dataURLOptions: o\n } = e;\n this.mutationCb = e.mutationCb, this.mirror = e.mirror, a && t === \"all\" && this.initCanvasMutationObserver(s, n, i), a && typeof t == \"number\" && this.initCanvasFPSObserver(t, s, n, i, {\n dataURLOptions: o\n });\n }\n reset() {\n this.pendingCanvasMutations.clear(), this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = !0;\n }\n unfreeze() {\n this.frozen = !1;\n }\n lock() {\n this.locked = !0;\n }\n unlock() {\n this.locked = !1;\n }\n initCanvasFPSObserver(e, t, s, n, i) {\n const a = jn(\n t,\n s,\n n,\n !0\n ), o = /* @__PURE__ */ new Map(), l = new Cu();\n l.onmessage = (y) => {\n const { id: h } = y.data;\n if (o.set(h, !1), !(\"base64\" in y.data)) return;\n const { base64: b, type: g, width: S, height: m } = y.data;\n this.mutationCb({\n id: h,\n type: fe[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, S, m]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64: b }],\n type: g\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const c = 1e3 / e;\n let u = 0, p;\n const d = () => {\n const y = [];\n return t.document.querySelectorAll(\"canvas\").forEach((h) => {\n J(h, s, n, !0) || y.push(h);\n }), y;\n }, f = (y) => {\n if (u && y - u < c) {\n p = requestAnimationFrame(f);\n return;\n }\n u = y, d().forEach(async (h) => {\n var S;\n const b = this.mirror.getId(h);\n if (o.get(b) || h.width === 0 || h.height === 0) return;\n if (o.set(b, !0), [\"webgl\", \"webgl2\"].includes(h.__context)) {\n const m = h.getContext(h.__context);\n ((S = m == null ? void 0 : m.getContextAttributes()) == null ? void 0 : S.preserveDrawingBuffer) === !1 && m.clear(m.COLOR_BUFFER_BIT);\n }\n const g = await createImageBitmap(h);\n l.postMessage(\n {\n id: b,\n bitmap: g,\n width: h.width,\n height: h.height,\n dataURLOptions: i.dataURLOptions\n },\n [g]\n );\n }), p = requestAnimationFrame(f);\n };\n p = requestAnimationFrame(f), this.resetObservers = () => {\n a(), cancelAnimationFrame(p);\n };\n }\n initCanvasMutationObserver(e, t, s) {\n this.startRAFTimestamping(), this.startPendingCanvasMutationFlusher();\n const n = jn(\n e,\n t,\n s,\n !1\n ), i = Iu(\n this.processMutation.bind(this),\n e,\n t,\n s\n ), a = Tu(\n this.processMutation.bind(this),\n e,\n t,\n s\n );\n this.resetObservers = () => {\n n(), i(), a();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const e = (t) => {\n this.rafStamps.latestId = t, requestAnimationFrame(e);\n };\n requestAnimationFrame(e);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (e, t) => {\n const s = this.mirror.getId(t);\n this.flushPendingCanvasMutationFor(t, s);\n }\n ), requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(e, t) {\n if (this.frozen || this.locked)\n return;\n const s = this.pendingCanvasMutations.get(e);\n if (!s || t === -1) return;\n const n = s.map((a) => {\n const { type: o, ...l } = a;\n return l;\n }), { type: i } = s[0];\n this.mutationCb({ id: t, type: i, commands: n }), this.pendingCanvasMutations.delete(e);\n }\n}\nclass Ou {\n constructor() {\n w(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n w(this, \"active\", !1);\n }\n inOtherBuffer(e, t) {\n const s = this.nodeMap.get(e);\n return s && Array.from(s).some((n) => n !== t);\n }\n add(e, t) {\n this.active || (this.active = !0, requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap(), this.active = !1;\n })), this.nodeMap.set(e, (this.nodeMap.get(e) || /* @__PURE__ */ new Set()).add(t));\n }\n destroy() {\n }\n}\nclass Ru {\n constructor(e) {\n w(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n w(this, \"mutationCb\");\n w(this, \"scrollCb\");\n w(this, \"bypassOptions\");\n w(this, \"mirror\");\n w(this, \"restoreHandlers\", []);\n this.mutationCb = e.mutationCb, this.scrollCb = e.scrollCb, this.bypassOptions = e.bypassOptions, this.mirror = e.mirror, this.init();\n }\n init() {\n this.reset(), this.patchAttachShadow(Element, document);\n }\n addShadowRoot(e, t) {\n if (!tt(e) || this.shadowDoms.has(e)) return;\n this.shadowDoms.add(e);\n const s = bo(\n {\n ...this.bypassOptions,\n doc: t,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n e\n );\n this.restoreHandlers.push(() => s.disconnect()), this.restoreHandlers.push(\n So({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: e,\n mirror: this.mirror\n })\n ), setTimeout(() => {\n e.adoptedStyleSheets && e.adoptedStyleSheets.length > 0 && this.bypassOptions.stylesheetManager.adoptStyleSheets(\n e.adoptedStyleSheets,\n this.mirror.getId(e.host)\n ), this.restoreHandlers.push(\n vo(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n e\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(e) {\n !e.contentWindow || !e.contentDocument || this.patchAttachShadow(\n e.contentWindow.Element,\n e.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(e, t) {\n const s = this;\n this.restoreHandlers.push(\n ke(\n e.prototype,\n \"attachShadow\",\n function(n) {\n return function(i) {\n const a = n.call(this, i);\n return this.shadowRoot && Hs(this) && s.addShadowRoot(this.shadowRoot, t), a;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((e) => {\n try {\n e();\n } catch {\n }\n }), this.restoreHandlers = [], this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nclass Du {\n constructor(e) {\n w(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n w(this, \"mutationCb\");\n w(this, \"adoptedStyleSheetCb\");\n w(this, \"styleMirror\", new js());\n this.mutationCb = e.mutationCb, this.adoptedStyleSheetCb = e.adoptedStyleSheetCb;\n }\n attachLinkElement(e, t) {\n \"_cssText\" in t.attributes && this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: t.id,\n attributes: t.attributes\n }\n ]\n }), this.trackLinkElement(e);\n }\n trackLinkElement(e) {\n this.trackedLinkElements.has(e) || (this.trackedLinkElements.add(e), this.trackStylesheetInLinkElement(e));\n }\n adoptStyleSheets(e, t) {\n if (e.length === 0) return;\n const s = {\n id: t,\n styleIds: []\n }, n = [];\n for (const i of e) {\n let a;\n this.styleMirror.has(i) ? a = this.styleMirror.getId(i) : (a = this.styleMirror.add(i), n.push({\n styleId: a,\n rules: Array.from(i.rules || CSSRule, (o, l) => ({\n rule: Ci(o),\n index: l\n }))\n })), s.styleIds.push(a);\n }\n n.length > 0 && (s.styles = n), this.adoptedStyleSheetCb(s);\n }\n reset() {\n this.styleMirror.reset(), this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(e) {\n }\n}\nlet H, Yt, Ar, or = !1;\nvar vi;\ntry {\n if (Array.from([1], (r) => r * 2)[0] !== 2) {\n const r = document.createElement(\"iframe\");\n document.body.appendChild(r), Array.from = ((vi = r.contentWindow) == null ? void 0 : vi.Array.from) || Array.from, document.body.removeChild(r);\n }\n} catch (r) {\n console.debug(\"Unable to override Array.from\", r);\n}\nconst ne = Mi();\nfunction Te(r = {}) {\n const {\n emit: e,\n checkoutEveryNms: t,\n checkoutEveryNth: s,\n blockClass: n = \"rr-block\",\n blockSelector: i = null,\n ignoreClass: a = \"rr-ignore\",\n ignoreSelector: o = null,\n maskTextClass: l = \"rr-mask\",\n maskTextSelector: c = null,\n inlineStylesheet: u = !0,\n maskAllInputs: p,\n maskInputOptions: d,\n slimDOMOptions: f,\n maskInputFn: y,\n maskTextFn: h,\n hooks: b,\n packFn: g,\n sampling: S = {},\n dataURLOptions: m = {},\n mousemoveWait: v,\n recordDOM: E = !0,\n recordCanvas: T = !1,\n recordCrossOriginIframes: O = !1,\n recordAfter: $ = r.recordAfter === \"DOMContentLoaded\" ? r.recordAfter : \"load\",\n userTriggeredOnInput: Y = !1,\n collectFonts: Q = !1,\n inlineImages: K = !1,\n plugins: k,\n keepIframeSrcFn: ee = () => !1,\n ignoreCSSAttributes: X = /* @__PURE__ */ new Set([]),\n errorHandler: ae\n } = r;\n ru(ae);\n const q = O ? window.parent === window : !0;\n let G = !1;\n if (!q)\n try {\n window.parent.document && (G = !1);\n } catch {\n G = !0;\n }\n if (q && !e)\n throw new Error(\"emit function is required\");\n if (!q && !G)\n return () => {\n };\n v !== void 0 && S.mousemove === void 0 && (S.mousemove = v), ne.reset();\n const Ce = p === !0 ? {\n color: !0,\n date: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0,\n textarea: !0,\n select: !0,\n password: !0\n } : d !== void 0 ? d : { password: !0 }, Oe = f === !0 || f === \"all\" ? {\n script: !0,\n comment: !0,\n headFavicon: !0,\n headWhitespace: !0,\n headMetaSocial: !0,\n headMetaRobots: !0,\n headMetaHttpEquiv: !0,\n headMetaVerification: !0,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: f === \"all\",\n headMetaDescKeywords: f === \"all\",\n headTitleMutations: f === \"all\"\n } : f || {};\n Ws();\n let Xe, Ir = 0;\n const ln = (P) => {\n for (const se of k || [])\n se.eventProcessor && (P = se.eventProcessor(P));\n return g && // Disable packing events which will be emitted to parent frames.\n !G && (P = g(P)), P;\n };\n H = (P, se) => {\n var re;\n const D = P;\n if (D.timestamp = ct(), (re = Ee[0]) != null && re.isFrozen() && D.type !== x.FullSnapshot && !(D.type === x.IncrementalSnapshot && D.data.source === C.Mutation) && Ee.forEach((le) => le.unfreeze()), q)\n e == null || e(ln(D), se);\n else if (G) {\n const le = {\n type: \"@sailfish-rrweb/rrweb\",\n event: ln(D),\n origin: window.location.origin,\n isCheckout: se\n };\n window.parent.postMessage(le, \"*\");\n }\n if (D.type === x.FullSnapshot)\n Xe = D, Ir = 0;\n else if (D.type === x.IncrementalSnapshot) {\n if (D.data.source === C.Mutation && D.data.isAttachIframe)\n return;\n Ir++;\n const le = s && Ir >= s, U = t && D.timestamp - Xe.timestamp > t;\n (le || U) && Yt(!0);\n }\n };\n const St = (P) => {\n H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.Mutation,\n ...P\n }\n });\n }, cn = (P) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.Scroll,\n ...P\n }\n }), un = (P) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.CanvasMutation,\n ...P\n }\n }), xa = (P) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.AdoptedStyleSheet,\n ...P\n }\n }), Me = new Du({\n mutationCb: St,\n adoptedStyleSheetCb: xa\n }), xe = new nu({\n mirror: ne,\n mutationCb: St,\n stylesheetManager: Me,\n recordCrossOriginIframes: O,\n wrappedEmit: H\n });\n for (const P of k || [])\n P.getMirror && P.getMirror({\n nodeMirror: ne,\n crossOriginIframeMirror: xe.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: xe.crossOriginIframeStyleMirror\n });\n const kr = new Ou();\n Ar = new Nu({\n recordCanvas: T,\n mutationCb: un,\n win: window,\n blockClass: n,\n blockSelector: i,\n mirror: ne,\n sampling: S.canvas,\n dataURLOptions: m\n });\n const vt = new Ru({\n mutationCb: St,\n scrollCb: cn,\n bypassOptions: {\n blockClass: n,\n blockSelector: i,\n maskTextClass: l,\n maskTextSelector: c,\n inlineStylesheet: u,\n maskInputOptions: Ce,\n dataURLOptions: m,\n maskTextFn: h,\n maskInputFn: y,\n recordCanvas: T,\n inlineImages: K,\n sampling: S,\n slimDOMOptions: Oe,\n iframeManager: xe,\n stylesheetManager: Me,\n canvasManager: Ar,\n keepIframeSrcFn: ee,\n processedNodeManager: kr\n },\n mirror: ne\n });\n Yt = (P = !1) => {\n if (!E)\n return;\n H(\n {\n type: x.Meta,\n data: {\n href: window.location.href,\n width: _s(),\n height: Fs()\n }\n },\n P\n ), Me.reset(), vt.init(), Ee.forEach((D) => D.lock());\n const se = rl(document, {\n mirror: ne,\n blockClass: n,\n blockSelector: i,\n maskTextClass: l,\n maskTextSelector: c,\n inlineStylesheet: u,\n maskAllInputs: Ce,\n maskTextFn: h,\n maskInputFn: y,\n slimDOM: Oe,\n dataURLOptions: m,\n recordCanvas: T,\n inlineImages: K,\n onSerialize: (D) => {\n Ue(D, ne) && xe.addIframe(D), Vs(D, ne) && Me.trackLinkElement(D), we(D) && vt.addShadowRoot(D.shadowRoot, document);\n },\n onIframeLoad: (D, re) => {\n xe.attachIframe(D, re), vt.observeAttachShadow(D);\n },\n onStylesheetLoad: (D, re) => {\n Me.attachLinkElement(D, re);\n },\n keepIframeSrcFn: ee\n });\n if (!se)\n return console.warn(\"Failed to snapshot the document\");\n H(\n {\n type: x.FullSnapshot,\n data: {\n node: se,\n initialOffset: Ps(window)\n }\n },\n P\n ), Ee.forEach((D) => D.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && Me.adoptStyleSheets(\n document.adoptedStyleSheets,\n ne.getId(document)\n );\n };\n try {\n const P = [], se = (re) => {\n var le;\n return R(Su)(\n {\n mutationCb: St,\n mousemoveCb: (U, Tr) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: Tr,\n positions: U\n }\n }),\n mouseInteractionCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.MouseInteraction,\n ...U\n }\n }),\n scrollCb: cn,\n viewportResizeCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.ViewportResize,\n ...U\n }\n }),\n inputCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.Input,\n ...U\n }\n }),\n mediaInteractionCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.MediaInteraction,\n ...U\n }\n }),\n styleSheetRuleCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.StyleSheetRule,\n ...U\n }\n }),\n styleDeclarationCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.StyleDeclaration,\n ...U\n }\n }),\n canvasMutationCb: un,\n fontCb: (U) => H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.Font,\n ...U\n }\n }),\n selectionCb: (U) => {\n H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.Selection,\n ...U\n }\n });\n },\n customElementCb: (U) => {\n H({\n type: x.IncrementalSnapshot,\n data: {\n source: C.CustomElement,\n ...U\n }\n });\n },\n blockClass: n,\n ignoreClass: a,\n ignoreSelector: o,\n maskTextClass: l,\n maskTextSelector: c,\n maskInputOptions: Ce,\n inlineStylesheet: u,\n sampling: S,\n recordDOM: E,\n recordCanvas: T,\n inlineImages: K,\n userTriggeredOnInput: Y,\n collectFonts: Q,\n doc: re,\n maskInputFn: y,\n maskTextFn: h,\n keepIframeSrcFn: ee,\n blockSelector: i,\n slimDOMOptions: Oe,\n dataURLOptions: m,\n mirror: ne,\n iframeManager: xe,\n stylesheetManager: Me,\n shadowDomManager: vt,\n processedNodeManager: kr,\n canvasManager: Ar,\n ignoreCSSAttributes: X,\n plugins: ((le = k == null ? void 0 : k.filter((U) => U.observer)) == null ? void 0 : le.map((U) => ({\n observer: U.observer,\n options: U.options,\n callback: (Tr) => H({\n type: x.Plugin,\n data: {\n plugin: U.name,\n payload: Tr\n }\n })\n }))) || []\n },\n b\n );\n };\n xe.addLoadListener((re) => {\n try {\n P.push(se(re.contentDocument));\n } catch (le) {\n console.warn(le);\n }\n });\n const D = () => {\n Yt(), P.push(se(document)), or = !0;\n };\n return document.readyState === \"interactive\" || document.readyState === \"complete\" ? D() : (P.push(\n Z(\"DOMContentLoaded\", () => {\n H({\n type: x.DomContentLoaded,\n data: {}\n }), $ === \"DOMContentLoaded\" && D();\n })\n ), P.push(\n Z(\n \"load\",\n () => {\n H({\n type: x.Load,\n data: {}\n }), $ === \"load\" && D();\n },\n window\n )\n )), () => {\n P.forEach((re) => re()), kr.destroy(), or = !1, su();\n };\n } catch (P) {\n console.warn(P);\n }\n}\nTe.addCustomEvent = (r, e) => {\n if (!or)\n throw new Error(\"please add custom event after start recording\");\n H({\n type: x.Custom,\n data: {\n tag: r,\n payload: e\n }\n });\n};\nTe.freezePage = () => {\n Ee.forEach((r) => r.freeze());\n};\nTe.takeFullSnapshot = (r) => {\n if (!or)\n throw new Error(\"please take full snapshot after start recording\");\n Yt(r);\n};\nTe.mirror = ne;\nvar Au = Object.defineProperty, Lu = (r, e, t) => e in r ? Au(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, M = (r, e, t) => Lu(r, typeof e != \"symbol\" ? e + \"\" : e, t), Pu = Object.defineProperty, Fu = (r, e, t) => e in r ? Pu(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, Hn = (r, e, t) => Fu(r, typeof e != \"symbol\" ? e + \"\" : e, t), N = /* @__PURE__ */ ((r) => (r[r.Document = 0] = \"Document\", r[r.DocumentType = 1] = \"DocumentType\", r[r.Element = 2] = \"Element\", r[r.Text = 3] = \"Text\", r[r.CDATA = 4] = \"CDATA\", r[r.Comment = 5] = \"Comment\", r))(N || {});\nclass _u {\n constructor() {\n Hn(this, \"idNodeMap\", /* @__PURE__ */ new Map()), Hn(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(e) {\n var t;\n return e ? ((t = this.getMeta(e)) == null ? void 0 : t.id) ?? -1 : -1;\n }\n getNode(e) {\n return this.idNodeMap.get(e) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(e) {\n return this.nodeMetaMap.get(e) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(e) {\n const t = this.getId(e);\n this.idNodeMap.delete(t), e.childNodes && e.childNodes.forEach(\n (s) => this.removeNodeFromMap(s)\n );\n }\n has(e) {\n return this.idNodeMap.has(e);\n }\n hasNode(e) {\n return this.nodeMetaMap.has(e);\n }\n add(e, t) {\n const s = t.id;\n this.idNodeMap.set(s, e), this.nodeMetaMap.set(e, t);\n }\n replace(e, t) {\n const s = this.getNode(e);\n if (s) {\n const n = this.nodeMetaMap.get(s);\n n && this.nodeMetaMap.set(t, n);\n }\n this.idNodeMap.set(e, t);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map(), this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction $u() {\n return new _u();\n}\nfunction Uu(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nfunction Wu(r) {\n if (r.__esModule) return r;\n var e = r.default;\n if (typeof e == \"function\") {\n var t = function s() {\n return this instanceof s ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);\n };\n t.prototype = e.prototype;\n } else t = {};\n return Object.defineProperty(t, \"__esModule\", { value: !0 }), Object.keys(r).forEach(function(s) {\n var n = Object.getOwnPropertyDescriptor(r, s);\n Object.defineProperty(t, s, n.get ? n : {\n enumerable: !0,\n get: function() {\n return r[s];\n }\n });\n }), t;\n}\nvar Ys = { exports: {} }, V = String, Io = function() {\n return { isColorSupported: !1, reset: V, bold: V, dim: V, italic: V, underline: V, inverse: V, hidden: V, strikethrough: V, black: V, red: V, green: V, yellow: V, blue: V, magenta: V, cyan: V, white: V, gray: V, bgBlack: V, bgRed: V, bgGreen: V, bgYellow: V, bgBlue: V, bgMagenta: V, bgCyan: V, bgWhite: V };\n};\nYs.exports = Io();\nYs.exports.createColors = Io;\nvar Bu = Ys.exports;\nconst Vu = {}, zu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Vu\n}, Symbol.toStringTag, { value: \"Module\" })), oe = /* @__PURE__ */ Wu(zu);\nlet Yn = Bu, Xn = oe, ns = class ko extends Error {\n constructor(e, t, s, n, i, a) {\n super(e), this.name = \"CssSyntaxError\", this.reason = e, i && (this.file = i), n && (this.source = n), a && (this.plugin = a), typeof t < \"u\" && typeof s < \"u\" && (typeof t == \"number\" ? (this.line = t, this.column = s) : (this.line = t.line, this.column = t.column, this.endLine = s.line, this.endColumn = s.column)), this.setMessage(), Error.captureStackTrace && Error.captureStackTrace(this, ko);\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\", this.message += this.file ? this.file : \"<css input>\", typeof this.line < \"u\" && (this.message += \":\" + this.line + \":\" + this.column), this.message += \": \" + this.reason;\n }\n showSourceCode(e) {\n if (!this.source) return \"\";\n let t = this.source;\n e == null && (e = Yn.isColorSupported), Xn && e && (t = Xn(t));\n let s = t.split(/\\r?\\n/), n = Math.max(this.line - 3, 0), i = Math.min(this.line + 2, s.length), a = String(i).length, o, l;\n if (e) {\n let { bold: c, gray: u, red: p } = Yn.createColors(!0);\n o = (d) => c(p(d)), l = (d) => u(d);\n } else\n o = l = (c) => c;\n return s.slice(n, i).map((c, u) => {\n let p = n + 1 + u, d = \" \" + (\" \" + p).slice(-a) + \" | \";\n if (p === this.line) {\n let f = l(d.replace(/\\d/g, \" \")) + c.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return o(\">\") + l(d) + c + `\n ` + f + o(\"^\");\n }\n return \" \" + l(d) + c;\n }).join(`\n`);\n }\n toString() {\n let e = this.showSourceCode();\n return e && (e = `\n\n` + e + `\n`), this.name + \": \" + this.message + e;\n }\n};\nvar Xs = ns;\nns.default = ns;\nvar wt = {};\nwt.isClean = Symbol(\"isClean\");\nwt.my = Symbol(\"my\");\nconst Zn = {\n after: `\n`,\n beforeClose: `\n`,\n beforeComment: `\n`,\n beforeDecl: `\n`,\n beforeOpen: \" \",\n beforeRule: `\n`,\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: !1\n};\nfunction ju(r) {\n return r[0].toUpperCase() + r.slice(1);\n}\nlet is = class {\n constructor(r) {\n this.builder = r;\n }\n atrule(r, e) {\n let t = \"@\" + r.name, s = r.params ? this.rawValue(r, \"params\") : \"\";\n if (typeof r.raws.afterName < \"u\" ? t += r.raws.afterName : s && (t += \" \"), r.nodes)\n this.block(r, t + s);\n else {\n let n = (r.raws.between || \"\") + (e ? \";\" : \"\");\n this.builder(t + s + n, r);\n }\n }\n beforeAfter(r, e) {\n let t;\n r.type === \"decl\" ? t = this.raw(r, null, \"beforeDecl\") : r.type === \"comment\" ? t = this.raw(r, null, \"beforeComment\") : e === \"before\" ? t = this.raw(r, null, \"beforeRule\") : t = this.raw(r, null, \"beforeClose\");\n let s = r.parent, n = 0;\n for (; s && s.type !== \"root\"; )\n n += 1, s = s.parent;\n if (t.includes(`\n`)) {\n let i = this.raw(r, null, \"indent\");\n if (i.length)\n for (let a = 0; a < n; a++) t += i;\n }\n return t;\n }\n block(r, e) {\n let t = this.raw(r, \"between\", \"beforeOpen\");\n this.builder(e + t + \"{\", r, \"start\");\n let s;\n r.nodes && r.nodes.length ? (this.body(r), s = this.raw(r, \"after\")) : s = this.raw(r, \"after\", \"emptyBody\"), s && this.builder(s), this.builder(\"}\", r, \"end\");\n }\n body(r) {\n let e = r.nodes.length - 1;\n for (; e > 0 && r.nodes[e].type === \"comment\"; )\n e -= 1;\n let t = this.raw(r, \"semicolon\");\n for (let s = 0; s < r.nodes.length; s++) {\n let n = r.nodes[s], i = this.raw(n, \"before\");\n i && this.builder(i), this.stringify(n, e !== s || t);\n }\n }\n comment(r) {\n let e = this.raw(r, \"left\", \"commentLeft\"), t = this.raw(r, \"right\", \"commentRight\");\n this.builder(\"/*\" + e + r.text + t + \"*/\", r);\n }\n decl(r, e) {\n let t = this.raw(r, \"between\", \"colon\"), s = r.prop + t + this.rawValue(r, \"value\");\n r.important && (s += r.raws.important || \" !important\"), e && (s += \";\"), this.builder(s, r);\n }\n document(r) {\n this.body(r);\n }\n raw(r, e, t) {\n let s;\n if (t || (t = e), e && (s = r.raws[e], typeof s < \"u\"))\n return s;\n let n = r.parent;\n if (t === \"before\" && (!n || n.type === \"root\" && n.first === r || n && n.type === \"document\"))\n return \"\";\n if (!n) return Zn[t];\n let i = r.root();\n if (i.rawCache || (i.rawCache = {}), typeof i.rawCache[t] < \"u\")\n return i.rawCache[t];\n if (t === \"before\" || t === \"after\")\n return this.beforeAfter(r, t);\n {\n let a = \"raw\" + ju(t);\n this[a] ? s = this[a](i, r) : i.walk((o) => {\n if (s = o.raws[e], typeof s < \"u\") return !1;\n });\n }\n return typeof s > \"u\" && (s = Zn[t]), i.rawCache[t] = s, s;\n }\n rawBeforeClose(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length > 0 && typeof t.raws.after < \"u\")\n return e = t.raws.after, e.includes(`\n`) && (e = e.replace(/[^\\n]+$/, \"\")), !1;\n }), e && (e = e.replace(/\\S/g, \"\")), e;\n }\n rawBeforeComment(r, e) {\n let t;\n return r.walkComments((s) => {\n if (typeof s.raws.before < \"u\")\n return t = s.raws.before, t.includes(`\n`) && (t = t.replace(/[^\\n]+$/, \"\")), !1;\n }), typeof t > \"u\" ? t = this.raw(e, null, \"beforeDecl\") : t && (t = t.replace(/\\S/g, \"\")), t;\n }\n rawBeforeDecl(r, e) {\n let t;\n return r.walkDecls((s) => {\n if (typeof s.raws.before < \"u\")\n return t = s.raws.before, t.includes(`\n`) && (t = t.replace(/[^\\n]+$/, \"\")), !1;\n }), typeof t > \"u\" ? t = this.raw(e, null, \"beforeRule\") : t && (t = t.replace(/\\S/g, \"\")), t;\n }\n rawBeforeOpen(r) {\n let e;\n return r.walk((t) => {\n if (t.type !== \"decl\" && (e = t.raws.between, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawBeforeRule(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && (t.parent !== r || r.first !== t) && typeof t.raws.before < \"u\")\n return e = t.raws.before, e.includes(`\n`) && (e = e.replace(/[^\\n]+$/, \"\")), !1;\n }), e && (e = e.replace(/\\S/g, \"\")), e;\n }\n rawColon(r) {\n let e;\n return r.walkDecls((t) => {\n if (typeof t.raws.between < \"u\")\n return e = t.raws.between.replace(/[^\\s:]/g, \"\"), !1;\n }), e;\n }\n rawEmptyBody(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length === 0 && (e = t.raws.after, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawIndent(r) {\n if (r.raws.indent) return r.raws.indent;\n let e;\n return r.walk((t) => {\n let s = t.parent;\n if (s && s !== r && s.parent && s.parent === r && typeof t.raws.before < \"u\") {\n let n = t.raws.before.split(`\n`);\n return e = n[n.length - 1], e = e.replace(/\\S/g, \"\"), !1;\n }\n }), e;\n }\n rawSemicolon(r) {\n let e;\n return r.walk((t) => {\n if (t.nodes && t.nodes.length && t.last.type === \"decl\" && (e = t.raws.semicolon, typeof e < \"u\"))\n return !1;\n }), e;\n }\n rawValue(r, e) {\n let t = r[e], s = r.raws[e];\n return s && s.value === t ? s.raw : t;\n }\n root(r) {\n this.body(r), r.raws.after && this.builder(r.raws.after);\n }\n rule(r) {\n this.block(r, this.rawValue(r, \"selector\")), r.raws.ownSemicolon && this.builder(r.raws.ownSemicolon, r, \"end\");\n }\n stringify(r, e) {\n if (!this[r.type])\n throw new Error(\n \"Unknown AST node type \" + r.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n this[r.type](r, e);\n }\n};\nvar To = is;\nis.default = is;\nlet Gu = To;\nfunction os(r, e) {\n new Gu(e).stringify(r);\n}\nvar Sr = os;\nos.default = os;\nlet { isClean: Lt, my: Hu } = wt, Yu = Xs, Xu = To, Zu = Sr;\nfunction as(r, e) {\n let t = new r.constructor();\n for (let s in r) {\n if (!Object.prototype.hasOwnProperty.call(r, s) || s === \"proxyCache\") continue;\n let n = r[s], i = typeof n;\n s === \"parent\" && i === \"object\" ? e && (t[s] = e) : s === \"source\" ? t[s] = n : Array.isArray(n) ? t[s] = n.map((a) => as(a, t)) : (i === \"object\" && n !== null && (n = as(n)), t[s] = n);\n }\n return t;\n}\nlet ls = class {\n constructor(r = {}) {\n this.raws = {}, this[Lt] = !1, this[Hu] = !0;\n for (let e in r)\n if (e === \"nodes\") {\n this.nodes = [];\n for (let t of r[e])\n typeof t.clone == \"function\" ? this.append(t.clone()) : this.append(t);\n } else\n this[e] = r[e];\n }\n addToError(r) {\n if (r.postcssNode = this, r.stack && this.source && /\\n\\s{4}at /.test(r.stack)) {\n let e = this.source;\n r.stack = r.stack.replace(\n /\\n\\s{4}at /,\n `$&${e.input.from}:${e.start.line}:${e.start.column}$&`\n );\n }\n return r;\n }\n after(r) {\n return this.parent.insertAfter(this, r), this;\n }\n assign(r = {}) {\n for (let e in r)\n this[e] = r[e];\n return this;\n }\n before(r) {\n return this.parent.insertBefore(this, r), this;\n }\n cleanRaws(r) {\n delete this.raws.before, delete this.raws.after, r || delete this.raws.between;\n }\n clone(r = {}) {\n let e = as(this);\n for (let t in r)\n e[t] = r[t];\n return e;\n }\n cloneAfter(r = {}) {\n let e = this.clone(r);\n return this.parent.insertAfter(this, e), e;\n }\n cloneBefore(r = {}) {\n let e = this.clone(r);\n return this.parent.insertBefore(this, e), e;\n }\n error(r, e = {}) {\n if (this.source) {\n let { end: t, start: s } = this.rangeBy(e);\n return this.source.input.error(\n r,\n { column: s.column, line: s.line },\n { column: t.column, line: t.line },\n e\n );\n }\n return new Yu(r);\n }\n getProxyProcessor() {\n return {\n get(r, e) {\n return e === \"proxyOf\" ? r : e === \"root\" ? () => r.root().toProxy() : r[e];\n },\n set(r, e, t) {\n return r[e] === t || (r[e] = t, (e === \"prop\" || e === \"value\" || e === \"name\" || e === \"params\" || e === \"important\" || /* c8 ignore next */\n e === \"text\") && r.markDirty()), !0;\n }\n };\n }\n markDirty() {\n if (this[Lt]) {\n this[Lt] = !1;\n let r = this;\n for (; r = r.parent; )\n r[Lt] = !1;\n }\n }\n next() {\n if (!this.parent) return;\n let r = this.parent.index(this);\n return this.parent.nodes[r + 1];\n }\n positionBy(r, e) {\n let t = this.source.start;\n if (r.index)\n t = this.positionInside(r.index, e);\n else if (r.word) {\n e = this.toString();\n let s = e.indexOf(r.word);\n s !== -1 && (t = this.positionInside(s, e));\n }\n return t;\n }\n positionInside(r, e) {\n let t = e || this.toString(), s = this.source.start.column, n = this.source.start.line;\n for (let i = 0; i < r; i++)\n t[i] === `\n` ? (s = 1, n += 1) : s += 1;\n return { column: s, line: n };\n }\n prev() {\n if (!this.parent) return;\n let r = this.parent.index(this);\n return this.parent.nodes[r - 1];\n }\n rangeBy(r) {\n let e = {\n column: this.source.start.column,\n line: this.source.start.line\n }, t = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: e.column + 1,\n line: e.line\n };\n if (r.word) {\n let s = this.toString(), n = s.indexOf(r.word);\n n !== -1 && (e = this.positionInside(n, s), t = this.positionInside(n + r.word.length, s));\n } else\n r.start ? e = {\n column: r.start.column,\n line: r.start.line\n } : r.index && (e = this.positionInside(r.index)), r.end ? t = {\n column: r.end.column,\n line: r.end.line\n } : typeof r.endIndex == \"number\" ? t = this.positionInside(r.endIndex) : r.index && (t = this.positionInside(r.index + 1));\n return (t.line < e.line || t.line === e.line && t.column <= e.column) && (t = { column: e.column + 1, line: e.line }), { end: t, start: e };\n }\n raw(r, e) {\n return new Xu().raw(this, r, e);\n }\n remove() {\n return this.parent && this.parent.removeChild(this), this.parent = void 0, this;\n }\n replaceWith(...r) {\n if (this.parent) {\n let e = this, t = !1;\n for (let s of r)\n s === this ? t = !0 : t ? (this.parent.insertAfter(e, s), e = s) : this.parent.insertBefore(e, s);\n t || this.remove();\n }\n return this;\n }\n root() {\n let r = this;\n for (; r.parent && r.parent.type !== \"document\"; )\n r = r.parent;\n return r;\n }\n toJSON(r, e) {\n let t = {}, s = e == null;\n e = e || /* @__PURE__ */ new Map();\n let n = 0;\n for (let i in this) {\n if (!Object.prototype.hasOwnProperty.call(this, i) || i === \"parent\" || i === \"proxyCache\") continue;\n let a = this[i];\n if (Array.isArray(a))\n t[i] = a.map((o) => typeof o == \"object\" && o.toJSON ? o.toJSON(null, e) : o);\n else if (typeof a == \"object\" && a.toJSON)\n t[i] = a.toJSON(null, e);\n else if (i === \"source\") {\n let o = e.get(a.input);\n o == null && (o = n, e.set(a.input, n), n++), t[i] = {\n end: a.end,\n inputId: o,\n start: a.start\n };\n } else\n t[i] = a;\n }\n return s && (t.inputs = [...e.keys()].map((i) => i.toJSON())), t;\n }\n toProxy() {\n return this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), this.proxyCache;\n }\n toString(r = Zu) {\n r.stringify && (r = r.stringify);\n let e = \"\";\n return r(this, (t) => {\n e += t;\n }), e;\n }\n warn(r, e, t) {\n let s = { node: this };\n for (let n in t) s[n] = t[n];\n return r.warn(e, s);\n }\n get proxyOf() {\n return this;\n }\n};\nvar vr = ls;\nls.default = ls;\nlet Ju = vr, cs = class extends Ju {\n constructor(r) {\n r && typeof r.value < \"u\" && typeof r.value != \"string\" && (r = { ...r, value: String(r.value) }), super(r), this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar Cr = cs;\ncs.default = cs;\nlet Qu = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\", Ku = (r, e = 21) => (t = e) => {\n let s = \"\", n = t;\n for (; n--; )\n s += r[Math.random() * r.length | 0];\n return s;\n}, qu = (r = 21) => {\n let e = \"\", t = r;\n for (; t--; )\n e += Qu[Math.random() * 64 | 0];\n return e;\n};\nvar eh = { nanoid: qu, customAlphabet: Ku };\nlet { SourceMapConsumer: Jn, SourceMapGenerator: Qn } = oe, { existsSync: th, readFileSync: rh } = oe, { dirname: Lr, join: sh } = oe;\nfunction nh(r) {\n return Buffer ? Buffer.from(r, \"base64\").toString() : window.atob(r);\n}\nlet us = class {\n constructor(r, e) {\n if (e.map === !1) return;\n this.loadAnnotation(r), this.inline = this.startWith(this.annotation, \"data:\");\n let t = e.map ? e.map.prev : void 0, s = this.loadMap(e.from, t);\n !this.mapFile && e.from && (this.mapFile = e.from), this.mapFile && (this.root = Lr(this.mapFile)), s && (this.text = s);\n }\n consumer() {\n return this.consumerCache || (this.consumerCache = new Jn(this.text)), this.consumerCache;\n }\n decodeInline(r) {\n let e = /^data:application\\/json;charset=utf-?8;base64,/, t = /^data:application\\/json;base64,/, s = /^data:application\\/json;charset=utf-?8,/, n = /^data:application\\/json,/;\n if (s.test(r) || n.test(r))\n return decodeURIComponent(r.substr(RegExp.lastMatch.length));\n if (e.test(r) || t.test(r))\n return nh(r.substr(RegExp.lastMatch.length));\n let i = r.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + i);\n }\n getAnnotationURL(r) {\n return r.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(r) {\n return typeof r != \"object\" ? !1 : typeof r.mappings == \"string\" || typeof r._mappings == \"string\" || Array.isArray(r.sections);\n }\n loadAnnotation(r) {\n let e = r.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!e) return;\n let t = r.lastIndexOf(e.pop()), s = r.indexOf(\"*/\", t);\n t > -1 && s > -1 && (this.annotation = this.getAnnotationURL(r.substring(t, s)));\n }\n loadFile(r) {\n if (this.root = Lr(r), th(r))\n return this.mapFile = r, rh(r, \"utf-8\").toString().trim();\n }\n loadMap(r, e) {\n if (e === !1) return !1;\n if (e) {\n if (typeof e == \"string\")\n return e;\n if (typeof e == \"function\") {\n let t = e(r);\n if (t) {\n let s = this.loadFile(t);\n if (!s)\n throw new Error(\n \"Unable to load previous source map: \" + t.toString()\n );\n return s;\n }\n } else {\n if (e instanceof Jn)\n return Qn.fromSourceMap(e).toString();\n if (e instanceof Qn)\n return e.toString();\n if (this.isMap(e))\n return JSON.stringify(e);\n throw new Error(\n \"Unsupported previous source map format: \" + e.toString()\n );\n }\n } else {\n if (this.inline)\n return this.decodeInline(this.annotation);\n if (this.annotation) {\n let t = this.annotation;\n return r && (t = sh(Lr(r), t)), this.loadFile(t);\n }\n }\n }\n startWith(r, e) {\n return r ? r.substr(0, e.length) === e : !1;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar No = us;\nus.default = us;\nlet { SourceMapConsumer: ih, SourceMapGenerator: oh } = oe, { fileURLToPath: Kn, pathToFileURL: Pt } = oe, { isAbsolute: hs, resolve: ps } = oe, { nanoid: ah } = eh, Pr = oe, qn = Xs, lh = No, Fr = Symbol(\"fromOffsetCache\"), ch = !!(ih && oh), ei = !!(ps && hs), ar = class {\n constructor(r, e = {}) {\n if (r === null || typeof r > \"u\" || typeof r == \"object\" && !r.toString)\n throw new Error(`PostCSS received ${r} instead of CSS string`);\n if (this.css = r.toString(), this.css[0] === \"\\uFEFF\" || this.css[0] === \"\" ? (this.hasBOM = !0, this.css = this.css.slice(1)) : this.hasBOM = !1, e.from && (!ei || /^\\w+:\\/\\//.test(e.from) || hs(e.from) ? this.file = e.from : this.file = ps(e.from)), ei && ch) {\n let t = new lh(this.css, e);\n if (t.text) {\n this.map = t;\n let s = t.consumer().file;\n !this.file && s && (this.file = this.mapResolve(s));\n }\n }\n this.file || (this.id = \"<input css \" + ah(6) + \">\"), this.map && (this.map.file = this.from);\n }\n error(r, e, t, s = {}) {\n let n, i, a;\n if (e && typeof e == \"object\") {\n let l = e, c = t;\n if (typeof l.offset == \"number\") {\n let u = this.fromOffset(l.offset);\n e = u.line, t = u.col;\n } else\n e = l.line, t = l.column;\n if (typeof c.offset == \"number\") {\n let u = this.fromOffset(c.offset);\n i = u.line, a = u.col;\n } else\n i = c.line, a = c.column;\n } else if (!t) {\n let l = this.fromOffset(e);\n e = l.line, t = l.col;\n }\n let o = this.origin(e, t, i, a);\n return o ? n = new qn(\n r,\n o.endLine === void 0 ? o.line : { column: o.column, line: o.line },\n o.endLine === void 0 ? o.column : { column: o.endColumn, line: o.endLine },\n o.source,\n o.file,\n s.plugin\n ) : n = new qn(\n r,\n i === void 0 ? e : { column: t, line: e },\n i === void 0 ? t : { column: a, line: i },\n this.css,\n this.file,\n s.plugin\n ), n.input = { column: t, endColumn: a, endLine: i, line: e, source: this.css }, this.file && (Pt && (n.input.url = Pt(this.file).toString()), n.input.file = this.file), n;\n }\n fromOffset(r) {\n let e, t;\n if (this[Fr])\n t = this[Fr];\n else {\n let n = this.css.split(`\n`);\n t = new Array(n.length);\n let i = 0;\n for (let a = 0, o = n.length; a < o; a++)\n t[a] = i, i += n[a].length + 1;\n this[Fr] = t;\n }\n e = t[t.length - 1];\n let s = 0;\n if (r >= e)\n s = t.length - 1;\n else {\n let n = t.length - 2, i;\n for (; s < n; )\n if (i = s + (n - s >> 1), r < t[i])\n n = i - 1;\n else if (r >= t[i + 1])\n s = i + 1;\n else {\n s = i;\n break;\n }\n }\n return {\n col: r - t[s] + 1,\n line: s + 1\n };\n }\n mapResolve(r) {\n return /^\\w+:\\/\\//.test(r) ? r : ps(this.map.consumer().sourceRoot || this.map.root || \".\", r);\n }\n origin(r, e, t, s) {\n if (!this.map) return !1;\n let n = this.map.consumer(), i = n.originalPositionFor({ column: e, line: r });\n if (!i.source) return !1;\n let a;\n typeof t == \"number\" && (a = n.originalPositionFor({ column: s, line: t }));\n let o;\n hs(i.source) ? o = Pt(i.source) : o = new URL(\n i.source,\n this.map.consumer().sourceRoot || Pt(this.map.mapFile)\n );\n let l = {\n column: i.column,\n endColumn: a && a.column,\n endLine: a && a.line,\n line: i.line,\n url: o.toString()\n };\n if (o.protocol === \"file:\")\n if (Kn)\n l.file = Kn(o);\n else\n throw new Error(\"file: protocol is not available in this PostCSS build\");\n let c = n.sourceContentFor(i.source);\n return c && (l.source = c), l;\n }\n toJSON() {\n let r = {};\n for (let e of [\"hasBOM\", \"css\", \"file\", \"id\"])\n this[e] != null && (r[e] = this[e]);\n return this.map && (r.map = { ...this.map }, r.map.consumerCache && (r.map.consumerCache = void 0)), r;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar Mr = ar;\nar.default = ar;\nPr && Pr.registerInput && Pr.registerInput(ar);\nlet { SourceMapConsumer: Oo, SourceMapGenerator: Xt } = oe, { dirname: Zt, relative: Ro, resolve: Do, sep: Ao } = oe, { pathToFileURL: ti } = oe, uh = Mr, hh = !!(Oo && Xt), ph = !!(Zt && Do && Ro && Ao), dh = class {\n constructor(r, e, t, s) {\n this.stringify = r, this.mapOpts = t.map || {}, this.root = e, this.opts = t, this.css = s, this.originalCSS = s, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute, this.memoizedFileURLs = /* @__PURE__ */ new Map(), this.memoizedPaths = /* @__PURE__ */ new Map(), this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let r;\n this.isInline() ? r = \"data:application/json;base64,\" + this.toBase64(this.map.toString()) : typeof this.mapOpts.annotation == \"string\" ? r = this.mapOpts.annotation : typeof this.mapOpts.annotation == \"function\" ? r = this.mapOpts.annotation(this.opts.to, this.root) : r = this.outputFile() + \".map\";\n let e = `\n`;\n this.css.includes(`\\r\n`) && (e = `\\r\n`), this.css += e + \"/*# sourceMappingURL=\" + r + \" */\";\n }\n applyPrevMaps() {\n for (let r of this.previous()) {\n let e = this.toUrl(this.path(r.file)), t = r.root || Zt(r.file), s;\n this.mapOpts.sourcesContent === !1 ? (s = new Oo(r.text), s.sourcesContent && (s.sourcesContent = null)) : s = r.consumer(), this.map.applySourceMap(s, e, this.toUrl(this.path(t)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation !== !1)\n if (this.root) {\n let r;\n for (let e = this.root.nodes.length - 1; e >= 0; e--)\n r = this.root.nodes[e], r.type === \"comment\" && r.text.indexOf(\"# sourceMappingURL=\") === 0 && this.root.removeChild(e);\n } else this.css && (this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\"));\n }\n generate() {\n if (this.clearAnnotation(), ph && hh && this.isMap())\n return this.generateMap();\n {\n let r = \"\";\n return this.stringify(this.root, (e) => {\n r += e;\n }), [r];\n }\n }\n generateMap() {\n if (this.root)\n this.generateString();\n else if (this.previous().length === 1) {\n let r = this.previous()[0].consumer();\n r.file = this.outputFile(), this.map = Xt.fromSourceMap(r, {\n ignoreInvalidMapping: !0\n });\n } else\n this.map = new Xt({\n file: this.outputFile(),\n ignoreInvalidMapping: !0\n }), this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n return this.isSourcesContent() && this.setSourcesContent(), this.root && this.previous().length > 0 && this.applyPrevMaps(), this.isAnnotation() && this.addAnnotation(), this.isInline() ? [this.css] : [this.css, this.map];\n }\n generateString() {\n this.css = \"\", this.map = new Xt({\n file: this.outputFile(),\n ignoreInvalidMapping: !0\n });\n let r = 1, e = 1, t = \"<no source>\", s = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n }, n, i;\n this.stringify(this.root, (a, o, l) => {\n if (this.css += a, o && l !== \"end\" && (s.generated.line = r, s.generated.column = e - 1, o.source && o.source.start ? (s.source = this.sourcePath(o), s.original.line = o.source.start.line, s.original.column = o.source.start.column - 1, this.map.addMapping(s)) : (s.source = t, s.original.line = 1, s.original.column = 0, this.map.addMapping(s))), n = a.match(/\\n/g), n ? (r += n.length, i = a.lastIndexOf(`\n`), e = a.length - i) : e += a.length, o && l !== \"start\") {\n let c = o.parent || { raws: {} };\n (!(o.type === \"decl\" || o.type === \"atrule\" && !o.nodes) || o !== c.last || c.raws.semicolon) && (o.source && o.source.end ? (s.source = this.sourcePath(o), s.original.line = o.source.end.line, s.original.column = o.source.end.column - 1, s.generated.line = r, s.generated.column = e - 2, this.map.addMapping(s)) : (s.source = t, s.original.line = 1, s.original.column = 0, s.generated.line = r, s.generated.column = e - 1, this.map.addMapping(s)));\n }\n });\n }\n isAnnotation() {\n return this.isInline() ? !0 : typeof this.mapOpts.annotation < \"u\" ? this.mapOpts.annotation : this.previous().length ? this.previous().some((r) => r.annotation) : !0;\n }\n isInline() {\n if (typeof this.mapOpts.inline < \"u\")\n return this.mapOpts.inline;\n let r = this.mapOpts.annotation;\n return typeof r < \"u\" && r !== !0 ? !1 : this.previous().length ? this.previous().some((e) => e.inline) : !0;\n }\n isMap() {\n return typeof this.opts.map < \"u\" ? !!this.opts.map : this.previous().length > 0;\n }\n isSourcesContent() {\n return typeof this.mapOpts.sourcesContent < \"u\" ? this.mapOpts.sourcesContent : this.previous().length ? this.previous().some((r) => r.withContent()) : !0;\n }\n outputFile() {\n return this.opts.to ? this.path(this.opts.to) : this.opts.from ? this.path(this.opts.from) : \"to.css\";\n }\n path(r) {\n if (this.mapOpts.absolute || r.charCodeAt(0) === 60 || /^\\w+:\\/\\//.test(r)) return r;\n let e = this.memoizedPaths.get(r);\n if (e) return e;\n let t = this.opts.to ? Zt(this.opts.to) : \".\";\n typeof this.mapOpts.annotation == \"string\" && (t = Zt(Do(t, this.mapOpts.annotation)));\n let s = Ro(t, r);\n return this.memoizedPaths.set(r, s), s;\n }\n previous() {\n if (!this.previousMaps)\n if (this.previousMaps = [], this.root)\n this.root.walk((r) => {\n if (r.source && r.source.input.map) {\n let e = r.source.input.map;\n this.previousMaps.includes(e) || this.previousMaps.push(e);\n }\n });\n else {\n let r = new uh(this.originalCSS, this.opts);\n r.map && this.previousMaps.push(r.map);\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let r = {};\n if (this.root)\n this.root.walk((e) => {\n if (e.source) {\n let t = e.source.input.from;\n if (t && !r[t]) {\n r[t] = !0;\n let s = this.usesFileUrls ? this.toFileUrl(t) : this.toUrl(this.path(t));\n this.map.setSourceContent(s, e.source.input.css);\n }\n }\n });\n else if (this.css) {\n let e = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(e, this.css);\n }\n }\n sourcePath(r) {\n return this.mapOpts.from ? this.toUrl(this.mapOpts.from) : this.usesFileUrls ? this.toFileUrl(r.source.input.from) : this.toUrl(this.path(r.source.input.from));\n }\n toBase64(r) {\n return Buffer ? Buffer.from(r).toString(\"base64\") : window.btoa(unescape(encodeURIComponent(r)));\n }\n toFileUrl(r) {\n let e = this.memoizedFileURLs.get(r);\n if (e) return e;\n if (ti) {\n let t = ti(r).toString();\n return this.memoizedFileURLs.set(r, t), t;\n } else\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n toUrl(r) {\n let e = this.memoizedURLs.get(r);\n if (e) return e;\n Ao === \"\\\\\" && (r = r.replace(/\\\\/g, \"/\"));\n let t = encodeURI(r).replace(/[#?]/g, encodeURIComponent);\n return this.memoizedURLs.set(r, t), t;\n }\n};\nvar Lo = dh;\nlet fh = vr, ds = class extends fh {\n constructor(r) {\n super(r), this.type = \"comment\";\n }\n};\nvar xr = ds;\nds.default = ds;\nlet { isClean: Po, my: Fo } = wt, _o = Cr, $o = xr, mh = vr, Uo, Zs, Js, Wo;\nfunction Bo(r) {\n return r.map((e) => (e.nodes && (e.nodes = Bo(e.nodes)), delete e.source, e));\n}\nfunction Vo(r) {\n if (r[Po] = !1, r.proxyOf.nodes)\n for (let e of r.proxyOf.nodes)\n Vo(e);\n}\nlet me = class zo extends mh {\n append(...e) {\n for (let t of e) {\n let s = this.normalize(t, this.last);\n for (let n of s) this.proxyOf.nodes.push(n);\n }\n return this.markDirty(), this;\n }\n cleanRaws(e) {\n if (super.cleanRaws(e), this.nodes)\n for (let t of this.nodes) t.cleanRaws(e);\n }\n each(e) {\n if (!this.proxyOf.nodes) return;\n let t = this.getIterator(), s, n;\n for (; this.indexes[t] < this.proxyOf.nodes.length && (s = this.indexes[t], n = e(this.proxyOf.nodes[s], s), n !== !1); )\n this.indexes[t] += 1;\n return delete this.indexes[t], n;\n }\n every(e) {\n return this.nodes.every(e);\n }\n getIterator() {\n this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1;\n let e = this.lastEach;\n return this.indexes[e] = 0, e;\n }\n getProxyProcessor() {\n return {\n get(e, t) {\n return t === \"proxyOf\" ? e : e[t] ? t === \"each\" || typeof t == \"string\" && t.startsWith(\"walk\") ? (...s) => e[t](\n ...s.map((n) => typeof n == \"function\" ? (i, a) => n(i.toProxy(), a) : n)\n ) : t === \"every\" || t === \"some\" ? (s) => e[t](\n (n, ...i) => s(n.toProxy(), ...i)\n ) : t === \"root\" ? () => e.root().toProxy() : t === \"nodes\" ? e.nodes.map((s) => s.toProxy()) : t === \"first\" || t === \"last\" ? e[t].toProxy() : e[t] : e[t];\n },\n set(e, t, s) {\n return e[t] === s || (e[t] = s, (t === \"name\" || t === \"params\" || t === \"selector\") && e.markDirty()), !0;\n }\n };\n }\n index(e) {\n return typeof e == \"number\" ? e : (e.proxyOf && (e = e.proxyOf), this.proxyOf.nodes.indexOf(e));\n }\n insertAfter(e, t) {\n let s = this.index(e), n = this.normalize(t, this.proxyOf.nodes[s]).reverse();\n s = this.index(e);\n for (let a of n) this.proxyOf.nodes.splice(s + 1, 0, a);\n let i;\n for (let a in this.indexes)\n i = this.indexes[a], s < i && (this.indexes[a] = i + n.length);\n return this.markDirty(), this;\n }\n insertBefore(e, t) {\n let s = this.index(e), n = s === 0 ? \"prepend\" : !1, i = this.normalize(t, this.proxyOf.nodes[s], n).reverse();\n s = this.index(e);\n for (let o of i) this.proxyOf.nodes.splice(s, 0, o);\n let a;\n for (let o in this.indexes)\n a = this.indexes[o], s <= a && (this.indexes[o] = a + i.length);\n return this.markDirty(), this;\n }\n normalize(e, t) {\n if (typeof e == \"string\")\n e = Bo(Uo(e).nodes);\n else if (typeof e > \"u\")\n e = [];\n else if (Array.isArray(e)) {\n e = e.slice(0);\n for (let s of e)\n s.parent && s.parent.removeChild(s, \"ignore\");\n } else if (e.type === \"root\" && this.type !== \"document\") {\n e = e.nodes.slice(0);\n for (let s of e)\n s.parent && s.parent.removeChild(s, \"ignore\");\n } else if (e.type)\n e = [e];\n else if (e.prop) {\n if (typeof e.value > \"u\")\n throw new Error(\"Value field is missed in node creation\");\n typeof e.value != \"string\" && (e.value = String(e.value)), e = [new _o(e)];\n } else if (e.selector)\n e = [new Zs(e)];\n else if (e.name)\n e = [new Js(e)];\n else if (e.text)\n e = [new $o(e)];\n else\n throw new Error(\"Unknown node type in node creation\");\n return e.map((s) => (s[Fo] || zo.rebuild(s), s = s.proxyOf, s.parent && s.parent.removeChild(s), s[Po] && Vo(s), typeof s.raws.before > \"u\" && t && typeof t.raws.before < \"u\" && (s.raws.before = t.raws.before.replace(/\\S/g, \"\")), s.parent = this.proxyOf, s));\n }\n prepend(...e) {\n e = e.reverse();\n for (let t of e) {\n let s = this.normalize(t, this.first, \"prepend\").reverse();\n for (let n of s) this.proxyOf.nodes.unshift(n);\n for (let n in this.indexes)\n this.indexes[n] = this.indexes[n] + s.length;\n }\n return this.markDirty(), this;\n }\n push(e) {\n return e.parent = this, this.proxyOf.nodes.push(e), this;\n }\n removeAll() {\n for (let e of this.proxyOf.nodes) e.parent = void 0;\n return this.proxyOf.nodes = [], this.markDirty(), this;\n }\n removeChild(e) {\n e = this.index(e), this.proxyOf.nodes[e].parent = void 0, this.proxyOf.nodes.splice(e, 1);\n let t;\n for (let s in this.indexes)\n t = this.indexes[s], t >= e && (this.indexes[s] = t - 1);\n return this.markDirty(), this;\n }\n replaceValues(e, t, s) {\n return s || (s = t, t = {}), this.walkDecls((n) => {\n t.props && !t.props.includes(n.prop) || t.fast && !n.value.includes(t.fast) || (n.value = n.value.replace(e, s));\n }), this.markDirty(), this;\n }\n some(e) {\n return this.nodes.some(e);\n }\n walk(e) {\n return this.each((t, s) => {\n let n;\n try {\n n = e(t, s);\n } catch (i) {\n throw t.addToError(i);\n }\n return n !== !1 && t.walk && (n = t.walk(e)), n;\n });\n }\n walkAtRules(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"atrule\" && e.test(s.name))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"atrule\" && s.name === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"atrule\")\n return t(s, n);\n }));\n }\n walkComments(e) {\n return this.walk((t, s) => {\n if (t.type === \"comment\")\n return e(t, s);\n });\n }\n walkDecls(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"decl\" && e.test(s.prop))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"decl\" && s.prop === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"decl\")\n return t(s, n);\n }));\n }\n walkRules(e, t) {\n return t ? e instanceof RegExp ? this.walk((s, n) => {\n if (s.type === \"rule\" && e.test(s.selector))\n return t(s, n);\n }) : this.walk((s, n) => {\n if (s.type === \"rule\" && s.selector === e)\n return t(s, n);\n }) : (t = e, this.walk((s, n) => {\n if (s.type === \"rule\")\n return t(s, n);\n }));\n }\n get first() {\n if (this.proxyOf.nodes)\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (this.proxyOf.nodes)\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nme.registerParse = (r) => {\n Uo = r;\n};\nme.registerRule = (r) => {\n Zs = r;\n};\nme.registerAtRule = (r) => {\n Js = r;\n};\nme.registerRoot = (r) => {\n Wo = r;\n};\nvar Ne = me;\nme.default = me;\nme.rebuild = (r) => {\n r.type === \"atrule\" ? Object.setPrototypeOf(r, Js.prototype) : r.type === \"rule\" ? Object.setPrototypeOf(r, Zs.prototype) : r.type === \"decl\" ? Object.setPrototypeOf(r, _o.prototype) : r.type === \"comment\" ? Object.setPrototypeOf(r, $o.prototype) : r.type === \"root\" && Object.setPrototypeOf(r, Wo.prototype), r[Fo] = !0, r.nodes && r.nodes.forEach((e) => {\n me.rebuild(e);\n });\n};\nlet gh = Ne, jo, Go, ut = class extends gh {\n constructor(r) {\n super({ type: \"document\", ...r }), this.nodes || (this.nodes = []);\n }\n toResult(r = {}) {\n return new jo(new Go(), this, r).stringify();\n }\n};\nut.registerLazyResult = (r) => {\n jo = r;\n};\nut.registerProcessor = (r) => {\n Go = r;\n};\nvar Qs = ut;\nut.default = ut;\nlet ri = {};\nvar Ho = function(r) {\n ri[r] || (ri[r] = !0, typeof console < \"u\" && console.warn && console.warn(r));\n};\nlet fs = class {\n constructor(r, e = {}) {\n if (this.type = \"warning\", this.text = r, e.node && e.node.source) {\n let t = e.node.rangeBy(e);\n this.line = t.start.line, this.column = t.start.column, this.endLine = t.end.line, this.endColumn = t.end.column;\n }\n for (let t in e) this[t] = e[t];\n }\n toString() {\n return this.node ? this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message : this.plugin ? this.plugin + \": \" + this.text : this.text;\n }\n};\nvar Yo = fs;\nfs.default = fs;\nlet yh = Yo, ms = class {\n constructor(r, e, t) {\n this.processor = r, this.messages = [], this.root = e, this.opts = t, this.css = void 0, this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(r, e = {}) {\n e.plugin || this.lastPlugin && this.lastPlugin.postcssPlugin && (e.plugin = this.lastPlugin.postcssPlugin);\n let t = new yh(r, e);\n return this.messages.push(t), t;\n }\n warnings() {\n return this.messages.filter((r) => r.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar Ks = ms;\nms.default = ms;\nconst _r = 39, si = 34, Ft = 92, ni = 47, _t = 10, Qe = 32, $t = 12, Ut = 9, Wt = 13, wh = 91, bh = 93, Sh = 40, vh = 41, Ch = 123, Mh = 125, xh = 59, Eh = 42, Ih = 58, kh = 64, Bt = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g, Vt = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g, Th = /.[\\r\\n\"'(/\\\\]/, ii = /[\\da-f]/i;\nvar Nh = function(r, e = {}) {\n let t = r.css.valueOf(), s = e.ignoreErrors, n, i, a, o, l, c, u, p, d, f, y = t.length, h = 0, b = [], g = [];\n function S() {\n return h;\n }\n function m(O) {\n throw r.error(\"Unclosed \" + O, h);\n }\n function v() {\n return g.length === 0 && h >= y;\n }\n function E(O) {\n if (g.length) return g.pop();\n if (h >= y) return;\n let $ = O ? O.ignoreUnclosed : !1;\n switch (n = t.charCodeAt(h), n) {\n case _t:\n case Qe:\n case Ut:\n case Wt:\n case $t: {\n i = h;\n do\n i += 1, n = t.charCodeAt(i);\n while (n === Qe || n === _t || n === Ut || n === Wt || n === $t);\n f = [\"space\", t.slice(h, i)], h = i - 1;\n break;\n }\n case wh:\n case bh:\n case Ch:\n case Mh:\n case Ih:\n case xh:\n case vh: {\n let Y = String.fromCharCode(n);\n f = [Y, Y, h];\n break;\n }\n case Sh: {\n if (p = b.length ? b.pop()[1] : \"\", d = t.charCodeAt(h + 1), p === \"url\" && d !== _r && d !== si && d !== Qe && d !== _t && d !== Ut && d !== $t && d !== Wt) {\n i = h;\n do {\n if (c = !1, i = t.indexOf(\")\", i + 1), i === -1)\n if (s || $) {\n i = h;\n break;\n } else\n m(\"bracket\");\n for (u = i; t.charCodeAt(u - 1) === Ft; )\n u -= 1, c = !c;\n } while (c);\n f = [\"brackets\", t.slice(h, i + 1), h, i], h = i;\n } else\n i = t.indexOf(\")\", h + 1), o = t.slice(h, i + 1), i === -1 || Th.test(o) ? f = [\"(\", \"(\", h] : (f = [\"brackets\", o, h, i], h = i);\n break;\n }\n case _r:\n case si: {\n a = n === _r ? \"'\" : '\"', i = h;\n do {\n if (c = !1, i = t.indexOf(a, i + 1), i === -1)\n if (s || $) {\n i = h + 1;\n break;\n } else\n m(\"string\");\n for (u = i; t.charCodeAt(u - 1) === Ft; )\n u -= 1, c = !c;\n } while (c);\n f = [\"string\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n case kh: {\n Bt.lastIndex = h + 1, Bt.test(t), Bt.lastIndex === 0 ? i = t.length - 1 : i = Bt.lastIndex - 2, f = [\"at-word\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n case Ft: {\n for (i = h, l = !0; t.charCodeAt(i + 1) === Ft; )\n i += 1, l = !l;\n if (n = t.charCodeAt(i + 1), l && n !== ni && n !== Qe && n !== _t && n !== Ut && n !== Wt && n !== $t && (i += 1, ii.test(t.charAt(i)))) {\n for (; ii.test(t.charAt(i + 1)); )\n i += 1;\n t.charCodeAt(i + 1) === Qe && (i += 1);\n }\n f = [\"word\", t.slice(h, i + 1), h, i], h = i;\n break;\n }\n default: {\n n === ni && t.charCodeAt(h + 1) === Eh ? (i = t.indexOf(\"*/\", h + 2) + 1, i === 0 && (s || $ ? i = t.length : m(\"comment\")), f = [\"comment\", t.slice(h, i + 1), h, i], h = i) : (Vt.lastIndex = h + 1, Vt.test(t), Vt.lastIndex === 0 ? i = t.length - 1 : i = Vt.lastIndex - 2, f = [\"word\", t.slice(h, i + 1), h, i], b.push(f), h = i);\n break;\n }\n }\n return h++, f;\n }\n function T(O) {\n g.push(O);\n }\n return {\n back: T,\n endOfFile: v,\n nextToken: E,\n position: S\n };\n};\nlet Xo = Ne, lr = class extends Xo {\n constructor(r) {\n super(r), this.type = \"atrule\";\n }\n append(...r) {\n return this.proxyOf.nodes || (this.nodes = []), super.append(...r);\n }\n prepend(...r) {\n return this.proxyOf.nodes || (this.nodes = []), super.prepend(...r);\n }\n};\nvar qs = lr;\nlr.default = lr;\nXo.registerAtRule(lr);\nlet Zo = Ne, Jo, Qo, je = class extends Zo {\n constructor(r) {\n super(r), this.type = \"root\", this.nodes || (this.nodes = []);\n }\n normalize(r, e, t) {\n let s = super.normalize(r);\n if (e) {\n if (t === \"prepend\")\n this.nodes.length > 1 ? e.raws.before = this.nodes[1].raws.before : delete e.raws.before;\n else if (this.first !== e)\n for (let n of s)\n n.raws.before = e.raws.before;\n }\n return s;\n }\n removeChild(r, e) {\n let t = this.index(r);\n return !e && t === 0 && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[t].raws.before), super.removeChild(r);\n }\n toResult(r = {}) {\n return new Jo(new Qo(), this, r).stringify();\n }\n};\nje.registerLazyResult = (r) => {\n Jo = r;\n};\nje.registerProcessor = (r) => {\n Qo = r;\n};\nvar bt = je;\nje.default = je;\nZo.registerRoot(je);\nlet ht = {\n comma(r) {\n return ht.split(r, [\",\"], !0);\n },\n space(r) {\n let e = [\" \", `\n`, \"\t\"];\n return ht.split(r, e);\n },\n split(r, e, t) {\n let s = [], n = \"\", i = !1, a = 0, o = !1, l = \"\", c = !1;\n for (let u of r)\n c ? c = !1 : u === \"\\\\\" ? c = !0 : o ? u === l && (o = !1) : u === '\"' || u === \"'\" ? (o = !0, l = u) : u === \"(\" ? a += 1 : u === \")\" ? a > 0 && (a -= 1) : a === 0 && e.includes(u) && (i = !0), i ? (n !== \"\" && s.push(n.trim()), n = \"\", i = !1) : n += u;\n return (t || n !== \"\") && s.push(n.trim()), s;\n }\n};\nvar Ko = ht;\nht.default = ht;\nlet qo = Ne, Oh = Ko, cr = class extends qo {\n constructor(r) {\n super(r), this.type = \"rule\", this.nodes || (this.nodes = []);\n }\n get selectors() {\n return Oh.comma(this.selector);\n }\n set selectors(r) {\n let e = this.selector ? this.selector.match(/,\\s*/) : null, t = e ? e[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = r.join(t);\n }\n};\nvar en = cr;\ncr.default = cr;\nqo.registerRule(cr);\nlet Rh = Cr, Dh = Nh, Ah = xr, Lh = qs, Ph = bt, oi = en;\nconst ai = {\n empty: !0,\n space: !0\n};\nfunction Fh(r) {\n for (let e = r.length - 1; e >= 0; e--) {\n let t = r[e], s = t[3] || t[2];\n if (s) return s;\n }\n}\nlet _h = class {\n constructor(r) {\n this.input = r, this.root = new Ph(), this.current = this.root, this.spaces = \"\", this.semicolon = !1, this.createTokenizer(), this.root.source = { input: r, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(r) {\n let e = new Lh();\n e.name = r[1].slice(1), e.name === \"\" && this.unnamedAtrule(e, r), this.init(e, r[2]);\n let t, s, n, i = !1, a = !1, o = [], l = [];\n for (; !this.tokenizer.endOfFile(); ) {\n if (r = this.tokenizer.nextToken(), t = r[0], t === \"(\" || t === \"[\" ? l.push(t === \"(\" ? \")\" : \"]\") : t === \"{\" && l.length > 0 ? l.push(\"}\") : t === l[l.length - 1] && l.pop(), l.length === 0)\n if (t === \";\") {\n e.source.end = this.getPosition(r[2]), e.source.end.offset++, this.semicolon = !0;\n break;\n } else if (t === \"{\") {\n a = !0;\n break;\n } else if (t === \"}\") {\n if (o.length > 0) {\n for (n = o.length - 1, s = o[n]; s && s[0] === \"space\"; )\n s = o[--n];\n s && (e.source.end = this.getPosition(s[3] || s[2]), e.source.end.offset++);\n }\n this.end(r);\n break;\n } else\n o.push(r);\n else\n o.push(r);\n if (this.tokenizer.endOfFile()) {\n i = !0;\n break;\n }\n }\n e.raws.between = this.spacesAndCommentsFromEnd(o), o.length ? (e.raws.afterName = this.spacesAndCommentsFromStart(o), this.raw(e, \"params\", o), i && (r = o[o.length - 1], e.source.end = this.getPosition(r[3] || r[2]), e.source.end.offset++, this.spaces = e.raws.between, e.raws.between = \"\")) : (e.raws.afterName = \"\", e.params = \"\"), a && (e.nodes = [], this.current = e);\n }\n checkMissedSemicolon(r) {\n let e = this.colon(r);\n if (e === !1) return;\n let t = 0, s;\n for (let n = e - 1; n >= 0 && (s = r[n], !(s[0] !== \"space\" && (t += 1, t === 2))); n--)\n ;\n throw this.input.error(\n \"Missed semicolon\",\n s[0] === \"word\" ? s[3] + 1 : s[2]\n );\n }\n colon(r) {\n let e = 0, t, s, n;\n for (let [i, a] of r.entries()) {\n if (t = a, s = t[0], s === \"(\" && (e += 1), s === \")\" && (e -= 1), e === 0 && s === \":\")\n if (!n)\n this.doubleColon(t);\n else {\n if (n[0] === \"word\" && n[1] === \"progid\")\n continue;\n return i;\n }\n n = t;\n }\n return !1;\n }\n comment(r) {\n let e = new Ah();\n this.init(e, r[2]), e.source.end = this.getPosition(r[3] || r[2]), e.source.end.offset++;\n let t = r[1].slice(2, -2);\n if (/^\\s*$/.test(t))\n e.text = \"\", e.raws.left = t, e.raws.right = \"\";\n else {\n let s = t.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n e.text = s[2], e.raws.left = s[1], e.raws.right = s[3];\n }\n }\n createTokenizer() {\n this.tokenizer = Dh(this.input);\n }\n decl(r, e) {\n let t = new Rh();\n this.init(t, r[0][2]);\n let s = r[r.length - 1];\n for (s[0] === \";\" && (this.semicolon = !0, r.pop()), t.source.end = this.getPosition(\n s[3] || s[2] || Fh(r)\n ), t.source.end.offset++; r[0][0] !== \"word\"; )\n r.length === 1 && this.unknownWord(r), t.raws.before += r.shift()[1];\n for (t.source.start = this.getPosition(r[0][2]), t.prop = \"\"; r.length; ) {\n let o = r[0][0];\n if (o === \":\" || o === \"space\" || o === \"comment\")\n break;\n t.prop += r.shift()[1];\n }\n t.raws.between = \"\";\n let n;\n for (; r.length; )\n if (n = r.shift(), n[0] === \":\") {\n t.raws.between += n[1];\n break;\n } else\n n[0] === \"word\" && /\\w/.test(n[1]) && this.unknownWord([n]), t.raws.between += n[1];\n (t.prop[0] === \"_\" || t.prop[0] === \"*\") && (t.raws.before += t.prop[0], t.prop = t.prop.slice(1));\n let i = [], a;\n for (; r.length && (a = r[0][0], !(a !== \"space\" && a !== \"comment\")); )\n i.push(r.shift());\n this.precheckMissedSemicolon(r);\n for (let o = r.length - 1; o >= 0; o--) {\n if (n = r[o], n[1].toLowerCase() === \"!important\") {\n t.important = !0;\n let l = this.stringFrom(r, o);\n l = this.spacesFromEnd(r) + l, l !== \" !important\" && (t.raws.important = l);\n break;\n } else if (n[1].toLowerCase() === \"important\") {\n let l = r.slice(0), c = \"\";\n for (let u = o; u > 0; u--) {\n let p = l[u][0];\n if (c.trim().indexOf(\"!\") === 0 && p !== \"space\")\n break;\n c = l.pop()[1] + c;\n }\n c.trim().indexOf(\"!\") === 0 && (t.important = !0, t.raws.important = c, r = l);\n }\n if (n[0] !== \"space\" && n[0] !== \"comment\")\n break;\n }\n r.some((o) => o[0] !== \"space\" && o[0] !== \"comment\") && (t.raws.between += i.map((o) => o[1]).join(\"\"), i = []), this.raw(t, \"value\", i.concat(r), e), t.value.includes(\":\") && !e && this.checkMissedSemicolon(r);\n }\n doubleColon(r) {\n throw this.input.error(\n \"Double colon\",\n { offset: r[2] },\n { offset: r[2] + r[1].length }\n );\n }\n emptyRule(r) {\n let e = new oi();\n this.init(e, r[2]), e.selector = \"\", e.raws.between = \"\", this.current = e;\n }\n end(r) {\n this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.semicolon = !1, this.current.raws.after = (this.current.raws.after || \"\") + this.spaces, this.spaces = \"\", this.current.parent ? (this.current.source.end = this.getPosition(r[2]), this.current.source.end.offset++, this.current = this.current.parent) : this.unexpectedClose(r);\n }\n endFile() {\n this.current.parent && this.unclosedBlock(), this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.current.raws.after = (this.current.raws.after || \"\") + this.spaces, this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(r) {\n if (this.spaces += r[1], this.current.nodes) {\n let e = this.current.nodes[this.current.nodes.length - 1];\n e && e.type === \"rule\" && !e.raws.ownSemicolon && (e.raws.ownSemicolon = this.spaces, this.spaces = \"\");\n }\n }\n // Helpers\n getPosition(r) {\n let e = this.input.fromOffset(r);\n return {\n column: e.col,\n line: e.line,\n offset: r\n };\n }\n init(r, e) {\n this.current.push(r), r.source = {\n input: this.input,\n start: this.getPosition(e)\n }, r.raws.before = this.spaces, this.spaces = \"\", r.type !== \"comment\" && (this.semicolon = !1);\n }\n other(r) {\n let e = !1, t = null, s = !1, n = null, i = [], a = r[1].startsWith(\"--\"), o = [], l = r;\n for (; l; ) {\n if (t = l[0], o.push(l), t === \"(\" || t === \"[\")\n n || (n = l), i.push(t === \"(\" ? \")\" : \"]\");\n else if (a && s && t === \"{\")\n n || (n = l), i.push(\"}\");\n else if (i.length === 0)\n if (t === \";\")\n if (s) {\n this.decl(o, a);\n return;\n } else\n break;\n else if (t === \"{\") {\n this.rule(o);\n return;\n } else if (t === \"}\") {\n this.tokenizer.back(o.pop()), e = !0;\n break;\n } else t === \":\" && (s = !0);\n else t === i[i.length - 1] && (i.pop(), i.length === 0 && (n = null));\n l = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile() && (e = !0), i.length > 0 && this.unclosedBracket(n), e && s) {\n if (!a)\n for (; o.length && (l = o[o.length - 1][0], !(l !== \"space\" && l !== \"comment\")); )\n this.tokenizer.back(o.pop());\n this.decl(o, a);\n } else\n this.unknownWord(o);\n }\n parse() {\n let r;\n for (; !this.tokenizer.endOfFile(); )\n switch (r = this.tokenizer.nextToken(), r[0]) {\n case \"space\":\n this.spaces += r[1];\n break;\n case \";\":\n this.freeSemicolon(r);\n break;\n case \"}\":\n this.end(r);\n break;\n case \"comment\":\n this.comment(r);\n break;\n case \"at-word\":\n this.atrule(r);\n break;\n case \"{\":\n this.emptyRule(r);\n break;\n default:\n this.other(r);\n break;\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(r, e, t, s) {\n let n, i, a = t.length, o = \"\", l = !0, c, u;\n for (let p = 0; p < a; p += 1)\n n = t[p], i = n[0], i === \"space\" && p === a - 1 && !s ? l = !1 : i === \"comment\" ? (u = t[p - 1] ? t[p - 1][0] : \"empty\", c = t[p + 1] ? t[p + 1][0] : \"empty\", !ai[u] && !ai[c] ? o.slice(-1) === \",\" ? l = !1 : o += n[1] : l = !1) : o += n[1];\n if (!l) {\n let p = t.reduce((d, f) => d + f[1], \"\");\n r.raws[e] = { raw: p, value: o };\n }\n r[e] = o;\n }\n rule(r) {\n r.pop();\n let e = new oi();\n this.init(e, r[0][2]), e.raws.between = this.spacesAndCommentsFromEnd(r), this.raw(e, \"selector\", r), this.current = e;\n }\n spacesAndCommentsFromEnd(r) {\n let e, t = \"\";\n for (; r.length && (e = r[r.length - 1][0], !(e !== \"space\" && e !== \"comment\")); )\n t = r.pop()[1] + t;\n return t;\n }\n // Errors\n spacesAndCommentsFromStart(r) {\n let e, t = \"\";\n for (; r.length && (e = r[0][0], !(e !== \"space\" && e !== \"comment\")); )\n t += r.shift()[1];\n return t;\n }\n spacesFromEnd(r) {\n let e, t = \"\";\n for (; r.length && (e = r[r.length - 1][0], e === \"space\"); )\n t = r.pop()[1] + t;\n return t;\n }\n stringFrom(r, e) {\n let t = \"\";\n for (let s = e; s < r.length; s++)\n t += r[s][1];\n return r.splice(e, r.length - e), t;\n }\n unclosedBlock() {\n let r = this.current.source.start;\n throw this.input.error(\"Unclosed block\", r.line, r.column);\n }\n unclosedBracket(r) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: r[2] },\n { offset: r[2] + 1 }\n );\n }\n unexpectedClose(r) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: r[2] },\n { offset: r[2] + 1 }\n );\n }\n unknownWord(r) {\n throw this.input.error(\n \"Unknown word\",\n { offset: r[0][2] },\n { offset: r[0][2] + r[0][1].length }\n );\n }\n unnamedAtrule(r, e) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: e[2] },\n { offset: e[2] + e[1].length }\n );\n }\n};\nvar $h = _h;\nlet Uh = Ne, Wh = $h, Bh = Mr;\nfunction ur(r, e) {\n let t = new Bh(r, e), s = new Wh(t);\n try {\n s.parse();\n } catch (n) {\n throw process.env.NODE_ENV !== \"production\" && n.name === \"CssSyntaxError\" && e && e.from && (/\\.scss$/i.test(e.from) ? n.message += `\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser` : /\\.sass/i.test(e.from) ? n.message += `\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser` : /\\.less$/i.test(e.from) && (n.message += `\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)), n;\n }\n return s.root;\n}\nvar tn = ur;\nur.default = ur;\nUh.registerParse(ur);\nlet { isClean: ue, my: Vh } = wt, zh = Lo, jh = Sr, Gh = Ne, Hh = Qs, Yh = Ho, li = Ks, Xh = tn, Zh = bt;\nconst Jh = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n}, Qh = {\n AtRule: !0,\n AtRuleExit: !0,\n Comment: !0,\n CommentExit: !0,\n Declaration: !0,\n DeclarationExit: !0,\n Document: !0,\n DocumentExit: !0,\n Once: !0,\n OnceExit: !0,\n postcssPlugin: !0,\n prepare: !0,\n Root: !0,\n RootExit: !0,\n Rule: !0,\n RuleExit: !0\n}, Kh = {\n Once: !0,\n postcssPlugin: !0,\n prepare: !0\n}, Ge = 0;\nfunction Ke(r) {\n return typeof r == \"object\" && typeof r.then == \"function\";\n}\nfunction ea(r) {\n let e = !1, t = Jh[r.type];\n return r.type === \"decl\" ? e = r.prop.toLowerCase() : r.type === \"atrule\" && (e = r.name.toLowerCase()), e && r.append ? [\n t,\n t + \"-\" + e,\n Ge,\n t + \"Exit\",\n t + \"Exit-\" + e\n ] : e ? [t, t + \"-\" + e, t + \"Exit\", t + \"Exit-\" + e] : r.append ? [t, Ge, t + \"Exit\"] : [t, t + \"Exit\"];\n}\nfunction ci(r) {\n let e;\n return r.type === \"document\" ? e = [\"Document\", Ge, \"DocumentExit\"] : r.type === \"root\" ? e = [\"Root\", Ge, \"RootExit\"] : e = ea(r), {\n eventIndex: 0,\n events: e,\n iterator: 0,\n node: r,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction gs(r) {\n return r[ue] = !1, r.nodes && r.nodes.forEach((e) => gs(e)), r;\n}\nlet ys = {}, He = class ta {\n constructor(e, t, s) {\n this.stringified = !1, this.processed = !1;\n let n;\n if (typeof t == \"object\" && t !== null && (t.type === \"root\" || t.type === \"document\"))\n n = gs(t);\n else if (t instanceof ta || t instanceof li)\n n = gs(t.root), t.map && (typeof s.map > \"u\" && (s.map = {}), s.map.inline || (s.map.inline = !1), s.map.prev = t.map);\n else {\n let i = Xh;\n s.syntax && (i = s.syntax.parse), s.parser && (i = s.parser), i.parse && (i = i.parse);\n try {\n n = i(t, s);\n } catch (a) {\n this.processed = !0, this.error = a;\n }\n n && !n[Vh] && Gh.rebuild(n);\n }\n this.result = new li(e, n, s), this.helpers = { ...ys, postcss: ys, result: this.result }, this.plugins = this.processor.plugins.map((i) => typeof i == \"object\" && i.prepare ? { ...i, ...i.prepare(this.result) } : i);\n }\n async() {\n return this.error ? Promise.reject(this.error) : this.processed ? Promise.resolve(this.result) : (this.processing || (this.processing = this.runAsync()), this.processing);\n }\n catch(e) {\n return this.async().catch(e);\n }\n finally(e) {\n return this.async().then(e, e);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(e, t) {\n let s = this.result.lastPlugin;\n try {\n if (t && t.addToError(e), this.error = e, e.name === \"CssSyntaxError\" && !e.plugin)\n e.plugin = s.postcssPlugin, e.setMessage();\n else if (s.postcssVersion && process.env.NODE_ENV !== \"production\") {\n let n = s.postcssPlugin, i = s.postcssVersion, a = this.result.processor.version, o = i.split(\".\"), l = a.split(\".\");\n (o[0] !== l[0] || parseInt(o[1]) > parseInt(l[1])) && console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + a + \", but \" + n + \" uses \" + i + \". Perhaps this is the source of the error below.\"\n );\n }\n } catch (n) {\n console && console.error && console.error(n);\n }\n return e;\n }\n prepareVisitors() {\n this.listeners = {};\n let e = (t, s, n) => {\n this.listeners[s] || (this.listeners[s] = []), this.listeners[s].push([t, n]);\n };\n for (let t of this.plugins)\n if (typeof t == \"object\")\n for (let s in t) {\n if (!Qh[s] && /^[A-Z]/.test(s))\n throw new Error(\n `Unknown event ${s} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n if (!Kh[s])\n if (typeof t[s] == \"object\")\n for (let n in t[s])\n n === \"*\" ? e(t, s, t[s][n]) : e(\n t,\n s + \"-\" + n.toLowerCase(),\n t[s][n]\n );\n else typeof t[s] == \"function\" && e(t, s, t[s]);\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let e = 0; e < this.plugins.length; e++) {\n let t = this.plugins[e], s = this.runOnRoot(t);\n if (Ke(s))\n try {\n await s;\n } catch (n) {\n throw this.handleError(n);\n }\n }\n if (this.prepareVisitors(), this.hasListener) {\n let e = this.result.root;\n for (; !e[ue]; ) {\n e[ue] = !0;\n let t = [ci(e)];\n for (; t.length > 0; ) {\n let s = this.visitTick(t);\n if (Ke(s))\n try {\n await s;\n } catch (n) {\n let i = t[t.length - 1].node;\n throw this.handleError(n, i);\n }\n }\n }\n if (this.listeners.OnceExit)\n for (let [t, s] of this.listeners.OnceExit) {\n this.result.lastPlugin = t;\n try {\n if (e.type === \"document\") {\n let n = e.nodes.map(\n (i) => s(i, this.helpers)\n );\n await Promise.all(n);\n } else\n await s(e, this.helpers);\n } catch (n) {\n throw this.handleError(n);\n }\n }\n }\n return this.processed = !0, this.stringify();\n }\n runOnRoot(e) {\n this.result.lastPlugin = e;\n try {\n if (typeof e == \"object\" && e.Once) {\n if (this.result.root.type === \"document\") {\n let t = this.result.root.nodes.map(\n (s) => e.Once(s, this.helpers)\n );\n return Ke(t[0]) ? Promise.all(t) : t;\n }\n return e.Once(this.result.root, this.helpers);\n } else if (typeof e == \"function\")\n return e(this.result.root, this.result);\n } catch (t) {\n throw this.handleError(t);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = !0, this.sync();\n let e = this.result.opts, t = jh;\n e.syntax && (t = e.syntax.stringify), e.stringifier && (t = e.stringifier), t.stringify && (t = t.stringify);\n let s = new zh(t, this.result.root, this.result.opts).generate();\n return this.result.css = s[0], this.result.map = s[1], this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n if (this.processed = !0, this.processing)\n throw this.getAsyncError();\n for (let e of this.plugins) {\n let t = this.runOnRoot(e);\n if (Ke(t))\n throw this.getAsyncError();\n }\n if (this.prepareVisitors(), this.hasListener) {\n let e = this.result.root;\n for (; !e[ue]; )\n e[ue] = !0, this.walkSync(e);\n if (this.listeners.OnceExit)\n if (e.type === \"document\")\n for (let t of e.nodes)\n this.visitSync(this.listeners.OnceExit, t);\n else\n this.visitSync(this.listeners.OnceExit, e);\n }\n return this.result;\n }\n then(e, t) {\n return process.env.NODE_ENV !== \"production\" && (\"from\" in this.opts || Yh(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n )), this.async().then(e, t);\n }\n toString() {\n return this.css;\n }\n visitSync(e, t) {\n for (let [s, n] of e) {\n this.result.lastPlugin = s;\n let i;\n try {\n i = n(t, this.helpers);\n } catch (a) {\n throw this.handleError(a, t.proxyOf);\n }\n if (t.type !== \"root\" && t.type !== \"document\" && !t.parent)\n return !0;\n if (Ke(i))\n throw this.getAsyncError();\n }\n }\n visitTick(e) {\n let t = e[e.length - 1], { node: s, visitors: n } = t;\n if (s.type !== \"root\" && s.type !== \"document\" && !s.parent) {\n e.pop();\n return;\n }\n if (n.length > 0 && t.visitorIndex < n.length) {\n let [a, o] = n[t.visitorIndex];\n t.visitorIndex += 1, t.visitorIndex === n.length && (t.visitors = [], t.visitorIndex = 0), this.result.lastPlugin = a;\n try {\n return o(s.toProxy(), this.helpers);\n } catch (l) {\n throw this.handleError(l, s);\n }\n }\n if (t.iterator !== 0) {\n let a = t.iterator, o;\n for (; o = s.nodes[s.indexes[a]]; )\n if (s.indexes[a] += 1, !o[ue]) {\n o[ue] = !0, e.push(ci(o));\n return;\n }\n t.iterator = 0, delete s.indexes[a];\n }\n let i = t.events;\n for (; t.eventIndex < i.length; ) {\n let a = i[t.eventIndex];\n if (t.eventIndex += 1, a === Ge) {\n s.nodes && s.nodes.length && (s[ue] = !0, t.iterator = s.getIterator());\n return;\n } else if (this.listeners[a]) {\n t.visitors = this.listeners[a];\n return;\n }\n }\n e.pop();\n }\n walkSync(e) {\n e[ue] = !0;\n let t = ea(e);\n for (let s of t)\n if (s === Ge)\n e.nodes && e.each((n) => {\n n[ue] || this.walkSync(n);\n });\n else {\n let n = this.listeners[s];\n if (n && this.visitSync(n, e.toProxy()))\n return;\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nHe.registerPostcss = (r) => {\n ys = r;\n};\nvar ra = He;\nHe.default = He;\nZh.registerLazyResult(He);\nHh.registerLazyResult(He);\nlet qh = Lo, ep = Sr, tp = Ho, rp = tn;\nconst sp = Ks;\nlet ws = class {\n constructor(r, e, t) {\n e = e.toString(), this.stringified = !1, this._processor = r, this._css = e, this._opts = t, this._map = void 0;\n let s, n = ep;\n this.result = new sp(this._processor, s, this._opts), this.result.css = e;\n let i = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return i.root;\n }\n });\n let a = new qh(n, s, this._opts, e);\n if (a.isMap()) {\n let [o, l] = a.generate();\n o && (this.result.css = o), l && (this.result.map = l);\n } else\n a.clearAnnotation(), this.result.css = a.css;\n }\n async() {\n return this.error ? Promise.reject(this.error) : Promise.resolve(this.result);\n }\n catch(r) {\n return this.async().catch(r);\n }\n finally(r) {\n return this.async().then(r, r);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(r, e) {\n return process.env.NODE_ENV !== \"production\" && (\"from\" in this._opts || tp(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n )), this.async().then(r, e);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root)\n return this._root;\n let r, e = rp;\n try {\n r = e(this._css, this._opts);\n } catch (t) {\n this.error = t;\n }\n if (this.error)\n throw this.error;\n return this._root = r, r;\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar np = ws;\nws.default = ws;\nlet ip = np, op = ra, ap = Qs, lp = bt, pt = class {\n constructor(r = []) {\n this.version = \"8.4.39\", this.plugins = this.normalize(r);\n }\n normalize(r) {\n let e = [];\n for (let t of r)\n if (t.postcss === !0 ? t = t() : t.postcss && (t = t.postcss), typeof t == \"object\" && Array.isArray(t.plugins))\n e = e.concat(t.plugins);\n else if (typeof t == \"object\" && t.postcssPlugin)\n e.push(t);\n else if (typeof t == \"function\")\n e.push(t);\n else if (typeof t == \"object\" && (t.parse || t.stringify)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n } else\n throw new Error(t + \" is not a PostCSS plugin\");\n return e;\n }\n process(r, e = {}) {\n return !this.plugins.length && !e.parser && !e.stringifier && !e.syntax ? new ip(this, r, e) : new op(this, r, e);\n }\n use(r) {\n return this.plugins = this.plugins.concat(this.normalize([r])), this;\n }\n};\nvar cp = pt;\npt.default = pt;\nlp.registerProcessor(pt);\nap.registerProcessor(pt);\nlet up = Cr, hp = No, pp = xr, dp = qs, fp = Mr, mp = bt, gp = en;\nfunction dt(r, e) {\n if (Array.isArray(r)) return r.map((n) => dt(n));\n let { inputs: t, ...s } = r;\n if (t) {\n e = [];\n for (let n of t) {\n let i = { ...n, __proto__: fp.prototype };\n i.map && (i.map = {\n ...i.map,\n __proto__: hp.prototype\n }), e.push(i);\n }\n }\n if (s.nodes && (s.nodes = r.nodes.map((n) => dt(n, e))), s.source) {\n let { inputId: n, ...i } = s.source;\n s.source = i, n != null && (s.source.input = e[n]);\n }\n if (s.type === \"root\")\n return new mp(s);\n if (s.type === \"decl\")\n return new up(s);\n if (s.type === \"rule\")\n return new gp(s);\n if (s.type === \"comment\")\n return new pp(s);\n if (s.type === \"atrule\")\n return new dp(s);\n throw new Error(\"Unknown node type: \" + r.type);\n}\nvar yp = dt;\ndt.default = dt;\nlet wp = Xs, sa = Cr, bp = ra, Sp = Ne, rn = cp, vp = Sr, Cp = yp, na = Qs, Mp = Yo, ia = xr, oa = qs, xp = Ks, Ep = Mr, Ip = tn, kp = Ko, aa = en, la = bt, Tp = vr;\nfunction _(...r) {\n return r.length === 1 && Array.isArray(r[0]) && (r = r[0]), new rn(r);\n}\n_.plugin = function(r, e) {\n let t = !1;\n function s(...i) {\n console && console.warn && !t && (t = !0, console.warn(\n r + `: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`\n ), process.env.LANG && process.env.LANG.startsWith(\"cn\") && console.warn(\n r + `: 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226`\n ));\n let a = e(...i);\n return a.postcssPlugin = r, a.postcssVersion = new rn().version, a;\n }\n let n;\n return Object.defineProperty(s, \"postcss\", {\n get() {\n return n || (n = s()), n;\n }\n }), s.process = function(i, a, o) {\n return _([s(o)]).process(i, a);\n }, s;\n};\n_.stringify = vp;\n_.parse = Ip;\n_.fromJSON = Cp;\n_.list = kp;\n_.comment = (r) => new ia(r);\n_.atRule = (r) => new oa(r);\n_.decl = (r) => new sa(r);\n_.rule = (r) => new aa(r);\n_.root = (r) => new la(r);\n_.document = (r) => new na(r);\n_.CssSyntaxError = wp;\n_.Declaration = sa;\n_.Container = Sp;\n_.Processor = rn;\n_.Document = na;\n_.Comment = ia;\n_.Warning = Mp;\n_.AtRule = oa;\n_.Result = xp;\n_.Input = Ep;\n_.Rule = aa;\n_.Root = la;\n_.Node = Tp;\nbp.registerPostcss(_);\nvar Np = _;\n_.default = _;\nconst j = /* @__PURE__ */ Uu(Np);\nj.stringify;\nj.fromJSON;\nj.plugin;\nj.parse;\nj.list;\nj.document;\nj.comment;\nj.atRule;\nj.rule;\nj.decl;\nj.root;\nj.CssSyntaxError;\nj.Declaration;\nj.Container;\nj.Processor;\nj.Document;\nj.Comment;\nj.Warning;\nj.AtRule;\nj.Result;\nj.Input;\nj.Rule;\nj.Root;\nj.Node;\nfunction Op(r) {\n const e = {}, t = /;(?![^(]*\\))/g, s = /:(.+)/, n = /\\/\\*.*?\\*\\//g;\n return r.replace(n, \"\").split(t).forEach(function(i) {\n if (i) {\n const a = i.split(s);\n a.length > 1 && (e[bs(a[0].trim())] = a[1].trim());\n }\n }), e;\n}\nfunction ui(r) {\n const e = [];\n for (const t in r) {\n const s = r[t];\n if (typeof s != \"string\") continue;\n const n = Lp(t);\n e.push(`${n}: ${s};`);\n }\n return e.join(\" \");\n}\nconst Rp = /-([a-z])/g, Dp = /^--[a-zA-Z0-9-]+$/, bs = (r) => Dp.test(r) ? r : r.replace(Rp, (e, t) => t ? t.toUpperCase() : \"\"), Ap = /\\B([A-Z])/g, Lp = (r) => r.replace(Ap, \"-$1\").toLowerCase();\nclass ve {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(...e) {\n M(this, \"parentElement\", null), M(this, \"parentNode\", null), M(this, \"ownerDocument\"), M(this, \"firstChild\", null), M(this, \"lastChild\", null), M(this, \"previousSibling\", null), M(this, \"nextSibling\", null), M(this, \"ELEMENT_NODE\", 1), M(this, \"TEXT_NODE\", 3), M(this, \"nodeType\"), M(this, \"nodeName\"), M(this, \"RRNodeType\");\n }\n get childNodes() {\n const e = [];\n let t = this.firstChild;\n for (; t; )\n e.push(t), t = t.nextSibling;\n return e;\n }\n contains(e) {\n if (e instanceof ve) {\n if (e.ownerDocument !== this.ownerDocument) return !1;\n if (e === this) return !0;\n } else return !1;\n for (; e.parentNode; ) {\n if (e.parentNode === this) return !0;\n e = e.parentNode;\n }\n return !1;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(e) {\n throw new Error(\n \"RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.\"\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(e, t) {\n throw new Error(\n \"RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.\"\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(e) {\n throw new Error(\n \"RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.\"\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass sn extends ve {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...e) {\n super(e), M(this, \"nodeType\", 9), M(this, \"nodeName\", \"#document\"), M(this, \"compatMode\", \"CSS1Compat\"), M(this, \"RRNodeType\", N.Document), M(this, \"textContent\", null), this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (e) => e.RRNodeType === N.Element && e.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var e;\n return ((e = this.documentElement) == null ? void 0 : e.childNodes.find(\n (t) => t.RRNodeType === N.Element && t.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var e;\n return ((e = this.documentElement) == null ? void 0 : e.childNodes.find(\n (t) => t.RRNodeType === N.Element && t.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(e) {\n const t = e.RRNodeType;\n if ((t === N.Element || t === N.DocumentType) && this.childNodes.some((n) => n.RRNodeType === t))\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${t === N.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n const s = on(this, e);\n return s.parentElement = null, s;\n }\n insertBefore(e, t) {\n const s = e.RRNodeType;\n if ((s === N.Element || s === N.DocumentType) && this.childNodes.some((i) => i.RRNodeType === s))\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${s === N.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n const n = da(this, e, t);\n return n.parentElement = null, n;\n }\n removeChild(e) {\n return fa(this, e);\n }\n open() {\n this.firstChild = null, this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(e) {\n let t;\n if (e === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">' ? t = \"-//W3C//DTD XHTML 1.0 Transitional//EN\" : e === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">' && (t = \"-//W3C//DTD HTML 4.0 Transitional//EN\"), t) {\n const s = this.createDocumentType(\"html\", t, \"\");\n this.open(), this.appendChild(s);\n }\n }\n createDocument(e, t, s) {\n return new sn();\n }\n createDocumentType(e, t, s) {\n const n = new ca(e, t, s);\n return n.ownerDocument = this, n;\n }\n createElement(e) {\n const t = new nn(e);\n return t.ownerDocument = this, t;\n }\n createElementNS(e, t) {\n return this.createElement(t);\n }\n createTextNode(e) {\n const t = new ua(e);\n return t.ownerDocument = this, t;\n }\n createComment(e) {\n const t = new ha(e);\n return t.ownerDocument = this, t;\n }\n createCDATASection(e) {\n const t = new pa(e);\n return t.ownerDocument = this, t;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass ca extends ve {\n constructor(e, t, s) {\n super(), M(this, \"nodeType\", 10), M(this, \"RRNodeType\", N.DocumentType), M(this, \"name\"), M(this, \"publicId\"), M(this, \"systemId\"), M(this, \"textContent\", null), this.name = e, this.publicId = t, this.systemId = s, this.nodeName = e;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass nn extends ve {\n constructor(e) {\n super(), M(this, \"nodeType\", 1), M(this, \"RRNodeType\", N.Element), M(this, \"tagName\"), M(this, \"attributes\", {}), M(this, \"shadowRoot\", null), M(this, \"scrollLeft\"), M(this, \"scrollTop\"), this.tagName = e.toUpperCase(), this.nodeName = e.toUpperCase();\n }\n get textContent() {\n let e = \"\";\n return this.childNodes.forEach((t) => e += t.textContent), e;\n }\n set textContent(e) {\n this.firstChild = null, this.lastChild = null, this.appendChild(this.ownerDocument.createTextNode(e));\n }\n get classList() {\n return new Fp(\n this.attributes.class,\n (e) => {\n this.attributes.class = e;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const e = this.attributes.style ? Op(this.attributes.style) : {}, t = /\\B([A-Z])/g;\n return e.setProperty = (s, n, i) => {\n if (t.test(s)) return;\n const a = bs(s);\n n ? e[a] = n : delete e[a], i === \"important\" && (e[a] += \" !important\"), this.attributes.style = ui(e);\n }, e.removeProperty = (s) => {\n if (t.test(s)) return \"\";\n const n = bs(s), i = e[n] || \"\";\n return delete e[n], this.attributes.style = ui(e), i;\n }, e;\n }\n getAttribute(e) {\n return this.attributes[e] || null;\n }\n setAttribute(e, t) {\n this.attributes[e] = t;\n }\n setAttributeNS(e, t, s) {\n this.setAttribute(t, s);\n }\n removeAttribute(e) {\n delete this.attributes[e];\n }\n appendChild(e) {\n return on(this, e);\n }\n insertBefore(e, t) {\n return da(this, e, t);\n }\n removeChild(e) {\n return fa(this, e);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(e) {\n const t = this.ownerDocument.createElement(\"SHADOWROOT\");\n return this.shadowRoot = t, t;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(e) {\n return !0;\n }\n toString() {\n let e = \"\";\n for (const t in this.attributes)\n e += `${t}=\"${this.attributes[t]}\" `;\n return `${this.tagName} ${e}`;\n }\n}\nclass Pp extends nn {\n constructor() {\n super(...arguments), M(this, \"currentTime\"), M(this, \"volume\"), M(this, \"paused\"), M(this, \"muted\"), M(this, \"playbackRate\"), M(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(e) {\n throw new Error(\n \"RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow\"\n );\n }\n play() {\n this.paused = !1;\n }\n pause() {\n this.paused = !0;\n }\n}\nclass ua extends ve {\n constructor(e) {\n super(), M(this, \"nodeType\", 3), M(this, \"nodeName\", \"#text\"), M(this, \"RRNodeType\", N.Text), M(this, \"data\"), this.data = e;\n }\n get textContent() {\n return this.data;\n }\n set textContent(e) {\n this.data = e;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass ha extends ve {\n constructor(e) {\n super(), M(this, \"nodeType\", 8), M(this, \"nodeName\", \"#comment\"), M(this, \"RRNodeType\", N.Comment), M(this, \"data\"), this.data = e;\n }\n get textContent() {\n return this.data;\n }\n set textContent(e) {\n this.data = e;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass pa extends ve {\n constructor(e) {\n super(), M(this, \"nodeName\", \"#cdata-section\"), M(this, \"nodeType\", 4), M(this, \"RRNodeType\", N.CDATA), M(this, \"data\"), this.data = e;\n }\n get textContent() {\n return this.data;\n }\n set textContent(e) {\n this.data = e;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass Fp {\n constructor(e, t) {\n if (M(this, \"onChange\"), M(this, \"classes\", []), M(this, \"add\", (...s) => {\n for (const n of s) {\n const i = String(n);\n this.classes.indexOf(i) >= 0 || this.classes.push(i);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n }), M(this, \"remove\", (...s) => {\n this.classes = this.classes.filter(\n (n) => s.indexOf(n) === -1\n ), this.onChange && this.onChange(this.classes.join(\" \"));\n }), e) {\n const s = e.trim().split(/\\s+/);\n this.classes.push(...s);\n }\n this.onChange = t;\n }\n}\nfunction on(r, e) {\n return e.parentNode && e.parentNode.removeChild(e), r.lastChild ? (r.lastChild.nextSibling = e, e.previousSibling = r.lastChild) : (r.firstChild = e, e.previousSibling = null), r.lastChild = e, e.nextSibling = null, e.parentNode = r, e.parentElement = r, e.ownerDocument = r.ownerDocument, e;\n}\nfunction da(r, e, t) {\n if (!t) return on(r, e);\n if (t.parentNode !== r)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n return e === t || (e.parentNode && e.parentNode.removeChild(e), e.previousSibling = t.previousSibling, t.previousSibling = e, e.nextSibling = t, e.previousSibling ? e.previousSibling.nextSibling = e : r.firstChild = e, e.parentElement = r, e.parentNode = r, e.ownerDocument = r.ownerDocument), e;\n}\nfunction fa(r, e) {\n if (e.parentNode !== r)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n return e.previousSibling ? e.previousSibling.nextSibling = e.nextSibling : r.firstChild = e.nextSibling, e.nextSibling ? e.nextSibling.previousSibling = e.previousSibling : r.lastChild = e.previousSibling, e.previousSibling = null, e.nextSibling = null, e.parentElement = null, e.parentNode = null, e;\n}\nvar te = /* @__PURE__ */ ((r) => (r[r.PLACEHOLDER = 0] = \"PLACEHOLDER\", r[r.ELEMENT_NODE = 1] = \"ELEMENT_NODE\", r[r.ATTRIBUTE_NODE = 2] = \"ATTRIBUTE_NODE\", r[r.TEXT_NODE = 3] = \"TEXT_NODE\", r[r.CDATA_SECTION_NODE = 4] = \"CDATA_SECTION_NODE\", r[r.ENTITY_REFERENCE_NODE = 5] = \"ENTITY_REFERENCE_NODE\", r[r.ENTITY_NODE = 6] = \"ENTITY_NODE\", r[r.PROCESSING_INSTRUCTION_NODE = 7] = \"PROCESSING_INSTRUCTION_NODE\", r[r.COMMENT_NODE = 8] = \"COMMENT_NODE\", r[r.DOCUMENT_NODE = 9] = \"DOCUMENT_NODE\", r[r.DOCUMENT_TYPE_NODE = 10] = \"DOCUMENT_TYPE_NODE\", r[r.DOCUMENT_FRAGMENT_NODE = 11] = \"DOCUMENT_FRAGMENT_NODE\", r))(te || {});\nconst Ss = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n}, _p = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet he = null;\nfunction hr(r, e, t, s = e.mirror || e.ownerDocument.mirror) {\n r = $p(\n r,\n e,\n t,\n s\n ), ma(r, e, t, s), Up(r, e, t);\n}\nfunction $p(r, e, t, s) {\n var n;\n if (t.afterAppend && !he && (he = /* @__PURE__ */ new WeakSet(), setTimeout(() => {\n he = null;\n }, 0)), !an(r, e)) {\n const i = pr(\n e,\n t.mirror,\n s\n );\n (n = r.parentNode) == null || n.replaceChild(i, r), r = i;\n }\n switch (e.RRNodeType) {\n case N.Document: {\n if (!Ae(r, e, t.mirror, s)) {\n const i = s.getMeta(e);\n i && (t.mirror.removeNodeFromMap(r), r.close(), r.open(), t.mirror.add(r, i), he == null || he.add(r));\n }\n break;\n }\n case N.Element: {\n const i = r, a = e;\n switch (a.tagName) {\n case \"IFRAME\": {\n const o = r.contentDocument;\n if (!o) break;\n hr(\n o,\n e.contentDocument,\n t,\n s\n );\n break;\n }\n }\n a.shadowRoot && (i.shadowRoot || i.attachShadow({ mode: \"open\" }), ma(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n i.shadowRoot,\n a.shadowRoot,\n t,\n s\n )), Wp(i, a, s);\n break;\n }\n }\n return r;\n}\nfunction Up(r, e, t) {\n var s;\n switch (e.RRNodeType) {\n case N.Document: {\n const n = e.scrollData;\n n && t.applyScroll(n, !0);\n break;\n }\n case N.Element: {\n const n = r, i = e;\n switch (i.scrollData && t.applyScroll(i.scrollData, !0), i.inputData && t.applyInput(i.inputData), i.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const a = r, o = i;\n o.paused !== void 0 && (o.paused ? a.pause() : a.play()), o.muted !== void 0 && (a.muted = o.muted), o.volume !== void 0 && (a.volume = o.volume), o.currentTime !== void 0 && (a.currentTime = o.currentTime), o.playbackRate !== void 0 && (a.playbackRate = o.playbackRate), o.loop !== void 0 && (a.loop = o.loop);\n break;\n }\n case \"CANVAS\": {\n const a = e;\n if (a.rr_dataURL !== null) {\n const o = document.createElement(\"img\");\n o.onload = () => {\n const l = n.getContext(\"2d\");\n l && l.drawImage(o, 0, 0, o.width, o.height);\n }, o.src = a.rr_dataURL;\n }\n a.canvasMutations.forEach(\n (o) => t.applyCanvas(\n o.event,\n o.mutation,\n r\n )\n );\n break;\n }\n case \"STYLE\": {\n const a = n.sheet;\n a && e.rules.forEach(\n (o) => t.applyStyleSheetMutation(o, a)\n );\n break;\n }\n }\n break;\n }\n case N.Text:\n case N.Comment:\n case N.CDATA: {\n r.textContent !== e.data && (r.textContent = e.data);\n break;\n }\n }\n he != null && he.has(r) && (he.delete(r), (s = t.afterAppend) == null || s.call(t, r, t.mirror.getId(r)));\n}\nfunction Wp(r, e, t) {\n const s = r.attributes, n = e.attributes;\n for (const i in n) {\n const a = n[i], o = t.getMeta(e);\n if (o != null && o.isSVG && Ss[i])\n r.setAttributeNS(Ss[i], i, a);\n else if (e.tagName === \"CANVAS\" && i === \"rr_dataURL\") {\n const l = document.createElement(\"img\");\n l.src = a, l.onload = () => {\n const c = r.getContext(\"2d\");\n c && c.drawImage(l, 0, 0, l.width, l.height);\n };\n } else {\n if (e.tagName === \"IFRAME\" && i === \"srcdoc\") continue;\n r.setAttribute(i, a);\n }\n }\n for (const { name: i } of Array.from(s))\n i in n || r.removeAttribute(i);\n e.scrollLeft && (r.scrollLeft = e.scrollLeft), e.scrollTop && (r.scrollTop = e.scrollTop);\n}\nfunction ma(r, e, t, s) {\n const n = Array.from(r.childNodes), i = e.childNodes;\n if (n.length === 0 && i.length === 0) return;\n let a = 0, o = n.length - 1, l = 0, c = i.length - 1, u = n[a], p = n[o], d = i[l], f = i[c], y, h;\n for (; a <= o && l <= c; )\n if (u === void 0)\n u = n[++a];\n else if (p === void 0)\n p = n[--o];\n else if (\n // same first node?\n Ae(u, d, t.mirror, s)\n )\n u = n[++a], d = i[++l];\n else if (\n // same last node?\n Ae(p, f, t.mirror, s)\n )\n p = n[--o], f = i[--c];\n else if (\n // is the first old node the same as the last new node?\n Ae(u, f, t.mirror, s)\n ) {\n try {\n r.insertBefore(u, p.nextSibling);\n } catch (S) {\n console.warn(S);\n }\n u = n[++a], f = i[--c];\n } else if (\n // is the last old node the same as the first new node?\n Ae(p, d, t.mirror, s)\n ) {\n try {\n r.insertBefore(p, u);\n } catch (S) {\n console.warn(S);\n }\n p = n[--o], d = i[++l];\n } else {\n if (!y) {\n y = {};\n for (let m = a; m <= o; m++) {\n const v = n[m];\n v && t.mirror.hasNode(v) && (y[t.mirror.getId(v)] = m);\n }\n }\n h = y[s.getId(d)];\n const S = n[h];\n if (h !== void 0 && S && Ae(S, d, t.mirror, s)) {\n try {\n r.insertBefore(S, u);\n } catch (m) {\n console.warn(m);\n }\n n[h] = void 0;\n } else {\n const m = pr(\n d,\n t.mirror,\n s\n );\n r.nodeName === \"#document\" && u && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (m.nodeType === m.DOCUMENT_TYPE_NODE && u.nodeType === u.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n m.nodeType === m.ELEMENT_NODE && u.nodeType === u.ELEMENT_NODE) && (r.removeChild(u), t.mirror.removeNodeFromMap(u), u = n[++a]);\n try {\n r.insertBefore(m, u || null);\n } catch (v) {\n console.warn(v);\n }\n }\n d = i[++l];\n }\n if (a > o) {\n const S = i[c + 1];\n let m = null;\n for (S && (m = t.mirror.getNode(\n s.getId(S)\n )); l <= c; ++l) {\n const v = pr(\n i[l],\n t.mirror,\n s\n );\n try {\n r.insertBefore(v, m);\n } catch (E) {\n console.warn(E);\n }\n }\n } else if (l > c)\n for (; a <= o; a++) {\n const S = n[a];\n if (!(!S || S.parentNode !== r))\n try {\n r.removeChild(S), t.mirror.removeNodeFromMap(S);\n } catch (m) {\n console.warn(m);\n }\n }\n let b = r.firstChild, g = e.firstChild;\n for (; b !== null && g !== null; )\n hr(b, g, t, s), b = b.nextSibling, g = g.nextSibling;\n}\nfunction pr(r, e, t) {\n const s = t.getId(r), n = t.getMeta(r);\n let i = null;\n if (s > -1 && (i = e.getNode(s)), i !== null && an(i, r)) return i;\n switch (r.RRNodeType) {\n case N.Document:\n i = new Document();\n break;\n case N.DocumentType:\n i = document.implementation.createDocumentType(\n r.name,\n r.publicId,\n r.systemId\n );\n break;\n case N.Element: {\n let a = r.tagName.toLowerCase();\n a = _p[a] || a, n && \"isSVG\" in n && n != null && n.isSVG ? i = document.createElementNS(Ss.svg, a) : i = document.createElement(r.tagName);\n break;\n }\n case N.Text:\n i = document.createTextNode(r.data);\n break;\n case N.Comment:\n i = document.createComment(r.data);\n break;\n case N.CDATA:\n i = document.createCDATASection(r.data);\n break;\n }\n n && e.add(i, { ...n });\n try {\n he == null || he.add(i);\n } catch {\n }\n return i;\n}\nfunction an(r, e) {\n return r.nodeType !== e.nodeType ? !1 : r.nodeType !== r.ELEMENT_NODE || r.tagName.toUpperCase() === e.tagName;\n}\nfunction Ae(r, e, t, s) {\n const n = t.getId(r), i = s.getId(e);\n return n === -1 || n !== i ? !1 : an(r, e);\n}\nclass Ye extends sn {\n constructor(e) {\n super(), M(this, \"UNSERIALIZED_STARTING_ID\", -2), M(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID), M(this, \"mirror\", Qp()), M(this, \"scrollData\", null), e && (this.mirror = e);\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(e, t, s) {\n return new Ye();\n }\n createDocumentType(e, t, s) {\n const n = new Bp(\n e,\n t,\n s\n );\n return n.ownerDocument = this, n;\n }\n createElement(e) {\n const t = e.toUpperCase();\n let s;\n switch (t) {\n case \"AUDIO\":\n case \"VIDEO\":\n s = new Vp(t);\n break;\n case \"IFRAME\":\n s = new Gp(t, this.mirror);\n break;\n case \"CANVAS\":\n s = new zp(t);\n break;\n case \"STYLE\":\n s = new jp(t);\n break;\n default:\n s = new Er(t);\n break;\n }\n return s.ownerDocument = this, s;\n }\n createComment(e) {\n const t = new Yp(e);\n return t.ownerDocument = this, t;\n }\n createCDATASection(e) {\n const t = new Xp(e);\n return t.ownerDocument = this, t;\n }\n createTextNode(e) {\n const t = new Hp(e);\n return t.ownerDocument = this, t;\n }\n destroyTree() {\n this.firstChild = null, this.lastChild = null, this.mirror.reset();\n }\n open() {\n super.open(), this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst Bp = ca;\nclass Er extends nn {\n constructor() {\n super(...arguments), M(this, \"inputData\", null), M(this, \"scrollData\", null);\n }\n}\nclass Vp extends Pp {\n}\nclass zp extends Er {\n constructor() {\n super(...arguments), M(this, \"rr_dataURL\", null), M(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass jp extends Er {\n constructor() {\n super(...arguments), M(this, \"rules\", []);\n }\n}\nclass Gp extends Er {\n constructor(e, t) {\n super(e), M(this, \"contentDocument\", new Ye()), this.contentDocument.mirror = t;\n }\n}\nconst Hp = ua, Yp = ha, Xp = pa;\nfunction Zp(r) {\n return r instanceof HTMLFormElement ? \"FORM\" : r.tagName.toUpperCase();\n}\nfunction ga(r, e, t, s) {\n let n;\n switch (r.nodeType) {\n case te.DOCUMENT_NODE:\n s && s.nodeName === \"IFRAME\" ? n = s.contentDocument : (n = e, n.compatMode = r.compatMode);\n break;\n case te.DOCUMENT_TYPE_NODE: {\n const a = r;\n n = e.createDocumentType(\n a.name,\n a.publicId,\n a.systemId\n );\n break;\n }\n case te.ELEMENT_NODE: {\n const a = r, o = Zp(a);\n n = e.createElement(o);\n const l = n;\n for (const { name: c, value: u } of Array.from(a.attributes))\n l.attributes[c] = u;\n a.scrollLeft && (l.scrollLeft = a.scrollLeft), a.scrollTop && (l.scrollTop = a.scrollTop);\n break;\n }\n case te.TEXT_NODE:\n n = e.createTextNode(r.textContent || \"\");\n break;\n case te.CDATA_SECTION_NODE:\n n = e.createCDATASection(r.data);\n break;\n case te.COMMENT_NODE:\n n = e.createComment(r.textContent || \"\");\n break;\n case te.DOCUMENT_FRAGMENT_NODE:\n n = s.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let i = t.getMeta(r);\n return e instanceof Ye && (i || (i = ya(n, e.unserializedId), t.add(r, i)), e.mirror.add(n, { ...i })), n;\n}\nfunction Jp(r, e = $u(), t = new Ye()) {\n function s(n, i) {\n const a = ga(n, t, e, i);\n if (a !== null)\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (i == null ? void 0 : i.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n n.nodeType !== te.DOCUMENT_FRAGMENT_NODE && (i == null || i.appendChild(a), a.parentNode = i, a.parentElement = i), n.nodeName === \"IFRAME\"\n ) {\n const o = n.contentDocument;\n o && s(o, a);\n } else (n.nodeType === te.DOCUMENT_NODE || n.nodeType === te.ELEMENT_NODE || n.nodeType === te.DOCUMENT_FRAGMENT_NODE) && (n.nodeType === te.ELEMENT_NODE && n.shadowRoot && s(n.shadowRoot, a), n.childNodes.forEach((o) => s(o, a)));\n }\n return s(r, null), t;\n}\nfunction Qp() {\n return new Kp();\n}\nclass Kp {\n constructor() {\n M(this, \"idNodeMap\", /* @__PURE__ */ new Map()), M(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(e) {\n var t;\n return e ? ((t = this.getMeta(e)) == null ? void 0 : t.id) ?? -1 : -1;\n }\n getNode(e) {\n return this.idNodeMap.get(e) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(e) {\n return this.nodeMetaMap.get(e) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(e) {\n const t = this.getId(e);\n this.idNodeMap.delete(t), e.childNodes && e.childNodes.forEach((s) => this.removeNodeFromMap(s));\n }\n has(e) {\n return this.idNodeMap.has(e);\n }\n hasNode(e) {\n return this.nodeMetaMap.has(e);\n }\n add(e, t) {\n const s = t.id;\n this.idNodeMap.set(s, e), this.nodeMetaMap.set(e, t);\n }\n replace(e, t) {\n const s = this.getNode(e);\n if (s) {\n const n = this.nodeMetaMap.get(s);\n n && this.nodeMetaMap.set(t, n);\n }\n this.idNodeMap.set(e, t);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map(), this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction ya(r, e) {\n switch (r.RRNodeType) {\n case N.Document:\n return {\n id: e,\n type: r.RRNodeType,\n childNodes: []\n };\n case N.DocumentType: {\n const t = r;\n return {\n id: e,\n type: r.RRNodeType,\n name: t.name,\n publicId: t.publicId,\n systemId: t.systemId\n };\n }\n case N.Element:\n return {\n id: e,\n type: r.RRNodeType,\n tagName: r.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case N.Text:\n return {\n id: e,\n type: r.RRNodeType,\n textContent: r.textContent || \"\"\n };\n case N.Comment:\n return {\n id: e,\n type: r.RRNodeType,\n textContent: r.textContent || \"\"\n };\n case N.CDATA:\n return {\n id: e,\n type: r.RRNodeType,\n textContent: \"\"\n };\n }\n}\nfunction wa(r) {\n return { all: r = r || /* @__PURE__ */ new Map(), on: function(e, t) {\n var s = r.get(e);\n s ? s.push(t) : r.set(e, [t]);\n }, off: function(e, t) {\n var s = r.get(e);\n s && (t ? s.splice(s.indexOf(t) >>> 0, 1) : r.set(e, []));\n }, emit: function(e, t) {\n var s = r.get(e);\n s && s.slice().map(function(n) {\n n(t);\n }), (s = r.get(\"*\")) && s.slice().map(function(n) {\n n(e, t);\n });\n } };\n}\nconst qp = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: wa\n}, Symbol.toStringTag, { value: \"Module\" })), hi = /* @__PURE__ */ new Map();\nfunction ba(r, e) {\n let t = hi.get(r);\n return t || (t = /* @__PURE__ */ new Map(), hi.set(r, t)), t.has(e) || t.set(e, []), t.get(e);\n}\nfunction be(r, e, t) {\n return async (s) => {\n if (s && typeof s == \"object\" && \"rr_type\" in s)\n if (t && (t.isUnchanged = !1), s.rr_type === \"ImageBitmap\" && \"args\" in s) {\n const n = await be(r, e, t)(s.args);\n return await createImageBitmap.apply(null, n);\n } else if (\"index\" in s) {\n if (t || e === null) return s;\n const { rr_type: n, index: i } = s;\n return ba(e, n)[i];\n } else if (\"args\" in s) {\n const { rr_type: n, args: i } = s, a = window[n];\n return new a(\n ...await Promise.all(\n i.map(be(r, e, t))\n )\n );\n } else {\n if (\"base64\" in s)\n return xu(s.base64);\n if (\"src\" in s) {\n const n = r.get(s.src);\n if (n)\n return n;\n {\n const i = new Image();\n return i.src = s.src, r.set(s.src, i), i;\n }\n } else if (\"data\" in s && s.rr_type === \"Blob\") {\n const n = await Promise.all(\n s.data.map(be(r, e, t))\n );\n return new Blob(n, {\n type: s.type\n });\n }\n }\n else if (Array.isArray(s))\n return await Promise.all(\n s.map(be(r, e, t))\n );\n return s;\n };\n}\nasync function ed({\n event: r,\n mutations: e,\n target: t,\n imageMap: s,\n errorHandler: n\n}) {\n const i = t.getContext(\"2d\");\n if (!i) {\n n(e[0], new Error(\"Canvas context is null\"));\n return;\n }\n const a = e.map(\n async (l) => Promise.all(l.args.map(be(s, i)))\n );\n (await Promise.all(a)).forEach((l, c) => {\n const u = e[c];\n try {\n if (u.setter) {\n i[u.property] = u.args[0];\n return;\n }\n const p = i[u.property];\n u.property === \"drawImage\" && typeof u.args[0] == \"string\" ? (s.get(r), p.apply(i, u.args)) : p.apply(i, l);\n } catch (p) {\n n(u, p);\n }\n });\n}\nfunction td(r, e) {\n try {\n return e === fe.WebGL ? r.getContext(\"webgl\") || r.getContext(\"experimental-webgl\") : r.getContext(\"webgl2\");\n } catch {\n return null;\n }\n}\nconst rd = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\"\n];\nfunction sd(r, e) {\n if (!(e != null && e.constructor)) return;\n const { name: t } = e.constructor;\n if (!rd.includes(t)) return;\n const s = ba(r, t);\n s.includes(e) || s.push(e);\n}\nasync function nd({\n mutation: r,\n target: e,\n type: t,\n imageMap: s,\n errorHandler: n\n}) {\n try {\n const i = td(e, t);\n if (!i) return;\n if (r.setter) {\n i[r.property] = r.args[0];\n return;\n }\n const a = i[r.property], o = await Promise.all(\n r.args.map(be(s, i))\n ), l = a.apply(i, o);\n sd(i, l);\n const c = !1;\n } catch (i) {\n n(r, i);\n }\n}\nasync function pi({\n event: r,\n mutation: e,\n target: t,\n imageMap: s,\n canvasEventMap: n,\n errorHandler: i\n}) {\n try {\n const a = n.get(r) || e, o = \"commands\" in a ? a.commands : [a];\n if ([fe.WebGL, fe.WebGL2].includes(e.type)) {\n for (let l = 0; l < o.length; l++) {\n const c = o[l];\n await nd({\n mutation: c,\n type: e.type,\n target: t,\n imageMap: s,\n errorHandler: i\n });\n }\n return;\n }\n await ed({\n event: r,\n mutations: o,\n target: t,\n imageMap: s,\n errorHandler: i\n });\n } catch (a) {\n i(e, a);\n }\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction di(r, e) {\n var t = typeof Symbol == \"function\" && r[Symbol.iterator];\n if (!t) return r;\n var s, n, i = t.call(r), a = [];\n try {\n for (; (e === void 0 || e-- > 0) && !(s = i.next()).done; ) a.push(s.value);\n } catch (o) {\n n = { error: o };\n } finally {\n try {\n s && !s.done && (t = i.return) && t.call(i);\n } finally {\n if (n) throw n.error;\n }\n }\n return a;\n}\nvar $e;\n(function(r) {\n r[r.NotStarted = 0] = \"NotStarted\", r[r.Running = 1] = \"Running\", r[r.Stopped = 2] = \"Stopped\";\n})($e || ($e = {}));\nvar Sa = { type: \"xstate.init\" };\nfunction $r(r) {\n return r === void 0 ? [] : [].concat(r);\n}\nfunction Le(r) {\n return { type: \"xstate.assign\", assignment: r };\n}\nfunction fi(r, e) {\n return typeof (r = typeof r == \"string\" && e && e[r] ? e[r] : r) == \"string\" ? { type: r } : typeof r == \"function\" ? { type: r.name, exec: r } : r;\n}\nfunction dr(r) {\n return function(e) {\n return r === e;\n };\n}\nfunction va(r) {\n return typeof r == \"string\" ? { type: r } : r;\n}\nfunction mi(r, e) {\n return { value: r, context: e, actions: [], changed: !1, matches: dr(r) };\n}\nfunction gi(r, e, t) {\n var s = e, n = !1;\n return [r.filter(function(i) {\n if (i.type === \"xstate.assign\") {\n n = !0;\n var a = Object.assign({}, s);\n return typeof i.assignment == \"function\" ? a = i.assignment(s, t) : Object.keys(i.assignment).forEach(function(o) {\n a[o] = typeof i.assignment[o] == \"function\" ? i.assignment[o](s, t) : i.assignment[o];\n }), s = a, !1;\n }\n return !0;\n }), s, n];\n}\nfunction Ca(r, e) {\n e === void 0 && (e = {});\n var t = di(gi($r(r.states[r.initial].entry).map(function(a) {\n return fi(a, e.actions);\n }), r.context, Sa), 2), s = t[0], n = t[1], i = { config: r, _options: e, initialState: { value: r.initial, actions: s, context: n, matches: dr(r.initial) }, transition: function(a, o) {\n var l, c, u = typeof a == \"string\" ? { value: a, context: r.context } : a, p = u.value, d = u.context, f = va(o), y = r.states[p];\n if (y.on) {\n var h = $r(y.on[f.type]);\n try {\n for (var b = function(G) {\n var Ce = typeof Symbol == \"function\" && Symbol.iterator, Oe = Ce && G[Ce], Xe = 0;\n if (Oe) return Oe.call(G);\n if (G && typeof G.length == \"number\") return { next: function() {\n return G && Xe >= G.length && (G = void 0), { value: G && G[Xe++], done: !G };\n } };\n throw new TypeError(Ce ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(h), g = b.next(); !g.done; g = b.next()) {\n var S = g.value;\n if (S === void 0) return mi(p, d);\n var m = typeof S == \"string\" ? { target: S } : S, v = m.target, E = m.actions, T = E === void 0 ? [] : E, O = m.cond, $ = O === void 0 ? function() {\n return !0;\n } : O, Y = v === void 0, Q = v ?? p, K = r.states[Q];\n if ($(d, f)) {\n var k = di(gi((Y ? $r(T) : [].concat(y.exit, T, K.entry).filter(function(G) {\n return G;\n })).map(function(G) {\n return fi(G, i._options.actions);\n }), d, f), 3), ee = k[0], X = k[1], ae = k[2], q = v ?? p;\n return { value: q, context: X, actions: ee, changed: v !== p || ee.length > 0 || ae, matches: dr(q) };\n }\n }\n } catch (G) {\n l = { error: G };\n } finally {\n try {\n g && !g.done && (c = b.return) && c.call(b);\n } finally {\n if (l) throw l.error;\n }\n }\n }\n return mi(p, d);\n } };\n return i;\n}\nvar yi = function(r, e) {\n return r.actions.forEach(function(t) {\n var s = t.exec;\n return s && s(r.context, e);\n });\n};\nfunction Ma(r) {\n var e = r.initialState, t = $e.NotStarted, s = /* @__PURE__ */ new Set(), n = { _machine: r, send: function(i) {\n t === $e.Running && (e = r.transition(e, i), yi(e, va(i)), s.forEach(function(a) {\n return a(e);\n }));\n }, subscribe: function(i) {\n return s.add(i), i(e), { unsubscribe: function() {\n return s.delete(i);\n } };\n }, start: function(i) {\n if (i) {\n var a = typeof i == \"object\" ? i : { context: r.config.context, value: i };\n e = { value: a.value, actions: [], context: a.context, matches: dr(a.value) };\n }\n return t = $e.Running, yi(e, Sa), n;\n }, stop: function() {\n return t = $e.Stopped, s.clear(), n;\n }, get state() {\n return e;\n }, get status() {\n return t;\n } };\n return n;\n}\nclass id {\n constructor(e = [], t) {\n w(this, \"timeOffset\", 0);\n w(this, \"speed\");\n w(this, \"actions\");\n w(this, \"raf\", null);\n w(this, \"lastTimestamp\");\n this.actions = e, this.speed = t.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n addAction(e) {\n const t = this.raf === !0;\n if (!this.actions.length || this.actions[this.actions.length - 1].delay <= e.delay)\n this.actions.push(e);\n else {\n const s = this.findActionIndex(e);\n this.actions.splice(s, 0, e);\n }\n t && (this.raf = requestAnimationFrame(this.rafCheck.bind(this)));\n }\n start() {\n this.timeOffset = 0, this.lastTimestamp = performance.now(), this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n rafCheck() {\n const e = performance.now();\n for (this.timeOffset += (e - this.lastTimestamp) * this.speed, this.lastTimestamp = e; this.actions.length; ) {\n const t = this.actions[0];\n if (this.timeOffset >= t.delay)\n this.actions.shift(), t.doAction();\n else\n break;\n }\n this.actions.length > 0 ? this.raf = requestAnimationFrame(this.rafCheck.bind(this)) : this.raf = !0;\n }\n clear() {\n this.raf && (this.raf !== !0 && cancelAnimationFrame(this.raf), this.raf = null), this.actions.length = 0;\n }\n setSpeed(e) {\n this.speed = e;\n }\n isActive() {\n return this.raf !== null;\n }\n findActionIndex(e) {\n let t = 0, s = this.actions.length - 1;\n for (; t <= s; ) {\n const n = Math.floor((t + s) / 2);\n if (this.actions[n].delay < e.delay)\n t = n + 1;\n else if (this.actions[n].delay > e.delay)\n s = n - 1;\n else\n return n + 1;\n }\n return t;\n }\n}\nfunction wi(r, e) {\n if (r.type === x.IncrementalSnapshot && r.data.source === C.MouseMove && r.data.positions && r.data.positions.length) {\n const t = r.data.positions[0].timeOffset, s = r.timestamp + t;\n return r.delay = s - e, s - e;\n }\n return r.delay = r.timestamp - e, r.delay;\n}\nfunction od(r, e) {\n for (let t = r.length - 1; t >= 0; t--) {\n const s = r[t];\n if (s.type === x.Meta && s.timestamp <= e)\n return r.slice(t);\n }\n return r;\n}\nfunction ad(r, { getCastFn: e, applyEventsSynchronously: t, emitter: s }) {\n const n = Ca(\n {\n id: \"player\",\n context: r,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n },\n {\n actions: {\n castEvent: Le({\n lastPlayedEvent: (i, a) => a.type === \"CAST_EVENT\" ? a.payload.event : i.lastPlayedEvent\n }),\n recordTimeOffset: Le((i, a) => {\n let o = i.timeOffset;\n return \"payload\" in a && \"timeOffset\" in a.payload && (o = a.payload.timeOffset), {\n ...i,\n timeOffset: o,\n baselineTime: i.events[0].timestamp + o\n };\n }),\n play(i) {\n var f;\n const { timer: a, events: o, baselineTime: l, lastPlayedEvent: c } = i;\n a.clear();\n for (const y of o)\n wi(y, l);\n const u = od(o, l);\n let p = c == null ? void 0 : c.timestamp;\n (c == null ? void 0 : c.type) === x.IncrementalSnapshot && c.data.source === C.MouseMove && (p = c.timestamp + ((f = c.data.positions[0]) == null ? void 0 : f.timeOffset)), l < (p || 0) && s.emit(A.PlayBack);\n const d = new Array();\n for (const y of u)\n if (!(p && p < l && (y.timestamp <= p || y === c)))\n if (y.timestamp < l)\n d.push(y);\n else {\n const h = e(y, !1);\n a.addAction({\n doAction: () => {\n h();\n },\n delay: y.delay\n });\n }\n t(d), s.emit(A.Flush), a.start();\n },\n pause(i) {\n i.timer.clear();\n },\n resetLastPlayedEvent: Le((i) => ({\n ...i,\n lastPlayedEvent: null\n })),\n startLive: Le({\n baselineTime: (i, a) => (i.timer.start(), a.type === \"TO_LIVE\" && a.payload.baselineTime ? a.payload.baselineTime : Date.now())\n }),\n addEvent: Le((i, a) => {\n const { baselineTime: o, timer: l, events: c } = i;\n if (a.type === \"ADD_EVENT\") {\n const { event: u } = a.payload;\n wi(u, o);\n let p = c.length - 1;\n if (!c[p] || c[p].timestamp <= u.timestamp)\n c.push(u);\n else {\n let y = -1, h = 0;\n for (; h <= p; ) {\n const b = Math.floor((h + p) / 2);\n c[b].timestamp <= u.timestamp ? h = b + 1 : p = b - 1;\n }\n y === -1 && (y = h), c.splice(y, 0, u);\n }\n const d = u.timestamp < o, f = e(u, d);\n d ? f() : l.isActive() && l.addAction({\n doAction: () => {\n f();\n },\n delay: u.delay\n });\n }\n return { ...i, events: c };\n })\n }\n }\n );\n return Ma(n);\n}\nfunction ld(r) {\n const e = Ca(\n {\n id: \"speed\",\n context: r,\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n },\n {\n actions: {\n setSpeed: (t, s) => {\n \"payload\" in s && t.timer.setSpeed(s.payload.speed);\n },\n recordSpeed: Le({\n normalSpeed: (t) => t.timer.speed\n }),\n restoreSpeed: (t) => {\n t.timer.setSpeed(t.normalSpeed);\n }\n }\n }\n );\n return Ma(e);\n}\nclass cd {\n constructor(e) {\n w(this, \"mediaMap\", /* @__PURE__ */ new Map());\n w(this, \"warn\");\n w(this, \"service\");\n w(this, \"speedService\");\n w(this, \"emitter\");\n w(this, \"getCurrentTime\");\n w(this, \"metadataCallbackMap\", /* @__PURE__ */ new Map());\n this.warn = e.warn, this.service = e.service, this.speedService = e.speedService, this.emitter = e.emitter, this.getCurrentTime = e.getCurrentTime, this.emitter.on(A.Start, this.start.bind(this)), this.emitter.on(A.SkipStart, this.start.bind(this)), this.emitter.on(A.Pause, this.pause.bind(this)), this.emitter.on(A.Finish, this.pause.bind(this)), this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n syncAllMediaElements(e = { pause: !1 }) {\n this.mediaMap.forEach((t, s) => {\n this.syncTargetWithState(s), e.pause && s.pause();\n });\n }\n start() {\n this.syncAllMediaElements();\n }\n pause() {\n this.syncAllMediaElements({ pause: !0 });\n }\n seekTo({\n time: e,\n target: t,\n mediaState: s\n }) {\n if (s.isPlaying) {\n const i = (e - s.lastInteractionTimeOffset) / 1e3 * s.playbackRate, a = \"duration\" in t && t.duration;\n if (Number.isNaN(a)) {\n this.waitForMetadata(t);\n return;\n }\n let o = s.currentTimeAtLastInteraction + i;\n t.loop && // RRMediaElement doesn't have a duration property\n a !== !1 && (o = o % a), t.currentTime = o;\n } else\n t.pause(), t.currentTime = s.currentTimeAtLastInteraction;\n }\n waitForMetadata(e) {\n if (this.metadataCallbackMap.has(e) || !(\"addEventListener\" in e)) return;\n const t = () => {\n this.metadataCallbackMap.delete(e);\n const s = this.mediaMap.get(e);\n s && this.seekTo({\n time: this.getCurrentTime(),\n target: e,\n mediaState: s\n });\n };\n this.metadataCallbackMap.set(e, t), e.addEventListener(\"loadedmetadata\", t, {\n once: !0\n });\n }\n getMediaStateFromMutation({\n target: e,\n timeOffset: t,\n mutation: s\n }) {\n const n = this.mediaMap.get(e), { type: i, playbackRate: a, currentTime: o, muted: l, volume: c, loop: u } = s;\n return {\n isPlaying: i === ye.Play || i !== ye.Pause && ((n == null ? void 0 : n.isPlaying) || e.getAttribute(\"autoplay\") !== null),\n currentTimeAtLastInteraction: o ?? (n == null ? void 0 : n.currentTimeAtLastInteraction) ?? 0,\n lastInteractionTimeOffset: t,\n playbackRate: a ?? (n == null ? void 0 : n.playbackRate) ?? 1,\n volume: c ?? (n == null ? void 0 : n.volume) ?? 1,\n muted: l ?? (n == null ? void 0 : n.muted) ?? e.getAttribute(\"muted\") === null,\n loop: u ?? (n == null ? void 0 : n.loop) ?? e.getAttribute(\"loop\") === null\n };\n }\n syncTargetWithState(e) {\n const t = this.mediaMap.get(e);\n if (!t) return;\n const { muted: s, loop: n, volume: i, isPlaying: a } = t, o = this.service.state.matches(\"paused\"), l = t.playbackRate * this.speedService.state.context.timer.speed;\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target: e,\n mediaState: t\n }), e.volume !== i && (e.volume = i), e.muted = s, e.loop = n, e.playbackRate !== l && (e.playbackRate = l), a && !o ? e.play() : e.pause();\n } catch (c) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${c.message || c}`\n );\n }\n }\n addMediaElements(e, t, s) {\n if (![\"AUDIO\", \"VIDEO\"].includes(e.nodeName)) return;\n const n = e, i = s.getMeta(n);\n if (!i || !(\"attributes\" in i)) return;\n const a = this.service.state.matches(\"paused\"), o = i.attributes;\n let l = !1;\n o.rr_mediaState ? l = o.rr_mediaState === \"played\" : l = n.getAttribute(\"autoplay\") !== null, l && a && n.pause();\n let c = 1;\n typeof o.rr_mediaPlaybackRate == \"number\" && (c = o.rr_mediaPlaybackRate);\n let u = !1;\n typeof o.rr_mediaMuted == \"boolean\" ? u = o.rr_mediaMuted : u = n.getAttribute(\"muted\") !== null;\n let p = !1;\n typeof o.rr_mediaLoop == \"boolean\" ? p = o.rr_mediaLoop : p = n.getAttribute(\"loop\") !== null;\n let d = 1;\n typeof o.rr_mediaVolume == \"number\" && (d = o.rr_mediaVolume);\n let f = 0;\n typeof o.rr_mediaCurrentTime == \"number\" && (f = o.rr_mediaCurrentTime), this.mediaMap.set(n, {\n isPlaying: l,\n currentTimeAtLastInteraction: f,\n lastInteractionTimeOffset: t,\n playbackRate: c,\n volume: d,\n muted: u,\n loop: p\n }), this.syncTargetWithState(n);\n }\n mediaMutation({\n target: e,\n timeOffset: t,\n mutation: s\n }) {\n this.mediaMap.set(\n e,\n this.getMediaStateFromMutation({\n target: e,\n timeOffset: t,\n mutation: s\n })\n ), this.syncTargetWithState(e);\n }\n isSupportedMediaElement(e) {\n return [\"AUDIO\", \"VIDEO\"].includes(e.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nfunction ud(r = window, e = document) {\n if (\"scrollBehavior\" in e.documentElement.style && r.__forceSmoothScrollPolyfill__ !== !0)\n return;\n const t = r.HTMLElement || r.Element, s = 468, n = {\n scroll: r.scroll || r.scrollTo,\n scrollBy: r.scrollBy,\n elementScroll: t.prototype.scroll || l,\n scrollIntoView: t.prototype.scrollIntoView\n }, i = r.performance && r.performance.now ? r.performance.now.bind(r.performance) : Date.now;\n function a(g) {\n const S = [\"MSIE \", \"Trident/\", \"Edge/\"];\n return new RegExp(S.join(\"|\")).test(g);\n }\n const o = a(r.navigator.userAgent) ? 1 : 0;\n function l(g, S) {\n this.scrollLeft = g, this.scrollTop = S;\n }\n function c(g) {\n return 0.5 * (1 - Math.cos(Math.PI * g));\n }\n function u(g) {\n if (g === null || typeof g != \"object\" || g.behavior === void 0 || g.behavior === \"auto\" || g.behavior === \"instant\")\n return !0;\n if (typeof g == \"object\" && g.behavior === \"smooth\")\n return !1;\n throw new TypeError(\n \"behavior member of ScrollOptions \" + g.behavior + \" is not a valid value for enumeration ScrollBehavior.\"\n );\n }\n function p(g, S) {\n if (S === \"Y\")\n return g.clientHeight + o < g.scrollHeight;\n if (S === \"X\")\n return g.clientWidth + o < g.scrollWidth;\n }\n function d(g, S) {\n const m = r.getComputedStyle(g, null)[\"overflow\" + S];\n return m === \"auto\" || m === \"scroll\";\n }\n function f(g) {\n const S = p(g, \"Y\") && d(g, \"Y\"), m = p(g, \"X\") && d(g, \"X\");\n return S || m;\n }\n function y(g) {\n for (; g !== e.body && f(g) === !1; )\n g = g.parentNode || g.host;\n return g;\n }\n function h(g) {\n const S = i();\n let m, v, E, T = (S - g.startTime) / s;\n T = T > 1 ? 1 : T, m = c(T), v = g.startX + (g.x - g.startX) * m, E = g.startY + (g.y - g.startY) * m, g.method.call(g.scrollable, v, E), (v !== g.x || E !== g.y) && r.requestAnimationFrame(h.bind(r, g));\n }\n function b(g, S, m) {\n let v, E, T, O;\n const $ = i();\n g === e.body ? (v = r, E = r.scrollX || r.pageXOffset, T = r.scrollY || r.pageYOffset, O = n.scroll) : (v = g, E = g.scrollLeft, T = g.scrollTop, O = l), h({\n scrollable: v,\n method: O,\n startTime: $,\n startX: E,\n startY: T,\n x: S,\n y: m\n });\n }\n r.scroll = r.scrollTo = function() {\n if (arguments[0] !== void 0) {\n if (u(arguments[0]) === !0) {\n n.scroll.call(\n r,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] != \"object\" ? arguments[0] : r.scrollX || r.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : r.scrollY || r.pageYOffset\n );\n return;\n }\n b.call(\n r,\n e.body,\n arguments[0].left !== void 0 ? ~~arguments[0].left : r.scrollX || r.pageXOffset,\n arguments[0].top !== void 0 ? ~~arguments[0].top : r.scrollY || r.pageYOffset\n );\n }\n }, r.scrollBy = function() {\n if (arguments[0] !== void 0) {\n if (u(arguments[0])) {\n n.scrollBy.call(\n r,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] != \"object\" ? arguments[0] : 0,\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0\n );\n return;\n }\n b.call(\n r,\n e.body,\n ~~arguments[0].left + (r.scrollX || r.pageXOffset),\n ~~arguments[0].top + (r.scrollY || r.pageYOffset)\n );\n }\n }, t.prototype.scroll = t.prototype.scrollTo = function() {\n if (arguments[0] === void 0)\n return;\n if (u(arguments[0]) === !0) {\n if (typeof arguments[0] == \"number\" && arguments[1] === void 0)\n throw new SyntaxError(\"Value could not be converted\");\n n.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] != \"object\" ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop\n );\n return;\n }\n const g = arguments[0].left, S = arguments[0].top;\n b.call(\n this,\n this,\n typeof g > \"u\" ? this.scrollLeft : ~~g,\n typeof S > \"u\" ? this.scrollTop : ~~S\n );\n }, t.prototype.scrollBy = function() {\n if (arguments[0] !== void 0) {\n if (u(arguments[0]) === !0) {\n n.elementScroll.call(\n this,\n arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop\n );\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n }\n }, t.prototype.scrollIntoView = function() {\n if (u(arguments[0]) === !0) {\n n.scrollIntoView.call(\n this,\n arguments[0] === void 0 ? !0 : arguments[0]\n );\n return;\n }\n const g = y(this), S = g.getBoundingClientRect(), m = this.getBoundingClientRect();\n g !== e.body ? (b.call(\n this,\n g,\n g.scrollLeft + m.left - S.left,\n g.scrollTop + m.top - S.top\n ), r.getComputedStyle(g).position !== \"fixed\" && r.scrollBy({\n left: S.left,\n top: S.top,\n behavior: \"smooth\"\n })) : r.scrollBy({\n left: m.left,\n top: m.top,\n behavior: \"smooth\"\n });\n };\n}\nconst hd = (r) => [\n `.${r} { background: currentColor }`,\n \"noscript { display: none !important; }\"\n], pd = 5 * 1e3, dd = wa || qp, bi = \"[replayer]\", Ur = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n};\nfunction Si(r) {\n return r.type == x.IncrementalSnapshot && (r.data.source == C.TouchMove || r.data.source == C.MouseInteraction && r.data.type == L.TouchStart);\n}\nclass Dd {\n constructor(e, t) {\n w(this, \"wrapper\");\n w(this, \"iframe\");\n w(this, \"service\");\n w(this, \"speedService\");\n w(this, \"config\");\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n w(this, \"usingVirtualDom\", !1);\n w(this, \"virtualDom\", new Ye());\n w(this, \"mouse\");\n w(this, \"mouseTail\", null);\n w(this, \"tailPositions\", []);\n w(this, \"emitter\", dd());\n w(this, \"nextUserInteractionEvent\");\n w(this, \"legacy_missingNodeRetryMap\", {});\n // The replayer uses the cache to speed up replay and scrubbing.\n w(this, \"cache\", Pn());\n w(this, \"imageMap\", /* @__PURE__ */ new Map());\n w(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n w(this, \"mirror\", Mi());\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n w(this, \"styleMirror\", new js());\n // Used to track video & audio elements, and keep them in sync with general playback.\n w(this, \"mediaManager\");\n w(this, \"firstFullSnapshot\", null);\n w(this, \"newDocumentQueue\", []);\n w(this, \"mousePos\", null);\n w(this, \"touchActive\", null);\n w(this, \"lastMouseDownEvent\", null);\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n w(this, \"lastHoveredRootNode\");\n // In the fast-forward mode, only the last selection data needs to be applied.\n w(this, \"lastSelectionData\", null);\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n w(this, \"constructedStyleMutations\", []);\n // Similar to the reason for constructedStyleMutations.\n w(this, \"adoptedStyleSheets\", []);\n w(this, \"handleResize\", (e) => {\n this.iframe.style.display = \"inherit\";\n for (const t of [this.mouseTail, this.iframe])\n t && (t.setAttribute(\"width\", String(e.width)), t.setAttribute(\"height\", String(e.height)));\n });\n w(this, \"applyEventsSynchronously\", (e) => {\n for (const t of e) {\n switch (t.type) {\n case x.DomContentLoaded:\n case x.Load:\n case x.Custom:\n continue;\n case x.FullSnapshot:\n case x.Meta:\n case x.Plugin:\n case x.IncrementalSnapshot:\n break;\n }\n this.getCastFn(t, !0)();\n }\n });\n w(this, \"getCastFn\", (e, t = !1) => {\n let s;\n switch (e.type) {\n case x.DomContentLoaded:\n case x.Load:\n break;\n case x.Custom:\n s = () => {\n this.emitter.emit(A.CustomEvent, e);\n };\n break;\n case x.Meta:\n s = () => this.emitter.emit(A.Resize, {\n width: e.data.width,\n height: e.data.height\n });\n break;\n case x.FullSnapshot:\n s = () => {\n var i;\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === e) {\n this.firstFullSnapshot = !0;\n return;\n }\n } else\n this.firstFullSnapshot = !0;\n this.mediaManager.reset(), this.styleMirror.reset(), this.rebuildFullSnapshot(e, t), (i = this.iframe.contentWindow) == null || i.scrollTo(e.data.initialOffset);\n };\n break;\n case x.IncrementalSnapshot:\n s = () => {\n if (this.applyIncremental(e, t), !t && (e === this.nextUserInteractionEvent && (this.nextUserInteractionEvent = null, this.backToNormal()), this.config.skipInactive && !this.nextUserInteractionEvent)) {\n for (const i of this.service.state.context.events)\n if (!(i.timestamp <= e.timestamp) && this.isUserInteraction(i)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n i.delay - e.delay > this.config.inactivePeriodThreshold * this.speedService.state.context.timer.speed && (this.nextUserInteractionEvent = i);\n break;\n }\n if (this.nextUserInteractionEvent) {\n const i = (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay - e.delay\n ), a = {\n speed: Math.min(\n Math.round(i / pd),\n this.config.maxSpeed\n )\n };\n this.speedService.send({ type: \"FAST_FORWARD\", payload: a }), this.emitter.emit(A.SkipStart, a);\n }\n }\n };\n break;\n }\n return () => {\n s && s();\n for (const a of this.config.plugins || [])\n a.handler && a.handler(e, t, { replayer: this });\n this.service.send({ type: \"CAST_EVENT\", payload: { event: e } });\n const i = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && e === this.service.state.context.events[i]) {\n const a = () => {\n i < this.service.state.context.events.length - 1 || (this.backToNormal(), this.service.send(\"END\"), this.emitter.emit(A.Finish));\n };\n let o = 50;\n e.type === x.IncrementalSnapshot && e.data.source === C.MouseMove && e.data.positions.length && (o += Math.max(0, -e.data.positions[0].timeOffset)), setTimeout(a, o);\n }\n this.emitter.emit(A.EventCast, e);\n };\n });\n if (!(t != null && t.liveMode) && e.length < 2)\n throw new Error(\"Replayer need at least 2 events.\");\n const s = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: !1,\n inactivePeriodThreshold: 10 * 1e3,\n showWarning: !0,\n showDebug: !1,\n blockClass: \"rr-block\",\n liveMode: !1,\n insertStyleRules: [],\n triggerFocus: !0,\n UNSAFE_replayCanvas: !1,\n pauseAnimation: !0,\n mouseTail: Ur,\n useVirtualDom: !0,\n // Virtual-dom optimization is enabled by default.\n logger: console\n };\n this.config = Object.assign({}, s, t), this.handleResize = this.handleResize.bind(this), this.getCastFn = this.getCastFn.bind(this), this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this), this.emitter.on(A.Resize, this.handleResize), this.setupDom();\n for (const o of this.config.plugins || [])\n o.getMirror && o.getMirror({ nodeMirror: this.mirror });\n this.emitter.on(A.Flush, () => {\n if (this.usingVirtualDom) {\n const o = {\n mirror: this.mirror,\n applyCanvas: (l, c, u) => {\n pi({\n event: l,\n mutation: c,\n target: u,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (l, c) => {\n l.source === C.StyleSheetRule ? this.applyStyleSheetRule(l, c) : l.source === C.StyleDeclaration && this.applyStyleDeclaration(l, c);\n },\n afterAppend: (l, c) => {\n for (const u of this.config.plugins || [])\n u.onBuild && u.onBuild(l, { id: c, replayer: this });\n }\n };\n if (this.iframe.contentDocument)\n try {\n hr(\n this.iframe.contentDocument,\n this.virtualDom,\n o,\n this.virtualDom.mirror\n );\n } catch (l) {\n console.warn(l);\n }\n if (this.virtualDom.destroyTree(), this.usingVirtualDom = !1, Object.keys(this.legacy_missingNodeRetryMap).length)\n for (const l in this.legacy_missingNodeRetryMap)\n try {\n const c = this.legacy_missingNodeRetryMap[l], u = pr(\n c.node,\n this.mirror,\n this.virtualDom.mirror\n );\n hr(\n u,\n c.node,\n o,\n this.virtualDom.mirror\n ), c.node = u;\n } catch (c) {\n this.warn(c);\n }\n this.constructedStyleMutations.forEach((l) => {\n this.applyStyleSheetMutation(l);\n }), this.constructedStyleMutations = [], this.adoptedStyleSheets.forEach((l) => {\n this.applyAdoptedStyleSheet(l);\n }), this.adoptedStyleSheets = [];\n }\n if (this.mousePos && (this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n !0,\n this.mousePos.debugData\n ), this.mousePos = null), this.touchActive === !0 ? this.mouse.classList.add(\"touch-active\") : this.touchActive === !1 && this.mouse.classList.remove(\"touch-active\"), this.touchActive = null, this.lastMouseDownEvent) {\n const [o, l] = this.lastMouseDownEvent;\n o.dispatchEvent(l);\n }\n this.lastMouseDownEvent = null, this.lastSelectionData && (this.applySelection(this.lastSelectionData), this.lastSelectionData = null);\n }), this.emitter.on(A.PlayBack, () => {\n this.firstFullSnapshot = null, this.mirror.reset(), this.styleMirror.reset(), this.mediaManager.reset();\n });\n const n = new id([], {\n speed: this.config.speed\n });\n this.service = ad(\n {\n events: e.map((o) => t && t.unpackFn ? t.unpackFn(o) : o).sort((o, l) => o.timestamp - l.timestamp),\n timer: n,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }\n ), this.service.start(), this.service.subscribe((o) => {\n this.emitter.emit(A.StateChange, {\n player: o\n });\n }), this.speedService = ld({\n normalSpeed: -1,\n timer: n\n }), this.speedService.start(), this.speedService.subscribe((o) => {\n this.emitter.emit(A.StateChange, {\n speed: o\n });\n }), this.mediaManager = new cd({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this)\n });\n const i = this.service.state.context.events.find(\n (o) => o.type === x.Meta\n ), a = this.service.state.context.events.find(\n (o) => o.type === x.FullSnapshot\n );\n if (i) {\n const { width: o, height: l } = i.data;\n setTimeout(() => {\n this.emitter.emit(A.Resize, {\n width: o,\n height: l\n });\n }, 0);\n }\n a && setTimeout(() => {\n var o;\n this.firstFullSnapshot || (this.firstFullSnapshot = a, this.rebuildFullSnapshot(\n a\n ), (o = this.iframe.contentWindow) == null || o.scrollTo(\n a.data.initialOffset\n ));\n }, 1), this.service.state.context.events.find(Si) && this.mouse.classList.add(\"touch-device\");\n }\n get timer() {\n return this.service.state.context.timer;\n }\n on(e, t) {\n return this.emitter.on(e, t), this;\n }\n off(e, t) {\n return this.emitter.off(e, t), this;\n }\n setConfig(e) {\n Object.keys(e).forEach((t) => {\n e[t], this.config[t] = e[t];\n }), this.config.skipInactive || this.backToNormal(), typeof e.speed < \"u\" && this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: e.speed\n }\n }), typeof e.mouseTail < \"u\" && (e.mouseTail === !1 ? this.mouseTail && (this.mouseTail.style.display = \"none\") : (this.mouseTail || (this.mouseTail = document.createElement(\"canvas\"), this.mouseTail.width = Number.parseFloat(this.iframe.width), this.mouseTail.height = Number.parseFloat(this.iframe.height), this.mouseTail.classList.add(\"replayer-mouse-tail\"), this.wrapper.insertBefore(this.mouseTail, this.iframe)), this.mouseTail.style.display = \"inherit\"));\n }\n getMetaData() {\n const e = this.service.state.context.events[0], t = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: e.timestamp,\n endTime: t.timestamp,\n totalTime: t.timestamp - e.timestamp\n };\n }\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n getCurrentTime() {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n getTimeOffset() {\n const { baselineTime: e, events: t } = this.service.state.context;\n return e - t[0].timestamp;\n }\n getMirror() {\n return this.mirror;\n }\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n play(e = 0) {\n var t, s;\n this.service.state.matches(\"paused\") ? this.service.send({ type: \"PLAY\", payload: { timeOffset: e } }) : (this.service.send({ type: \"PAUSE\" }), this.service.send({ type: \"PLAY\", payload: { timeOffset: e } })), (s = (t = this.iframe.contentDocument) == null ? void 0 : t.getElementsByTagName(\"html\")[0]) == null || s.classList.remove(\"@sailfish-rrweb/rrweb-paused\"), this.emitter.emit(A.Start);\n }\n pause(e) {\n var t, s;\n e === void 0 && this.service.state.matches(\"playing\") && this.service.send({ type: \"PAUSE\" }), typeof e == \"number\" && (this.play(e), this.service.send({ type: \"PAUSE\" })), (s = (t = this.iframe.contentDocument) == null ? void 0 : t.getElementsByTagName(\"html\")[0]) == null || s.classList.add(\"@sailfish-rrweb/rrweb-paused\"), this.emitter.emit(A.Pause);\n }\n resume(e = 0) {\n this.warn(\n \"The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.\"\n ), this.play(e), this.emitter.emit(A.Resume);\n }\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n destroy() {\n this.pause(), this.mirror.reset(), this.styleMirror.reset(), this.mediaManager.reset(), this.config.root.removeChild(this.wrapper), this.emitter.emit(A.Destroy);\n }\n startLive(e) {\n this.service.send({ type: \"TO_LIVE\", payload: { baselineTime: e } });\n }\n addEvent(e) {\n const t = this.config.unpackFn ? this.config.unpackFn(e) : e;\n Si(t) && this.mouse.classList.add(\"touch-device\"), Promise.resolve().then(\n () => this.service.send({ type: \"ADD_EVENT\", payload: { event: t } })\n );\n }\n enableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"auto\"), this.iframe.style.pointerEvents = \"auto\";\n }\n disableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"no\"), this.iframe.style.pointerEvents = \"none\";\n }\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n resetCache() {\n this.cache = Pn();\n }\n setupDom() {\n this.wrapper = document.createElement(\"div\"), this.wrapper.classList.add(\"replayer-wrapper\"), this.config.root.appendChild(this.wrapper), this.mouse = document.createElement(\"div\"), this.mouse.classList.add(\"replayer-mouse\"), this.wrapper.appendChild(this.mouse), this.config.mouseTail !== !1 && (this.mouseTail = document.createElement(\"canvas\"), this.mouseTail.classList.add(\"replayer-mouse-tail\"), this.mouseTail.style.display = \"inherit\", this.wrapper.appendChild(this.mouseTail)), this.iframe = document.createElement(\"iframe\");\n const e = [\"allow-same-origin\"];\n this.config.UNSAFE_replayCanvas && e.push(\"allow-scripts\"), this.iframe.style.display = \"none\", this.iframe.setAttribute(\"sandbox\", e.join(\" \")), this.disableInteract(), this.wrapper.appendChild(this.iframe), this.iframe.contentWindow && this.iframe.contentDocument && (ud(\n this.iframe.contentWindow,\n this.iframe.contentDocument\n ), Ws(this.iframe.contentWindow));\n }\n rebuildFullSnapshot(e, t = !1) {\n if (!this.iframe.contentDocument)\n return this.warn(\"Looks like your replayer has been destroyed.\");\n Object.keys(this.legacy_missingNodeRetryMap).length && this.warn(\n \"Found unresolved missing node map\",\n this.legacy_missingNodeRetryMap\n ), this.legacy_missingNodeRetryMap = {};\n const s = [], n = (o, l) => {\n if (this.collectIframeAndAttachDocument(s, o), this.mediaManager.isSupportedMediaElement(o)) {\n const { events: c } = this.service.state.context;\n this.mediaManager.addMediaElements(\n o,\n e.timestamp - c[0].timestamp,\n this.mirror\n );\n }\n for (const c of this.config.plugins || [])\n c.onBuild && c.onBuild(o, {\n id: l,\n replayer: this\n });\n };\n this.usingVirtualDom && (this.virtualDom.destroyTree(), this.usingVirtualDom = !1), this.mirror.reset(), tu(e.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend: n,\n cache: this.cache,\n mirror: this.mirror\n }), n(this.iframe.contentDocument, e.data.node.id);\n for (const { mutationInQueue: o, builtNode: l } of s)\n this.attachDocumentToIframe(o, l), this.newDocumentQueue = this.newDocumentQueue.filter(\n (c) => c !== o\n );\n const { documentElement: i, head: a } = this.iframe.contentDocument;\n this.insertStyleRules(i, a), this.service.state.matches(\"playing\") || this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"@sailfish-rrweb/rrweb-paused\"), this.emitter.emit(A.FullsnapshotRebuilded, e), t || this.waitForStylesheetLoad(), this.config.UNSAFE_replayCanvas && this.preloadAllImages();\n }\n insertStyleRules(e, t) {\n var n;\n const s = hd(\n this.config.blockClass\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation && s.push(\n \"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\"\n ), this.usingVirtualDom) {\n const i = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n i,\n ya(i, this.virtualDom.unserializedId)\n ), e.insertBefore(i, t), i.rules.push({\n source: C.StyleSheetRule,\n adds: s.map((a, o) => ({\n rule: a,\n index: o\n }))\n });\n } else {\n const i = document.createElement(\"style\");\n e.insertBefore(\n i,\n t\n );\n for (let a = 0; a < s.length; a++)\n (n = i.sheet) == null || n.insertRule(s[a], a);\n }\n }\n attachDocumentToIframe(e, t) {\n const s = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror, n = [], i = (a, o) => {\n this.collectIframeAndAttachDocument(n, a);\n const l = s.getMeta(a);\n if ((l == null ? void 0 : l.type) === I.Element && (l == null ? void 0 : l.tagName.toUpperCase()) === \"HTML\") {\n const { documentElement: c, head: u } = t.contentDocument;\n this.insertStyleRules(\n c,\n u\n );\n }\n if (!this.usingVirtualDom)\n for (const c of this.config.plugins || [])\n c.onBuild && c.onBuild(a, {\n id: o,\n replayer: this\n });\n };\n rt(e.node, {\n doc: t.contentDocument,\n mirror: s,\n hackCss: !0,\n skipChild: !1,\n afterAppend: i,\n cache: this.cache\n }), i(t.contentDocument, e.node.id);\n for (const { mutationInQueue: a, builtNode: o } of n)\n this.attachDocumentToIframe(a, o), this.newDocumentQueue = this.newDocumentQueue.filter(\n (l) => l !== a\n );\n }\n collectIframeAndAttachDocument(e, t) {\n if (Ue(t, this.mirror)) {\n const s = this.newDocumentQueue.find(\n (n) => n.parentId === this.mirror.getId(t)\n );\n s && e.push({\n mutationInQueue: s,\n builtNode: t\n });\n }\n }\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n waitForStylesheetLoad() {\n var t;\n const e = (t = this.iframe.contentDocument) == null ? void 0 : t.head;\n if (e) {\n const s = /* @__PURE__ */ new Set();\n let n, i = this.service.state;\n const a = () => {\n i = this.service.state;\n };\n this.emitter.on(A.Start, a), this.emitter.on(A.Pause, a);\n const o = () => {\n this.emitter.off(A.Start, a), this.emitter.off(A.Pause, a);\n };\n e.querySelectorAll('link[rel=\"stylesheet\"]').forEach((l) => {\n l.sheet || (s.add(l), l.addEventListener(\"load\", () => {\n s.delete(l), s.size === 0 && n !== -1 && (i.matches(\"playing\") && this.play(this.getCurrentTime()), this.emitter.emit(A.LoadStylesheetEnd), n && clearTimeout(n), o());\n }));\n }), s.size > 0 && (this.service.send({ type: \"PAUSE\" }), this.emitter.emit(A.LoadStylesheetStart), n = setTimeout(() => {\n i.matches(\"playing\") && this.play(this.getCurrentTime()), n = -1, o();\n }, this.config.loadTimeout));\n }\n }\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n async preloadAllImages() {\n const e = [];\n for (const t of this.service.state.context.events)\n t.type === x.IncrementalSnapshot && t.data.source === C.CanvasMutation && (e.push(\n this.deserializeAndPreloadCanvasEvents(t.data, t)\n ), (\"commands\" in t.data ? t.data.commands : [t.data]).forEach((n) => {\n this.preloadImages(n, t);\n }));\n return Promise.all(e);\n }\n preloadImages(e, t) {\n if (e.property === \"drawImage\" && typeof e.args[0] == \"string\" && !this.imageMap.has(t)) {\n const s = document.createElement(\"canvas\"), n = s.getContext(\"2d\"), i = n == null ? void 0 : n.createImageData(s.width, s.height);\n n == null || n.putImageData(i, 0, 0);\n }\n }\n async deserializeAndPreloadCanvasEvents(e, t) {\n if (!this.canvasEventMap.has(t)) {\n const s = {\n isUnchanged: !0\n };\n if (\"commands\" in e) {\n const n = await Promise.all(\n e.commands.map(async (i) => {\n const a = await Promise.all(\n i.args.map(be(this.imageMap, null, s))\n );\n return { ...i, args: a };\n })\n );\n s.isUnchanged === !1 && this.canvasEventMap.set(t, { ...e, commands: n });\n } else {\n const n = await Promise.all(\n e.args.map(be(this.imageMap, null, s))\n );\n s.isUnchanged === !1 && this.canvasEventMap.set(t, { ...e, args: n });\n }\n }\n }\n applyIncremental(e, t) {\n var n, i, a;\n const { data: s } = e;\n switch (s.source) {\n case C.Mutation: {\n try {\n this.applyMutation(s, t);\n } catch (o) {\n this.warn(`Exception in mutation ${o.message || o}`, s);\n }\n break;\n }\n case C.Drag:\n case C.TouchMove:\n case C.MouseMove:\n if (t) {\n const o = s.positions[s.positions.length - 1];\n this.mousePos = {\n x: o.x,\n y: o.y,\n id: o.id,\n debugData: s\n };\n } else\n s.positions.forEach((o) => {\n const l = {\n doAction: () => {\n this.moveAndHover(o.x, o.y, o.id, t, s);\n },\n delay: o.timeOffset + e.timestamp - this.service.state.context.baselineTime\n };\n this.timer.addAction(l);\n }), this.timer.addAction({\n doAction() {\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e.delay - ((n = s.positions[0]) == null ? void 0 : n.timeOffset)\n });\n break;\n case C.MouseInteraction: {\n if (s.id === -1)\n break;\n const o = new Event(Se(L[s.type])), l = this.mirror.getNode(s.id);\n if (!l)\n return this.debugNodeNotFound(s, s.id);\n this.emitter.emit(A.MouseInteraction, {\n type: s.type,\n target: l\n });\n const { triggerFocus: c } = this.config;\n switch (s.type) {\n case L.Blur:\n \"blur\" in l && l.blur();\n break;\n case L.Focus:\n c && l.focus && l.focus({\n preventScroll: !0\n });\n break;\n case L.Click:\n case L.TouchStart:\n case L.TouchEnd:\n case L.MouseDown:\n case L.MouseUp:\n t ? (s.type === L.TouchStart ? this.touchActive = !0 : s.type === L.TouchEnd && (this.touchActive = !1), s.type === L.MouseDown ? this.lastMouseDownEvent = [l, o] : s.type === L.MouseUp && (this.lastMouseDownEvent = null), this.mousePos = {\n x: s.x || 0,\n y: s.y || 0,\n id: s.id,\n debugData: s\n }) : (s.type === L.TouchStart && (this.tailPositions.length = 0), this.moveAndHover(s.x || 0, s.y || 0, s.id, t, s), s.type === L.Click ? (this.mouse.classList.remove(\"active\"), this.mouse.offsetWidth, this.mouse.classList.add(\"active\")) : s.type === L.TouchStart ? (this.mouse.offsetWidth, this.mouse.classList.add(\"touch-active\")) : s.type === L.TouchEnd ? this.mouse.classList.remove(\"touch-active\") : l.dispatchEvent(o));\n break;\n case L.TouchCancel:\n t ? this.touchActive = !1 : this.mouse.classList.remove(\"touch-active\");\n break;\n default:\n l.dispatchEvent(o);\n }\n break;\n }\n case C.Scroll: {\n if (s.id === -1)\n break;\n if (this.usingVirtualDom) {\n const o = this.virtualDom.mirror.getNode(s.id);\n if (!o)\n return this.debugNodeNotFound(s, s.id);\n o.scrollData = s;\n break;\n }\n this.applyScroll(s, t);\n break;\n }\n case C.ViewportResize:\n this.emitter.emit(A.Resize, {\n width: s.width,\n height: s.height\n });\n break;\n case C.Input: {\n if (s.id === -1)\n break;\n if (this.usingVirtualDom) {\n const o = this.virtualDom.mirror.getNode(s.id);\n if (!o)\n return this.debugNodeNotFound(s, s.id);\n o.inputData = s;\n break;\n }\n this.applyInput(s);\n break;\n }\n case C.MediaInteraction: {\n const o = this.usingVirtualDom ? this.virtualDom.mirror.getNode(s.id) : this.mirror.getNode(s.id);\n if (!o)\n return this.debugNodeNotFound(s, s.id);\n const l = o, { events: c } = this.service.state.context;\n this.mediaManager.mediaMutation({\n target: l,\n timeOffset: e.timestamp - c[0].timestamp,\n mutation: s\n });\n break;\n }\n case C.StyleSheetRule:\n case C.StyleDeclaration: {\n this.usingVirtualDom ? s.styleId ? this.constructedStyleMutations.push(s) : s.id && ((i = this.virtualDom.mirror.getNode(s.id)) == null || i.rules.push(s)) : this.applyStyleSheetMutation(s);\n break;\n }\n case C.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas)\n return;\n if (this.usingVirtualDom) {\n const o = this.virtualDom.mirror.getNode(\n s.id\n );\n if (!o)\n return this.debugNodeNotFound(s, s.id);\n o.canvasMutations.push({\n event: e,\n mutation: s\n });\n } else {\n const o = this.mirror.getNode(s.id);\n if (!o)\n return this.debugNodeNotFound(s, s.id);\n pi({\n event: e,\n mutation: s,\n target: o,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n }\n break;\n }\n case C.Font: {\n try {\n const o = new FontFace(\n s.family,\n s.buffer ? new Uint8Array(JSON.parse(s.fontSource)) : s.fontSource,\n s.descriptors\n );\n (a = this.iframe.contentDocument) == null || a.fonts.add(o);\n } catch (o) {\n this.warn(o);\n }\n break;\n }\n case C.Selection: {\n if (t) {\n this.lastSelectionData = s;\n break;\n }\n this.applySelection(s);\n break;\n }\n case C.AdoptedStyleSheet: {\n this.usingVirtualDom ? this.adoptedStyleSheets.push(s) : this.applyAdoptedStyleSheet(s);\n break;\n }\n }\n }\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n applyMutation(e, t) {\n if (this.config.useVirtualDom && !this.usingVirtualDom && t && (this.usingVirtualDom = !0, Jp(this.iframe.contentDocument, this.mirror, this.virtualDom), Object.keys(this.legacy_missingNodeRetryMap).length))\n for (const c in this.legacy_missingNodeRetryMap)\n try {\n const u = this.legacy_missingNodeRetryMap[c], p = ga(\n u.node,\n this.virtualDom,\n this.mirror\n );\n p && (u.node = p);\n } catch (u) {\n this.warn(u);\n }\n const s = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n e.removes = e.removes.filter((c) => s.getNode(c.id) ? !0 : (this.warnNodeNotFound(e, c.id), !1)), e.removes.forEach((c) => {\n var d;\n const u = s.getNode(c.id);\n if (!u)\n return;\n let p = s.getNode(\n c.parentId\n );\n if (!p)\n return this.warnNodeNotFound(e, c.parentId);\n if (c.isShadow && we(p) && (p = p.shadowRoot), s.removeNodeFromMap(u), p)\n try {\n p.removeChild(u), this.usingVirtualDom && u.nodeName === \"#text\" && p.nodeName === \"STYLE\" && ((d = p.rules) == null ? void 0 : d.length) > 0 && (p.rules = []);\n } catch (f) {\n if (f instanceof DOMException)\n this.warn(\n \"parent could not remove child in mutation\",\n p,\n u,\n e\n );\n else\n throw f;\n }\n });\n const n = {\n ...this.legacy_missingNodeRetryMap\n }, i = [], a = (c) => {\n let u = null;\n return c.nextId && (u = s.getNode(c.nextId)), c.nextId !== null && c.nextId !== void 0 && c.nextId !== -1 && !u;\n }, o = (c) => {\n var g, S;\n if (!this.iframe.contentDocument)\n return this.warn(\"Looks like your replayer has been destroyed.\");\n let u = s.getNode(\n c.parentId\n );\n if (!u)\n return c.node.type === I.Document ? this.newDocumentQueue.push(c) : i.push(c);\n c.node.isShadow && (we(u) || u.attachShadow({ mode: \"open\" }), u = u.shadowRoot);\n let p = null, d = null;\n if (c.previousId && (p = s.getNode(c.previousId)), c.nextId && (d = s.getNode(c.nextId)), a(c))\n return i.push(c);\n if (c.node.rootId && !s.getNode(c.node.rootId))\n return;\n const f = c.node.rootId ? s.getNode(c.node.rootId) : this.usingVirtualDom ? this.virtualDom : this.iframe.contentDocument;\n if (Ue(u, s)) {\n this.attachDocumentToIframe(\n c,\n u\n );\n return;\n }\n const y = (m, v) => {\n if (!this.usingVirtualDom)\n for (const E of this.config.plugins || [])\n E.onBuild && E.onBuild(m, { id: v, replayer: this });\n }, h = rt(c.node, {\n doc: f,\n // can be Document or RRDocument\n mirror: s,\n // can be this.mirror or virtualDom.mirror\n skipChild: !0,\n hackCss: !0,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend: y\n });\n if (c.previousId === -1 || c.nextId === -1) {\n n[c.node.id] = {\n node: h,\n mutation: c\n };\n return;\n }\n const b = s.getMeta(u);\n if (b && b.type === I.Element && c.node.type === I.Text) {\n const m = Array.isArray(u.childNodes) ? u.childNodes : Array.from(u.childNodes);\n if (b.tagName === \"textarea\")\n for (const v of m)\n v.nodeType === u.TEXT_NODE && u.removeChild(v);\n else if (b.tagName === \"style\" && m.length === 1)\n for (const v of m)\n v.nodeType === u.TEXT_NODE && !s.hasNode(v) && (h.textContent = v.textContent, u.removeChild(v));\n } else if ((b == null ? void 0 : b.type) === I.Document) {\n const m = u;\n c.node.type === I.DocumentType && ((g = m.childNodes[0]) == null ? void 0 : g.nodeType) === Node.DOCUMENT_TYPE_NODE && m.removeChild(m.childNodes[0]), h.nodeName === \"HTML\" && m.documentElement && m.removeChild(\n m.documentElement\n );\n }\n if (p && p.nextSibling && p.nextSibling.parentNode ? u.insertBefore(\n h,\n p.nextSibling\n ) : d && d.parentNode ? u.contains(d) ? u.insertBefore(h, d) : u.insertBefore(h, null) : u.appendChild(h), y(h, c.node.id), this.usingVirtualDom && h.nodeName === \"#text\" && u.nodeName === \"STYLE\" && ((S = u.rules) == null ? void 0 : S.length) > 0 && (u.rules = []), Ue(h, this.mirror)) {\n const m = this.mirror.getId(h), v = this.newDocumentQueue.find(\n (E) => E.parentId === m\n );\n v && (this.attachDocumentToIframe(\n v,\n h\n ), this.newDocumentQueue = this.newDocumentQueue.filter(\n (E) => E !== v\n ));\n }\n (c.previousId || c.nextId) && this.legacy_resolveMissingNode(\n n,\n u,\n h,\n c\n );\n };\n e.adds.forEach((c) => {\n o(c);\n });\n const l = Date.now();\n for (; i.length; ) {\n const c = fo(i);\n if (i.length = 0, Date.now() - l > 500) {\n this.warn(\n \"Timeout in the loop, please check the resolve tree data:\",\n c\n );\n break;\n }\n for (const u of c)\n s.getNode(u.value.parentId) ? Bs(u, (d) => {\n o(d);\n }) : this.debug(\n \"Drop resolve tree since there is no parent for the root node.\",\n u\n );\n }\n Object.keys(n).length && Object.assign(this.legacy_missingNodeRetryMap, n), mo(e.texts).forEach((c) => {\n var p;\n const u = s.getNode(c.id);\n if (!u)\n return e.removes.find((d) => d.id === c.id) ? void 0 : this.warnNodeNotFound(e, c.id);\n if (u.textContent = c.value, this.usingVirtualDom) {\n const d = u.parentNode;\n ((p = d == null ? void 0 : d.rules) == null ? void 0 : p.length) > 0 && (d.rules = []);\n }\n }), e.attributes.forEach((c) => {\n var p;\n const u = s.getNode(c.id);\n if (!u)\n return e.removes.find((d) => d.id === c.id) ? void 0 : this.warnNodeNotFound(e, c.id);\n for (const d in c.attributes)\n if (typeof d == \"string\") {\n const f = c.attributes[d];\n if (f === null)\n u.removeAttribute(d);\n else if (typeof f == \"string\")\n try {\n if (d === \"_cssText\" && (u.nodeName === \"LINK\" || u.nodeName === \"STYLE\"))\n try {\n const y = s.getMeta(\n u\n );\n Object.assign(\n y.attributes,\n c.attributes\n );\n const h = rt(y, {\n doc: u.ownerDocument,\n // can be Document or RRDocument\n mirror: s,\n skipChild: !0,\n hackCss: !0,\n cache: this.cache\n }), b = u.nextSibling, g = u.parentNode;\n if (h && g) {\n g.removeChild(u), g.insertBefore(\n h,\n b\n ), s.replace(c.id, h);\n break;\n }\n } catch {\n }\n if (d === \"value\" && u.nodeName === \"TEXTAREA\") {\n const y = u;\n y.childNodes.forEach(\n (b) => y.removeChild(b)\n );\n const h = (p = u.ownerDocument) == null ? void 0 : p.createTextNode(f);\n h && y.appendChild(h);\n } else\n u.setAttribute(\n d,\n f\n );\n } catch (y) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n y\n );\n }\n else if (d === \"style\") {\n const y = f, h = u;\n for (const b in y)\n if (y[b] === !1)\n h.style.removeProperty(b);\n else if (y[b] instanceof Array) {\n const g = y[b];\n h.style.setProperty(b, g[0], g[1]);\n } else {\n const g = y[b];\n h.style.setProperty(b, g);\n }\n }\n }\n });\n }\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n applyScroll(e, t) {\n var i, a;\n const s = this.mirror.getNode(e.id);\n if (!s)\n return this.debugNodeNotFound(e, e.id);\n const n = this.mirror.getMeta(s);\n if (s === this.iframe.contentDocument)\n (i = this.iframe.contentWindow) == null || i.scrollTo({\n top: e.y,\n left: e.x,\n behavior: t ? \"auto\" : \"smooth\"\n });\n else if ((n == null ? void 0 : n.type) === I.Document)\n (a = s.defaultView) == null || a.scrollTo({\n top: e.y,\n left: e.x,\n behavior: t ? \"auto\" : \"smooth\"\n });\n else\n try {\n s.scrollTo({\n top: e.y,\n left: e.x,\n behavior: t ? \"auto\" : \"smooth\"\n });\n } catch {\n }\n }\n applyInput(e) {\n const t = this.mirror.getNode(e.id);\n if (!t)\n return this.debugNodeNotFound(e, e.id);\n try {\n t.checked = e.isChecked, t.value = e.text;\n } catch {\n }\n }\n applySelection(e) {\n try {\n const t = /* @__PURE__ */ new Set(), s = e.ranges.map(({ start: n, startOffset: i, end: a, endOffset: o }) => {\n const l = this.mirror.getNode(n), c = this.mirror.getNode(a);\n if (!l || !c) return;\n const u = new Range();\n u.setStart(l, i), u.setEnd(c, o);\n const p = l.ownerDocument, d = p == null ? void 0 : p.getSelection();\n return d && t.add(d), {\n range: u,\n selection: d\n };\n });\n t.forEach((n) => n.removeAllRanges()), s.forEach((n) => {\n var i;\n return n && ((i = n.selection) == null ? void 0 : i.addRange(n.range));\n });\n } catch {\n }\n }\n applyStyleSheetMutation(e) {\n var s;\n let t = null;\n e.styleId ? t = this.styleMirror.getStyle(e.styleId) : e.id && (t = ((s = this.mirror.getNode(e.id)) == null ? void 0 : s.sheet) || null), t && (e.source === C.StyleSheetRule ? this.applyStyleSheetRule(e, t) : e.source === C.StyleDeclaration && this.applyStyleDeclaration(e, t));\n }\n applyStyleSheetRule(e, t) {\n var s, n, i, a;\n if ((s = e.adds) == null || s.forEach(({ rule: o, index: l }) => {\n try {\n if (Array.isArray(l)) {\n const { positions: c, index: u } = rs(l);\n Fe(t.cssRules, c).insertRule(o, u);\n } else {\n const c = l === void 0 ? void 0 : Math.min(l, t.cssRules.length);\n t == null || t.insertRule(o, c);\n }\n } catch {\n }\n }), (n = e.removes) == null || n.forEach(({ index: o }) => {\n try {\n if (Array.isArray(o)) {\n const { positions: l, index: c } = rs(o);\n Fe(t.cssRules, l).deleteRule(c || 0);\n } else\n t == null || t.deleteRule(o);\n } catch {\n }\n }), e.replace)\n try {\n (i = t.replace) == null || i.call(t, e.replace);\n } catch {\n }\n if (e.replaceSync)\n try {\n (a = t.replaceSync) == null || a.call(t, e.replaceSync);\n } catch {\n }\n }\n applyStyleDeclaration(e, t) {\n e.set && Fe(\n t.rules,\n e.index\n ).style.setProperty(\n e.set.property,\n e.set.value,\n e.set.priority\n ), e.remove && Fe(\n t.rules,\n e.index\n ).style.removeProperty(e.remove.property);\n }\n applyAdoptedStyleSheet(e) {\n var a;\n const t = this.mirror.getNode(e.id);\n if (!t) return;\n (a = e.styles) == null || a.forEach((o) => {\n var u;\n let l = null, c = null;\n if (we(t) ? c = ((u = t.ownerDocument) == null ? void 0 : u.defaultView) || null : t.nodeName === \"#document\" && (c = t.defaultView), !!c)\n try {\n l = new c.CSSStyleSheet(), this.styleMirror.add(l, o.styleId), this.applyStyleSheetRule(\n {\n source: C.StyleSheetRule,\n adds: o.rules\n },\n l\n );\n } catch {\n }\n });\n const s = 10;\n let n = 0;\n const i = (o, l) => {\n const c = l.map((u) => this.styleMirror.getStyle(u)).filter((u) => u !== null);\n we(o) ? o.shadowRoot.adoptedStyleSheets = c : o.nodeName === \"#document\" && (o.adoptedStyleSheets = c), c.length !== l.length && n < s && (setTimeout(\n () => i(o, l),\n 0 + 100 * n\n ), n++);\n };\n i(t, e.styleIds);\n }\n legacy_resolveMissingNode(e, t, s, n) {\n const { previousId: i, nextId: a } = n, o = i && e[i], l = a && e[a];\n if (o) {\n const { node: c, mutation: u } = o;\n t.insertBefore(c, s), delete e[u.node.id], delete this.legacy_missingNodeRetryMap[u.node.id], (u.previousId || u.nextId) && this.legacy_resolveMissingNode(e, t, c, u);\n }\n if (l) {\n const { node: c, mutation: u } = l;\n t.insertBefore(\n c,\n s.nextSibling\n ), delete e[u.node.id], delete this.legacy_missingNodeRetryMap[u.node.id], (u.previousId || u.nextId) && this.legacy_resolveMissingNode(e, t, c, u);\n }\n }\n moveAndHover(e, t, s, n, i) {\n const a = this.mirror.getNode(s);\n if (!a)\n return this.debugNodeNotFound(i, s);\n const o = zs(a, this.iframe), l = e * o.absoluteScale + o.x, c = t * o.absoluteScale + o.y;\n this.mouse.style.left = `${l}px`, this.mouse.style.top = `${c}px`, n || this.drawMouseTail({ x: l, y: c }), this.hoverElements(a);\n }\n drawMouseTail(e) {\n if (!this.mouseTail)\n return;\n const { lineCap: t, lineWidth: s, strokeStyle: n, duration: i } = this.config.mouseTail === !0 ? Ur : Object.assign({}, Ur, this.config.mouseTail), a = () => {\n if (!this.mouseTail)\n return;\n const o = this.mouseTail.getContext(\"2d\");\n !o || !this.tailPositions.length || (o.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height), o.beginPath(), o.lineWidth = s, o.lineCap = t, o.strokeStyle = n, o.moveTo(this.tailPositions[0].x, this.tailPositions[0].y), this.tailPositions.forEach((l) => o.lineTo(l.x, l.y)), o.stroke());\n };\n this.tailPositions.push(e), a(), setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((o) => o !== e), a();\n }, i / this.speedService.state.context.timer.speed);\n }\n hoverElements(e) {\n var s;\n (s = this.lastHoveredRootNode || this.iframe.contentDocument) == null || s.querySelectorAll(\".\\\\:hover\").forEach((n) => {\n n.classList.remove(\":hover\");\n }), this.lastHoveredRootNode = e.getRootNode();\n let t = e;\n for (; t; )\n t.classList && t.classList.add(\":hover\"), t = t.parentElement;\n }\n isUserInteraction(e) {\n return e.type !== x.IncrementalSnapshot ? !1 : e.data.source > C.Mutation && e.data.source <= C.Input;\n }\n backToNormal() {\n this.nextUserInteractionEvent = null, !this.speedService.state.matches(\"normal\") && (this.speedService.send({ type: \"BACK_TO_NORMAL\" }), this.emitter.emit(A.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n }));\n }\n warnNodeNotFound(e, t) {\n this.warn(`Node with id '${t}' not found. `, e);\n }\n warnCanvasMutationFailed(e, t) {\n this.warn(\"Has error on canvas update\", t, \"canvas mutation:\", e);\n }\n debugNodeNotFound(e, t) {\n this.debug(`Node with id '${t}' not found. `, e);\n }\n warn(...e) {\n this.config.showWarning && this.config.logger.warn(bi, ...e);\n }\n debug(...e) {\n this.config.showDebug && this.config.logger.log(bi, ...e);\n }\n}\nconst { addCustomEvent: Ad } = Te, { freezePage: Ld } = Te, { takeFullSnapshot: Pd } = Te;\nexport {\n x as EventType,\n C as IncrementalSource,\n L as MouseInteractions,\n Dd as Replayer,\n A as ReplayerEvents,\n js as StyleSheetMirror,\n ts as _mirror,\n Ad as addCustomEvent,\n pi as canvasMutation,\n $s as closestElementOfNode,\n Ld as freezePage,\n zs as getBaseDimension,\n Fe as getNestedRule,\n rs as getPositionsAndIndex,\n go as getRootShadowHost,\n Gs as getShadowHost,\n Fs as getWindowHeight,\n Ps as getWindowScroll,\n _s as getWindowWidth,\n we as hasShadowRoot,\n gt as hookSetter,\n Hs as inDom,\n Us as isAncestorRemoved,\n J as isBlocked,\n Gt as isIgnored,\n po as isSerialized,\n Ue as isSerializedIframe,\n Vs as isSerializedStylesheet,\n Bs as iterateResolveTree,\n nr as legacy_isTouchEvent,\n ts as mirror,\n ct as nowTimestamp,\n Z as on,\n ke as patch,\n Ws as polyfill,\n fo as queueToResolveTrees,\n Te as record,\n yo as shadowHostInDom,\n Pd as takeFullSnapshot,\n ze as throttle,\n mo as uniqueTextMutations,\n Rd as utils\n};\n//# sourceMappingURL=rrweb.js.map\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Ea", "Ia", "r", "e", "t", "w", "ka", "Ta", "hn", "I", "vs", "Cs", "_a", "n", "Mi", "Se", "Pa", "sl", "nl", "s", "Es", "B", "Ni", "il", "ol", "al", "ie", "mn", "gn", "Wr", "Oi", "i", "o", "u", "d", "f", "Is", "ft", "yn", "ll", "Br", "Ri", "cl", "Vr", "mr", "Ct", "ul", "hl", "pl", "dl", "zr", "jr", "a", "l", "gr", "fl", "Gr", "__spreadProps", "__spreadValues", "yr", "ml", "gl", "yl", "wl", "wn", "bn", "bl", "Sl", "Nr", "vl", "Cl", "Hr", "Di", "Ml", "xl", "Sn", "Mt", "Yr", "Xr", "El", "Or", "vn", "Il", "Rr", "kl", "Cn", "er", "c", "p", "wr", "Ai", "zt", "jt", "Li", "Pi", "Fi", "Mn", "Tl", "Nl", "Ol", "Rl", "_i", "Dl", "Zr", "br", "$i", "Ui", "Wi", "Bi", "Al", "Vi", "ks", "Ts", "zi", "ji", "Gi", "de", "Hi", "Ie", "Ll", "Yi", "Xi", "it", "Ns", "Jr", "Ji", "Pl", "Qr", "Os", "Dr", "En", "xt", "In", "Et", "Ze", "It", "kt", "Tt", "Fl", "_l", "$l", "Ul", "Wl", "Bl", "Vl", "zl", "jl", "Gl", "Nt", "Ot", "Hl", "kn", "Yl", "r", "e", "t", "s", "n", "i", "o", "u", "d", "f", "y", "h", "b", "g", "S", "m", "O", "v", "E", "$", "Y", "T", "Qi", "Ie", "tr", "Rs", "Ki", "qi", "eo", "We", "mt", "ot", "to", "ro", "Xl", "rr", "Ds", "Zl", "yr", "Jl", "Ql", "br", "Kl", "ql", "Tn", "Nn", "ec", "tc", "a", "l", "c", "p", "rc", "sc", "nc", "ic", "wr", "sr", "As", "ce", "oc", "ft", "ac", "_i", "lc", "mr", "cc", "uc", "Ns", "On", "Os", "pc", "As", "dc", "mt", "fc", "mc", "gc", "Be", "Je", "r", "so", "e", "t", "Rn", "Kr", "ce", "qr", "Ve", "no", "s", "n", "i", "oc", "cc", "__spreadProps", "__spreadValues", "lc", "ac", "o", "io", "uc", "yc", "_i", "wc", "mr", "Sc", "As", "vc", "Os", "es", "n", "i", "wc", "a", "o", "yc", "l", "c", "Cc", "Mc", "xc", "io", "Ec", "Ns", "Ic", "mt", "at", "kc", "Tc", "yr", "Nc", "Di", "Oc", "br", "Rc", "Rs", "Dc", "wr", "Ac", "Lc", "Ds", "lt", "r", "e", "t", "s", "__spreadProps", "__spreadValues", "Pc", "Fc", "Is", "oo", "_c", "$c", "Ie", "Ls", "Uc", "mr", "Wc", "ao", "Bc", "Ji", "lo", "co", "Vc", "zc", "jc", "Gc", "to", "uo", "ho", "Hc", "gr", "F", "Yc", "z", "sl", "Xc", "Dn", "Zc", "Jc", "u", "An", "Qc", "Ln", "Pn", "Kc", "I", "d", "rt", "Pa", "vs", "f", "qc", "eu", "tu", "Cs", "x", "C", "L", "fe", "ye", "A", "De", "ts", "Ws", "fo", "Bs", "Ue", "zs", "we", "Fe", "rs", "mo", "js", "w", "_a", "Co", "vu", "_e", "qe", "At", "xu", "vi", "Mi", "Au", "Lu", "M", "Pu", "Fu", "Hn", "N", "_u", "$u", "Uu", "Wu", "Ys", "V", "Io", "Bu", "Vu", "zu", "oe", "Yn", "Xn", "ns", "ko", "Xs", "wt", "Zn", "ju", "is", "To", "Gu", "os", "Sr", "Lt", "Hu", "Yu", "Xu", "Zu", "as", "ls", "vr", "Ju", "cs", "Cr", "Qu", "Ku", "qu", "eh", "Jn", "Qn", "th", "rh", "Lr", "sh", "nh", "us", "No", "ih", "oh", "Kn", "Pt", "hs", "ps", "ah", "Pr", "qn", "lh", "Fr", "ch", "ei", "ar", "Mr", "Oo", "Xt", "Zt", "Ro", "Do", "Ao", "ti", "uh", "hh", "ph", "dh", "Lo", "fh", "ds", "xr", "Po", "Fo", "_o", "$o", "mh", "Uo", "Zs", "Js", "Wo", "Bo", "Vo", "me", "zo", "Ne", "gh", "jo", "Go", "ut", "Qs", "fs", "r", "e", "t", "Yo", "yh", "ms", "Ks", "_r", "si", "Ft", "ni", "_t", "Qe", "$t", "Ut", "Wt", "wh", "bh", "Sh", "vh", "Ch", "Mh", "xh", "Eh", "Ih", "kh", "Bt", "Vt", "Th", "ii", "Nh", "s", "n", "i", "o", "u", "d", "f", "y", "h", "b", "g", "S", "m", "O", "v", "E", "$", "Y", "T", "Xo", "Ne", "lr", "qs", "Zo", "Jo", "Qo", "je", "bt", "ht", "Ko", "qo", "Oh", "cr", "en", "Rh", "Cr", "Dh", "Ah", "xr", "Lh", "Ph", "oi", "ai", "Fh", "_h", "$h", "Uh", "Wh", "Bh", "Mr", "ur", "tn", "ue", "Vh", "wt", "zh", "Lo", "jh", "Sr", "Gh", "Hh", "Qs", "li", "Ks", "Xh", "tn", "Zh", "bt", "Jh", "Qh", "Kh", "Ge", "Ke", "r", "ea", "e", "t", "ci", "gs", "ue", "ys", "He", "ta", "s", "n", "i", "Vh", "Gh", "__spreadProps", "__spreadValues", "jh", "zh", "o", "ra", "Hh", "qh", "Lo", "ep", "Sr", "rp", "tn", "sp", "Ks", "ws", "r", "e", "t", "s", "n", "ep", "i", "qh", "o", "np", "ip", "op", "ra", "ap", "Qs", "lp", "bt", "pt", "cp", "up", "Cr", "hp", "No", "pp", "xr", "dp", "qs", "fp", "Mr", "mp", "gp", "en", "dt", "__spreadProps", "__spreadValues", "yp", "wp", "Xs", "sa", "bp", "Sp", "Ne", "rn", "vp", "Sr", "Cp", "na", "Mp", "Yo", "ia", "oa", "xp", "Ep", "Ip", "kp", "Ko", "aa", "la", "Tp", "vr", "_", "Np", "j", "Uu", "Op", "bs", "ui", "Lp", "Rp", "Dp", "Ap", "ve", "M", "sn", "N", "on", "da", "fa", "ca", "nn", "ua", "ha", "pa", "Fp", "Pp", "te", "Ss", "_p", "he", "hr", "$p", "ma", "Up", "an", "pr", "Ae", "Wp", "u", "d", "f", "y", "h", "S", "m", "v", "E", "b", "g", "Ye", "Qp", "Bp", "Vp", "Gp", "zp", "jp", "Er", "Yp", "Xp", "Hp", "Zp", "ga", "ya", "Jp", "$u", "Kp", "wa", "qp", "hi", "ba", "be", "xu", "ed", "l", "c", "p", "td", "fe", "rd", "sd", "nd", "pi", "di", "$e", "Sa", "$r", "Le", "fi", "dr", "va", "mi", "gi", "Ca", "G", "Ce", "Oe", "Xe", "T", "O", "$", "Y", "Q", "K", "k", "ee", "X", "ae", "q", "yi", "Ma", "id", "w", "wi", "x", "C", "od", "ad", "a", "A", "ld", "cd", "ye", "_b", "_c", "_d", "ud", "hd", "pd", "dd", "bi", "Ur", "Si", "L", "Dd", "Pn", "Mi", "js", "Ws", "tu", "I", "rt", "Ue", "Se", "we", "fo", "Bs", "mo", "rs", "Fe", "zs", "kh"]
|
|
7
7
|
}
|