@betterbugs/all 2.0.0-alpha.19

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../rrweb/dist/rrweb.js", "../../packer/dist/base-BrE4jft0.js", "../../packer/dist/pack.js", "../../packer/dist/unpack.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$3 = /* @__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$3 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(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}\nconst index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1,\n patch: patch$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[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 if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode) {\n sheetHref = s2.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\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 importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\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 const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\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$3.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$3.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$3.Comment || a2.type === NodeType$3.Text || a2.type === NodeType$3.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$3.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}\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}\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 absolutifyURLs(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}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\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}\nlet canvasService;\nlet canvasCtx;\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\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(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 [\"video\", \"audio\"].includes(tagName) && 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(index$1.parentNode(node2), 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(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\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 cssCaptured = 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$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.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 cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\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 const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\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 = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\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 attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\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 === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\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 ([\"audio\", \"video\"].includes(tagName)) {\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$3.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 slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\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 };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // 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 cssCaptured = 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 cssCaptured\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$3.Text && !_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$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.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 cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.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$3.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 = slimDOMDefaults(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}\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(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\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, index2) => {\n let number = start + 1 + index2;\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 index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 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 index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, 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 < index2; 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 index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 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 index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + 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 index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\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, index2) => i2(child.toProxy(), index2);\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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + 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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + 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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 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$1$1 = 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 index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].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$1$1;\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 self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.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$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\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$1$1;\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 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 let result2 = cssText;\n try {\n const ast = postcss$1$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n result2 = ast.css;\n } catch (error) {\n console.warn(\"Failed to adapt css for replay\", error);\n }\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 applyCssSplits(n2, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n2.childNodes) {\n if (scn.type === NodeType$3.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n let adaptedCss = \"\";\n if (hackCss) {\n adaptedCss = adaptCssForReplay(cssTextSplits.join(\"\"), cache);\n }\n let startIndex = 0;\n for (let i2 = 0; i2 < childTextNodes.length; i2++) {\n if (i2 === cssTextSplits.length) {\n break;\n }\n const childTextNode = childTextNodes[i2];\n if (!hackCss) {\n childTextNode.textContent = cssTextSplits[i2];\n } else if (i2 < cssTextSplits.length - 1) {\n let endIndex = startIndex;\n let endSearch = cssTextSplits[i2 + 1].length;\n endSearch = Math.min(endSearch, 30);\n let found = false;\n for (; endSearch > 2; endSearch--) {\n const searchBit = cssTextSplits[i2 + 1].substring(0, endSearch);\n const searchIndex = adaptedCss.substring(startIndex).indexOf(searchBit);\n found = searchIndex !== -1;\n if (found) {\n endIndex += searchIndex;\n break;\n }\n }\n if (!found) {\n endIndex += cssTextSplits[i2].length;\n }\n childTextNode.textContent = adaptedCss.substring(startIndex, endIndex);\n startIndex = endIndex;\n } else {\n childTextNode.textContent = adaptedCss.substring(startIndex);\n }\n }\n}\nfunction buildStyleNode(n2, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n2.childNodes.length) {\n applyCssSplits(n2, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$3.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$3.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$3.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 if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n2, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\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.as === \"script\" || n2.attributes.rel === \"modulepreload\")) {\n } else if (tagName === \"link\" && n2.attributes.rel === \"prefetch\" && typeof n2.attributes.href === \"string\" && extractFileExtension(n2.attributes.href) === \"js\") {\n } else if (tagName === \"img\" && n2.attributes.srcset && n2.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n2.attributes.srcset\n );\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(\n \"rrweb-original-src\",\n n2.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"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 } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\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$3.Text:\n if (n2.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n2.textContent, cache));\n }\n return doc.createTextNode(n2.textContent);\n case NodeType$3.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$3.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$3.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$3.DocumentType) {\n if (n2.childNodes[0].type === NodeType$3.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$3.Document || n2.type === NodeType$3.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$3.Document && childN.type == NodeType$3.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$3.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 __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);\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, index2) => {\n let number = start + 1 + index2;\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 index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 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 index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, 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 < index2; 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 index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 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 index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + 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 index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\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, index2) => i2(child.toProxy(), index2);\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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + 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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + 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 index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 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 index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].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 self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.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.38\";\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;\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 || {});\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 childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\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(textContent2) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent2));\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 if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\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 shadowRoot2 = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot2;\n return shadowRoot2;\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 BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"tagName\", \"DIALOG\");\n __publicField2(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\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(textContent2) {\n this.data = textContent2;\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(textContent2) {\n this.data = textContent2;\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(textContent2) {\n this.data = textContent2;\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$2 = /* @__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$2 || {});\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 case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e2) {\n console.warn(e2);\n }\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 {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\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 case \"DIALOG\":\n element = new RRDialogElement(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 RRDialogElement extends BaseRRDialogElement {\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$2.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$2.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$2.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$2.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType$2.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType$2.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType$2.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$2.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$2.DOCUMENT_NODE || node2.nodeType === NodeType$2.ELEMENT_NODE || node2.nodeType === NodeType$2.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType$2.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 testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\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}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\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}\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;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.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 : index.parentElement(node2);\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 const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, 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}\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 if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\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 index2 = positions.pop();\n return { positions, index: index2 };\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;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\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 index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, 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 polyfill: polyfill$1,\n queueToResolveTrees,\n shadowHostInDom,\n throttle,\n uniqueTextMutations\n}, Symbol.toStringTag, { value: \"Module\" }));\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 || {});\nvar NodeType = /* @__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 || {});\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 index2 = 0; index2 < position; index2++) {\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, \"removesSubTreeCache\", /* @__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 const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\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(index.shadowRoot(n2), 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 cssCaptured\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.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, 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(index.parentNode(candidate.value));\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(index.parentNode(_node.value));\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 const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\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 const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\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.removesSubTreeCache = /* @__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 const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\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 = index.textContent(m.target);\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 value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\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 } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\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(index.host(m.target)) : 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 processRemoves(n2, this.removesSubTreeCache);\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 index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).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 index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\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};\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 const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\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 = index.parentElement(target);\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 if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\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, userTriggered: false } : { text: text2, isChecked: !isChecked }\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) {\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 index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\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, index2] = 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: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\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 [index2] = 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: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\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, index2] = 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 index2 || 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 [index2] = 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), index2] }\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}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.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(host2, \"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(host2, \"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}\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 __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 !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\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.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}\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(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\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: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\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 sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\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}\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 index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\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 index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\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}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.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 (window.URL || window.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 && (window.URL || window.webkitURL).revokeObjectURL(objURL);\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 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, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\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}\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}\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 = slimDOMDefaults(_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: \"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(index.shadowRoot(n2), 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 ([\"interactive\", \"complete\"].includes(document.readyState)) {\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((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n if (!msg.includes(\"cross-origin\")) {\n console.warn(error);\n }\n }\n });\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\" }));\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}\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 index2 = this.findActionIndex(action);\n this.actions.splice(index2, 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}\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}\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}\nconst rules = (blockClass) => [\n `.${blockClass} { background: currentColor }`,\n \"noscript { display: none !important; }\"\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: index2 } = arg;\n return variableListFor(ctx, name)[index2];\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}\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$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, index2) => {\n const mutation = mutations[index2];\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}\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}\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 applyDialogToTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches(\"dialog:modal\");\n const rrOpenMode = dialog.getAttribute(\"rr_open_mode\");\n const newIsOpen = typeof (attributeMutation == null ? void 0 : attributeMutation.attributes.open) === \"string\" || typeof dialog.getAttribute(\"open\") === \"string\";\n const newIsModalState = rrOpenMode === \"modal\";\n const newIsNonModalState = rrOpenMode === \"non-modal\";\n const modalStateChanged = oldIsModalState && newIsNonModalState || !oldIsModalState && newIsModalState;\n if (oldIsOpen && !modalStateChanged) return;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\nfunction removeDialogFromTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute(\"open\");\n dialog.removeAttribute(\"rr_open_mode\");\n }\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 lastIndex = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && event === this.service.state.context.events[lastIndex]) {\n const finish = () => {\n if (lastIndex < 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 finishBuffer = 50;\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length) {\n finishBuffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finishBuffer);\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(\"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(\"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 collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, 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 collectedIframes) {\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 collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"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 (!injectStylesRules.length) {\n return;\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, index2) => ({\n rule: cssText,\n index: index2\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 collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType.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 collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\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.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 applyDialogToTopLevel(node2);\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.Element && mutation.node.type === NodeType.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.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType.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 const parentEl = target.parentElement;\n if (mutation.value && parentEl && parentEl.tagName === \"STYLE\") {\n target.textContent = adaptCssForReplay(mutation.value, this.cache);\n } else {\n target.textContent = mutation.value;\n }\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 if (attributeName === \"open\")\n removeDialogFromTopLevel(target, mutation);\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 const newNode = buildNodeWithSN(\n {\n ...newSn,\n attributes: {\n ...newSn.attributes,\n ...mutation.attributes\n }\n },\n {\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 );\n Object.assign(\n newSn.attributes,\n mutation.attributes\n );\n const siblingNode = target.nextSibling;\n const parentNode2 = target.parentNode;\n if (newNode && parentNode2) {\n parentNode2.removeChild(target);\n parentNode2.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 if (attributeName === \"rr_open_mode\" && target.nodeName === \"DIALOG\") {\n applyDialogToTopLevel(target, mutation);\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.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: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule2, index2);\n } else {\n const index2 = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule2, index2);\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: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index2 || 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", "var u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\nvar fleb = new u8([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n]);\nvar fdeb = new u8([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n]);\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nvar freb = function(eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n var x = (i & 43690) >>> 1 | (i & 21845) << 1;\n x = (x & 52428) >>> 2 | (x & 13107) << 2;\n x = (x & 61680) >>> 4 | (x & 3855) << 4;\n rev[i] = ((x & 65280) >>> 8 | (x & 255) << 8) >>> 1;\n}\nvar hMap = function(cd, mb, r) {\n var s = cd.length;\n var i = 0;\n var l = new u16(mb);\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n var co;\n if (r) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n var sv = i << 4 | cd[i];\n var r_1 = mb - cd[i];\n var v = le[cd[i] - 1]++ << r_1;\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n return co;\n};\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\nvar flm = /* @__PURE__ */ hMap(flt, 9, 0), flrm = /* @__PURE__ */ hMap(flt, 9, 1);\nvar fdm = /* @__PURE__ */ hMap(fdt, 5, 0), fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);\nvar max = function(a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\nvar bits = function(d, p, m) {\n var o = p / 8 >> 0;\n return (d[o] | d[o + 1] << 8) >>> (p & 7) & m;\n};\nvar bits16 = function(d, p) {\n var o = p / 8 >> 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >>> (p & 7);\n};\nvar shft = function(p) {\n return (p / 8 >> 0) + (p & 7 && 1);\n};\nvar slc = function(v, s, e) {\n if (e == null || e > v.length)\n e = v.length;\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nvar inflt = function(dat, buf, st) {\n var sl = dat.length;\n var noBuf = !buf || st;\n var noSt = !st || st.i;\n if (!st)\n st = {};\n if (!buf)\n buf = new u8(sl * 3);\n var cbuf = function(l2) {\n var bl = buf.length;\n if (l2 > bl) {\n var nbuf = new u8(Math.max(bl * 2, l2));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n st.f = final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;\n if (t > sl) {\n if (noSt)\n throw \"unexpected EOF\";\n break;\n }\n if (noBuf)\n cbuf(bt + l);\n buf.set(dat.subarray(s, t), bt);\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n } else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl; ) {\n var r = clm[bits(dat, pos, clbmsk)];\n pos += r & 15;\n var s = r >>> 4;\n if (s < 16) {\n ldt[i++] = s;\n } else {\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else\n throw \"invalid block type\";\n if (pos > tbts)\n throw \"unexpected EOF\";\n }\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw \"unexpected EOF\";\n if (!c)\n throw \"invalid length/literal\";\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw \"invalid distance\";\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts)\n throw \"unexpected EOF\";\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\nvar wbits = function(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\nvar wbits16 = function(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\nvar hTree = function(d, mb) {\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function(a, b) {\n return a.f - b.f;\n });\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l, r };\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l, r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n var tr = new u16(maxSym + 1);\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n var i = 0, dt = 0;\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function(a, b) {\n return tr[b.s] - tr[a.s] || a.f - b.f;\n });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << mbt - tr[i2_1]);\n tr[i2_1] = mb;\n } else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << mb - tr[i2_2]++ - 1;\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\nvar ln = function(n, l, d) {\n return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n};\nvar lc = function(c) {\n var s = c.length;\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n var cli = 0, cln = c[0], cls = 1;\n var w = function(v) {\n cl[cli++] = v;\n };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n cls = 0;\n }\n } else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(cls - 3 << 5 | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\nvar clen = function(cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\nvar wfblk = function(out, pos, dat) {\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\nvar wblk = function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a2 = hTree(lf, 15), dlt = _a2[0], mlb = _a2[1];\n var _b2 = hTree(df, 15), ddt = _b2[0], mdb = _b2[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = bl + 5 << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, clct[i] >>> 5 & 127), p += clct[i] >>> 12;\n }\n }\n } else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = syms[i] >>> 18 & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, syms[i] >>> 23 & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, syms[i] >>> 5 & 8191), p += fdeb[dst];\n } else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\nvar deo = /* @__PURE__ */ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\nvar dflt = function(dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7e3)) + post);\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n var e = i + 65535;\n if (e < s) {\n pos = wfblk(w, pos, dat.subarray(i, e));\n } else {\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n } else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function(i2) {\n return (dat[i2] ^ dat[i2 + 1] << bs1_1 ^ dat[i2 + 2] << bs2_1) & msk_1;\n };\n var syms = new u32(25e3);\n var lf = new u16(288), df = new u16(32);\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n var hv = hsh(i);\n var imod = i & 32767;\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n if (wi <= i) {\n var rem = s - i;\n if ((lc_1 > 7e3 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n if (nl > maxn)\n break;\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j + 32768 & 32767;\n var pti = prev[ti];\n var cd = ti - pti + 32768 & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod + 32768 & 32767;\n }\n }\n if (d) {\n syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n } else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\nvar adler = function() {\n var a = 1, b = 0;\n return {\n p: function(d) {\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l; ) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function() {\n return (a >>> 8 << 16 | (b & 255) << 8 | b >>> 8) + ((a & 255) << 23) * 2;\n }\n };\n};\nvar dopt = function(dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st);\n};\nvar wbytes = function(d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\nvar zlh = function(c, o) {\n var lv = o.level, fl2 = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = fl2 << 6 | (fl2 ? 32 - 2 * fl2 : 1);\n};\nvar zlv = function(d) {\n if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31)\n throw \"invalid zlib data\";\n if (d[1] & 32)\n throw \"invalid zlib data: preset dictionaries not supported\";\n};\nfunction zlibSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\nfunction unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\nfunction strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != \"undefined\")\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function(v) {\n ar[ai++] = v;\n };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + (l - i << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | c >>> 6), w(128 | c & 63);\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >>> 18), w(128 | c >>> 12 & 63), w(128 | c >>> 6 & 63), w(128 | c & 63);\n else\n w(224 | c >>> 12), w(128 | c >>> 6 & 63), w(128 | c & 63);\n }\n return slc(ar, 0, ai);\n}\nfunction strFromU8(dat, latin1) {\n var r = \"\";\n if (!latin1 && typeof TextDecoder != \"undefined\")\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length; ) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | dat[i++] & 63);\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63);\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n return r;\n}\nconst MARK = \"v1\";\nexport {\n MARK as M,\n strToU8 as a,\n strFromU8 as s,\n unzlibSync as u,\n zlibSync as z\n};\n//# sourceMappingURL=base-BrE4jft0.js.map\n", "import { M as MARK, s as strFromU8, z as zlibSync, a as strToU8 } from \"./base-BrE4jft0.js\";\nconst pack = (event) => {\n const _e = {\n ...event,\n v: MARK\n };\n return strFromU8(zlibSync(strToU8(JSON.stringify(_e))), true);\n};\nexport {\n pack\n};\n//# sourceMappingURL=pack.js.map\n", "import { s as strFromU8, u as unzlibSync, a as strToU8, M as MARK } from \"./base-BrE4jft0.js\";\nconst unpack = (raw) => {\n if (typeof raw !== \"string\") {\n return raw;\n }\n try {\n const e = JSON.parse(raw);\n if (e.timestamp) {\n return e;\n }\n } catch (error) {\n }\n try {\n const e = JSON.parse(\n strFromU8(unzlibSync(strToU8(raw, true)))\n );\n if (e.v === MARK) {\n return e;\n }\n throw new Error(\n `These events were packed with packer ${e.v} which is incompatible with current packer ${MARK}.`\n );\n } catch (error) {\n console.error(error);\n throw new Error(\"Unknown data format.\");\n }\n};\nexport {\n unpack\n};\n//# sourceMappingURL=unpack.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$3", "NodeType2", "testableAccessors$1", "testableMethods$1", "untaintedBasePrototype$1", "isAngularZonePresent$1", "getUntaintedPrototype$1", "defaultObj", "defaultPrototype", "accessorNames", "isUntaintedAccessors", "accessor", "_a2", "_b", "methodNames", "isUntaintedMethods", "method", "iframeEl", "win", "untaintedObject", "e", "untaintedAccessorCache$1", "getUntaintedAccessor$1", "instance", "cacheKey", "untaintedPrototype", "untaintedAccessor", "untaintedMethodCache$1", "getUntaintedMethod$1", "untaintedMethod", "childNodes$1", "n2", "parentNode$1", "parentElement$1", "textContent$1", "contains$1", "other", "getRootNode$1", "host$1", "styleSheets$1", "shadowRoot$1", "querySelector$1", "selectors", "querySelectorAll$1", "mutationObserverCtor$1", "patch$1", "source", "name", "replacement", "original", "wrapped", "index$1", "isElement", "isShadowRoot", "hostEl", "isNativeShadowDom", "shadowRoot2", "fixBrowserCompatibilityIssuesInCSS", "cssText", "escapeImportStatement", "rule2", "statement", "stringifyStylesheet", "s2", "rules2", "sheetHref", "stringifiedRules", "stringifyRule", "error", "isCSSImportRule", "importStringified", "absolutifyURLs", "ruleStringified", "isCSSStyleRule", "fixSafariColons", "cssStringified", "regex", "Mirror", "id", "childNode", "node2", "meta", "oldNode", "createMirror$2", "maskInputValue", "element", "maskInputOptions", "tagName", "type", "maskInputFn", "text", "actualType", "toLowerCase", "str", "ORIGINAL_ATTRIBUTE_NAME", "is2DCanvasBlank", "canvas", "ctx", "chunkSize", "x2", "y", "getImageData", "originalGetImageData", "pixel", "isNodeMetaEqual", "a2", "b", "getInputType", "extractFileExtension", "path", "baseURL", "url", "err", "match", "extractOrigin", "origin", "URL_IN_CSS_REF", "URL_PROTOCOL_MATCH", "URL_WWW_MATCH", "DATA_URI", "href", "quote1", "path1", "quote2", "path2", "path3", "filePath", "maybeQuote", "stack", "parts", "part", "normalizeCssString", "_testNoPxNorm", "splitCssText", "style", "childNodes2", "splits", "iterCount", "cssTextNorm", "normFactor", "i2", "textContentNorm", "jLimit", "j", "startSubstring", "cssNormSplits", "splitNorm", "prevTextContent", "prevMinLength", "k", "normPart", "markCssSplits", "_id", "tagNameRegex", "IGNORED_NODE", "genId", "getValidTagName$1", "processedTagName", "canvasService", "canvasCtx", "SRCSET_NOT_SPACES", "SRCSET_COMMAS_OR_SPACES", "getAbsoluteSrcsetString", "doc", "attributeValue", "pos", "collectCharacters", "regEx", "chars2", "output", "absoluteToDoc", "descriptorsStr", "inParens", "c2", "cachedDocument", "getHref", "isSVGElement", "el", "customHref", "transformAttribute", "ignoreAttribute", "_value", "_isBlockedElement", "blockClass", "blockSelector", "eIndex", "className", "e2", "classMatchesRegex", "checkAncestors", "needMaskingText", "maskTextClass", "maskTextSelector", "onceIframeLoaded", "listener", "iframeLoadTimeout", "fired", "readyState", "timer", "blankUrl", "onceStylesheetLoaded", "link", "styleSheetLoadTimeout", "styleSheetLoaded", "serializeNode", "options", "mirror2", "needsMask", "inlineStylesheet", "maskTextFn", "dataURLOptions", "inlineImages", "recordCanvas", "keepIframeSrcFn", "newlyAddedElement", "cssCaptured", "rootId", "getRootId", "serializeElementNode", "serializeTextNode", "docId", "parent", "parentTagName", "textContent2", "isStyle", "isScript", "needBlock", "attributes", "len", "attr", "stylesheet", "checked", "canvasDataURL", "blankCanvas", "blankCanvasDataURL", "image", "imageSrc", "priorCrossOrigin", "recordInlineImage", "mediaAttributes", "width", "height", "isCustomElement", "lowerIfExists", "maybeAttr", "slimDOMDefaults", "_slimDOMOptions", "slimDOMExcluded", "sn", "slimDOMOptions", "serializeNodeWithId", "skipChild", "onSerialize", "onIframeLoad", "onStylesheetLoad", "stylesheetLoadTimeout", "preserveWhiteSpace", "_serializedNode", "serializedNode", "recordChild", "shadowRootEl", "bypassOptions", "childN", "serializedChildNode", "iframeDoc", "serializedIframeNode", "serializedLinkNode", "snapshot", "maskAllInputs", "slimDOM", "MEDIA_SELECTOR", "MEDIA_SELECTOR_GLOBAL", "mediaSelectorPlugin", "atrule", "pseudoClassPlugin", "fixed", "selector", "getDefaultExportFromCjs$1", "getAugmentedNamespace$1", "f2", "a22", "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", "file", "plugin22", "color", "css", "lines", "start", "end", "maxWidth", "mark", "aside", "bold", "gray", "red", "index2", "number", "gutter", "spacing", "code", "cssSyntaxError$1", "symbols$1", "DEFAULT_RAW$1", "capitalize$1", "Stringifier$2$1", "builder", "semicolon", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "child", "before", "left", "right", "string", "own", "root2", "p", "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", "Node$4$1", "defaults", "add", "overrides", "keepBetween", "opts", "next", "stringRepresentation", "defaultType", "nodes", "bookmark", "foundSelf", "result2", "_", "inputs", "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", "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", "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", "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", "exist", "existIndex", "sample", "pattern", "decl", "dependant", "container$1", "Container$6$1", "LazyResult$4$1", "Processor$3$1", "Document$3$1", "document$1$1", "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", "index2", "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$1$1", "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", "self", "map", "MapGenerator2$1", "generatedCSS", "generatedMap", "onRejected", "onFinally", "onFulfilled", "parser2", "error", "noWorkResult$1", "NoWorkResult2$1", "LazyResult$1$1", "lazyResult$1", "Document$1$1", "document$1$1", "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", "tagMap", "getTagName", "tagName", "adaptCssForReplay", "cssText", "cachedStyle", "result2", "mediaSelectorPlugin", "pseudoClassPlugin", "createCache", "applyCssSplits", "hackCss", "childTextNodes", "scn", "NodeType$3", "cssTextSplits", "adaptedCss", "startIndex", "childTextNode", "endIndex", "endSearch", "found", "searchBit", "searchIndex", "buildStyleNode", "styleEl", "options", "doc", "buildNode", "_a2", "node2", "specialAttributes", "value", "extractFileExtension", "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", "__defProp2", "__defNormalProp2", "obj", "key", "__publicField2", "__defProp22", "__defNormalProp22", "__publicField22", "Mirror$1", "oldNode", "createMirror$1", "getDefaultExportFromCjs", "x2", "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", "index2", "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", "parent", "method", "p", "parts", "prop", "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", "_", "fixed", "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", "cb", "other", "exist", "existIndex", "sample", "pattern", "decl", "selector", "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", "index2", "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", "self", "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", "NodeType$1", "NodeType2", "parseCSSText", "cssText", "res", "listDelimiter", "propertyDelimiter", "comment2", "item", "tmp", "camelize", "toCSSText", "style", "properties", "value", "normalizedName", "hyphenate", "camelizeRE", "CUSTOM_PROPERTY_REGEX", "_", "c2", "hyphenateRE", "BaseRRNode", "_args", "__publicField2", "childNodes2", "childIterator", "node2", "_newChild", "_refChild", "_node", "BaseRRDocument", "_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", "textContent2", "ClassList", "newClassName", "hyphenateRE2", "priority", "attribute", "_init", "shadowRoot2", "_event", "attributeString", "BaseRRMediaElement", "BaseRRDialogElement", "classText", "onChange", "classNames", "className", "classes", "parent", "NodeType$2", "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", "dialog", "rrDialog", "wasOpen", "wasModal", "shouldBeOpen", "shouldBeModal", "modalChanged", "openChanged", "e2", "oldAttributes", "newAttributes", "newValue", "sn", "err", "oldChildren", "newChildren", "oldStartIndex", "oldEndIndex", "newStartIndex", "newEndIndex", "oldStartNode", "oldEndNode", "newStartNode", "newEndNode", "oldIdToIndex", "indexInOld", "oldChild2", "nodeToMove", "newNode", "referenceRRNode", "referenceNode", "oldChild", "rrNode", "domMirror", "nodeId", "node1", "rrdomMirror", "node1Id", "node2Id", "RRDocument", "mirror2", "createMirror", "documentTypeNode", "RRDocumentType", "upperTagName", "RRMediaElement", "RRIFrameElement", "RRCanvasElement", "RRStyleElement", "RRDialogElement", "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", "testableAccessors", "testableMethods", "untaintedBasePrototype", "isAngularZonePresent", "getUntaintedPrototype", "key", "defaultObj", "defaultPrototype", "accessorNames", "isUntaintedAccessors", "accessor", "methodNames", "isUntaintedMethods", "method", "iframeEl", "win", "untaintedObject", "e", "untaintedAccessorCache", "getUntaintedAccessor", "instance", "cacheKey", "untaintedPrototype", "untaintedAccessor", "untaintedMethodCache", "getUntaintedMethod", "untaintedMethod", "childNodes", "parentNode", "parentElement", "textContent", "contains", "other", "getRootNode", "host", "styleSheets", "shadowRoot", "querySelector", "selectors", "querySelectorAll", "mutationObserverCtor", "patch", "replacement", "original", "wrapped", "index", "on", "type", "fn", "target", "options", "DEPARTED_MIRROR_ACCESS_WARNING", "_mirror", "prop", "receiver", "throttle", "func", "wait", "timeout", "previous", "now", "remaining", "context", "hookSetter", "d", "isRevoked", "nowTimestamp", "getWindowScroll", "_c", "_d", "doc", "getWindowHeight", "getWindowWidth", "closestElementOfNode", "isBlocked", "blockClass", "blockSelector", "checkAncestors", "el", "classMatchesRegex", "isSerialized", "isIgnored", "slimDOMOptions", "IGNORED_NODE", "isAncestorRemoved", "isShadowRoot", "legacy_isTouchEvent", "event", "polyfill$1", "queueToResolveTrees", "queue", "queueNodeMap", "putIntoMap", "m", "nodeInTree", "queueNodeTrees", "mutation", "nextId", "parentId", "nextInTree", "idx", "parentInTree", "iterateResolveTree", "tree", "cb", "isSerializedIframe", "isSerializedStylesheet", "getBaseDimension", "rootIframe", "frameElement", "frameDimension", "frameBaseDimension", "relativeScale", "hasShadowRoot", "getNestedRule", "rules2", "position", "rule2", "getPositionsAndIndex", "nestedIndex", "positions", "index2", "uniqueTextMutations", "mutations", "idSet", "uniqueMutations", "StyleSheetMirror", "__publicField", "stylesheet", "newId", "getShadowHost", "shadowHost", "getRootShadowHost", "rootShadowHost", "shadowHostInDom", "inDom", "utils", "EventType", "EventType2", "IncrementalSource", "IncrementalSource2", "MouseInteractions", "MouseInteractions2", "PointerTypes", "PointerTypes2", "CanvasContext", "CanvasContext2", "MediaInteractions", "MediaInteractions2", "ReplayerEvents", "ReplayerEvents2", "NodeType", "isNodeInLinkedList", "DoubleLinkedList", "current", "moveKey", "MutationBuffer", "adds", "addedIds", "addList", "getNextId", "ns", "pushAdd", "cssCaptured", "parentTag", "serializeNodeWithId", "currentN", "iframe", "childSn", "link", "isParentRemoved", "isAncestorInSet", "candidate", "tailNode", "unhandledNode", "payload", "attributes", "diffAsStr", "unchangedAsStr", "textarea", "cn", "maskInputValue", "getInputType", "needMaskingText", "attributeName", "ignoreAttribute", "transformAttribute", "toLowerCase", "old", "pname", "newPriority", "deepDelete", "isNativeShadowDom", "processRemoves", "targetId", "childN", "addsSet", "next", "n22", "removes", "_isParentRemoved", "_mirror2", "set", "_isAncestorInSet", "errorHandler", "registerErrorHandler", "handler", "unregisterErrorHandler", "callbackWrapper", "rest", "mutationBuffers", "getEventTarget", "path", "initMutationObserver", "rootEl", "mutationBuffer", "observer", "initMoveObserver", "mousemoveCb", "sampling", "threshold", "callbackThreshold", "timeBaseline", "wrappedCb", "totalOffset", "p", "updatePosition", "evt", "clientX", "clientY", "handlers", "initMouseInteractionObserver", "mouseInteractionCb", "disableMap", "currentPointerType", "getHandler", "eventKey", "pointerType", "thisEventKey", "eventName", "h", "initScrollObserver", "scrollCb", "scrollLeftTop", "initViewportResizeObserver", "viewportResizeCb", "lastH", "lastW", "updateDimension", "height", "width", "INPUT_TAGS", "lastInputValueMap", "initInputObserver", "inputCb", "ignoreClass", "ignoreSelector", "maskInputOptions", "maskInputFn", "userTriggeredOnInput", "eventHandler", "userTriggered", "isChecked", "cbWithDedup", "text2", "v2", "lastInputValue", "currentWindow", "propertyDescriptor", "hookProperties", "getNestedCSSRulePositions", "recurse", "childRule", "pos", "hasNestedCSSRule", "getIdAndStyleId", "sheet", "styleMirror", "styleId", "initStyleSheetObserver", "styleSheetRuleCb", "stylesheetManager", "insertRule", "thisArg", "argumentsList", "selector", "styleBlock", "deleteRule", "replace", "replaceSync", "supportedNestedCSSRuleTypes", "canMonkeyPatchNestedCSSRule", "unmodifiedFunctions", "typeKey", "initAdoptedStyleSheetObserver", "host2", "hostId", "patchTarget", "originalPropertyDescriptor", "_a3", "sheets", "initStyleDeclarationObserver", "styleDeclarationCb", "ignoreCSSAttributes", "setProperty", "property", "removeProperty", "initMediaInteractionObserver", "mediaInteractionCb", "currentTime", "volume", "muted", "playbackRate", "loop", "initFontObserver", "fontCb", "fontMap", "originalFontFace", "family", "descriptors", "fontFace", "restoreHandler", "initSelectionObserver", "param", "selectionCb", "collapsed", "updateSelection", "selection", "ranges", "count", "range", "startContainer", "startOffset", "endContainer", "endOffset", "initCustomElementObserver", "customElementCb", "constructor", "mergeHooks", "o2", "hooks", "mutationCb", "canvasMutationCb", "initObservers", "mutationObserver", "mousemoveHandler", "mouseInteractionHandler", "scrollHandler", "viewportResizeHandler", "inputHandler", "mediaInteractionHandler", "styleSheetObserver", "adoptedStyleSheetObserver", "styleDeclarationObserver", "fontObserver", "selectionObserver", "customElementObserver", "pluginHandlers", "plugin3", "b", "CrossOriginIframeMirror", "generateIdFn", "remoteId", "idToRemoteMap", "remoteToIdMap", "idToRemoteIdMap", "remoteIdToIdMap", "ids", "IframeManager", "genId", "message", "crossOriginMessageEvent", "transformedEvent", "rootId", "iframeMirror", "obj", "keys", "ShadowDomManager", "iframeElement", "manager", "option", "sRoot", "shadowRootEl", "chars", "lookup", "i$1", "encode", "arraybuffer", "bytes", "len", "base64", "decode", "bufferLength", "encoded1", "encoded2", "encoded3", "encoded4", "canvasVarMap", "variableListFor$1", "ctor", "contextMap", "saveWebGLVar", "isInstanceOfWebGLObject", "list2", "serializeArg", "arg", "src", "serializeArgs", "initCanvas2DMutationObserver", "props2D", "recordArgs", "hookHandler", "getNormalizedContextName", "contextType", "initCanvasContextObserver", "setPreserveDrawingBufferToTrue", "ctxName", "contextAttributes", "patchGLPrototype", "prototype", "props", "initCanvasWebGLMutationObserver", "encodedJs", "decodeBase64", "blob", "WorkerWrapper", "objURL", "worker", "CanvasManager", "recordCanvas", "dataURLOptions", "fps", "canvasContextReset", "snapshotInProgressMap", "timeBetweenSnapshots", "lastSnapshotTime", "rafId", "getCanvas", "matchedCanvas", "canvas", "takeCanvasSnapshots", "timestamp", "bitmap", "canvas2DReset", "canvasWebGL1and2Reset", "setLatestRAFTimestamp", "_values", "valuesWithType", "values", "type2", "StylesheetManager", "linkEl", "adoptedStyleSheetData", "styles", "r2", "stringifyRule", "_linkEl", "ProcessedNodeManager", "thisBuffer", "buffers", "buffer", "wrappedEmit", "takeFullSnapshot$1", "canvasManager", "recording", "x2", "cleanFrame", "mirror", "createMirror$2", "record", "emit", "checkoutEveryNms", "checkoutEveryNth", "maskTextClass", "maskTextSelector", "inlineStylesheet", "maskAllInputs", "_maskInputOptions", "_slimDOMOptions", "maskTextFn", "packFn", "mousemoveWait", "recordDOM", "recordCrossOriginIframes", "recordAfter", "collectFonts", "inlineImages", "keepIframeSrcFn", "errorHandler2", "inEmittingFrame", "passEmitsToParent", "slimDOMDefaults", "lastFullSnapshotEvent", "incrementalSnapshotCount", "eventProcessor", "isCheckout", "buf", "exceedCount", "exceedTime", "wrappedMutationEmit", "wrappedScrollEmit", "wrappedCanvasMutationEmit", "wrappedAdoptedStyleSheetEmit", "a2", "iframeManager", "processedNodeManager", "shadowDomManager", "snapshot", "observe", "init", "tag", "mitt$1", "t2", "n3", "mittProxy", "polyfill", "w", "Element2", "SCROLL_TIME", "scrollElement", "isMicrosoftBrowser", "userAgent", "userAgentPatterns", "ROUNDING_TOLERANCE", "y", "ease", "k", "shouldBailOut", "firstArg", "hasScrollableSpace", "axis", "canOverflow", "overflowValue", "isScrollable", "isScrollableY", "isScrollableX", "findScrollableParent", "step", "time", "currentX", "currentY", "elapsed", "smoothScroll", "scrollable", "startX", "startY", "startTime", "left", "top", "scrollableParent", "parentRects", "clientRects", "Timer", "actions", "config", "action", "rafWasActive", "speed", "start", "end", "mid", "addDelay", "baselineTime", "firstOffset", "firstTimestamp", "t", "t3", "n", "r", "o", "i", "a", "u", "c", "f", "o3", "s", "l2", "s3", "l3", "v3", "g", "e3", "S", "j", "E", "R", "N", "O", "T", "q", "z", "A", "B", "C", "l", "v", "i3", "u2", "discardPriorSnapshots", "events", "createPlayerService", "getCastFn", "applyEventsSynchronously", "emitter", "playerMachine", "timeOffset", "timer", "lastPlayedEvent", "neededEvents", "lastPlayedTimestamp", "syncEvents", "castFn", "machineEvent", "insertionIndex", "isSync", "createSpeedService", "speedMachine", "rules", "webGLVarMap", "variableListFor", "deserializeArg", "imageMap", "preload", "image2", "blobContents", "getContext", "WebGLVariableConstructorsNames", "saveToWebGLVarMap", "variables", "webglMutation", "debugMode", "canvasMutation$1", "mutationArgsPromises", "args2", "canvasMutation", "canvasEventMap", "precomputedMutation", "commands", "command", "MediaManager", "_mediaState", "mediaState", "mediaPlaybackOffset", "duration", "seekToTime", "onLoadedMetadata", "lastState", "_e", "isPlaying", "playerIsPaused", "serializedNode", "mediaAttributes", "currentTimeAtLastInteraction", "applyDialogToTopLevel", "attributeMutation", "oldIsOpen", "oldIsModalState", "rrOpenMode", "newIsOpen", "newIsModalState", "removeDialogFromTopLevel", "SKIP_TIME_INTERVAL", "mitt", "REPLAY_CONSOLE_PREFIX", "defaultMouseTailConfig", "indicatesTouchDevice", "Replayer", "createCache", "dimension", "skipTime", "lastIndex", "finish", "finishBuffer", "defaultConfig", "replayerHandler", "canvasEvent", "canvasMutationData", "realNode", "a1", "state", "firstMeta", "firstFullsnapshot", "firstEvent", "lastEvent", "rawEvent", "collectedIframes", "collectedDialogs", "afterAppend", "builtNode", "rebuild", "mutationInQueue", "documentElement", "head", "injectStylesRules", "styleEl", "buildNodeWithSN", "collected", "unloadSheets", "beforeLoadState", "stateHandler", "unsubscribe", "promises", "imgd", "status", "lastPosition", "triggerFocus", "mediaEl", "virtualNode", "legacy_missingNodeMap", "nextNotInDOM", "appendNode", "targetDoc", "parentSn", "prospectiveSiblings", "parentDoc", "resolveTrees", "parentEl", "adaptCssForReplay", "newSn", "siblingNode", "parentNode2", "tn", "styleValues", "targetEl", "svp", "svs", "selectionSet", "targetHost", "newStyleSheet", "hostWindow", "MAX_RETRY_TIME", "adoptStyleSheets", "targetHost2", "styleIds", "stylesToAdopt", "targetMutation", "previousId", "previousInMap", "nextInMap", "debugData", "base", "_x", "_y", "lineCap", "lineWidth", "strokeStyle", "draw", "hoveredEl", "currentEl", "addCustomEvent", "freezePage", "takeFullSnapshot", "u8", "u16", "u32", "fleb", "fdeb", "clim", "freb", "eb", "fl", "revfl", "fd", "revfd", "rev", "x", "hMap", "cd", "mb", "le", "co", "rvb", "sv", "r_1", "flt", "fdt", "flm", "flrm", "fdm", "fdrm", "max", "bits", "bits16", "shft", "slc", "inflt", "dat", "st", "sl", "noBuf", "noSt", "cbuf", "bl", "nbuf", "final", "bt", "lm", "dm", "lbt", "dbt", "tbts", "hLit", "hcLen", "tl", "ldt", "clt", "clb", "clbmsk", "clm", "lt", "dt", "lms", "dms", "mxa", "sym", "add", "dsym", "wbits", "wbits16", "hTree", "i0", "i1", "maxSym", "tr", "mbt", "ln", "lft", "cst", "i2_1", "i2_2", "i2_3", "lc", "cl", "cli", "cln", "cls", "clen", "cf", "wfblk", "out", "wblk", "syms", "lf", "df", "li", "bs", "dlt", "mlb", "_b2", "ddt", "mdb", "lclt", "nlc", "lcdt", "ndc", "lcfreq", "lct", "mlcb", "nlcc", "flen", "ftlen", "dtlen", "ll", "dl", "llm", "lcts", "it", "clct", "dst", "deo", "dflt", "lvl", "plvl", "pre", "post", "lst", "opt", "msk_1", "prev", "bs1_1", "bs2_1", "hsh", "lc_1", "wi", "hv", "imod", "pimod", "rem", "ch_1", "dif", "maxn", "maxd", "ml", "nl", "mmd", "md", "ti", "pti", "lin", "din", "adler", "dopt", "wbytes", "zlh", "lv", "fl2", "zlv", "zlibSync", "unzlibSync", "strToU8", "latin1", "ar", "ai", "strFromU8", "MARK", "pack", "unpack", "raw"]
7
+ }