@amplitude/segment-session-replay-plugin 0.0.0-networktrackingprereleasemay.0 → 0.0.0-perfrecord-init-prelease.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.d.ts.map +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.d.ts.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/index-min.js +2 -0
- package/lib/scripts/index-min.js.gz +0 -0
- package/lib/scripts/index-min.js.map +1 -0
- package/lib/scripts/index-min2.js +2 -0
- package/lib/scripts/index-min2.js.gz +0 -0
- package/lib/scripts/index-min2.js.map +1 -0
- package/lib/scripts/index-min3.js +2 -0
- package/lib/scripts/index-min3.js.gz +0 -0
- package/lib/scripts/index-min3.js.map +1 -0
- package/lib/scripts/observers-min.js +2 -0
- package/lib/scripts/observers-min.js.gz +0 -0
- package/lib/scripts/observers-min.js.map +1 -0
- package/lib/scripts/rrweb-plugin-console-record-min.js +1 -1
- package/lib/scripts/rrweb-plugin-console-record-min.js.gz +0 -0
- package/lib/scripts/rrweb-plugin-console-record-min.js.map +1 -1
- package/lib/scripts/rrweb-record-min.js +2 -0
- package/lib/scripts/rrweb-record-min.js.gz +0 -0
- package/lib/scripts/rrweb-record-min.js.map +1 -0
- package/lib/scripts/segment-session-replay-wrapper-esm.js +1 -1
- package/lib/scripts/segment-session-replay-wrapper-esm.js.gz +0 -0
- package/lib/scripts/segment-session-replay-wrapper-esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rrweb-record-min.js","sources":["../../../../node_modules/@amplitude/rrweb-record/dist/rrweb-record.js"],"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 = {};\nfunction angularZoneUnpatchedAlternative$1(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const candidate = angularZoneUnpatchedAlternative$1(key) || globalThis[key];\n const defaultPrototype = candidate.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) {\n untaintedBasePrototype$1[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.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}\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};\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 && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\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 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}\nconst _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR = \"lightgrey\";\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\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return 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 (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(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 applyBackgroundColorToBlockedElements = 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 applyBackgroundColorToBlockedElements\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 applyBackgroundColorToBlockedElements = false\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 (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n 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 (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n ...applyBackgroundColorToBlockedElements ? { rr_background_color: _DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR } : {}\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 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.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false,\n applyBackgroundColorToBlockedElements = 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 applyBackgroundColorToBlockedElements\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 applyBackgroundColorToBlockedElements\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 applyBackgroundColorToBlockedElements = false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n applyBackgroundColorToBlockedElements\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;\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);\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;\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}\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 = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a2, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.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) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.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}\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};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\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 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 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}\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}\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 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 __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 __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};\nfunction externalFunctionWrapper(func) {\n return (...args) => {\n try {\n return func(...args);\n } catch (error) {\n try {\n error._external_ = true;\n } catch {\n }\n throw error;\n }\n };\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 externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\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 externalFunctionWrapper(\n () => target.apply(thisArg, argumentsList)\n )();\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};\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 applyBackgroundColorToBlockedElements = false\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"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 applyBackgroundColorToBlockedElements,\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 (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nexport {\n record\n};\n//# sourceMappingURL=rrweb-record.js.map\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","candidate","_a2","_b","angularUnpatchedVersionSymbol","globalThis","Zone","__symbol__","call","angularZoneUnpatchedAlternative$1","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","ownerDocument","location","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_DEFAULT_BLOCKED_ELEMENT_BACKGROUND_COLOR","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","name","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","applyBackgroundColorToBlockedElements","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","rr_background_color","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","picocolors_browser$1","exports","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","__proto__","Symbol","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","CssSyntaxError","Error","message","line","column","source","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","maxWidth","map","index2","number","gutter","spacing","code","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","rule","ownSemicolon","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","isArray","Node$4$1","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","next","index","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","node$1","Node$3$1","Declaration$4$1","variable","declaration$1","nonSecure$1","nanoid","size","random","customAlphabet","alphabet","defaultSize","SourceMapConsumer","SourceMapConsumer$2$1","SourceMapGenerator","SourceMapGenerator$2$1","existsSync","existsSync$1","readFileSync","readFileSync$1","dirname","dirname$1$1","join$1","PreviousMap$2$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath","fileURLToPath$1","pathToFileURL","pathToFileURL$1$1","isAbsolute","isAbsolute$1","resolve","resolve$1$1","nanoid$2","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative","relative$1","resolve$2","sep","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","Node$2$1","Comment$4$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","Node$1$1","cleanSource$1","markDirtyUp$1","Container$7$1","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","setPrototypeOf","LazyResult$4$1","Processor$3$1","Container$6$1","Document$3$1","toResult","registerLazyResult","registerProcessor","document$1$1","printed$1","warnOnce$2$1","Warning$2$1","range","opt","warning$1","Warning$1$1","Result$3$1","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","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","Container$5$1","AtRule$3$1","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","ignore","root$1","list$2$1","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","values","sep2","rule$1","Declaration$2$1","tokenizer2$1","quote","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","position","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","Container$2$1","Parser2$1","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","tokenizer","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","parse","clean","reduce","all","lastTokenType","Input$2$1","parse$3$1","parser2","process","env","NODE_ENV","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","warnOnce$1$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","Root","RootExit","Rule","RuleExit","NOT_VISITORS$1","isPromise$1","then","getEvents$1","toStack$1","events","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","processed","syntax","parser","result","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","warnOnce2$1","parse$1$1","Result$1$1","NoWorkResult$1$1","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","normalized","use","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","fromJSON","list","atRule","Processor","Warning","Result","Input","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","x","create","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node$3","Declaration$4","declaration","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container$7","Container2","container","LazyResult$4","Processor$3","Container$6","Document$3","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","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","Container$5","AtRule$3","LazyResult$3","Processor$2","Container$4","Root$5","list$2","list_1","Container$3","list$1","Rule$3","Declaration$2","tokenizer22","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","Container$2","Parser22","findLastWithPosition","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","warnOnce22","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","angularZoneUnpatchedAlternative","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","externalFunctionWrapper","_external_","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin3","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","encodedJs","blob","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped"],"mappings":"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"}
|