@usero/sdk 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/rrweb-snapshot/dist/rrweb-snapshot.js","../node_modules/rrdom/dist/rrdom.js","../node_modules/utils/dist/utils.js","../node_modules/rrweb/src/utils.ts","../node_modules/types/dist/types.js","../node_modules/rrweb/src/record/mutation.ts","../node_modules/rrweb/src/record/error-handler.ts","../node_modules/rrweb/src/record/observer.ts","../node_modules/rrweb/src/record/cross-origin-iframe-mirror.ts","../node_modules/rrweb/src/record/iframe-manager.ts","../node_modules/rrweb/src/record/shadow-dom-manager.ts","../node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/rrweb/src/record/observers/canvas/serialize-args.ts","../node_modules/rrweb/src/record/observers/canvas/2d.ts","../node_modules/rrweb/src/record/observers/canvas/canvas.ts","../node_modules/rrweb/src/record/observers/canvas/webgl.ts","../node_modules/rrweb/src/record/observers/canvas/canvas-manager.ts","../node_modules/rrweb/src/record/stylesheet-manager.ts","../node_modules/rrweb/src/record/processed-node-manager.ts","../node_modules/rrweb/src/record/index.ts","../node_modules/mitt/dist/mitt.mjs","../node_modules/rrweb/src/replay/smoothscroll.ts","../node_modules/rrweb/src/replay/timer.ts","../node_modules/@xstate/fsm/es/index.js","../node_modules/rrweb/src/replay/machine.ts","../node_modules/rrweb/src/replay/styles/inject-style.ts","../node_modules/rrweb/src/replay/canvas/deserialize-args.ts","../node_modules/rrweb/src/replay/canvas/webgl.ts","../node_modules/rrweb/src/replay/canvas/2d.ts","../node_modules/rrweb/src/replay/canvas/index.ts","../node_modules/rrweb/src/replay/media/index.ts","../node_modules/rrweb/src/replay/dialog/index.ts","../node_modules/rrweb/src/replay/index.ts","../node_modules/rrweb/src/index.ts"],"names":["__defProp","__defNormalProp","__publicField","NodeType","testableAccessors","testableMethods","untaintedBasePrototype","isAngularZonePresent","getUntaintedPrototype","_a","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","ownerDocument","n","childNodes","parentNode","parentElement","textContent","contains","getRootNode","host","styleSheets","shadowRoot","querySelector","querySelectorAll","mutationObserverCtor","patch","index","s","rules","createMirror","a","i","getValidTagName","chars","c","e","mirror","getDefaultExportFromCjs","getAugmentedNamespace","f","a2","picocolors_browser","x","create","picocolors_browserExports","__viteBrowserExternal","__viteBrowserExternal$1","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","plugin2","cssSyntaxError","symbols","DEFAULT_RAW","capitalize","Stringifier$2","stringifier","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier2","stringify$3","cloneNode","Node$4","Node","node","Node$3","Declaration$4","declaration","urlAlphabet","nanoid$1","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","existsSync","readFileSync","dirname$1","join","fromBase64","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","fileURLToPath","pathToFileURL$1","isAbsolute","resolve$1","nanoid","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","l","input","SourceMapConsumer","SourceMapGenerator","dirname","relative","resolve","sep","pathToFileURL","Input$3","sourceMapAvailable","pathAvailable","MapGenerator$2","mapGenerator","Node$2","Comment$4","comment","isClean$1","my$1","Declaration$3","Comment$3","Node$1","parse$4","Rule$4","AtRule$4","Root$6","cleanSource","markDirtyUp","Container$7","container","Container$6","LazyResult$4","Processor$3","Document$3","Document","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","result","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","tokenize","Container$5","AtRule$3","atRule","Container$4","LazyResult$3","Processor$2","Root$5","root","list$2","list_1","Container$3","list$1","Rule$3","rule","Declaration$2","tokenizer2","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","Parser$1","parser","Container$2","Parser2","Input$2","parse$3","parse_1","isClean","my","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","lazyResult","MapGenerator2","stringify$1","warnOnce2","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult2","LazyResult$1","Document$1","Root$2","Processor$1","processor","Declaration$1","PreviousMap2","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError2","Declaration2","LazyResult2","Container2","Processor2","stringify","fromJSON","Document2","Warning2","Comment2","AtRule2","Result2","Input2","parse","list","Rule2","Root2","Node2","postcss","postcss_1","postcss$1","__defProp2","__defNormalProp2","__publicField2","Mirror","CssSyntaxError","Stringifier","Declaration","PreviousMap","Input","MapGenerator","Comment","Container","warnOnce","Warning","Result","tokenizer","AtRule","Root","Rule","Parser","LazyResult","NoWorkResult","Processor","Document22","plugin","canvasMutation","Mirror2","_mirror","dom","polyfill","parentId","text","v","FontFace","o","variableListFor","ImageBitmapDataURLWorker","type","r","takeFullSnapshot","errorHandler","t","Element","u","createMachine","assign","interpret","image","blob","args","canvas2DMutation","RRNode","mittProxy.default","events","smoothscrollPolyfill","getInjectStyleRules","targetHost"],"mappings":"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","file":"rrweb-SDFFFL7O.cjs","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 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 || {});\nconst testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.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 _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\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 = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.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 ownerDocument(n) {\n return getUntaintedAccessor(\"Node\", n, \"ownerDocument\");\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n && \"host\" in n && \"mode\" in n && index.host(n) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index.shadowRoot(hostEl) === n\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(s) {\n try {\n const rules = s.rules || s.cssRules;\n if (!rules) {\n return null;\n }\n let sheetHref = s.href;\n if (!sheetHref && s.ownerNode) {\n sheetHref = s.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules,\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(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.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(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.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(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a, b) {\n if (!a || !b || a.type !== b.type) return false;\n if (a.type === NodeType.Document)\n return a.compatMode === b.compatMode;\n else if (a.type === NodeType.DocumentType)\n return a.name === b.name && a.publicId === b.publicId && a.systemId === b.systemId;\n else if (a.type === NodeType.Comment || a.type === NodeType.Text || a.type === NodeType.CDATA)\n return a.textContent === b.textContent;\n else if (a.type === NodeType.Element)\n return a.tagName === b.tagName && JSON.stringify(a.attributes) === JSON.stringify(b.attributes) && a.isSVG === b.isSVG && a.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i = 1; i < childNodes2.length; i++) {\n if (childNodes2[i].textContent && typeof childNodes2[i].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i].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[i - 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[i - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(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 chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\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 c = attributeValue.charAt(pos);\n if (c === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c === \"(\") {\n inParens = true;\n }\n } else {\n if (c === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c;\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 a = cachedDocument.get(doc);\n if (!a) {\n a = doc.createElement(\"a\");\n cachedDocument.set(doc, a);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a.setAttribute(\"href\", customHref);\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return [\"video\", \"audio\"].includes(tagName) && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e) {\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.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.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index.childNodes(el).length) {\n return false;\n }\n } else if (index.parentElement(node2) === null) {\n return false;\n } else {\n el = index.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 (e) {\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(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType.Document,\n childNodes: []\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: \"\",\n rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: index.textContent(n) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc)) return void 0;\n const docId = mirror.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index.parentNode(n);\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.textContent(n);\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.parentElement(n)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\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((s) => {\n return s.href === n.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\" && n.sheet) {\n let cssText = stringifyStylesheet(\n n.sheet\n );\n if (cssText) {\n if (n.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n const value = n.value;\n const checked = n.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n,\n type: getInputType(n),\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 (n.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n.open) {\n attributes.rr_open_mode = n.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n.__context === \"2d\") {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n)) {\n const canvasDataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n.width;\n blankCanvas.height = n.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 = n;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if ([\"audio\", \"video\"].includes(tagName)) {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\n mediaAttributes.rr_mediaMuted = n.muted;\n mediaAttributes.rr_mediaLoop = n.loop;\n mediaAttributes.rr_mediaVolume = n.volume;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n.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 (e) {\n }\n return {\n type: NodeType.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n } else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n, \"not serialized\");\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType.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 mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index.shadowRoot(n);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document || serializedNode.type === NodeType.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index.childNodes(n))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n) && (shadowRootEl = index.shadowRoot(n))) {\n for (const childN of Array.from(index.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.parentNode(n);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n,\n () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\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 n,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType.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 n,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\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 n,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const {\n mirror = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOMDefaults(slimDOM);\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction visitSnapshot(node2, onVisit) {\n function walk(current) {\n onVisit(current);\n if (current.type === NodeType.Document || current.type === NodeType.Element) {\n current.childNodes.forEach(walk);\n }\n }\n walk(node2);\n}\nfunction cleanupSnapshot() {\n _id = 1;\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n if (typeof f == \"function\") {\n var a = function a2() {\n if (this instanceof a2) {\n return Reflect.construct(f, arguments, this.constructor);\n }\n return f.apply(this, arguments);\n };\n a.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a;\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 CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin2) {\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 (plugin2) {\n this.plugin = plugin2;\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.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 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 i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || 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((i) => {\n value = i.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((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.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((i) => {\n let p = i.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.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((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.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 Stringifier2 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node {\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 s = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.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 i = 0; i < index2; i++) {\n if (string[i] === \"\\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();\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((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\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, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\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 Declaration 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 i = size;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\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 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(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 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 || /^\\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 i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].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 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(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 i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i);\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, (i) => {\n result2 += i;\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((i) => i.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((i) => i.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((i) => i.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 Comment 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((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markDirtyUp(i);\n }\n }\n}\nlet Container$7 = class Container 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((i) => {\n if (typeof i === \"function\") {\n return (child, index2) => i(child.toProxy(), index2);\n } else {\n return i;\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((i) => i.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 i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"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((i) => {\n if (!i[my$1]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean$1]) markDirtyUp(i);\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\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, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e) {\n throw child.addToError(e);\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, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\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 Document 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 warnOnce(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 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 = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = 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(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.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 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, n, 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 n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== 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 AtRule 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 Root 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 Rule 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 tokenizer2 = 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 i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser {\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 [i, 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 i;\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 = tokenizer2(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 i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\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 = i; 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((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[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 i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 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, i) => all + i[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 i = from; i < tokens.length; i++) {\n result2 += tokens[i][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 Parser2 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser2(input2);\n try {\n parser2.parse();\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.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 e.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 e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e;\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((i) => cleanMarks(i));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = 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(css);\n } else if (css instanceof LazyResult || 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((plugin2) => {\n if (typeof plugin2 === \"object\" && plugin2.prepare) {\n return { ...plugin2, ...plugin2.prepare(this.result) };\n } else {\n return plugin2;\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 plugin2 = 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 = plugin2.postcssPlugin;\n error.setMessage();\n } else if (plugin2.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin2.postcssPlugin;\n let pluginVer = plugin2.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a[0] !== b[0] || parseInt(a[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 = (plugin2, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin2, cb]);\n };\n for (let plugin2 of this.plugins) {\n if (typeof plugin2 === \"object\") {\n for (let event in plugin2) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin2.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin2[event] === \"object\") {\n for (let filter in plugin2[event]) {\n if (filter === \"*\") {\n add(plugin2, event, plugin2[event][filter]);\n } else {\n add(\n plugin2,\n event + \"-\" + filter.toLowerCase(),\n plugin2[event][filter]\n );\n }\n }\n } else if (typeof plugin2[event] === \"function\") {\n add(plugin2, event, plugin2[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 i = 0; i < this.plugins.length; i++) {\n let plugin2 = this.plugins[i];\n let promise = this.runOnRoot(plugin2);\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 (e) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin2, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin2;\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 (e) {\n throw this.handleError(e);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin2) {\n this.result.lastPlugin = plugin2;\n try {\n if (typeof plugin2 === \"object\" && plugin2.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin2.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin2.Once(this.result.root, this.helpers);\n } else if (typeof plugin2 === \"function\") {\n return plugin2(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 plugin2 of this.plugins) {\n let promise = this.runOnRoot(plugin2);\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 [plugin2, visitor] of visitors) {\n this.result.lastPlugin = plugin2;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e) {\n throw this.handleError(e, 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 [plugin2, 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 = plugin2;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e) {\n throw this.handleError(e, 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 MapGenerator2 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce2 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$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;\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 MapGenerator2(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(\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 NoWorkResult2 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$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 i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.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(i + \" 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(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin2) {\n this.plugins = this.plugins.concat(this.normalize([plugin2]));\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 PreviousMap2 = 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((n) => fromJSON$1(n));\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__: PreviousMap2.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON$1(n, 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 CssSyntaxError2 = cssSyntaxError;\nlet Declaration2 = declaration;\nlet LazyResult2 = lazyResult;\nlet Container2 = container;\nlet Processor2 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document2 = document$1;\nlet Warning2 = warning;\nlet Comment2 = comment;\nlet AtRule2 = atRule;\nlet Result2 = result;\nlet Input2 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule2 = rule;\nlet Root2 = root;\nlet Node2 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2(plugins);\n}\npostcss.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().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 Comment2(defaults);\npostcss.atRule = (defaults) => new AtRule2(defaults);\npostcss.decl = (defaults) => new Declaration2(defaults);\npostcss.rule = (defaults) => new Rule2(defaults);\npostcss.root = (defaults) => new Root2(defaults);\npostcss.document = (defaults) => new Document2(defaults);\npostcss.CssSyntaxError = CssSyntaxError2;\npostcss.Declaration = Declaration2;\npostcss.Container = Container2;\npostcss.Processor = Processor2;\npostcss.Document = Document2;\npostcss.Comment = Comment2;\npostcss.Warning = Warning2;\npostcss.AtRule = AtRule2;\npostcss.Result = Result2;\npostcss.Input = Input2;\npostcss.Rule = Rule2;\npostcss.Root = Root2;\npostcss.Node = Node2;\nLazyResult2.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;\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n) {\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === \"link\" && n.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n let result2 = cssText;\n try {\n const ast = postcss$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n result2 = ast.css;\n } catch (error) {\n console.warn(\"Failed to adapt css for replay\", error);\n }\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction applyCssSplits(n, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n.childNodes) {\n if (scn.type === NodeType.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n let adaptedCss = \"\";\n if (hackCss) {\n adaptedCss = adaptCssForReplay(cssTextSplits.join(\"\"), cache);\n }\n let startIndex = 0;\n for (let i = 0; i < childTextNodes.length; i++) {\n if (i === cssTextSplits.length) {\n break;\n }\n const childTextNode = childTextNodes[i];\n if (!hackCss) {\n childTextNode.textContent = cssTextSplits[i];\n } else if (i < cssTextSplits.length - 1) {\n let endIndex = startIndex;\n let endSearch = cssTextSplits[i + 1].length;\n endSearch = Math.min(endSearch, 30);\n let found = false;\n for (; endSearch > 2; endSearch--) {\n const searchBit = cssTextSplits[i + 1].substring(0, endSearch);\n const searchIndex = adaptedCss.substring(startIndex).indexOf(searchBit);\n found = searchIndex !== -1;\n if (found) {\n endIndex += searchIndex;\n break;\n }\n }\n if (!found) {\n endIndex += cssTextSplits[i].length;\n }\n childTextNode.textContent = adaptedCss.substring(startIndex, endIndex);\n startIndex = endIndex;\n } else {\n childTextNode.textContent = adaptedCss.substring(startIndex);\n }\n }\n}\nfunction buildStyleNode(n, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n.childNodes.length) {\n applyCssSplits(n, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n, options) {\n var _a;\n const { doc, hackCss, cache } = options;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(\n n.name || \"html\",\n n.publicId,\n n.systemId\n );\n case NodeType.Element: {\n const tagName = getTagName(n);\n let node2;\n if (n.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n.isCustom && // If the browser supports custom elements\n ((_a = doc.defaultView) == null ? void 0 : _a.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n.tagName)\n )\n doc.defaultView.customElements.define(\n n.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\n continue;\n }\n let value = n.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\n node2.appendChild(doc.createTextNode(value));\n n.childNodes = [];\n continue;\n }\n try {\n if (n.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n.attributes.rel === \"preload\" && n.attributes.as === \"script\" || n.attributes.rel === \"modulepreload\")) {\n } else if (tagName === \"link\" && n.attributes.rel === \"prefetch\" && typeof n.attributes.href === \"string\" && extractFileExtension(n.attributes.href) === \"js\") {\n } else if (tagName === \"img\" && n.attributes.srcset && n.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e) => console.warn(\"media playback error\", e));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType.Text:\n if (n.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n.textContent, cache));\n }\n return doc.createTextNode(n.textContent);\n case NodeType.CDATA:\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n const {\n doc,\n mirror,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror.has(n.id)) {\n const nodeInMirror = mirror.getNode(n.id);\n const meta = mirror.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n)) return mirror.getNode(n.id);\n }\n let node2 = buildNode(n, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\n mirror.replace(n.rootId, doc);\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === \"BackCompat\" && n.childNodes && n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element && \"xmlns\" in n.childNodes[0].attributes && n.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n );\n } else {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n );\n }\n }\n node2 = doc;\n }\n mirror.add(node2, n);\n if ((n.type === NodeType.Document || n.type === NodeType.Element) && !skipChild) {\n for (const childN of n.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n.type === NodeType.Document && childN.type == NodeType.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror.getIds()) {\n if (mirror.has(id)) {\n walk(mirror.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror) {\n const n = mirror.getMeta(node2);\n if ((n == null ? void 0 : n.type) !== NodeType.Element) {\n return;\n }\n const el = node2;\n for (const name in n.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror);\n });\n return node2;\n}\nexport {\n IGNORED_NODE,\n Mirror,\n absolutifyURLs,\n adaptCssForReplay,\n buildNodeWithSN,\n classMatchesRegex,\n cleanupSnapshot,\n createCache,\n createMirror,\n escapeImportStatement,\n extractFileExtension,\n fixSafariColons,\n genId,\n getInputType,\n ignoreAttribute,\n is2DCanvasBlank,\n isCSSImportRule,\n isCSSStyleRule,\n isElement,\n isNativeShadowDom,\n isNodeMetaEqual,\n isShadowRoot,\n markCssSplits,\n maskInputValue,\n needMaskingText,\n normalizeCssString,\n rebuild,\n serializeNodeWithId,\n slimDOMDefaults,\n snapshot,\n splitCssText,\n stringifyRule,\n stringifyStylesheet,\n toLowerCase,\n transformAttribute,\n visitSnapshot\n};\n//# sourceMappingURL=rrweb-snapshot.js.map\n","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 __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);\nlet Mirror$1 = class Mirror {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.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(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.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(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n if (typeof f == \"function\") {\n var a = function a2() {\n if (this instanceof a2) {\n return Reflect.construct(f, arguments, this.constructor);\n }\n return f.apply(this, arguments);\n };\n a.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a;\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 CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin2) {\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 (plugin2) {\n this.plugin = plugin2;\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.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 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 i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || 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((i) => {\n value = i.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((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.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((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.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((i) => {\n let p = i.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.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((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.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 Stringifier2 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node {\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 s = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.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 i = 0; i < index2; i++) {\n if (string[i] === \"\\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();\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((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\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, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\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 Declaration 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 i = size;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\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 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(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 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 || /^\\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 i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].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 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(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 i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i);\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, (i) => {\n result2 += i;\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((i) => i.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((i) => i.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((i) => i.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 Comment 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((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markDirtyUp(i);\n }\n }\n}\nlet Container$7 = class Container 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((i) => {\n if (typeof i === \"function\") {\n return (child, index2) => i(child.toProxy(), index2);\n } else {\n return i;\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((i) => i.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 i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"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((i) => {\n if (!i[my$1]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean$1]) markDirtyUp(i);\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\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, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e) {\n throw child.addToError(e);\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, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\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 Document2 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 warnOnce(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 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 = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = 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(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.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 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, n, 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 n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== 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 AtRule 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 Root 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 Rule 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 tokenizer2 = 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 i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser {\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 [i, 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 i;\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 = tokenizer2(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 i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\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 = i; 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((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[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 i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 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, i) => all + i[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 i = from; i < tokens.length; i++) {\n result2 += tokens[i][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 Parser2 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser2(input2);\n try {\n parser2.parse();\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.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 e.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 e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e;\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((i) => cleanMarks(i));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = 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(css);\n } else if (css instanceof LazyResult || 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((plugin2) => {\n if (typeof plugin2 === \"object\" && plugin2.prepare) {\n return { ...plugin2, ...plugin2.prepare(this.result) };\n } else {\n return plugin2;\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 plugin2 = 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 = plugin2.postcssPlugin;\n error.setMessage();\n } else if (plugin2.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin2.postcssPlugin;\n let pluginVer = plugin2.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a[0] !== b[0] || parseInt(a[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 = (plugin2, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin2, cb]);\n };\n for (let plugin2 of this.plugins) {\n if (typeof plugin2 === \"object\") {\n for (let event in plugin2) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin2.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin2[event] === \"object\") {\n for (let filter in plugin2[event]) {\n if (filter === \"*\") {\n add(plugin2, event, plugin2[event][filter]);\n } else {\n add(\n plugin2,\n event + \"-\" + filter.toLowerCase(),\n plugin2[event][filter]\n );\n }\n }\n } else if (typeof plugin2[event] === \"function\") {\n add(plugin2, event, plugin2[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 i = 0; i < this.plugins.length; i++) {\n let plugin2 = this.plugins[i];\n let promise = this.runOnRoot(plugin2);\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 (e) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin2, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin2;\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 (e) {\n throw this.handleError(e);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin2) {\n this.result.lastPlugin = plugin2;\n try {\n if (typeof plugin2 === \"object\" && plugin2.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin2.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin2.Once(this.result.root, this.helpers);\n } else if (typeof plugin2 === \"function\") {\n return plugin2(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 plugin2 of this.plugins) {\n let promise = this.runOnRoot(plugin2);\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 [plugin2, visitor] of visitors) {\n this.result.lastPlugin = plugin2;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e) {\n throw this.handleError(e, 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 [plugin2, 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 = plugin2;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e) {\n throw this.handleError(e, 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 MapGenerator2 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce2 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$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;\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 MapGenerator2(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(\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 NoWorkResult2 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$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 i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.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(i + \" 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(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin2) {\n this.plugins = this.plugins.concat(this.normalize([plugin2]));\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 PreviousMap2 = 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((n) => fromJSON$1(n));\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__: PreviousMap2.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON$1(n, 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 CssSyntaxError2 = cssSyntaxError;\nlet Declaration2 = declaration;\nlet LazyResult2 = lazyResult;\nlet Container2 = container;\nlet Processor2 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document22 = document$1;\nlet Warning2 = warning;\nlet Comment2 = comment;\nlet AtRule2 = atRule;\nlet Result2 = result;\nlet Input2 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule2 = rule;\nlet Root2 = root;\nlet Node2 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2(plugins);\n}\npostcss.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().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 Comment2(defaults);\npostcss.atRule = (defaults) => new AtRule2(defaults);\npostcss.decl = (defaults) => new Declaration2(defaults);\npostcss.rule = (defaults) => new Rule2(defaults);\npostcss.root = (defaults) => new Root2(defaults);\npostcss.document = (defaults) => new Document22(defaults);\npostcss.CssSyntaxError = CssSyntaxError2;\npostcss.Declaration = Declaration2;\npostcss.Container = Container2;\npostcss.Processor = Processor2;\npostcss.Document = Document22;\npostcss.Comment = Comment2;\npostcss.Warning = Warning2;\npostcss.AtRule = AtRule2;\npostcss.Result = Result2;\npostcss.Input = Input2;\npostcss.Rule = Rule2;\npostcss.Root = Root2;\npostcss.Node = Node2;\nLazyResult2.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField(this, \"parentElement\", null);\n __publicField(this, \"parentNode\", null);\n __publicField(this, \"ownerDocument\");\n __publicField(this, \"firstChild\", null);\n __publicField(this, \"lastChild\", null);\n __publicField(this, \"previousSibling\", null);\n __publicField(this, \"nextSibling\", null);\n __publicField(this, \"ELEMENT_NODE\", 1);\n __publicField(this, \"TEXT_NODE\", 3);\n // corresponding nodeType value of standard HTML Node\n __publicField(this, \"nodeType\");\n __publicField(this, \"nodeName\");\n __publicField(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField(this, \"nodeType\", 9);\n __publicField(this, \"nodeName\", \"#document\");\n __publicField(this, \"compatMode\", \"CSS1Compat\");\n __publicField(this, \"RRNodeType\", NodeType$1.Document);\n __publicField(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(content) {\n let publicId;\n if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField(this, \"nodeType\", 10);\n __publicField(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField(this, \"name\");\n __publicField(this, \"publicId\");\n __publicField(this, \"systemId\");\n __publicField(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField(this, \"nodeType\", 1);\n __publicField(this, \"RRNodeType\", NodeType$1.Element);\n __publicField(this, \"tagName\");\n __publicField(this, \"attributes\", {});\n __publicField(this, \"shadowRoot\", null);\n __publicField(this, \"scrollLeft\");\n __publicField(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot;\n return shadowRoot;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"currentTime\");\n __publicField(this, \"volume\");\n __publicField(this, \"paused\");\n __publicField(this, \"muted\");\n __publicField(this, \"playbackRate\");\n __publicField(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"tagName\", \"DIALOG\");\n __publicField(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 3);\n __publicField(this, \"nodeName\", \"#text\");\n __publicField(this, \"RRNodeType\", NodeType$1.Text);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 8);\n __publicField(this, \"nodeName\", \"#comment\");\n __publicField(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeName\", \"#cdata-section\");\n __publicField(this, \"nodeType\", 4);\n __publicField(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField(this, \"onChange\");\n __publicField(this, \"classes\", []);\n __publicField(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a = oldTree.parentNode) == null ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation) => replayer.applyCanvas(\n canvasMutation.event,\n canvasMutation.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e) {\n console.warn(e);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a = replayer.afterAppend) == null ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e) {\n console.warn(e);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n const oldChild2 = oldChildren[i];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e) {\n console.warn(e);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e) {\n console.warn(e);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e) {\n console.warn(e);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror) {\n super();\n __publicField(this, \"UNSERIALIZED_STARTING_ID\", -2);\n // In the rrweb replayer, there are some unserialized nodes like the element that stores the injected style rules.\n // These unserialized nodes may interfere the execution of the diff algorithm.\n // The id of serialized node is larger than 0. So this value less than 0 is used as id for these unserialized nodes.\n __publicField(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField(this, \"mirror\", createMirror());\n __publicField(this, \"scrollData\", null);\n if (mirror) {\n this.mirror = mirror;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"inputData\", null);\n __publicField(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rr_dataURL\", null);\n __publicField(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror) {\n super(upperTagName);\n __publicField(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror2();\n}\nclass Mirror2 {\n constructor() {\n __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.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(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nfunction printRRDom(rootNode, mirror) {\n return walk(rootNode, mirror, \"\");\n}\nfunction walk(node2, mirror, blankSpace) {\n let printText = `${blankSpace}${mirror.getId(node2)} ${node2.toString()}\n`;\n if (node2.RRNodeType === NodeType$1.Element) {\n const element = node2;\n if (element.shadowRoot)\n printText += walk(element.shadowRoot, mirror, blankSpace + \" \");\n }\n for (const child of node2.childNodes)\n printText += walk(child, mirror, blankSpace + \" \");\n if (node2.nodeName === \"IFRAME\")\n printText += walk(\n node2.contentDocument,\n mirror,\n blankSpace + \" \"\n );\n return printText;\n}\nexport {\n BaseRRCDATASection,\n BaseRRComment,\n BaseRRDialogElement,\n BaseRRDocument,\n BaseRRDocumentType,\n BaseRRElement,\n BaseRRMediaElement,\n BaseRRNode,\n BaseRRText,\n ClassList,\n Mirror2 as Mirror,\n NodeType,\n RRCDATASection,\n RRCanvasElement,\n RRComment,\n RRDialogElement,\n RRDocument,\n RRDocumentType,\n RRElement,\n RRIFrameElement,\n RRMediaElement,\n BaseRRNode as RRNode,\n RRStyleElement,\n RRText,\n buildFromDom,\n buildFromNode,\n createMirror,\n createOrGetNode,\n diff,\n getDefaultSN,\n printRRDom\n};\n//# sourceMappingURL=rrdom.js.map\n","const testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.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 _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\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 = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.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 ownerDocument(n) {\n return getUntaintedAccessor(\"Node\", n, \"ownerDocument\");\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nexport {\n childNodes,\n contains,\n index as default,\n getRootNode,\n getUntaintedAccessor,\n getUntaintedMethod,\n getUntaintedPrototype,\n host,\n isAngularZonePresent,\n mutationObserverCtor,\n ownerDocument,\n parentElement,\n parentNode,\n patch,\n querySelector,\n querySelectorAll,\n shadowRoot,\n styleSheets,\n textContent\n};\n//# sourceMappingURL=utils.js.map\n","import type {\n throttleOptions,\n listenerHandler,\n hookResetter,\n blockClass,\n addedNodeMutation,\n DocumentDimension,\n IWindow,\n DeprecatedMirror,\n textMutation,\n IMirror,\n} from '@rrweb/types';\nimport type { Mirror, SlimDOMOptions } from 'rrweb-snapshot';\nimport { isShadowRoot, IGNORED_NODE, classMatchesRegex } from 'rrweb-snapshot';\nimport { RRNode, RRIFrameElement, BaseRRNode } from 'rrdom';\nimport dom from '@rrweb/utils';\n\nexport function on(\n type: string,\n fn: EventListenerOrEventListenerObject,\n target: Document | IWindow = document,\n): listenerHandler {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\n\n// https://github.com/rrweb-io/rrweb/pull/407\nconst DEPARTED_MIRROR_ACCESS_WARNING =\n 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\n/** @deprecated */\nexport let _mirror: DeprecatedMirror = {\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\n// copy from underscore and modified\nexport function throttle<T>(\n func: (arg: T) => void,\n wait: number,\n options: throttleOptions = {},\n) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n let previous = 0;\n return function (...args: T[]) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-this-alias\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}\n\nexport function hookSetter<T>(\n target: T,\n key: string | number | symbol,\n d: PropertyDescriptor,\n isRevoked?: boolean,\n win = window,\n): hookResetter {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked\n ? d\n : {\n set(value) {\n // put hooked setter into event loop to avoid of set latency\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}\n\n// guard against old third party libraries which redefine Date.now\nlet nowTimestamp = Date.now;\n\nif (!(/*@__PURE__*/ /[1-9][0-9]{12}/.test(Date.now().toString()))) {\n // they have already redefined it! use a fallback\n nowTimestamp = () => new Date().getTime();\n}\nexport { nowTimestamp };\n\nexport function getWindowScroll(win: Window) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : doc.documentElement.scrollLeft ||\n (doc?.body && dom.parentElement(doc.body)?.scrollLeft) ||\n doc?.body?.scrollLeft ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : doc?.documentElement.scrollTop ||\n (doc?.body && dom.parentElement(doc.body)?.scrollTop) ||\n doc?.body?.scrollTop ||\n 0,\n };\n}\n\nexport function getWindowHeight(): number {\n return (\n window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight)\n );\n}\n\nexport function getWindowWidth(): number {\n return (\n window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth)\n );\n}\n\n/**\n * Returns the given node as an HTMLElement if it is one, otherwise the parent node as an HTMLElement\n * @param node - node to check\n * @returns HTMLElement or null\n */\n\nexport function closestElementOfNode(node: Node | null): HTMLElement | null {\n if (!node) {\n return null;\n }\n const el: HTMLElement | null =\n node.nodeType === node.ELEMENT_NODE\n ? (node as HTMLElement)\n : dom.parentElement(node);\n return el;\n}\n\n/**\n * Checks if the given element set to be blocked by rrweb\n * @param node - node to check\n * @param blockClass - class name to check\n * @param blockSelector - css selectors to check\n * @param checkAncestors - whether to search through parent nodes for the block class\n * @returns true/false if the node was blocked or not\n */\nexport function isBlocked(\n node: Node | null,\n blockClass: blockClass,\n blockSelector: string | null,\n checkAncestors: boolean,\n): boolean {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n\n if (!el) {\n return false;\n }\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 (e) {\n // e\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}\n\nexport function isSerialized(n: Node, mirror: Mirror): boolean {\n return mirror.getId(n) !== -1;\n}\n\nexport function isIgnored(\n n: Node,\n mirror: Mirror,\n slimDOMOptions: SlimDOMOptions,\n): boolean {\n if ((n as Element).tagName === 'TITLE' && slimDOMOptions.headTitleMutations) {\n // we do this check here but not in rrweb-snapshot\n // to block mutations/animations on the title.\n // the headTitleMutations option isn't intended to block recording of the initial value\n return true;\n }\n // The main part of the slimDOM check happens in\n // rrweb-snapshot::serializeNodeWithId\n return mirror.getId(n) === IGNORED_NODE;\n}\n\nexport function isAncestorRemoved(target: Node, mirror: Mirror): boolean {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n const parent = dom.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n // if the root is not document, it means the node is not in the DOM tree anymore\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror);\n}\n\nexport function legacy_isTouchEvent(\n event: MouseEvent | TouchEvent | PointerEvent,\n): event is TouchEvent {\n return Boolean((event as TouchEvent).changedTouches);\n}\n\nexport function polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.NodeList.prototype.forEach = Array.prototype\n .forEach as unknown as NodeList['forEach'];\n }\n\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach as unknown as DOMTokenList['forEach'];\n }\n}\n\ntype ResolveTree = {\n value: addedNodeMutation;\n children: ResolveTree[];\n parent: ResolveTree | null;\n};\n\nexport function queueToResolveTrees(queue: addedNodeMutation[]): ResolveTree[] {\n const queueNodeMap: Record<number, ResolveTree> = {};\n const putIntoMap = (\n m: addedNodeMutation,\n parent: ResolveTree | null,\n ): ResolveTree => {\n const nodeInTree: ResolveTree = {\n value: m,\n parent,\n children: [],\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n\n const queueNodeTrees: ResolveTree[] = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent),\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n\n return queueNodeTrees;\n}\n\nexport function iterateResolveTree(\n tree: ResolveTree,\n cb: (mutation: addedNodeMutation) => unknown,\n) {\n cb(tree.value);\n /**\n * The resolve tree was designed to reflect the DOM layout,\n * but we need append next sibling first, so we do a reverse\n * loop here.\n */\n for (let i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\n\nexport type AppendedIframe = {\n mutationInQueue: addedNodeMutation;\n builtNode: HTMLIFrameElement | RRIFrameElement;\n};\n\nexport function isSerializedIframe<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\n\nexport function isSerializedStylesheet<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(\n n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n (n as HTMLElement).getAttribute &&\n (n as HTMLElement).getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n),\n );\n}\n\nexport function getBaseDimension(\n node: Node,\n rootIframe: Node,\n): DocumentDimension {\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1,\n };\n }\n\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n // the iframe element may have a scale transform\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x:\n frameDimension.x * frameBaseDimension.relativeScale +\n frameBaseDimension.x,\n y:\n frameDimension.y * frameBaseDimension.relativeScale +\n frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\n };\n}\n\nexport function hasShadowRoot<T extends Node | RRNode>(\n n: T,\n): n is T & { shadowRoot: ShadowRoot } {\n if (!n) return false;\n if (n instanceof BaseRRNode && 'shadowRoot' in n) {\n return Boolean(n.shadowRoot);\n }\n return Boolean(dom.shadowRoot(n as unknown as Element));\n}\n\nexport function getNestedRule(\n rules: CSSRuleList,\n position: number[],\n): CSSGroupingRule {\n const rule = rules[position[0]] as CSSGroupingRule;\n if (position.length === 1) {\n return rule;\n } else {\n return getNestedRule(\n (rule.cssRules[position[1]] as CSSGroupingRule).cssRules,\n position.slice(2),\n );\n }\n}\n\nexport function getPositionsAndIndex(nestedIndex: number[]) {\n const positions = [...nestedIndex];\n const index = positions.pop();\n return { positions, index };\n}\n\n/**\n * Returns the latest mutation in the queue for each node.\n * @param mutations - mutations The text mutations to filter.\n * @returns The filtered text mutations.\n */\nexport function uniqueTextMutations(mutations: textMutation[]): textMutation[] {\n const idSet = new Set<number>();\n const uniqueMutations: textMutation[] = [];\n\n for (let i = mutations.length; i--; ) {\n const mutation = mutations[i];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n\n return uniqueMutations;\n}\n\nexport class StyleSheetMirror {\n private id = 1;\n private styleIDMap = new WeakMap<CSSStyleSheet, number>();\n private idStyleMap = new Map<number, CSSStyleSheet>();\n\n getId(stylesheet: CSSStyleSheet): number {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n\n has(stylesheet: CSSStyleSheet): boolean {\n return this.styleIDMap.has(stylesheet);\n }\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: CSSStyleSheet, id?: number): number {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId: number;\n if (id === undefined) {\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\n getStyle(id: number): CSSStyleSheet | null {\n return this.idStyleMap.get(id) || null;\n }\n\n reset(): void {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n\n generateId(): number {\n return this.id++;\n }\n}\n\n/**\n * Get the direct shadow host of a node in shadow dom. Returns null if it is not in a shadow dom.\n */\nexport function getShadowHost(n: Node): Element | null {\n let shadowHost: Element | null = null;\n if (\n 'getRootNode' in n &&\n dom.getRootNode(n)?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\n dom.host(dom.getRootNode(n) as ShadowRoot)\n )\n shadowHost = dom.host(dom.getRootNode(n) as ShadowRoot);\n return shadowHost;\n}\n\n/**\n * Get the root shadow host of a node in nested shadow doms. Returns the node itself if it is not in a shadow dom.\n */\nexport function getRootShadowHost(n: Node): Node {\n let rootShadowHost: Node = n;\n\n let shadowHost: Element | null;\n // If n is in a nested shadow dom.\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n\n return rootShadowHost;\n}\n\nexport function shadowHostInDom(n: Node): boolean {\n const doc = dom.ownerDocument(n);\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n);\n return dom.contains(doc, shadowHost);\n}\n\nexport function inDom(n: Node): boolean {\n const doc = dom.ownerDocument(n);\n if (!doc) return false;\n return dom.contains(doc, n) || shadowHostInDom(n);\n}\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nexport {\n CanvasContext,\n EventType,\n IncrementalSource,\n MediaInteractions,\n MouseInteractions,\n NodeType,\n PointerTypes,\n ReplayerEvents\n};\n//# sourceMappingURL=types.js.map\n","import {\n serializeNodeWithId,\n transformAttribute,\n IGNORED_NODE,\n ignoreAttribute,\n isShadowRoot,\n needMaskingText,\n maskInputValue,\n Mirror,\n isNativeShadowDom,\n getInputType,\n toLowerCase,\n} from 'rrweb-snapshot';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport type {\n mutationRecord,\n textCursor,\n attributeCursor,\n removedNodeMutation,\n addedNodeMutation,\n Optional,\n} from '@rrweb/types';\nimport {\n isBlocked,\n isAncestorRemoved,\n isIgnored,\n isSerialized,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n inDom,\n getShadowHost,\n closestElementOfNode,\n} from '../utils';\nimport dom from '@rrweb/utils';\n\ntype DoubleLinkedListNode = {\n previous: DoubleLinkedListNode | null;\n next: DoubleLinkedListNode | null;\n value: NodeInLinkedList;\n};\ntype NodeInLinkedList = Node & {\n __ln: DoubleLinkedListNode;\n};\n\nfunction isNodeInLinkedList(n: Node | NodeInLinkedList): n is NodeInLinkedList {\n return '__ln' in n;\n}\n\nclass DoubleLinkedList {\n public length = 0;\n public head: DoubleLinkedListNode | null = null;\n public tail: DoubleLinkedListNode | null = null;\n\n public get(position: number) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current?.next || null;\n }\n return current;\n }\n\n public addNode(n: Node) {\n const node: DoubleLinkedListNode = {\n value: n as NodeInLinkedList,\n previous: null,\n next: null,\n };\n (n as NodeInLinkedList).__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n } else if (\n n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous\n ) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n } else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n\n public removeNode(n: NodeInLinkedList) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\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 (n.__ln) {\n delete (n as Optional<NodeInLinkedList, '__ln'>).__ln;\n }\n this.length--;\n }\n}\n\nconst moveKey = (id: number, parentId: number) => `${id}@${parentId}`;\n\n/**\n * controls behaviour of a MutationObserver\n */\nexport default class MutationBuffer {\n private frozen = false;\n private locked = false;\n\n private texts: textCursor[] = [];\n private attributes: attributeCursor[] = [];\n private attributeMap = new WeakMap<Node, attributeCursor>();\n private removes: removedNodeMutation[] = [];\n private mapRemoves: Node[] = [];\n\n private movedMap: Record<string, true> = {};\n\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n private addedSet = new Set<Node>();\n private movedSet = new Set<Node>();\n private droppedSet = new Set<Node>();\n private removesSubTreeCache = new Set<Node>();\n\n private mutationCb: observerParam['mutationCb'];\n private blockClass: observerParam['blockClass'];\n private blockSelector: observerParam['blockSelector'];\n private maskTextClass: observerParam['maskTextClass'];\n private maskTextSelector: observerParam['maskTextSelector'];\n private inlineStylesheet: observerParam['inlineStylesheet'];\n private maskInputOptions: observerParam['maskInputOptions'];\n private maskTextFn: observerParam['maskTextFn'];\n private maskInputFn: observerParam['maskInputFn'];\n private keepIframeSrcFn: observerParam['keepIframeSrcFn'];\n private recordCanvas: observerParam['recordCanvas'];\n private inlineImages: observerParam['inlineImages'];\n private slimDOMOptions: observerParam['slimDOMOptions'];\n private dataURLOptions: observerParam['dataURLOptions'];\n private doc: observerParam['doc'];\n private mirror: observerParam['mirror'];\n private iframeManager: observerParam['iframeManager'];\n private stylesheetManager: observerParam['stylesheetManager'];\n private shadowDomManager: observerParam['shadowDomManager'];\n private canvasManager: observerParam['canvasManager'];\n private processedNodeManager: observerParam['processedNodeManager'];\n private unattachedDoc: HTMLDocument;\n\n public init(options: MutationBufferParam) {\n (\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 ] as const\n ).forEach((key) => {\n // just a type trick, the runtime result is correct\n this[key] = options[key] as never;\n });\n }\n\n public freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n\n public unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n\n public isFrozen() {\n return this.frozen;\n }\n\n public lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n\n public unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n\n public reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n\n public processMutations = (mutations: mutationRecord[]) => {\n mutations.forEach(this.processMutation); // adds mutations to the buffer\n this.emit(); // clears buffer if not locked/frozen\n };\n\n public emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n\n // delay any modification of the mirror until this function\n // so that the mirror for takeFullSnapshot doesn't get mutated while it's event is being processed\n\n const adds: addedNodeMutation[] = [];\n const addedIds = new Set<number>();\n\n /**\n * Sometimes child node may be pushed before its newly added\n * parent, so we init a queue to store these nodes.\n */\n const addList = new DoubleLinkedList();\n const getNextId = (n: Node): number | null => {\n let ns: Node | null = n;\n let nextId: number | null = IGNORED_NODE; // slimDOM: ignored\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 = (n: Node) => {\n const parent = dom.parentNode(n);\n if (!parent || !inDom(n)) {\n return;\n }\n let cssCaptured = false;\n if (n.nodeType === Node.TEXT_NODE) {\n const parentTag = (parent as Element).tagName;\n if (parentTag === 'TEXTAREA') {\n // genTextAreaValueMutation already called via parent\n return;\n } else if (parentTag === 'STYLE' && this.addedSet.has(parent)) {\n // css content will be recorded via parent's _cssText attribute when\n // mutation adds entire <style> element\n cssCaptured = true;\n }\n }\n\n const parentId = isShadowRoot(parent)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(parent);\n\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\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 as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN as HTMLLinkElement,\n );\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.shadowDomManager.addShadowRoot(dom.shadowRoot(n)!, 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\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift()!);\n }\n\n for (const n of this.movedSet) {\n if (\n isParentRemoved(this.removesSubTreeCache, n, this.mirror) &&\n !this.movedSet.has(dom.parentNode(n)!)\n ) {\n continue;\n }\n pushAdd(n);\n }\n\n for (const n of this.addedSet) {\n if (\n !isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removesSubTreeCache, n, this.mirror)\n ) {\n pushAdd(n);\n } else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n } else {\n this.droppedSet.add(n);\n }\n }\n\n let candidate: DoubleLinkedListNode | null = null;\n while (addList.length) {\n let node: DoubleLinkedListNode | null = null;\n if (candidate) {\n const parentId = this.mirror.getId(dom.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n // ensure _node is defined before attempting to find value\n if (_node) {\n const parentId = this.mirror.getId(dom.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n\n if (nextId === -1) continue;\n // nextId !== -1 && parentId !== -1\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n // nextId !== -1 && parentId === -1 This branch can happen if the node is the child of shadow root\n else {\n const unhandledNode = _node.value;\n const parent = dom.parentNode(unhandledNode);\n // If the node is the direct child of a shadow root, we treat the shadow host as its parent node.\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = dom.host(parent as ShadowRoot);\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n /**\n * If all nodes in queue could not find a serialized parent,\n * it may be a bug or corner case. We need to escape the\n * dead while loop at once.\n */\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n\n const payload = {\n texts: this.texts\n .map((text) => {\n const n = text.node;\n const parent = dom.parentNode(n);\n if (parent && (parent as Element).tagName === 'TEXTAREA') {\n // the node is being ignored as it isn't in the mirror, so shift mutation to attributes on parent textarea\n this.genTextAreaValueMutation(parent as HTMLTextAreaElement);\n }\n return {\n id: this.mirror.getId(n),\n value: text.value,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((text) => !addedIds.has(text.id))\n // text mutation's id was not in the mirror map means the target node has been removed\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .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 // check if the style diff is actually shorter than the regular string based mutation\n // (which was the whole point of #464 'compact style mutation').\n if (diffAsStr.length < attributes.style.length) {\n // also: CSSOM fails badly when var() is present on shorthand properties, so only proceed with\n // the compact style mutation if these have all been accounted for\n if (\n (diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length\n ) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((attribute) => !addedIds.has(attribute.id))\n // attribute mutation's id was not in the mirror map means the target node has been removed\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n // payload may be empty if the mutations happened in some blocked elements\n if (\n !payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length\n ) {\n return;\n }\n\n // reset\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap<Node, attributeCursor>();\n this.removes = [];\n this.addedSet = new Set<Node>();\n this.movedSet = new Set<Node>();\n this.droppedSet = new Set<Node>();\n this.removesSubTreeCache = new Set<Node>();\n this.movedMap = {};\n\n this.mutationCb(payload);\n };\n\n private genTextAreaValueMutation = (textarea: HTMLTextAreaElement) => {\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 dom.childNodes(textarea),\n (cn) => dom.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\n private processMutation = (m: mutationRecord) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n const value = dom.textContent(m.target);\n\n if (\n !isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\n value !== m.oldValue\n ) {\n this.texts.push({\n value:\n needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true, // checkAncestors\n ) && value\n ? this.maskTextFn\n ? this.maskTextFn(value, closestElementOfNode(m.target))\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target as HTMLElement;\n let attributeName = m.attributeName as string;\n let value = (m.target as HTMLElement).getAttribute(attributeName);\n\n if (attributeName === 'value') {\n const type = getInputType(target);\n\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 (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n value === m.oldValue\n ) {\n return;\n }\n\n let item = this.attributeMap.get(m.target);\n if (\n target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value as string)\n ) {\n if (!(target as HTMLIFrameElement).contentDocument) {\n // we can't record it directly as we can't see into it\n // preserve the src attribute so a decision can be taken at replay time\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\n // Keep this property on inputs that used to be password inputs\n // This is used to ensure we do not unmask value when using e.g. a \"Show password\" type button\n if (\n attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password'\n ) {\n target.setAttribute('data-rr-is-password', 'true');\n }\n\n if (!ignoreAttribute(target.tagName, attributeName, value)) {\n // overwrite attribute if the mutations was triggered in same time\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 // avoid upsetting original document from a Content Security point of view\n this.unattachedDoc =\n document.implementation.createHTMLDocument();\n } catch (e) {\n // fallback to more direct method\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 (\n newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)\n ) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n // for checking\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n // \"if not set, returns the empty string\"\n item.styleDiff[pname] = false; // delete\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 /**\n * Parent is blocked, ignore all child mutations\n */\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n\n if ((m.target as Element).tagName === 'TEXTAREA') {\n // children would be ignored in genAdds as they aren't in the mirror\n this.genTextAreaValueMutation(m.target as HTMLTextAreaElement);\n return; // any removedNodes won't have been in mirror either\n }\n\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(dom.host(m.target))\n : this.mirror.getId(m.target);\n if (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n isIgnored(n, this.mirror, this.slimDOMOptions) ||\n !isSerialized(n, this.mirror)\n ) {\n return;\n }\n // removed node has not been serialized yet, just remove it from the Set\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n } else if (this.addedSet.has(m.target) && nodeId === -1) {\n /**\n * If target was newly added and removed child node was\n * not serialized, it means the child node has been removed\n * before callback fired, so we can ignore it because\n * newly added node will be serialized without child nodes.\n * TODO: verify this\n */\n } else if (isAncestorRemoved(m.target, this.mirror)) {\n /**\n * If parent id was not in the mirror map any more, it\n * means the parent node has already been removed. So\n * the node is also removed which we do not need to track\n * and replay.\n */\n } else if (\n this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]\n ) {\n deepDelete(this.movedSet, n);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow:\n isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n processRemoves(n, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n default:\n break;\n }\n };\n\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n private genAdds = (n: Node, target?: Node) => {\n // this node was already recorded in other buffer, ignore it\n if (this.processedNodeManager.inOtherBuffer(n, this)) return;\n\n // if n is added to set, there is no need to travel it and its' children again\n if (this.addedSet.has(n) || this.movedSet.has(n)) return;\n\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n);\n let targetId: number | null = 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(n), targetId)] = true;\n }\n } else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n\n // if this node is blocked `serializeNode` will turn it into a placeholder element\n // but we have to remove it's children otherwise they will be added as placeholders too\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\n dom.childNodes(n).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dom.childNodes(dom.shadowRoot(n)!).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n}\n\n/**\n * Some utils to handle the mutation observer DOM records.\n * It should be more clear to extend the native data structure\n * like Set and Map, but currently Typescript does not support\n * that.\n */\nfunction deepDelete(addsSet: Set<Node>, n: Node) {\n addsSet.delete(n);\n dom.childNodes(n).forEach((childN) => deepDelete(addsSet, childN));\n}\n\nfunction processRemoves(n: Node, cache: Set<Node>) {\n const queue = [n];\n\n while (queue.length) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const next = queue.pop()!;\n if (cache.has(next)) continue;\n cache.add(next);\n dom.childNodes(next).forEach((n) => queue.push(n));\n }\n\n return;\n}\n\nfunction isParentRemoved(removes: Set<Node>, n: Node, mirror: Mirror): boolean {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n, mirror);\n}\n\nfunction _isParentRemoved(\n removes: Set<Node>,\n n: Node,\n _mirror: Mirror,\n): boolean {\n const node: ParentNode | null = dom.parentNode(n);\n if (!node) return false;\n return removes.has(node);\n}\n\nfunction isAncestorInSet(set: Set<Node>, n: Node): boolean {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n);\n}\n\nfunction _isAncestorInSet(set: Set<Node>, n: Node): boolean {\n const parent = dom.parentNode(n);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\n","import type { ErrorHandler } from '../types';\n\ntype Callback = (...args: unknown[]) => unknown;\n\nlet errorHandler: ErrorHandler | undefined;\n\nexport function registerErrorHandler(handler: ErrorHandler | undefined) {\n errorHandler = handler;\n}\n\nexport function unregisterErrorHandler() {\n errorHandler = undefined;\n}\n\n/**\n * Wrap callbacks in a wrapper that allows to pass errors to a configured `errorHandler` method.\n */\nexport const callbackWrapper = <T extends Callback>(cb: T): T => {\n if (!errorHandler) {\n return cb;\n }\n\n const rrwebWrapped = ((...rest: unknown[]) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n\n throw error;\n }\n }) as unknown as T;\n\n return rrwebWrapped;\n};\n","import {\n type MaskInputOptions,\n maskInputValue,\n Mirror,\n getInputType,\n toLowerCase,\n} from 'rrweb-snapshot';\nimport type { FontFaceSet } from 'css-font-loading-module';\nimport {\n throttle,\n on,\n hookSetter,\n getWindowScroll,\n getWindowHeight,\n getWindowWidth,\n isBlocked,\n legacy_isTouchEvent,\n StyleSheetMirror,\n nowTimestamp,\n} from '../utils';\nimport { patch } from '@rrweb/utils';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport {\n IncrementalSource,\n MouseInteractions,\n PointerTypes,\n MediaInteractions,\n} from '@rrweb/types';\nimport type {\n mutationCallBack,\n mousemoveCallBack,\n mousePosition,\n mouseInteractionCallBack,\n listenerHandler,\n scrollCallback,\n styleSheetRuleCallback,\n viewportResizeCallback,\n inputValue,\n inputCallback,\n hookResetter,\n hooksParam,\n Arguments,\n mediaInteractionCallback,\n canvasMutationCallback,\n fontCallback,\n fontParam,\n styleDeclarationCallback,\n IWindow,\n SelectionRange,\n selectionCallback,\n customElementCallback,\n} from '@rrweb/types';\nimport MutationBuffer from './mutation';\nimport { callbackWrapper } from './error-handler';\nimport dom, { mutationObserverCtor } from '@rrweb/utils';\n\nexport const mutationBuffers: MutationBuffer[] = [];\n\n// Event.path is non-standard and used in some older browsers\ntype NonStandardEvent = Omit<Event, 'composedPath'> & {\n path: EventTarget[];\n};\n\nfunction getEventTarget(event: Event | NonStandardEvent): EventTarget | null {\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 // fallback to `event.target` below\n }\n\n return event && event.target;\n}\n\nexport function initMutationObserver(\n options: MutationBufferParam,\n rootEl: Node,\n): MutationObserver {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n // see mutation.ts for details\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor() as new (\n callback: MutationCallback,\n ) => MutationObserver)(\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}\n\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror,\n}: observerParam): listenerHandler {\n if (sampling.mousemove === false) {\n return () => {\n //\n };\n }\n\n const threshold =\n typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold =\n typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n\n let positions: mousePosition[] = [];\n let timeBaseline: number | null;\n const wrappedCb = throttle(\n callbackWrapper(\n (\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag,\n ) => {\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<MouseEvent | TouchEvent | DragEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n // 'legacy' here as we could switch to https://developer.mozilla.org/en-US/docs/Web/API/Element/pointermove_event\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target as Node),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n // it is possible DragEvent is undefined even on devices\n // that support event 'drag'\n wrappedCb(\n typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : 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}\n\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: observerParam): listenerHandler {\n if (sampling.mouseInteraction === false) {\n return () => {\n //\n };\n }\n const disableMap: Record<string, boolean | undefined> =\n sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n\n const handlers: listenerHandler[] = [];\n let currentPointerType: PointerTypes | null = null;\n const getHandler = (eventKey: keyof typeof MouseInteractions) => {\n return (event: MouseEvent | TouchEvent | PointerEvent) => {\n const target = getEventTarget(event) as Node;\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType: PointerTypes | null = 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 // we are actually listening on 'pointerdown'\n thisEventKey = 'TouchStart';\n } else if (\n MouseInteractions[eventKey] === MouseInteractions.MouseUp\n ) {\n // we are actually listening on 'pointerup'\n thisEventKey = 'TouchEnd';\n }\n } else if (pointerType === PointerTypes.Pen) {\n // TODO: these will get incorrectly emitted as MouseDown/MouseUp\n }\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (\n (thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)\n ) {\n // don't output redundant info\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null; // cleanup as we've used it\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\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)\n .filter(\n (key) =>\n Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false,\n )\n .forEach((eventKey: keyof typeof MouseInteractions) => {\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 ) as unknown as typeof eventName;\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n // these are handled by pointerdown/pointerup\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nexport function initScrollObserver({\n scrollCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: Pick<\n observerParam,\n 'scrollCb' | 'doc' | 'mirror' | 'blockClass' | 'blockSelector' | 'sampling'\n>): listenerHandler {\n const updatePosition = callbackWrapper(\n throttle<UIEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const id = mirror.getId(target as Node);\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 as HTMLElement).scrollLeft,\n y: (target as HTMLElement).scrollTop,\n });\n }\n }),\n sampling.scroll || 100,\n ),\n );\n return on('scroll', updatePosition, doc);\n}\n\nfunction initViewportResizeObserver(\n { viewportResizeCb }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\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}\n\nexport const INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap: WeakMap<EventTarget, inputValue> = new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput,\n}: observerParam): listenerHandler {\n function eventHandler(event: Event) {\n let target = getEventTarget(event) as HTMLElement | null;\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n\n /**\n * If a site changes the value 'selected' of an option element, the value of its parent element, usually a select element, will be changed as well.\n * We can treat this change as a value change of the select element the current target belongs to.\n */\n if (target && tagName === 'OPTION') {\n target = dom.parentElement(target);\n }\n if (\n !target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n\n if (\n target.classList.contains(ignoreClass) ||\n (ignoreSelector && target.matches(ignoreSelector))\n ) {\n return;\n }\n let text = (target as HTMLInputElement).value;\n let isChecked = false;\n const type: Lowercase<string> = getInputType(target) || '';\n\n if (type === 'radio' || type === 'checkbox') {\n isChecked = (target as HTMLInputElement).checked;\n } else if (\n maskInputOptions[tagName.toLowerCase() as keyof MaskInputOptions] ||\n maskInputOptions[type as keyof MaskInputOptions]\n ) {\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\n ? { text, isChecked, userTriggered }\n : { text, isChecked },\n );\n // if a radio was checked\n // the other radios with the same name attribute will be unchecked.\n const name: string | undefined = (target as HTMLInputElement).name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = (el as HTMLInputElement).value;\n cbWithDedup(\n el,\n userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked },\n );\n }\n });\n }\n }\n function cbWithDedup(target: EventTarget, v: inputValue) {\n const lastInputValue = lastInputValueMap.get(target);\n if (\n !lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked\n ) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target as Node);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers: Array<listenerHandler | hookResetter> = 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: Array<[HTMLElement, string]> = [\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((p) =>\n hookSetter<HTMLElement>(\n p[0],\n p[1],\n {\n set() {\n // mock to a normal event\n callbackWrapper(eventHandler)({\n target: this as EventTarget,\n isTrusted: false, // userTriggered to false as this could well be programmatic\n } as Event);\n },\n },\n false,\n currentWindow,\n ),\n ),\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\ntype GroupingCSSRule =\n | CSSGroupingRule\n | CSSMediaRule\n | CSSSupportsRule\n | CSSConditionRule;\ntype GroupingCSSRuleTypes =\n | typeof CSSGroupingRule\n | typeof CSSMediaRule\n | typeof CSSSupportsRule\n | typeof CSSConditionRule;\n\nfunction getNestedCSSRulePositions(rule: CSSRule): number[] {\n const positions: number[] = [];\n function recurse(childRule: CSSRule, pos: number[]) {\n if (\n (hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)\n ) {\n const rules = Array.from(\n (childRule.parentRule as GroupingCSSRule).cssRules,\n );\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n } else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\n\n/**\n * For StyleSheets in Element, this function retrieves id of its host element.\n * For adopted StyleSheets, this function retrieves its styleId from a styleMirror.\n */\nfunction getIdAndStyleId(\n sheet: CSSStyleSheet | undefined | null,\n mirror: Mirror,\n styleMirror: StyleSheetMirror,\n): {\n styleId?: number;\n id?: number;\n} {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror.getId(sheet.ownerNode as Node);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\n\nfunction initStyleSheetObserver(\n { styleSheetRuleCb, mirror, stylesheetManager }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n // If, for whatever reason, CSSStyleSheet is not available, we skip the observation of stylesheets.\n return () => {\n // Do nothing\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSStyleSheet,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated addRule method\n win.CSSStyleSheet.prototype.addRule = function (\n this: CSSStyleSheet,\n selector: string,\n styleBlock: string,\n index: number = this.cssRules.length,\n ) {\n const rule = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule, index]);\n };\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSStyleSheet,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated removeRule method\n win.CSSStyleSheet.prototype.removeRule = function (\n this: CSSStyleSheet,\n index: number,\n ) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index]);\n };\n\n let replace: (text: string) => Promise<CSSStyleSheet>;\n\n if (win.CSSStyleSheet.prototype.replace) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (\n target: typeof replace,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\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\n let replaceSync: (text: string) => void;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (\n target: typeof replaceSync,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\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\n const supportedNestedCSSRuleTypes: {\n [key: string]: GroupingCSSRuleTypes;\n } = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n // Some browsers (Safari) don't support CSSGroupingRule\n // https://caniuse.com/?search=cssgroupingrule\n // fall back to monkey patching classes that would have inherited from CSSGroupingRule\n\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\n const unmodifiedFunctions: {\n [key: string]: {\n insertRule: (rule: string, index?: number) => number;\n deleteRule: (index: number) => void;\n };\n } = {};\n\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\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSRule,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0, // defaults to 0\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSRule,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n });\n\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}\n\nexport function initAdoptedStyleSheetObserver(\n {\n mirror,\n stylesheetManager,\n }: Pick<observerParam, 'mirror' | 'stylesheetManager'>,\n host: Document | ShadowRoot,\n): listenerHandler {\n let hostId: number | null = null;\n // host of adoptedStyleSheets is outermost document or IFrame's document\n if (host.nodeName === '#document') hostId = mirror.getId(host);\n // The host is a ShadowRoot.\n else hostId = mirror.getId(dom.host(host as ShadowRoot));\n\n const patchTarget =\n host.nodeName === '#document'\n ? (host as Document).defaultView?.Document\n : host.ownerDocument?.defaultView?.ShadowRoot;\n const originalPropertyDescriptor = patchTarget?.prototype\n ? Object.getOwnPropertyDescriptor(\n patchTarget?.prototype,\n 'adoptedStyleSheets',\n )\n : undefined;\n if (\n hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor\n )\n return () => {\n //\n };\n\n // Patch adoptedStyleSheets by overriding the original one.\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get(): CSSStyleSheet[] {\n return originalPropertyDescriptor.get?.call(this) as CSSStyleSheet[];\n },\n set(sheets: CSSStyleSheet[]) {\n const result = originalPropertyDescriptor.set?.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e) {\n // for safety\n }\n }\n return result;\n },\n });\n\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set,\n });\n });\n}\n\nfunction initStyleDeclarationObserver(\n {\n styleDeclarationCb,\n mirror,\n ignoreCSSAttributes,\n stylesheetManager,\n }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (\n target: typeof setProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string, string, string],\n ) => {\n const [property, value, priority] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\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\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (\n target: typeof removeProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string],\n ) => {\n const [property] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\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\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\n\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror,\n sampling,\n doc,\n}: observerParam): listenerHandler {\n const handler = callbackWrapper((type: MediaInteractions) =>\n throttle(\n callbackWrapper((event: Event) => {\n const target = getEventTarget(event);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } =\n target as HTMLMediaElement;\n mediaInteractionCb({\n type,\n id: mirror.getId(target as Node),\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}\n\nfunction initFontObserver({ fontCb, doc }: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n if (!win) {\n return () => {\n //\n };\n }\n\n const handlers: listenerHandler[] = [];\n\n const fontMap = new WeakMap<FontFace, fontParam>();\n\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(\n family: string,\n source: string | ArrayBufferLike,\n descriptors?: FontFaceDescriptors,\n ) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource:\n typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n } as unknown as typeof FontFace;\n\n const restoreHandler = patch(\n doc.fonts,\n 'add',\n function (original: (font: FontFace) => void) {\n return function (this: FontFaceSet, fontFace: 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\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initSelectionObserver(param: observerParam): listenerHandler {\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n\n if (!selection || (collapsed && selection?.isCollapsed)) return;\n\n collapsed = selection.isCollapsed || false;\n\n const ranges: SelectionRange[] = [];\n const count = selection.rangeCount || 0;\n\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n\n const { startContainer, startOffset, endContainer, endOffset } = range;\n\n const blocked =\n isBlocked(startContainer, blockClass, blockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, true);\n\n if (blocked) continue;\n\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n\n selectionCb({ ranges });\n });\n\n updateSelection();\n\n return on('selectionchange', updateSelection);\n}\n\nfunction initCustomElementObserver({\n doc,\n customElementCb,\n}: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!win || !win.customElements) return () => {};\n const restoreHandler = patch(\n win.customElements,\n 'define',\n function (\n original: (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) => void,\n ) {\n return function (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n } catch (e) {\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}\n\nfunction mergeHooks(o: observerParam, hooks: hooksParam) {\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 } = o;\n o.mutationCb = (...p: Arguments<mutationCallBack>) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o.mousemoveCb = (...p: Arguments<mousemoveCallBack>) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o.mouseInteractionCb = (...p: Arguments<mouseInteractionCallBack>) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o.scrollCb = (...p: Arguments<scrollCallback>) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o.viewportResizeCb = (...p: Arguments<viewportResizeCallback>) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o.inputCb = (...p: Arguments<inputCallback>) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o.mediaInteractionCb = (...p: Arguments<mediaInteractionCallback>) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o.styleSheetRuleCb = (...p: Arguments<styleSheetRuleCallback>) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o.styleDeclarationCb = (...p: Arguments<styleDeclarationCallback>) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o.canvasMutationCb = (...p: Arguments<canvasMutationCallback>) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o.fontCb = (...p: Arguments<fontCallback>) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o.selectionCb = (...p: Arguments<selectionCallback>) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o.customElementCb = (...c: Arguments<customElementCallback>) => {\n if (hooks.customElement) {\n hooks.customElement(...c);\n }\n customElementCb(...c);\n };\n}\n\nexport function initObservers(\n o: observerParam,\n hooks: hooksParam = {},\n): listenerHandler {\n const currentWindow = o.doc.defaultView; // basically document.window\n if (!currentWindow) {\n return () => {\n //\n };\n }\n\n mergeHooks(o, hooks);\n let mutationObserver: MutationObserver | undefined;\n if (o.recordDOM) {\n mutationObserver = initMutationObserver(o, o.doc);\n }\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let adoptedStyleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleDeclarationObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let fontObserver = () => {};\n if (o.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n if (o.collectFonts) {\n fontObserver = initFontObserver(o);\n }\n }\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n\n // plugins\n const pluginHandlers: listenerHandler[] = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(\n plugin.observer(plugin.callback, currentWindow, plugin.options),\n );\n }\n\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n 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}\n\ntype CSSGroupingProp =\n | 'CSSGroupingRule'\n | 'CSSMediaRule'\n | 'CSSSupportsRule'\n | 'CSSConditionRule';\n\nfunction hasNestedCSSRule(prop: CSSGroupingProp): boolean {\n return typeof window[prop] !== 'undefined';\n}\n\nfunction canMonkeyPatchNestedCSSRule(prop: CSSGroupingProp): boolean {\n return Boolean(\n typeof window[prop] !== 'undefined' &&\n // 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 &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype,\n );\n}\n","import type { ICrossOriginIframeMirror } from '@rrweb/types';\nexport default class CrossOriginIframeMirror\n implements ICrossOriginIframeMirror\n{\n private iframeIdToRemoteIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n private iframeRemoteIdToIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n\n constructor(private generateIdFn: () => number) {}\n\n getId(\n iframe: HTMLIFrameElement,\n remoteId: number,\n idToRemoteMap?: Map<number, number>,\n remoteToIdMap?: Map<number, number>,\n ): number {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n\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\n getIds(iframe: HTMLIFrameElement, remoteId: number[]): number[] {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) =>\n this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap),\n );\n }\n\n getRemoteId(\n iframe: HTMLIFrameElement,\n id: number,\n map?: Map<number, number>,\n ): number {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n\n if (typeof id !== 'number') return id;\n\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n\n getRemoteIds(iframe: HTMLIFrameElement, ids: number[]): number[] {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n\n reset(iframe?: HTMLIFrameElement) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n\n private getIdToRemoteIdMap(iframe: HTMLIFrameElement) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n\n private getRemoteIdToIdMap(iframe: HTMLIFrameElement) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n","import type { Mirror } from 'rrweb-snapshot';\nimport { genId } from 'rrweb-snapshot';\nimport type { CrossOriginIframeMessageEvent } from '../types';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror';\nimport { EventType, NodeType, IncrementalSource } from '@rrweb/types';\nimport type {\n eventWithTime,\n eventWithoutTime,\n serializedNodeWithId,\n mutationCallBack,\n} from '@rrweb/types';\nimport type { StylesheetManager } from './stylesheet-manager';\n\nexport class IframeManager {\n private iframes: WeakMap<HTMLIFrameElement, true> = new WeakMap();\n private crossOriginIframeMap: WeakMap<MessageEventSource, HTMLIFrameElement> =\n new WeakMap();\n public crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n public crossOriginIframeStyleMirror: CrossOriginIframeMirror;\n public crossOriginIframeRootIdMap: WeakMap<HTMLIFrameElement, number> =\n new WeakMap();\n private mirror: Mirror;\n private mutationCb: mutationCallBack;\n private wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n private loadListener?: (iframeEl: HTMLIFrameElement) => unknown;\n private stylesheetManager: StylesheetManager;\n private recordCrossOriginIframes: boolean;\n\n constructor(options: {\n mirror: Mirror;\n mutationCb: mutationCallBack;\n stylesheetManager: StylesheetManager;\n recordCrossOriginIframes: boolean;\n wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n }) {\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\n public addIframe(iframeEl: HTMLIFrameElement) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n\n public addLoadListener(cb: (iframeEl: HTMLIFrameElement) => unknown) {\n this.loadListener = cb;\n }\n\n public attachIframe(\n iframeEl: HTMLIFrameElement,\n childSn: serializedNodeWithId,\n ) {\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\n // Receive messages (events) coming from cross-origin iframes that are nested in this same-origin iframe.\n if (this.recordCrossOriginIframes)\n iframeEl.contentWindow?.addEventListener(\n 'message',\n this.handleMessage.bind(this),\n );\n\n this.loadListener?.(iframeEl);\n\n if (\n iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0\n )\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument),\n );\n }\n private handleMessage(message: MessageEvent | CrossOriginIframeMessageEvent) {\n const crossOriginMessageEvent = message as CrossOriginIframeMessageEvent;\n if (\n crossOriginMessageEvent.data.type !== 'rrweb' ||\n // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin\n )\n return;\n\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event,\n );\n\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout,\n );\n }\n\n private transformCrossOriginEvent(\n iframeEl: HTMLIFrameElement,\n e: eventWithTime,\n ): eventWithTime | false {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n /**\n * Replaces the original id of the iframe with a new set of unique ids\n */\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n return {\n timestamp: e.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: e.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 e;\n }\n case EventType.Custom: {\n this.replaceIds(\n e.data.payload as {\n id?: unknown;\n parentId?: unknown;\n previousId?: unknown;\n nextId?: unknown;\n },\n iframeEl,\n ['id', 'parentId', 'previousId', 'nextId'],\n );\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n // can safely ignore these events\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(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n // fine as-is no modification needed\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n e.data.styles?.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n });\n return e;\n }\n }\n }\n }\n return false;\n }\n\n private replace<T extends Record<string, unknown>>(\n iframeMirror: CrossOriginIframeMirror,\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\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] as number[],\n ) as T[keyof T];\n } else {\n (obj[key] as number) = iframeMirror.getId(iframeEl, obj[key] as number);\n }\n }\n\n return obj;\n }\n\n private replaceIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n\n private replaceStyleIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n\n private replaceIdOnNode(\n node: serializedNodeWithId,\n iframeEl: HTMLIFrameElement,\n ) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n\n private patchRootIdOnNode(node: serializedNodeWithId, rootId: number) {\n if (node.type !== NodeType.Document && !node.rootId) node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\n","import type { MutationBufferParam } from '../types';\nimport type {\n mutationCallBack,\n scrollCallback,\n SamplingStrategy,\n} from '@rrweb/types';\nimport {\n initMutationObserver,\n initScrollObserver,\n initAdoptedStyleSheetObserver,\n} from './observer';\nimport { inDom } from '../utils';\nimport type { Mirror } from 'rrweb-snapshot';\nimport { isNativeShadowDom } from 'rrweb-snapshot';\nimport dom, { patch } from '@rrweb/utils';\n\ntype BypassOptions = Omit<\n MutationBufferParam,\n 'doc' | 'mutationCb' | 'mirror' | 'shadowDomManager'\n> & {\n sampling: SamplingStrategy;\n};\n\nexport class ShadowDomManager {\n private shadowDoms = new WeakSet<ShadowRoot>();\n private mutationCb: mutationCallBack;\n private scrollCb: scrollCallback;\n private bypassOptions: BypassOptions;\n private mirror: Mirror;\n private restoreHandlers: (() => void)[] = [];\n\n constructor(options: {\n mutationCb: mutationCallBack;\n scrollCb: scrollCallback;\n bypassOptions: BypassOptions;\n mirror: Mirror;\n }) {\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n\n this.init();\n }\n\n public init() {\n this.reset();\n // Patch 'attachShadow' to observe newly added shadow doms.\n this.patchAttachShadow(Element, document);\n }\n\n public addShadowRoot(shadowRoot: ShadowRoot, doc: Document) {\n if (!isNativeShadowDom(shadowRoot)) return;\n if (this.shadowDoms.has(shadowRoot)) return;\n this.shadowDoms.add(shadowRoot);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n },\n shadowRoot,\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot as unknown as Document,\n mirror: this.mirror,\n }),\n );\n // Defer this to avoid adoptedStyleSheet events being created before the full snapshot is created or attachShadow action is recorded.\n setTimeout(() => {\n if (\n shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0\n )\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot.adoptedStyleSheets,\n this.mirror.getId(dom.host(shadowRoot)),\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n },\n shadowRoot,\n ),\n );\n }, 0);\n }\n\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n public observeAttachShadow(iframeElement: HTMLIFrameElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n\n this.patchAttachShadow(\n (\n iframeElement.contentWindow as Window & {\n Element: { prototype: Element };\n }\n ).Element,\n iframeElement.contentDocument,\n );\n }\n\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n private patchAttachShadow(\n element: {\n prototype: Element;\n },\n doc: Document,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n 'attachShadow',\n function (original: (init: ShadowRootInit) => ShadowRoot) {\n return function (this: Element, option: ShadowRootInit) {\n const sRoot = original.call(this, option);\n // For the shadow dom elements in the document, monitor their dom mutations.\n // For shadow dom elements that aren't in the document yet,\n // we start monitoring them once their shadow dom host is appended to the document.\n const shadowRootEl = dom.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n },\n ),\n );\n }\n\n public reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e) {\n //\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n }\n}\n","/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { encode } from 'base64-arraybuffer';\nimport type { IWindow, CanvasArg } from '@rrweb/types';\n\n// TODO: unify with `replay/webgl.ts`\ntype CanvasVarMap = Map<string, unknown[]>;\nconst canvasVarMap: Map<RenderingContext, CanvasVarMap> = new Map();\nexport function variableListFor(ctx: RenderingContext, ctor: string) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor) as unknown[];\n}\n\nexport const saveWebGLVar = (\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n): number | void => {\n if (\n !value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object')\n )\n return;\n\n const name = value.constructor.name;\n const list = variableListFor(ctx, name);\n let index = list.indexOf(value);\n\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\n\n// from webgl-recorder: https://github.com/evanw/webgl-recorder/blob/bef0e65596e981ee382126587e2dcbe0fc7748e2/webgl-recorder.js#L50-L77\nexport function serializeArg(\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n): CanvasArg {\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 (\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray\n ) {\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 as 'ArrayBuffer';\n const base64 = encode(value);\n\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 // TODO: move `toDataURL` to web worker if possible\n const src = value.toDataURL(); // heavy on large canvas\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 (value instanceof Blob) {\n // const name = value.constructor.name;\n // return {\n // rr_type: name,\n // data: [serializeArg(await value.arrayBuffer(), win, ctx)],\n // type: value.type,\n // };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx) as number;\n\n return {\n rr_type: name,\n index: index,\n };\n }\n\n return value as unknown as CanvasArg;\n}\n\nexport const serializeArgs = (\n args: Array<unknown>,\n win: IWindow,\n ctx: RenderingContext,\n) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\n\nexport const isInstanceOfWebGLObject = (\n value: unknown,\n win: IWindow,\n): value is\n | WebGLActiveInfo\n | WebGLBuffer\n | WebGLFramebuffer\n | WebGLProgram\n | WebGLRenderbuffer\n | WebGLShader\n | WebGLShaderPrecisionFormat\n | WebGLTexture\n | WebGLUniformLocation\n | WebGLVertexArrayObject => {\n const webGLConstructorNames: string[] = [\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: string) => typeof win[name as keyof Window] === 'function',\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name: string) => value instanceof win[name as keyof Window],\n ),\n );\n};\n","import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type IWindow,\n type listenerHandler,\n} from '@rrweb/types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\nimport { serializeArgs } from './serialize-args';\n\nexport default function initCanvas2DMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype,\n );\n for (const prop of props2D) {\n try {\n if (\n typeof win.CanvasRenderingContext2D.prototype[\n prop as keyof CanvasRenderingContext2D\n ] !== 'function'\n ) {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function (\n original: (\n this: CanvasRenderingContext2D,\n ...args: unknown[]\n ) => void,\n ) {\n return function (\n this: CanvasRenderingContext2D,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n // Using setTimeout as toDataURL can be heavy\n // and we'd rather not block the main thread\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<CanvasRenderingContext2D>(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n },\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n","import type { ICanvas } from 'rrweb-snapshot';\nimport type { blockClass, IWindow, listenerHandler } from '@rrweb/types';\nimport { isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\n\nfunction getNormalizedContextName(contextType: string) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\n\nexport default function initCanvasContextObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n setPreserveDrawingBufferToTrue: boolean,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n 'getContext',\n function (\n original: (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) => void,\n ) {\n return function (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this)) (this as ICanvas).__context = ctxName;\n\n if (\n setPreserveDrawingBufferToTrue &&\n ['webgl', 'webgl2'].includes(ctxName)\n ) {\n if (args[0] && typeof args[0] === 'object') {\n const contextAttributes = args[0] as WebGLContextAttributes;\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}\n","import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type canvasMutationWithType,\n type IWindow,\n type listenerHandler,\n} from '@rrweb/types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\nimport { saveWebGLVar, serializeArgs } from './serialize-args';\n\nfunction patchGLPrototype(\n prototype: WebGLRenderingContext | WebGL2RenderingContext,\n type: CanvasContext,\n cb: canvasManagerMutationCallback,\n blockClass: blockClass,\n blockSelector: string | null,\n win: IWindow,\n): listenerHandler[] {\n const handlers: listenerHandler[] = [];\n\n const props = Object.getOwnPropertyNames(prototype);\n\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 // skip read only propery/functions\n continue;\n }\n try {\n if (typeof prototype[prop as keyof typeof prototype] !== 'function') {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function (\n original: (this: typeof prototype, ...args: Array<unknown>) => void,\n ) {\n return function (this: typeof prototype, ...args: Array<unknown>) {\n const result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n if (\n 'tagName' in this.canvas &&\n !isBlocked(this.canvas, blockClass, blockSelector, true)\n ) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation: canvasMutationWithType = {\n type,\n property: prop,\n args: recordArgs,\n };\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n cb(this.canvas, mutation);\n }\n\n return result;\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter<typeof prototype>(prototype, prop, {\n set(v) {\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n cb(this.canvas as HTMLCanvasElement, {\n type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n\n return handlers;\n}\n\nexport default function initCanvasWebGLMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win,\n ),\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\n return () => {\n handlers.forEach((h) => h());\n };\n}\n","import type { ICanvas, Mirror } from 'rrweb-snapshot';\nimport type {\n blockClass,\n canvasManagerMutationCallback,\n canvasMutationCallback,\n canvasMutationCommand,\n canvasMutationWithType,\n IWindow,\n listenerHandler,\n CanvasArg,\n DataURLOptions,\n} from '@rrweb/types';\nimport { isBlocked } from '../../../utils';\nimport { CanvasContext } from '@rrweb/types';\nimport initCanvas2DMutationObserver from './2d';\nimport initCanvasContextObserver from './canvas';\nimport initCanvasWebGLMutationObserver from './webgl';\nimport ImageBitmapDataURLWorker from '../../workers/image-bitmap-data-url-worker?worker&inline';\nimport type { ImageBitmapDataURLRequestWorker } from '../../workers/image-bitmap-data-url-worker';\n\nexport type RafStamps = { latestId: number; invokeId: number | null };\n\ntype pendingCanvasMutationsMap = Map<\n HTMLCanvasElement,\n canvasMutationWithType[]\n>;\n\nexport class CanvasManager {\n private pendingCanvasMutations: pendingCanvasMutationsMap = new Map();\n private rafStamps: RafStamps = { latestId: 0, invokeId: null };\n private mirror: Mirror;\n\n private mutationCb: canvasMutationCallback;\n private resetObservers?: listenerHandler;\n private frozen = false;\n private locked = false;\n\n public reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n\n public freeze() {\n this.frozen = true;\n }\n\n public unfreeze() {\n this.frozen = false;\n }\n\n public lock() {\n this.locked = true;\n }\n\n public unlock() {\n this.locked = false;\n }\n\n constructor(options: {\n recordCanvas: boolean;\n mutationCb: canvasMutationCallback;\n win: IWindow;\n blockClass: blockClass;\n blockSelector: string | null;\n mirror: Mirror;\n sampling?: 'all' | number;\n dataURLOptions: DataURLOptions;\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\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\n private processMutation: canvasManagerMutationCallback = (\n target,\n mutation,\n ) => {\n const newFrame =\n this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n\n this.pendingCanvasMutations.get(target)!.push(mutation);\n };\n\n private initCanvasFPSObserver(\n fps: number,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n options: {\n dataURLOptions: DataURLOptions;\n },\n ) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true,\n );\n const snapshotInProgressMap: Map<number, boolean> = new Map();\n const worker =\n new ImageBitmapDataURLWorker() as ImageBitmapDataURLRequestWorker;\n worker.onmessage = (e) => {\n const { id } = e.data;\n snapshotInProgressMap.set(id, false);\n\n if (!('base64' in e.data)) return;\n\n const { base64, type, width, height } = e.data;\n this.mutationCb({\n id,\n type: CanvasContext['2D'],\n commands: [\n {\n property: 'clearRect', // wipe canvas\n args: [0, 0, width, height],\n },\n {\n property: 'drawImage', // 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 } as CanvasArg,\n 0,\n 0,\n ],\n },\n ],\n });\n };\n\n const timeBetweenSnapshots = 1000 / fps;\n let lastSnapshotTime = 0;\n let rafId: number;\n\n const getCanvas = (): HTMLCanvasElement[] => {\n const matchedCanvas: HTMLCanvasElement[] = [];\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\n const takeCanvasSnapshots = (timestamp: DOMHighResTimeStamp) => {\n if (\n lastSnapshotTime &&\n timestamp - lastSnapshotTime < timeBetweenSnapshots\n ) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n\n getCanvas()\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n .forEach(async (canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n\n // The browser throws if the canvas is 0 in size\n // Uncaught (in promise) DOMException: Failed to execute 'createImageBitmap' on 'Window': The source image width is 0.\n // Assuming the same happens with height\n if (canvas.width === 0 || canvas.height === 0) return;\n\n snapshotInProgressMap.set(id, true);\n if (['webgl', 'webgl2'].includes((canvas as ICanvas).__context)) {\n // if the canvas hasn't been modified recently,\n // its contents won't be in memory and `createImageBitmap`\n // will return a transparent imageBitmap\n\n const context = canvas.getContext((canvas as ICanvas).__context) as\n | WebGLRenderingContext\n | WebGL2RenderingContext\n | null;\n if (\n context?.getContextAttributes()?.preserveDrawingBuffer === false\n ) {\n // Hack to load canvas back into memory so `createImageBitmap` can grab it's contents.\n // Context: https://twitter.com/Juice10/status/1499775271758704643\n // Preferably we set `preserveDrawingBuffer` to true, but that's not always possible,\n // especially when canvas is loaded before rrweb.\n // This hack can wipe the background color of the canvas in the (unlikely) event that\n // the canvas background was changed but clear was not called directly afterwards.\n // Example of this hack having negative side effect: https://visgl.github.io/react-map-gl/examples/layers\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\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n\n private initCanvasMutationObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n ): void {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n\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\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector,\n );\n\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n\n private startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n\n private startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp: DOMHighResTimeStamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values: canvasMutationCommand[], canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n },\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n\n flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number) {\n if (this.frozen || this.locked) {\n return;\n }\n\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n\n const values = valuesWithType.map((value) => {\n const { type, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n\n this.mutationCb({ id, type, commands: values });\n\n this.pendingCanvasMutations.delete(canvas);\n }\n}\n","import { stringifyRule } from 'rrweb-snapshot';\nimport type {\n elementNode,\n serializedNodeWithId,\n adoptedStyleSheetCallback,\n adoptedStyleSheetParam,\n attributeMutation,\n mutationCallBack,\n} from '@rrweb/types';\nimport { StyleSheetMirror } from '../utils';\n\nexport class StylesheetManager {\n private trackedLinkElements: WeakSet<HTMLLinkElement> = new WeakSet();\n private mutationCb: mutationCallBack;\n private adoptedStyleSheetCb: adoptedStyleSheetCallback;\n public styleMirror = new StyleSheetMirror();\n\n constructor(options: {\n mutationCb: mutationCallBack;\n adoptedStyleSheetCb: adoptedStyleSheetCallback;\n }) {\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n\n public attachLinkElement(\n linkEl: HTMLLinkElement,\n childSn: serializedNodeWithId,\n ) {\n if ('_cssText' in (childSn as elementNode).attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: (childSn as elementNode)\n .attributes as attributeMutation['attributes'],\n },\n ],\n });\n\n this.trackLinkElement(linkEl);\n }\n\n public trackLinkElement(linkEl: HTMLLinkElement) {\n if (this.trackedLinkElements.has(linkEl)) return;\n\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n\n public adoptStyleSheets(\n sheets: CSSStyleSheet[] | readonly CSSStyleSheet[],\n hostId: number,\n ) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData: adoptedStyleSheetParam = {\n id: hostId,\n styleIds: [] as number[],\n };\n const styles: NonNullable<adoptedStyleSheetParam['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, (r, index) => ({\n rule: stringifyRule(r, sheet.href),\n index,\n })),\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n\n public reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n\n // TODO: take snapshot on stylesheet reload by applying event listener\n private trackStylesheetInLinkElement(_linkEl: HTMLLinkElement) {\n // linkEl.addEventListener('load', () => {\n // // re-loaded, maybe take another snapshot?\n // });\n }\n}\n","import type MutationBuffer from './mutation';\n\n/**\n * Keeps a log of nodes that could show up in multiple mutation buffer but shouldn't be handled twice.\n */\nexport default class ProcessedNodeManager {\n private nodeMap: WeakMap<Node, Set<MutationBuffer>> = new WeakMap();\n\n private active = false;\n\n public inOtherBuffer(node: Node, thisBuffer: MutationBuffer) {\n const buffers = this.nodeMap.get(node);\n return (\n buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer)\n );\n }\n\n public add(node: Node, buffer: MutationBuffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n\n public destroy() {\n // cleanup no longer needed\n }\n}\n","import {\n snapshot,\n slimDOMDefaults,\n type MaskInputOptions,\n createMirror,\n} from 'rrweb-snapshot';\nimport { initObservers, mutationBuffers } from './observer';\nimport {\n on,\n getWindowWidth,\n getWindowHeight,\n getWindowScroll,\n polyfill,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n nowTimestamp,\n} from '../utils';\nimport type { recordOptions } from '../types';\nimport {\n EventType,\n type eventWithoutTime,\n type eventWithTime,\n IncrementalSource,\n type listenerHandler,\n type mutationCallbackParam,\n type scrollCallback,\n type canvasMutationParam,\n type adoptedStyleSheetParam,\n} from '@rrweb/types';\nimport type { CrossOriginIframeMessageEventContent } from '../types';\nimport { IframeManager } from './iframe-manager';\nimport { ShadowDomManager } from './shadow-dom-manager';\nimport { CanvasManager } from './observers/canvas/canvas-manager';\nimport { StylesheetManager } from './stylesheet-manager';\nimport ProcessedNodeManager from './processed-node-manager';\nimport {\n callbackWrapper,\n registerErrorHandler,\n unregisterErrorHandler,\n} from './error-handler';\nimport dom from '@rrweb/utils';\n\nlet wrappedEmit!: (e: eventWithoutTime, isCheckout?: boolean) => void;\n\nlet takeFullSnapshot!: (isCheckout?: boolean) => void;\nlet canvasManager!: CanvasManager;\nlet recording = false;\n\n// Multiple tools (i.e. MooTools, Prototype.js) override Array.from and drop support for the 2nd parameter\n// Try to pull a clean implementation from a newly created iframe\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement('iframe');\n document.body.appendChild(cleanFrame);\n // eslint-disable-next-line @typescript-eslint/unbound-method -- Array.from is static and doesn't rely on binding\n Array.from = cleanFrame.contentWindow?.Array.from || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug('Unable to override Array.from', err);\n}\n\nconst mirror = createMirror();\nfunction record<T = eventWithTime>(\n options: recordOptions<T> = {},\n): listenerHandler | undefined {\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'\n ? options.recordAfter\n : 'load',\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = new Set([]),\n errorHandler,\n } = options;\n\n registerErrorHandler(errorHandler);\n\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n // throws if parent is cross-origin\n if (window.parent.document) {\n passEmitsToParent = false; // if parent is same origin we collect iframe events from the parent\n }\n } catch (e) {\n passEmitsToParent = true;\n }\n }\n\n // runtime checks for user options\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n /* no-op since in this case we don't need to record anything from this frame in particular */\n };\n }\n // move departed options to new options\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n\n // reset mirror in case `record` this was called earlier\n mirror.reset();\n\n const maskInputOptions: MaskInputOptions =\n maskAllInputs === true\n ? {\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 }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : { password: true };\n\n const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n\n polyfill();\n\n let lastFullSnapshotEvent: eventWithTime;\n let incrementalSnapshotCount = 0;\n\n const eventProcessor = (e: eventWithTime): T => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (\n packFn &&\n // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent\n ) {\n e = packFn(e) as unknown as eventWithTime;\n }\n return e as unknown as T;\n };\n wrappedEmit = (r: eventWithoutTime, isCheckout?: boolean) => {\n const e = r as eventWithTime;\n e.timestamp = nowTimestamp();\n if (\n mutationBuffers[0]?.isFrozen() &&\n e.type !== EventType.FullSnapshot &&\n !(\n e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation\n )\n ) {\n // we've got a user initiated event so first we need to apply\n // all DOM changes that have been buffering during paused state\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n\n if (inEmittingFrame) {\n emit?.(eventProcessor(e), isCheckout);\n } else if (passEmitsToParent) {\n const message: CrossOriginIframeMessageEventContent<T> = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n } else if (e.type === EventType.IncrementalSnapshot) {\n // attach iframe should be considered as full snapshot\n if (\n e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe\n ) {\n return;\n }\n\n incrementalSnapshotCount++;\n const exceedCount =\n checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime =\n checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n\n const wrappedMutationEmit = (m: mutationCallbackParam) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n });\n };\n const wrappedScrollEmit: scrollCallback = (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n });\n const wrappedCanvasMutationEmit = (p: canvasMutationParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n });\n\n const wrappedAdoptedStyleSheetEmit = (a: adoptedStyleSheetParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n });\n\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n\n /**\n * Exposes mirror to the plugins\n */\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror:\n iframeManager.crossOriginIframeStyleMirror,\n });\n }\n\n const processedNodeManager = new ProcessedNodeManager();\n\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\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\n takeFullSnapshot = (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\n // When we take a full snapshot, old tracked StyleSheets need to be removed.\n stylesheetManager.reset();\n\n shadowDomManager.init();\n\n mutationBuffers.forEach((buf) => buf.lock()); // don't allow any mirror modifications during snapshotting\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n as HTMLLinkElement);\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowDomManager.addShadowRoot(dom.shadowRoot(n as Node)!, 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\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n },\n isCheckout,\n );\n mutationBuffers.forEach((buf) => buf.unlock()); // generate & emit any mutations that happened during snapshotting, as can now apply against the newly built mirror\n\n // Some old browsers don't support adoptedStyleSheets.\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document),\n );\n };\n\n try {\n const handlers: listenerHandler[] = [];\n\n const observe = (doc: Document) => {\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n }),\n mouseInteractionCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n }),\n inputCb: (v) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n }),\n mediaInteractionCb: (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n }),\n styleSheetRuleCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n }),\n styleDeclarationCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) =>\n 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: (c) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\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:\n plugins\n ?.filter((p) => p.observer)\n ?.map((p) => ({\n observer: p.observer!,\n options: p.options,\n callback: (payload: object) =>\n wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n }),\n })) || [],\n },\n hooks,\n );\n };\n\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument!));\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n });\n\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n recording = true;\n };\n if (['interactive', 'complete'].includes(document.readyState)) {\n init();\n } else {\n handlers.push(\n on('DOMContentLoaded', () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {},\n });\n if (recordAfter === 'DOMContentLoaded') init();\n }),\n );\n handlers.push(\n on(\n 'load',\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {},\n });\n if (recordAfter === 'load') init();\n },\n window,\n ),\n );\n }\n return () => {\n handlers.forEach((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n /**\n * https://github.com/rrweb-io/rrweb/pull/1695\n * This error can occur in a known scenario:\n * If an iframe is initially same-origin and observed, but later its \n location is changed in an opaque way to a cross-origin URL (perhaps within the iframe via its `document.location` or a redirect) \n * attempting to execute the handler in the stop record function will \n throw a \"cannot access cross-origin frame\" error.\n * This error is expected and can be safely ignored.\n */\n if (!msg.includes('cross-origin')) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n}\n\nrecord.addCustomEvent = <T>(tag: string, payload: T) => {\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};\n\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\n\nrecord.takeFullSnapshot = (isCheckout?: boolean) => {\n if (!recording) {\n throw new Error('please take full snapshot after start recording');\n }\n takeFullSnapshot(isCheckout);\n};\n\nrecord.mirror = mirror;\n\nexport default record;\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","/**\n * A fork version of https://github.com/iamdustan/smoothscroll\n * Add support of customize target window and document\n */\n\n/* eslint-disable */\n// @ts-nocheck\nexport function polyfill(w: Window = window, d = document) {\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n const Element = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView,\n };\n\n // define timing method\n const now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.',\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n const isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y,\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset,\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset,\n );\n };\n\n // w.scrollBy\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : 0,\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset),\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object'\n ? ~~arguments[0]\n : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined\n ? ~~arguments[1]\n : this.scrollTop,\n );\n\n return;\n }\n\n const left = arguments[0].left;\n const top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top,\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop,\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior,\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0],\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top,\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth',\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth',\n });\n }\n };\n}\n","import {\n type actionWithDelay,\n type eventWithTime,\n EventType,\n IncrementalSource,\n} from '@rrweb/types';\n\nexport class Timer {\n public timeOffset = 0;\n public speed: number;\n\n private actions: actionWithDelay[];\n private raf: number | true | null = null;\n private lastTimestamp: number;\n\n constructor(\n actions: actionWithDelay[] = [],\n config: {\n speed: number;\n },\n ) {\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n public addAction(action: actionWithDelay) {\n const rafWasActive = this.raf === true;\n if (\n !this.actions.length ||\n this.actions[this.actions.length - 1].delay <= action.delay\n ) {\n // 'fast track'\n this.actions.push(action);\n } else {\n // binary search - events can arrive out of order in a realtime context\n const index = this.findActionIndex(action);\n this.actions.splice(index, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n\n public start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n\n private rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true; // was active\n }\n }\n\n public clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n\n public setSpeed(speed: number) {\n this.speed = speed;\n }\n\n public isActive() {\n return this.raf !== null;\n }\n\n private findActionIndex(action: actionWithDelay): number {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n // already an action with same delay (timestamp)\n // the plus one will splice the new one after the existing one\n return mid + 1;\n }\n }\n return start;\n }\n}\n\n// TODO: add speed to mouse move timestamp calculation\nexport function addDelay(event: eventWithTime, baselineTime: number): number {\n // Mouse move events was recorded in a throttle function,\n // so we need to find the real timestamp by traverse the time offsets.\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.MouseMove &&\n event.data.positions &&\n event.data.positions.length\n ) {\n const firstOffset = event.data.positions[0].timeOffset;\n // timeOffset is a negative offset to event.timestamp\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\"}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function o(t){return{type:\"xstate.assign\",assignment:t}}function i(t,n){return\"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return\"string\"==typeof t?{type:t}:t}function c(t,n){return{value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,o=!1;return[t.filter((function(t){if(\"xstate.assign\"===t.type){o=!0;var n=Object.assign({},r);return\"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(o){n[o]=\"function\"==typeof t.assignment[o]?t.assignment[o](r,e):t.assignment[o]})),r=n,!1}return!0})),r,o]}function s(n,o){void 0===o&&(o={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return i(t,o.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:o,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,o){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(o),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return!0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return i(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return{value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t}}finally{try{b&&!b.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,o=n.NotStarted,i=new Set,c={_machine:t,send:function(e){o===n.Running&&(r=t.transition(r,e),l(r,u(e)),i.forEach((function(t){return t(r)})))},subscribe:function(t){return i.add(t),t(r),{unsubscribe:function(){return i.delete(t)}}},start:function(i){if(i){var u=\"object\"==typeof i?i:{context:t.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:a(u.value)}}return o=n.Running,l(r,e),c},stop:function(){return o=n.Stopped,i.clear(),c},get state(){return r},get status(){return o}};return c}export{n as InterpreterStatus,o as assign,s as createMachine,v as interpret};\n","import {\n createMachine,\n interpret,\n assign,\n type StateMachine,\n} from '@xstate/fsm';\nimport type { playerConfig } from '../types';\nimport {\n type eventWithTime,\n ReplayerEvents,\n EventType,\n type Emitter,\n IncrementalSource,\n} from '@rrweb/types';\nimport { Timer, addDelay } from './timer';\n\nexport type PlayerContext = {\n events: eventWithTime[];\n timer: Timer;\n timeOffset: number;\n baselineTime: number;\n lastPlayedEvent: eventWithTime | null;\n};\nexport type PlayerEvent =\n | {\n type: 'PLAY';\n payload: {\n timeOffset: number;\n };\n }\n | {\n type: 'CAST_EVENT';\n payload: {\n event: eventWithTime;\n };\n }\n | { type: 'PAUSE' }\n | { type: 'TO_LIVE'; payload: { baselineTime?: number } }\n | {\n type: 'ADD_EVENT';\n payload: {\n event: eventWithTime;\n };\n }\n | {\n type: 'END';\n };\nexport type PlayerState =\n | {\n value: 'playing';\n context: PlayerContext;\n }\n | {\n value: 'paused';\n context: PlayerContext;\n }\n | {\n value: 'live';\n context: PlayerContext;\n };\n\n/**\n * If the array have multiple meta and fullsnapshot events,\n * return the events from last meta to the end.\n */\nexport function discardPriorSnapshots(\n events: eventWithTime[],\n baselineTime: number,\n): eventWithTime[] {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\n\ntype PlayerAssets = {\n emitter: Emitter;\n applyEventsSynchronously(events: Array<eventWithTime>): void;\n getCastFn(event: eventWithTime, isSync: boolean): () => void;\n};\nexport function createPlayerService(\n context: PlayerContext,\n { getCastFn, applyEventsSynchronously, emitter }: PlayerAssets,\n) {\n const playerMachine = createMachine<PlayerContext, PlayerEvent, PlayerState>(\n {\n id: 'player',\n context,\n initial: 'paused',\n states: {\n playing: {\n on: {\n PAUSE: {\n target: 'paused',\n actions: ['pause'],\n },\n CAST_EVENT: {\n target: 'playing',\n actions: 'castEvent',\n },\n END: {\n target: 'paused',\n actions: ['resetLastPlayedEvent', 'pause'],\n },\n ADD_EVENT: {\n target: 'playing',\n actions: ['addEvent'],\n },\n },\n },\n paused: {\n on: {\n PLAY: {\n target: 'playing',\n actions: ['recordTimeOffset', 'play'],\n },\n CAST_EVENT: {\n target: 'paused',\n actions: 'castEvent',\n },\n TO_LIVE: {\n target: 'live',\n actions: ['startLive'],\n },\n ADD_EVENT: {\n target: 'paused',\n actions: ['addEvent'],\n },\n },\n },\n live: {\n on: {\n ADD_EVENT: {\n target: 'live',\n actions: ['addEvent'],\n },\n CAST_EVENT: {\n target: 'live',\n actions: ['castEvent'],\n },\n },\n },\n },\n },\n {\n actions: {\n castEvent: assign({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === 'CAST_EVENT') {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n },\n }),\n recordTimeOffset: assign((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if ('payload' in event && 'timeOffset' in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset,\n };\n }),\n play(ctx) {\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n\n for (const event of events) {\n // TODO: improve this API\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n\n let lastPlayedTimestamp = lastPlayedEvent?.timestamp;\n if (\n lastPlayedEvent?.type === EventType.IncrementalSnapshot &&\n lastPlayedEvent.data.source === IncrementalSource.MouseMove\n ) {\n lastPlayedTimestamp =\n lastPlayedEvent.timestamp +\n lastPlayedEvent.data.positions[0]?.timeOffset;\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n\n const syncEvents = new Array<eventWithTime>();\n for (const event of neededEvents) {\n if (\n lastPlayedTimestamp &&\n lastPlayedTimestamp < baselineTime &&\n (event.timestamp <= lastPlayedTimestamp ||\n event === lastPlayedEvent)\n ) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay!,\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: assign((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null,\n };\n }),\n startLive: assign({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n },\n }),\n addEvent: assign((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === 'ADD_EVENT') {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n // fast track\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay!,\n });\n }\n }\n return { ...ctx, events };\n }),\n },\n },\n );\n return interpret(playerMachine);\n}\n\nexport type SpeedContext = {\n normalSpeed: playerConfig['speed'];\n timer: Timer;\n};\n\nexport type SpeedEvent =\n | {\n type: 'FAST_FORWARD';\n payload: { speed: playerConfig['speed'] };\n }\n | {\n type: 'BACK_TO_NORMAL';\n }\n | {\n type: 'SET_SPEED';\n payload: { speed: playerConfig['speed'] };\n };\n\nexport type SpeedState =\n | {\n value: 'normal';\n context: SpeedContext;\n }\n | {\n value: 'skipping';\n context: SpeedContext;\n };\n\nexport function createSpeedService(context: SpeedContext) {\n const speedMachine = createMachine<SpeedContext, SpeedEvent, SpeedState>(\n {\n id: 'speed',\n context,\n initial: 'normal',\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: 'skipping',\n actions: ['recordSpeed', 'setSpeed'],\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed'],\n },\n },\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: 'normal',\n actions: ['restoreSpeed'],\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed'],\n },\n },\n },\n },\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if ('payload' in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: assign({\n normalSpeed: (ctx) => ctx.timer.speed,\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n },\n },\n },\n );\n\n return interpret(speedMachine);\n}\n\nexport type PlayerMachineState = StateMachine.State<\n PlayerContext,\n PlayerEvent,\n PlayerState\n>;\n\nexport type SpeedMachineState = StateMachine.State<\n SpeedContext,\n SpeedEvent,\n SpeedState\n>;\n","const rules: (blockClass: string) => string[] = (blockClass: string) => [\n `.${blockClass} { background: currentColor }`,\n 'noscript { display: none !important; }',\n];\n\nexport default rules;\n","import { decode } from 'base64-arraybuffer';\nimport type { Replayer } from '../';\nimport type { CanvasArg, SerializedCanvasArg } from '@rrweb/types';\n\n// TODO: add ability to wipe this list\ntype GLVarMap = Map<string, any[]>;\nconst webGLVarMap: Map<\n CanvasRenderingContext2D | WebGLRenderingContext | WebGL2RenderingContext,\n GLVarMap\n> = new Map();\nexport function variableListFor(\n ctx:\n | CanvasRenderingContext2D\n | WebGLRenderingContext\n | WebGL2RenderingContext,\n ctor: string,\n) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return contextMap.get(ctor) as any[];\n}\n\nexport function isSerializedArg(arg: unknown): arg is SerializedCanvasArg {\n return Boolean(arg && typeof arg === 'object' && 'rr_type' in arg);\n}\n\nexport function deserializeArg(\n imageMap: Replayer['imageMap'],\n ctx:\n | CanvasRenderingContext2D\n | WebGLRenderingContext\n | WebGL2RenderingContext\n | null,\n preload?: {\n isUnchanged: boolean;\n },\n): (arg: CanvasArg) => Promise<any> {\n return async (arg: CanvasArg): Promise<any> => {\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\n if (preload) preload.isUnchanged = false;\n if (arg.rr_type === 'ImageBitmap' && 'args' in arg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n // eslint-disable-next-line prefer-spread\n return await createImageBitmap.apply(null, args);\n } else if ('index' in arg) {\n if (preload || ctx === null) return arg; // we are preloading, ctx is unknown\n const { rr_type: name, index } = arg;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return variableListFor(ctx, name)[index];\n } else if ('args' in arg) {\n const { rr_type: name, args } = arg;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ctor = window[name as keyof Window];\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return new ctor(\n ...(await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload)),\n )),\n );\n } else if ('base64' in arg) {\n return decode(arg.base64);\n } else if ('src' in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image = new Image();\n image.src = arg.src;\n imageMap.set(arg.src, image);\n return image;\n }\n } else if ('data' in arg && arg.rr_type === 'Blob') {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload)),\n );\n const blob = new Blob(blobContents, {\n type: arg.type,\n });\n return blob;\n }\n } else if (Array.isArray(arg)) {\n const result = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload)),\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n }\n return arg;\n };\n}\n","import type { Replayer } from '../';\nimport { CanvasContext, type canvasMutationCommand } from '@rrweb/types';\nimport { deserializeArg, variableListFor } from './deserialize-args';\n\nfunction getContext(\n target: HTMLCanvasElement,\n type: CanvasContext,\n): WebGLRenderingContext | WebGL2RenderingContext | null {\n // Note to whomever is going to implement support for `contextAttributes`:\n // if `preserveDrawingBuffer` is set to true,\n // you might have to do `ctx.flush()` before every webgl canvas event\n try {\n if (type === CanvasContext.WebGL) {\n return (\n target.getContext('webgl')! || target.getContext('experimental-webgl')\n );\n }\n return target.getContext('webgl2')!;\n } catch (e) {\n return null;\n }\n}\n\nconst WebGLVariableConstructorsNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n];\n\nfunction saveToWebGLVarMap(\n ctx: WebGLRenderingContext | WebGL2RenderingContext,\n result: any,\n) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!result?.constructor) return; // probably null or undefined\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const { name } = result.constructor;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!WebGLVariableConstructorsNames.includes(name)) return; // not a WebGL variable\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result)) variables.push(result);\n}\n\nexport default async function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler,\n}: {\n mutation: canvasMutationCommand;\n target: HTMLCanvasElement;\n type: CanvasContext;\n imageMap: Replayer['imageMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n try {\n const ctx = getContext(target, type);\n if (!ctx) return;\n\n // NOTE: if `preserveDrawingBuffer` is set to true,\n // we must flush the buffers on every new canvas event\n // if (mutation.newFrame) ctx.flush();\n\n if (mutation.setter) {\n // skip some read-only type checks\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (ctx as any)[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[\n mutation.property as Exclude<keyof typeof ctx, 'canvas'>\n ] as (\n ctx: WebGLRenderingContext | WebGL2RenderingContext,\n args: unknown[],\n ) => void;\n\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx)),\n );\n const result = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result);\n\n // Slows down replay considerably, only use for debugging\n const debugMode = false;\n if (debugMode) {\n if (mutation.property === 'compileShader') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!ctx.getShaderParameter(args[0], ctx.COMPILE_STATUS))\n console.warn(\n 'something went wrong in replay',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.getShaderInfoLog(args[0]),\n );\n } else if (mutation.property === 'linkProgram') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.validateProgram(args[0]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!ctx.getProgramParameter(args[0], ctx.LINK_STATUS))\n console.warn(\n 'something went wrong in replay',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.getProgramInfoLog(args[0]),\n );\n }\n const webglError = ctx.getError();\n if (webglError !== ctx.NO_ERROR) {\n console.warn(\n 'WEBGL ERROR',\n webglError,\n 'on command:',\n mutation.property,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ...args,\n );\n }\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\n","import type { Replayer } from '../';\nimport type { canvasMutationCommand } from '@rrweb/types';\nimport { deserializeArg } from './deserialize-args';\n\nexport default async function canvasMutation({\n event,\n mutations,\n target,\n imageMap,\n errorHandler,\n}: {\n event: Parameters<Replayer['applyIncremental']>[0];\n mutations: canvasMutationCommand[];\n target: HTMLCanvasElement;\n imageMap: Replayer['imageMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n const ctx = target.getContext('2d');\n\n if (!ctx) {\n errorHandler(mutations[0], new Error('Canvas context is null'));\n return;\n }\n\n // step 1, deserialize args, they may be async\n const mutationArgsPromises = mutations.map(\n async (mutation: canvasMutationCommand): Promise<unknown[]> => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n },\n );\n const args = await Promise.all(mutationArgsPromises);\n // step 2 apply all mutations\n args.forEach((args, index) => {\n const mutation = mutations[index];\n try {\n if (mutation.setter) {\n // skip some read-only type checks\n (ctx as unknown as Record<string, unknown>)[mutation.property] =\n mutation.args[0];\n return;\n }\n const original = ctx[\n mutation.property as Exclude<keyof typeof ctx, 'canvas'>\n ] as (ctx: CanvasRenderingContext2D, args: unknown[]) => void;\n\n /**\n * We have serialized the image source into base64 string during recording,\n * which has been preloaded before replay.\n * So we can get call drawImage SYNCHRONOUSLY which avoid some fragile cast.\n */\n if (\n mutation.property === 'drawImage' &&\n typeof mutation.args[0] === 'string'\n ) {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args);\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n\n return;\n });\n}\n","import type { Replayer } from '..';\nimport {\n CanvasContext,\n type canvasMutationCommand,\n type canvasMutationData,\n type canvasMutationParam,\n} from '@rrweb/types';\nimport webglMutation from './webgl';\nimport canvas2DMutation from './2d';\n\nexport default async function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler,\n}: {\n event: Parameters<Replayer['applyIncremental']>[0];\n mutation: canvasMutationData;\n target: HTMLCanvasElement;\n imageMap: Replayer['imageMap'];\n canvasEventMap: Replayer['canvasEventMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n try {\n const precomputedMutation: canvasMutationParam =\n canvasEventMap.get(event) || mutation;\n\n const commands: canvasMutationCommand[] =\n 'commands' in precomputedMutation\n ? precomputedMutation.commands\n : [precomputedMutation];\n\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i = 0; i < commands.length; i++) {\n const command = commands[i];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler,\n });\n }\n return;\n }\n // default is '2d' for backwards compatibility (rrweb below 1.1.x)\n await canvas2DMutation({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler,\n });\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\n","import type { Emitter } from '@rrweb/types';\nimport { MediaInteractions, ReplayerEvents } from '@rrweb/types';\nimport type { RRMediaElement } from 'rrdom';\nimport type { createPlayerService, createSpeedService } from '../machine';\nimport type { Mirror } from 'rrweb-snapshot';\nimport type { mediaInteractionData, mediaAttributes } from '@rrweb/types';\n\ntype MediaState = {\n isPlaying: boolean;\n currentTimeAtLastInteraction: number;\n lastInteractionTimeOffset: number;\n playbackRate: number;\n loop: boolean;\n volume: number;\n muted: boolean;\n};\n\nexport class MediaManager {\n private mediaMap: Map<HTMLMediaElement | RRMediaElement, MediaState> =\n new Map();\n private warn: (...args: Parameters<typeof console.warn>) => void;\n private service: ReturnType<typeof createPlayerService>;\n private speedService: ReturnType<typeof createSpeedService>;\n private emitter: Emitter;\n private getCurrentTime: () => number;\n private metadataCallbackMap: WeakMap<\n HTMLMediaElement | RRMediaElement,\n () => void\n > = new Map();\n\n constructor(options: {\n warn: (...args: Parameters<typeof console.warn>) => void;\n service: ReturnType<typeof createPlayerService>;\n speedService: ReturnType<typeof createSpeedService>;\n getCurrentTime: () => number;\n emitter: Emitter;\n }) {\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n\n private syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n\n private start() {\n this.syncAllMediaElements();\n }\n\n private pause() {\n this.syncAllMediaElements({ pause: true });\n }\n\n private seekTo({\n time,\n target,\n mediaState,\n }: {\n time: number;\n target: HTMLMediaElement | RRMediaElement;\n mediaState: MediaState;\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp =\n time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset =\n (differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1000) *\n mediaState.playbackRate;\n\n const duration = 'duration' in target && target.duration;\n\n // Video hasn't loaded yet, wait for metadata\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n\n let seekToTime =\n mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n\n if (\n target.loop &&\n // RRMediaElement doesn't have a duration property\n duration !== false\n ) {\n seekToTime = seekToTime % duration;\n }\n\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n\n private waitForMetadata(target: HTMLMediaElement | RRMediaElement) {\n if (this.metadataCallbackMap.has(target)) return;\n if (!('addEventListener' in target)) return;\n\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState,\n });\n };\n\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener('loadedmetadata', onLoadedMetadata, {\n once: true,\n });\n }\n\n private getMediaStateFromMutation({\n target,\n timeOffset,\n mutation,\n }: {\n target: HTMLMediaElement | RRMediaElement;\n timeOffset: number;\n mutation: mediaInteractionData;\n }): MediaState {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n\n const isPlaying =\n type === MediaInteractions.Play ||\n (type !== MediaInteractions.Pause &&\n (lastState?.isPlaying || target.getAttribute('autoplay') !== null));\n\n const mediaState: MediaState = {\n isPlaying,\n currentTimeAtLastInteraction:\n currentTime ?? lastState?.currentTimeAtLastInteraction ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? lastState?.playbackRate ?? 1,\n volume: volume ?? lastState?.volume ?? 1,\n muted: muted ?? lastState?.muted ?? target.getAttribute('muted') === null,\n loop: loop ?? lastState?.loop ?? target.getAttribute('loop') === null,\n };\n\n return mediaState;\n }\n\n private syncTargetWithState(target: HTMLMediaElement | RRMediaElement) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches('paused');\n const playbackRate =\n mediaState.playbackRate * this.speedService.state.context.timer.speed;\n\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState,\n });\n\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n\n if (target.playbackRate !== playbackRate) {\n // Avoid setting playbackRate when it's already the same\n // Safari drops frames whenever playbackRate is set, even if it's the same\n target.playbackRate = playbackRate;\n }\n\n if (isPlaying && !playerIsPaused) {\n // remove listener for 'canplay' event because play() is async and returns a promise\n // i.e. media will eventually start to play when data is loaded\n // 'canplay' event fires even when currentTime attribute changes which may lead to\n // unexpected behavior\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`,\n );\n }\n }\n\n public addMediaElements(node: Node, timeOffset: number, mirror: Mirror) {\n if (!['AUDIO', 'VIDEO'].includes(node.nodeName)) return;\n const target = node as HTMLMediaElement;\n const serializedNode = mirror.getMeta(target);\n if (!serializedNode || !('attributes' in serializedNode)) return;\n const playerIsPaused = this.service.state.matches('paused');\n const mediaAttributes = serializedNode.attributes as\n | mediaAttributes\n | Record<string, never>;\n\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === 'played';\n } else {\n isPlaying = target.getAttribute('autoplay') !== null;\n }\n if (isPlaying && playerIsPaused) target.pause();\n\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === 'number') {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === 'boolean') {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute('muted') !== null;\n }\n\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === 'boolean') {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute('loop') !== null;\n }\n\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === 'number') {\n volume = mediaAttributes.rr_mediaVolume;\n }\n\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === 'number') {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop,\n });\n this.syncTargetWithState(target);\n }\n\n public mediaMutation({\n target,\n timeOffset,\n mutation,\n }: {\n target: HTMLMediaElement | RRMediaElement;\n timeOffset: number;\n mutation: mediaInteractionData;\n }) {\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation,\n }),\n );\n\n this.syncTargetWithState(target);\n }\n\n public isSupportedMediaElement(node: Node): node is HTMLMediaElement {\n return ['AUDIO', 'VIDEO'].includes(node.nodeName);\n }\n\n public reset() {\n this.mediaMap.clear();\n }\n}\n","import type { attributeMutation } from '@rrweb/types';\nimport { RRNode } from 'rrdom';\n\n/**\n * Checks if the dialog is a top level dialog and applies the dialog to the top level\n * @param node - potential dialog element to apply top level `showModal()` to, or other node (which will be ignored)\n * @param attributeMutation - the attribute mutation used to change the dialog (optional)\n * @returns void\n */\nexport function applyDialogToTopLevel(\n node: HTMLDialogElement | Node | RRNode,\n attributeMutation?: attributeMutation,\n): void {\n if (node.nodeName !== 'DIALOG' || node instanceof RRNode) return;\n const dialog = node as HTMLDialogElement;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches('dialog:modal');\n const rrOpenMode = dialog.getAttribute('rr_open_mode');\n\n const newIsOpen =\n typeof attributeMutation?.attributes.open === 'string' ||\n typeof dialog.getAttribute('open') === 'string';\n const newIsModalState = rrOpenMode === 'modal';\n const newIsNonModalState = rrOpenMode === 'non-modal';\n\n const modalStateChanged =\n (oldIsModalState && newIsNonModalState) ||\n (!oldIsModalState && newIsModalState);\n\n if (oldIsOpen && !modalStateChanged) return;\n // complain if dialog is not attached to the dom\n if (!dialog.isConnected) {\n console.warn('dialog is not attached to the dom', dialog);\n return;\n }\n\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\n\n/**\n * Check if the dialog is a top level dialog and removes the dialog from the top level if necessary\n * @param node - potential dialog element to remove from top level, or other node (which will be ignored)\n * @param attributeMutation - the attribute mutation used to change the dialog\n * @returns void\n */\nexport function removeDialogFromTopLevel(\n node: HTMLDialogElement | Node | RRNode,\n attributeMutation: attributeMutation,\n): void {\n if (node.nodeName !== 'DIALOG' || node instanceof RRNode) return;\n const dialog = node as HTMLDialogElement;\n\n // complain if dialog is not attached to the dom\n if (!dialog.isConnected) {\n console.warn('dialog is not attached to the dom', dialog);\n return;\n }\n\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute('open');\n dialog.removeAttribute('rr_open_mode');\n }\n}\n","import {\n rebuild,\n adaptCssForReplay,\n buildNodeWithSN,\n type BuildCache,\n createCache,\n Mirror,\n createMirror,\n toLowerCase,\n} from 'rrweb-snapshot';\nimport {\n RRDocument,\n createOrGetNode,\n buildFromNode,\n buildFromDom,\n diff,\n getDefaultSN,\n} from 'rrdom';\nimport type {\n RRNode,\n RRElement,\n RRStyleElement,\n RRIFrameElement,\n RRMediaElement,\n RRCanvasElement,\n ReplayerHandler,\n Mirror as RRDOMMirror,\n} from 'rrdom';\nimport * as mittProxy from 'mitt';\nimport { polyfill as smoothscrollPolyfill } from './smoothscroll';\nimport { Timer } from './timer';\nimport {\n createPlayerService,\n createSpeedService,\n type PlayerMachineState,\n type SpeedMachineState,\n} from './machine';\nimport type { playerConfig, missingNodeMap } from '../types';\nimport {\n NodeType,\n EventType,\n IncrementalSource,\n MouseInteractions,\n ReplayerEvents,\n} from '@rrweb/types';\nimport type {\n attributes,\n fullSnapshotEvent,\n eventWithTime,\n playerMetaData,\n viewportResizeDimension,\n addedNodeMutation,\n incrementalSnapshotEvent,\n incrementalData,\n Handler,\n Emitter,\n metaEvent,\n mutationData,\n scrollData,\n inputData,\n canvasMutationData,\n styleValueWithPriority,\n mouseMovePos,\n IWindow,\n canvasMutationCommand,\n canvasMutationParam,\n canvasEventWithTime,\n selectionData,\n styleSheetRuleData,\n styleDeclarationData,\n adoptedStyleSheetData,\n serializedElementNodeWithId,\n} from '@rrweb/types';\nimport {\n polyfill,\n queueToResolveTrees,\n iterateResolveTree,\n type AppendedIframe,\n getBaseDimension,\n hasShadowRoot,\n isSerializedIframe,\n getNestedRule,\n getPositionsAndIndex,\n uniqueTextMutations,\n StyleSheetMirror,\n} from '../utils';\nimport getInjectStyleRules from './styles/inject-style';\nimport './styles/style.css';\nimport canvasMutation from './canvas';\nimport { deserializeArg } from './canvas/deserialize-args';\nimport { MediaManager } from './media';\nimport { applyDialogToTopLevel, removeDialogFromTopLevel } from './dialog';\n\nconst SKIP_TIME_INTERVAL = 5 * 1000;\n\n// https://github.com/rollup/rollup/issues/1267#issuecomment-296395734\nconst mitt = mittProxy.default || mittProxy;\n\nconst REPLAY_CONSOLE_PREFIX = '[replayer]';\n\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: 'round',\n lineWidth: 3,\n strokeStyle: 'red',\n} as const;\n\nfunction indicatesTouchDevice(e: eventWithTime) {\n return (\n e.type == EventType.IncrementalSnapshot &&\n (e.data.source == IncrementalSource.TouchMove ||\n (e.data.source == IncrementalSource.MouseInteraction &&\n e.data.type == MouseInteractions.TouchStart))\n );\n}\n\nexport class Replayer {\n public wrapper: HTMLDivElement;\n public iframe: HTMLIFrameElement;\n\n public service: ReturnType<typeof createPlayerService>;\n public speedService: ReturnType<typeof createSpeedService>;\n public get timer() {\n return this.service.state.context.timer;\n }\n\n public config: playerConfig;\n\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n public usingVirtualDom = false;\n public virtualDom: RRDocument = new RRDocument();\n\n private mouse: HTMLDivElement;\n private mouseTail: HTMLCanvasElement | null = null;\n private tailPositions: Array<{ x: number; y: number }> = [];\n\n private emitter: Emitter = mitt();\n\n private nextUserInteractionEvent: eventWithTime | null;\n\n private legacy_missingNodeRetryMap: missingNodeMap = {};\n\n // The replayer uses the cache to speed up replay and scrubbing.\n private cache: BuildCache = createCache();\n\n private imageMap: Map<eventWithTime | string, HTMLImageElement> = new Map();\n private canvasEventMap: Map<eventWithTime, canvasMutationParam> = new Map();\n\n private mirror: Mirror = createMirror();\n\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n private styleMirror: StyleSheetMirror = new StyleSheetMirror();\n\n // Used to track video & audio elements, and keep them in sync with general playback.\n private mediaManager: MediaManager;\n\n private firstFullSnapshot: eventWithTime | true | null = null;\n\n private newDocumentQueue: addedNodeMutation[] = [];\n\n private mousePos: mouseMovePos | null = null;\n private touchActive: boolean | null = null;\n private lastMouseDownEvent: [Node, Event] | null = null;\n\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n private lastHoveredRootNode: Document | ShadowRoot;\n\n // In the fast-forward mode, only the last selection data needs to be applied.\n private lastSelectionData: selectionData | null = null;\n\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n private constructedStyleMutations: (\n | styleSheetRuleData\n | styleDeclarationData\n )[] = [];\n\n // Similar to the reason for constructedStyleMutations.\n private adoptedStyleSheets: adoptedStyleSheetData[] = [];\n\n constructor(\n events: Array<eventWithTime | string>,\n config?: Partial<playerConfig>,\n ) {\n if (!config?.liveMode && events.length < 2) {\n throw new Error('Replayer need at least 2 events.');\n }\n const defaultConfig: playerConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1000,\n showWarning: true,\n showDebug: false,\n blockClass: 'rr-block',\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true, // Virtual-dom optimization is enabled by default.\n logger: console,\n };\n this.config = Object.assign({}, defaultConfig, config);\n\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize as Handler);\n\n this.setupDom();\n\n /**\n * Exposes mirror to the plugins\n */\n for (const plugin of this.config.plugins || []) {\n if (plugin.getMirror) plugin.getMirror({ nodeMirror: this.mirror });\n }\n\n this.emitter.on(ReplayerEvents.Flush, () => {\n if (this.usingVirtualDom) {\n const replayerHandler: ReplayerHandler = {\n mirror: this.mirror,\n applyCanvas: (\n canvasEvent: canvasEventWithTime,\n canvasMutationData: canvasMutationData,\n target: HTMLCanvasElement,\n ) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this),\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (\n data: styleDeclarationData | styleSheetRuleData,\n styleSheet: CSSStyleSheet,\n ) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node: Node, id: number) => {\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild) plugin.onBuild(node, { id, replayer: this });\n }\n },\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror,\n );\n } catch (e) {\n console.warn(e);\n }\n\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n\n // If these legacy missing nodes haven't been resolved, they should be converted to real Nodes.\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node as RRNode,\n this.mirror,\n this.virtualDom.mirror,\n );\n diff(\n realNode,\n value.node as RRNode,\n replayerHandler,\n this.virtualDom.mirror,\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData,\n );\n this.mousePos = null;\n }\n\n if (this.touchActive === true) {\n this.mouse.classList.add('touch-active');\n } else if (this.touchActive === false) {\n this.mouse.classList.remove('touch-active');\n }\n this.touchActive = null;\n\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n });\n\n const timer = new Timer([], {\n speed: this.config.speed,\n });\n this.service = createPlayerService(\n {\n events: events\n .map((e) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e as string);\n }\n return e as eventWithTime;\n })\n .sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null,\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter,\n },\n );\n this.service.start();\n this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state,\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer,\n });\n this.speedService.start();\n this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state,\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this),\n });\n\n // rebuild first full snapshot as the poster of the player\n // maybe we can cache it for performance optimization\n const firstMeta = this.service.state.context.events.find(\n (e) => e.type === EventType.Meta,\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e) => e.type === EventType.FullSnapshot,\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data as metaEvent['data'];\n setTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height,\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(() => {\n // when something has been played, there is no need to rebuild poster\n if (this.firstFullSnapshot) {\n // true if any other fullSnapshot has been executed by Timer already\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot as fullSnapshotEvent & { timestamp: number },\n );\n this.iframe.contentWindow?.scrollTo(\n (firstFullsnapshot as fullSnapshotEvent).data.initialOffset,\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add('touch-device');\n }\n }\n\n public on(event: string, handler: Handler) {\n this.emitter.on(event, handler);\n return this;\n }\n\n public off(event: string, handler: Handler) {\n this.emitter.off(event, handler);\n return this;\n }\n\n public setConfig(config: Partial<playerConfig>) {\n Object.keys(config).forEach((key) => {\n const newConfigValue = config[key as keyof playerConfig];\n (this.config as Record<keyof playerConfig, typeof newConfigValue>)[\n key as keyof playerConfig\n ] = config[key as keyof playerConfig];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== 'undefined') {\n this.speedService.send({\n type: 'SET_SPEED',\n payload: {\n speed: config.speed,\n },\n });\n }\n if (typeof config.mouseTail !== 'undefined') {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = 'none';\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = 'inherit';\n }\n }\n }\n\n public getMetaData(): playerMetaData {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent =\n this.service.state.context.events[\n this.service.state.context.events.length - 1\n ];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp,\n };\n }\n\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n public getCurrentTime(): number {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n public getTimeOffset(): number {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n\n public getMirror(): Mirror {\n return this.mirror;\n }\n\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n public play(timeOffset = 0) {\n if (this.service.state.matches('paused')) {\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\n } else {\n this.service.send({ type: 'PAUSE' });\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\n }\n this.iframe.contentDocument\n ?.getElementsByTagName('html')[0]\n ?.classList.remove('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Start);\n }\n\n public pause(timeOffset?: number) {\n if (timeOffset === undefined && this.service.state.matches('playing')) {\n this.service.send({ type: 'PAUSE' });\n }\n if (typeof timeOffset === 'number') {\n this.play(timeOffset);\n this.service.send({ type: 'PAUSE' });\n }\n this.iframe.contentDocument\n ?.getElementsByTagName('html')[0]\n ?.classList.add('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Pause);\n }\n\n public resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`,\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n public destroy() {\n this.pause();\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.config.root.removeChild(this.wrapper);\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n\n public startLive(baselineTime?: number) {\n this.service.send({ type: 'TO_LIVE', payload: { baselineTime } });\n }\n\n public addEvent(rawEvent: eventWithTime | string) {\n const event = this.config.unpackFn\n ? this.config.unpackFn(rawEvent as string)\n : (rawEvent as eventWithTime);\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add('touch-device');\n }\n void Promise.resolve().then(() =>\n this.service.send({ type: 'ADD_EVENT', payload: { event } }),\n );\n }\n\n public enableInteract() {\n this.iframe.setAttribute('scrolling', 'auto');\n this.iframe.style.pointerEvents = 'auto';\n }\n\n public disableInteract() {\n this.iframe.setAttribute('scrolling', 'no');\n this.iframe.style.pointerEvents = 'none';\n }\n\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n public resetCache() {\n this.cache = createCache();\n }\n\n private setupDom() {\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('replayer-wrapper');\n this.config.root.appendChild(this.wrapper);\n\n this.mouse = document.createElement('div');\n this.mouse.classList.add('replayer-mouse');\n this.wrapper.appendChild(this.mouse);\n\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.mouseTail.style.display = 'inherit';\n this.wrapper.appendChild(this.mouseTail);\n }\n\n this.iframe = document.createElement('iframe');\n const attributes = ['allow-same-origin'];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push('allow-scripts');\n }\n // hide iframe before first meta event\n this.iframe.style.display = 'none';\n this.iframe.setAttribute('sandbox', attributes.join(' '));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n smoothscrollPolyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument,\n );\n\n polyfill(this.iframe.contentWindow as IWindow);\n }\n }\n\n private handleResize = (dimension: viewportResizeDimension) => {\n this.iframe.style.display = 'inherit';\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute('width', String(dimension.width));\n el.setAttribute('height', String(dimension.height));\n }\n };\n\n private applyEventsSynchronously = (events: Array<eventWithTime>) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n default:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n };\n\n private getCastFn = (event: eventWithTime, isSync = false) => {\n let castFn: undefined | (() => void);\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n /**\n * emit custom-event and pass the event object.\n *\n * This will add more value to the custom event and allows the client to react for custom-event.\n */\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () =>\n this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height,\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n // we've already built this exact FullSnapshot when the player was mounted, and haven't built any other FullSnapshot since\n this.firstFullSnapshot = true; // forget as we might need to re-execute this FullSnapshot later e.g. to rebuild after scrubbing\n return;\n }\n } else {\n // Timer (requestAnimationFrame) can be faster than setTimeout(..., 1)\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n this.iframe.contentWindow?.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n // do not check skip in sync\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay! - event.delay! >\n this.config.inactivePeriodThreshold *\n this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay! - event.delay!;\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed,\n ),\n };\n this.speedService.send({ type: 'FAST_FORWARD', payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n default:\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n\n for (const plugin of this.config.plugins || []) {\n if (plugin.handler) plugin.handler(event, isSync, { replayer: this });\n }\n\n this.service.send({ type: 'CAST_EVENT', payload: { event } });\n\n // events are kept sorted by timestamp, check if this is the last event\n const lastIndex = this.service.state.context.events.length - 1;\n if (\n !this.config.liveMode &&\n event === this.service.state.context.events[lastIndex]\n ) {\n const finish = () => {\n if (lastIndex < this.service.state.context.events.length - 1) {\n // more events have been added since the setTimeout\n return;\n }\n this.backToNormal();\n this.service.send('END');\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finishBuffer = 50; // allow for checking whether new events aren't just about to be loaded in\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.MouseMove &&\n event.data.positions.length\n ) {\n // extend finish event if the last event is a mouse move so that the timer isn't stopped by the service before checking the last event\n finishBuffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finishBuffer);\n }\n\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n };\n\n private rebuildFullSnapshot(\n event: fullSnapshotEvent & { timestamp: number },\n isSync = false,\n ) {\n if (!this.iframe.contentDocument) {\n return this.warn('Looks like your replayer has been destroyed.');\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n 'Found unresolved missing node map',\n this.legacy_missingNodeRetryMap,\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collectedIframes: AppendedIframe[] = [];\n const collectedDialogs = new Set<HTMLDialogElement>();\n const afterAppend = (builtNode: Node, id: number) => {\n if (builtNode.nodeName === 'DIALOG')\n collectedDialogs.add(builtNode as HTMLDialogElement);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror,\n );\n }\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this,\n });\n }\n };\n\n /**\n * Normally rebuilding full snapshot should not be under virtual dom environment.\n * But if the order of data events has some issues, it might be possible.\n * Adding this check to avoid any potential issues.\n */\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror,\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches('playing')) {\n this.iframe.contentDocument\n .getElementsByTagName('html')[0]\n .classList.add('rrweb-paused');\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n\n private insertStyleRules(\n documentElement: HTMLElement | RRElement,\n head: HTMLHeadElement | RRElement,\n ) {\n const injectStylesRules = getInjectStyleRules(\n this.config.blockClass,\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n 'html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }',\n );\n }\n if (!injectStylesRules.length) {\n return;\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement('style');\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId),\n );\n (documentElement as RRElement).insertBefore(styleEl, head as RRElement);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index) => ({\n rule: cssText,\n index,\n })),\n });\n } else {\n const styleEl = document.createElement('style');\n (documentElement as HTMLElement).insertBefore(\n styleEl,\n head as HTMLHeadElement,\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n styleEl.sheet?.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n\n private attachDocumentToIframe(\n mutation: addedNodeMutation,\n iframeEl: HTMLIFrameElement | RRIFrameElement,\n ) {\n const mirror: RRDOMMirror | Mirror = this.usingVirtualDom\n ? this.virtualDom.mirror\n : this.mirror;\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n type TMirror = typeof mirror extends Mirror ? Mirror : RRDOMMirror;\n\n const collectedIframes: AppendedIframe[] = [];\n const collectedDialogs = new Set<HTMLDialogElement>();\n const afterAppend = (builtNode: Node, id: number) => {\n if (builtNode.nodeName === 'DIALOG')\n collectedDialogs.add(builtNode as HTMLDialogElement);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = (mirror as TMirror).getMeta(builtNode as unknown as TNode);\n if (\n sn?.type === NodeType.Element &&\n sn?.tagName.toUpperCase() === 'HTML'\n ) {\n const { documentElement, head } = iframeEl.contentDocument!;\n this.insertStyleRules(\n documentElement as HTMLElement | RRElement,\n head as HTMLElement | RRElement,\n );\n }\n\n // Skip the plugin onBuild callback in the virtual dom mode\n if (this.usingVirtualDom) return;\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this,\n });\n }\n };\n\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument! as Document,\n mirror: mirror as Mirror,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache,\n });\n afterAppend(iframeEl.contentDocument! as Document, mutation.node.id);\n\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n }\n\n private collectIframeAndAttachDocument(\n collected: AppendedIframe[],\n builtNode: Node,\n ) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode),\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode: builtNode as HTMLIFrameElement,\n });\n }\n }\n }\n\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n private waitForStylesheetLoad() {\n const head = this.iframe.contentDocument?.head;\n if (head) {\n const unloadSheets: Set<HTMLLinkElement> = new Set();\n let timer: ReturnType<typeof setTimeout> | -1;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head\n .querySelectorAll('link[rel=\"stylesheet\"]')\n .forEach((css: HTMLLinkElement) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener('load', () => {\n unloadSheets.delete(css);\n // all loaded and timer not released yet\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches('playing')) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n\n if (unloadSheets.size > 0) {\n // find some unload sheets after iterate\n this.service.send({ type: 'PAUSE' });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches('playing')) {\n this.play(this.getCurrentTime());\n }\n // mark timer was called\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n private async preloadAllImages(): Promise<void[]> {\n const promises: Promise<void>[] = [];\n for (const event of this.service.state.context.events) {\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.CanvasMutation\n ) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event),\n );\n const commands =\n 'commands' in event.data ? event.data.commands : [event.data];\n commands.forEach((c) => {\n this.preloadImages(c, event);\n });\n }\n }\n return Promise.all(promises);\n }\n\n private preloadImages(data: canvasMutationCommand, event: eventWithTime) {\n if (\n data.property === 'drawImage' &&\n typeof data.args[0] === 'string' &&\n !this.imageMap.has(event)\n ) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const imgd = ctx?.createImageData(canvas.width, canvas.height);\n ctx?.putImageData(imgd!, 0, 0);\n }\n }\n private async deserializeAndPreloadCanvasEvents(\n data: canvasMutationData,\n event: eventWithTime,\n ) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true,\n };\n if ('commands' in data) {\n const commands = await Promise.all(\n data.commands.map(async (c) => {\n const args = await Promise.all(\n c.args.map(deserializeArg(this.imageMap, null, status)),\n );\n return { ...c, args };\n }),\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status)),\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n\n private applyIncremental(\n e: incrementalSnapshotEvent & { timestamp: number; delay?: number },\n isSync: boolean,\n ) {\n const { data: d } = e;\n switch (d.source) {\n case IncrementalSource.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d,\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay:\n p.timeOffset +\n e.timestamp -\n this.service.state.context.baselineTime,\n };\n this.timer.addAction(action);\n });\n // add a dummy action to keep timer alive\n this.timer.addAction({\n doAction() {\n //\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e.delay! - d.positions[0]?.timeOffset,\n });\n }\n break;\n case IncrementalSource.MouseInteraction: {\n /**\n * Same as the situation of missing input target.\n */\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target,\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if ('blur' in (target as HTMLElement)) {\n (target as HTMLElement).blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && (target as HTMLElement).focus) {\n (target as HTMLElement).focus({\n preventScroll: true,\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d,\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n // don't draw a trail as user has lifted finger and is placing at a new point\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n /*\n * don't want target.click() here as could trigger an iframe navigation\n * instead any effects of the click should already be covered by mutations\n */\n /*\n * removal and addition of .active class (along with void line to trigger repaint)\n * triggers the 'click' css animation in styles/style.css\n */\n this.mouse.classList.remove('active');\n void this.mouse.offsetWidth;\n this.mouse.classList.add('active');\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth; // needed for the position update of moveAndHover to apply without the .touch-active transition\n this.mouse.classList.add('touch-active');\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove('touch-active');\n } else {\n // for MouseDown & MouseUp also invoke default behavior\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove('touch-active');\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource.Scroll: {\n /**\n * Same as the situation of missing input target.\n */\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id) as RRElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n // Use isSync rather than this.usingVirtualDom because not every fast-forward process uses virtual dom optimization.\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height,\n });\n break;\n case IncrementalSource.Input: {\n /**\n * Input event on an unserialized node usually means the event\n * was synchrony triggered programmatically after the node was\n * created. This means there was not an user observable interaction\n * and we do not need to replay it.\n */\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id) as RRElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction: {\n const target = this.usingVirtualDom\n ? this.virtualDom.mirror.getNode(d.id)\n : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target as HTMLMediaElement | RRMediaElement;\n const { events } = this.service.state.context;\n\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e.timestamp - events[0].timestamp,\n mutation: d,\n });\n\n break;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (\n this.virtualDom.mirror.getNode(d.id) as RRStyleElement | null\n )?.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id,\n ) as RRCanvasElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e as canvasEventWithTime,\n mutation: d,\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e,\n mutation: d,\n target: target as HTMLCanvasElement,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this),\n });\n }\n break;\n }\n case IncrementalSource.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer\n ? new Uint8Array(JSON.parse(d.fontSource) as Iterable<number>)\n : d.fontSource,\n d.descriptors,\n );\n this.iframe.contentDocument?.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n default:\n }\n }\n\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n private applyMutation(d: mutationData, isSync: boolean) {\n // Only apply virtual dom optimization if the fast-forward process has node mutation. Because the cost of creating a virtual dom tree and executing the diff algorithm is usually higher than directly applying other kind of events.\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument!, this.mirror, this.virtualDom);\n // If these legacy missing nodes haven't been resolved, they should be converted to virtual nodes.\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node as Node,\n this.virtualDom,\n this.mirror,\n );\n if (virtualNode) value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n\n d.removes = d.removes.filter((mutation) => {\n // warn of absence from mirror before we start applying each removal\n // as earlier removals could remove a tree that includes a later removal\n if (!mirror.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n // no need to warn here, an ancestor may have already been removed\n return;\n }\n let parent: Node | null | ShadowRoot | RRNode = mirror.getNode(\n mutation.parentId,\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent as Node)) {\n parent = (parent as Element | RRElement).shadowRoot;\n }\n // target may be removed with its parents before\n mirror.removeNodeFromMap(target as Node & RRNode);\n if (parent)\n try {\n parent.removeChild(target as Node & RRNode);\n /**\n * https://github.com/rrweb-io/rrweb/pull/887\n * Remove any virtual style rules for stylesheets if a child text node is removed.\n */\n if (\n this.usingVirtualDom &&\n target.nodeName === '#text' &&\n parent.nodeName === 'STYLE' &&\n (parent as RRStyleElement).rules?.length > 0\n )\n (parent as RRStyleElement).rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n 'parent could not remove child in mutation',\n parent,\n target,\n d,\n );\n } else {\n throw error;\n }\n }\n });\n\n const legacy_missingNodeMap: missingNodeMap = {\n ...this.legacy_missingNodeRetryMap,\n };\n const queue: addedNodeMutation[] = [];\n\n // next not present at this moment\n const nextNotInDOM = (mutation: addedNodeMutation) => {\n let next: TNode | null = null;\n if (mutation.nextId) {\n next = mirror.getNode(mutation.nextId) as TNode | null;\n }\n // next not present at this moment\n if (\n mutation.nextId !== null &&\n mutation.nextId !== undefined &&\n mutation.nextId !== -1 &&\n !next\n ) {\n return true;\n }\n return false;\n };\n\n const appendNode = (mutation: addedNodeMutation) => {\n if (!this.iframe.contentDocument) {\n return this.warn('Looks like your replayer has been destroyed.');\n }\n let parent: Node | null | ShadowRoot | RRNode = mirror.getNode(\n mutation.parentId,\n );\n if (!parent) {\n if (mutation.node.type === NodeType.Document) {\n // is newly added document, maybe the document node of an iframe\n return this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n\n if (mutation.node.isShadow) {\n // If the parent is attached a shadow dom after it's created, it won't have a shadow root.\n if (!hasShadowRoot(parent)) {\n (parent as Element | RRElement).attachShadow({ mode: 'open' });\n parent = (parent as Element | RRElement).shadowRoot! as Node | RRNode;\n } else parent = parent.shadowRoot as Node | RRNode;\n }\n\n let previous: Node | RRNode | null = null;\n let next: Node | RRNode | null = null;\n if (mutation.previousId) {\n previous = mirror.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n\n if (mutation.node.rootId && !mirror.getNode(mutation.node.rootId)) {\n return;\n }\n\n const targetDoc = mutation.node.rootId\n ? mirror.getNode(mutation.node.rootId)\n : this.usingVirtualDom\n ? this.virtualDom\n : this.iframe.contentDocument;\n if (isSerializedIframe<typeof parent>(parent, mirror)) {\n this.attachDocumentToIframe(\n mutation,\n parent as HTMLIFrameElement | RRIFrameElement,\n );\n return;\n }\n const afterAppend = (node: Node | RRNode, id: number) => {\n // Skip the plugin onBuild callback for virtual dom\n if (this.usingVirtualDom) return;\n applyDialogToTopLevel(node);\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild) plugin.onBuild(node, { id, replayer: this });\n }\n };\n\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc as Document, // can be Document or RRDocument\n mirror: mirror as Mirror, // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend,\n }) as Node | RRNode;\n\n // legacy data, we should not have -1 siblings any more\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation,\n };\n return;\n }\n\n // Typescripts type system is not smart enough\n // to understand what is going on with the types below\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n type TMirror = typeof mirror extends Mirror ? Mirror : RRDOMMirror;\n\n const parentSn = (mirror as TMirror).getMeta(parent as TNode);\n if (\n parentSn &&\n parentSn.type === NodeType.Element &&\n mutation.node.type === NodeType.Text\n ) {\n const prospectiveSiblings = Array.isArray(parent.childNodes)\n ? parent.childNodes\n : Array.from(parent.childNodes);\n if (parentSn.tagName === 'textarea') {\n // This should be redundant now as we are either recording the value or the childNode, and not both\n // keeping around for backwards compatibility with old bad double data, see\n\n // https://github.com/rrweb-io/rrweb/issues/745\n // parent is textarea, will only keep one child node as the value\n for (const c of prospectiveSiblings) {\n if (c.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c as Node & RRNode);\n }\n }\n } else if (\n parentSn.tagName === 'style' &&\n prospectiveSiblings.length === 1\n ) {\n // https://github.com/rrweb-io/rrweb/pull/1417\n /**\n * If both _cssText and textContent are present for a style element due to some existing bugs, the element was ending up with two child text nodes\n * We need to remove the textNode created by _cssText as it doesn't have an id in the mirror, and thus cannot be further mutated.\n */\n for (const cssText of prospectiveSiblings as (Node & RRNode)[]) {\n if (\n cssText.nodeType === parent.TEXT_NODE &&\n !mirror.hasNode(cssText)\n ) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if (parentSn?.type === NodeType.Document) {\n /**\n * Sometimes the document object is changed or reopened and the MutationObserver is disconnected, so the removal of child elements can't be detected and recorded.\n * After the change of document, we may get another mutation which adds a new doctype or a HTML element, while the old one still exists in the dom.\n * So, we need to remove the old one first to avoid collision.\n */\n const parentDoc = parent as Document | RRDocument;\n /**\n * To detect the exist of the old doctype before adding a new doctype.\n * We need to remove the old doctype before adding the new one. Otherwise, code will throw \"mutation Failed to execute 'insertBefore' on 'Node': Only one doctype on document allowed\".\n */\n if (\n mutation.node.type === NodeType.DocumentType &&\n parentDoc.childNodes[0]?.nodeType === Node.DOCUMENT_TYPE_NODE\n )\n parentDoc.removeChild(parentDoc.childNodes[0] as Node & RRNode);\n /**\n * To detect the exist of the old HTML element before adding a new HTML element.\n * The reason is similar to the above. One document only allows exactly one DocType and one HTML Element.\n */\n if (target.nodeName === 'HTML' && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement as HTMLElement & RRNode,\n );\n }\n\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n (parent as TNode).insertBefore(\n target as TNode,\n previous.nextSibling as TNode,\n );\n } else if (next && next.parentNode) {\n // making sure the parent contains the reference nodes\n // before we insert target before next.\n (parent as TNode).contains(next as TNode)\n ? (parent as TNode).insertBefore(target as TNode, next as TNode)\n : (parent as TNode).insertBefore(target as TNode, null);\n } else {\n (parent as TNode).appendChild(target as TNode);\n }\n /**\n * target was added, execute plugin hooks\n */\n afterAppend(target, mutation.node.id);\n\n /**\n * https://github.com/rrweb-io/rrweb/pull/887\n * Remove any virtual style rules for stylesheets if a new text node is appended.\n */\n if (\n this.usingVirtualDom &&\n target.nodeName === '#text' &&\n parent.nodeName === 'STYLE' &&\n (parent as RRStyleElement).rules?.length > 0\n )\n (parent as RRStyleElement).rules = [];\n\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target as HTMLIFrameElement);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId,\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target as HTMLIFrameElement,\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n }\n\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation,\n );\n }\n };\n\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n\n const startTime = Date.now();\n while (queue.length) {\n // transform queue to resolve tree\n const resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn(\n 'Timeout in the loop, please check the resolve tree data:',\n resolveTrees,\n );\n break;\n }\n for (const tree of resolveTrees) {\n const parent = mirror.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n 'Drop resolve tree since there is no parent for the root node.',\n tree,\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n\n uniqueTextMutations(d.texts).forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r) => r.id === mutation.id)) {\n // no need to warn, element was already removed\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n\n const parentEl = target.parentElement as Element | RRElement;\n if (mutation.value && parentEl && parentEl.tagName === 'STYLE') {\n // assumes hackCss: true (which isn't currently configurable from rrweb)\n target.textContent = adaptCssForReplay(mutation.value, this.cache);\n } else {\n target.textContent = mutation.value;\n }\n\n /**\n * https://github.com/rrweb-io/rrweb/pull/865\n * Remove any virtual style rules for stylesheets whose contents are replaced.\n */\n if (this.usingVirtualDom) {\n const parent = target.parentNode as RRStyleElement;\n if (parent?.rules?.length > 0) parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r) => r.id === mutation.id)) {\n // no need to warn, element was already removed\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === 'string') {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n (target as Element | RRElement).removeAttribute(attributeName);\n if (attributeName === 'open')\n removeDialogFromTopLevel(target, mutation);\n } else if (typeof value === 'string') {\n try {\n // When building snapshot, some link styles haven't loaded. Then they are loaded, they will be inlined as incremental mutation change of attribute. We need to replace the old elements whose styles aren't inlined.\n if (\n attributeName === '_cssText' &&\n (target.nodeName === 'LINK' || target.nodeName === 'STYLE')\n ) {\n try {\n const newSn = mirror.getMeta(\n target as Node & RRNode,\n ) as serializedElementNodeWithId;\n const newNode = buildNodeWithSN(\n {\n ...newSn,\n attributes: {\n ...newSn.attributes,\n ...(mutation.attributes as attributes),\n },\n },\n {\n doc: target.ownerDocument as Document, // can be Document or RRDocument\n mirror: mirror as Mirror,\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n },\n );\n // Update mirror meta's attributes\n Object.assign(\n newSn.attributes,\n mutation.attributes as attributes,\n );\n const siblingNode = target.nextSibling;\n const parentNode = target.parentNode;\n if (newNode && parentNode) {\n parentNode.removeChild(target as Node & RRNode);\n parentNode.insertBefore(\n newNode as Node & RRNode,\n siblingNode as (Node & RRNode) | null,\n );\n mirror.replace(mutation.id, newNode as Node & RRNode);\n break;\n }\n } catch (e) {\n // for safe\n }\n }\n if (attributeName === 'value' && target.nodeName === 'TEXTAREA') {\n // this may or may not have an effect on the value property (which is what is displayed)\n // depending on whether the textarea has been modified by the user yet\n // TODO: replaceChildNodes is not available in RRDom\n const textarea = target as TNode;\n textarea.childNodes.forEach((c) =>\n textarea.removeChild(c as TNode),\n );\n const tn = target.ownerDocument?.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn as TNode);\n }\n } else {\n (target as Element | RRElement).setAttribute(\n attributeName,\n value,\n );\n }\n\n if (\n attributeName === 'rr_open_mode' &&\n target.nodeName === 'DIALOG'\n ) {\n applyDialogToTopLevel(target, mutation);\n }\n } catch (error) {\n this.warn(\n 'An error occurred may due to the checkout feature.',\n error,\n );\n }\n } else if (attributeName === 'style') {\n const styleValues = value;\n const targetEl = target as HTMLElement | RRElement;\n for (const s in styleValues) {\n if (styleValues[s] === false) {\n targetEl.style.removeProperty(s);\n } else if (styleValues[s] instanceof Array) {\n const svp = styleValues[s] as styleValueWithPriority;\n targetEl.style.setProperty(s, svp[0], svp[1]);\n } else {\n const svs = styleValues[s] as string;\n targetEl.style.setProperty(s, svs);\n }\n }\n }\n }\n }\n });\n }\n\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n private applyScroll(d: scrollData, isSync: boolean) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n this.iframe.contentWindow?.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } else if (sn?.type === NodeType.Document) {\n // nest iframe content document\n (target as Document).defaultView?.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } else {\n try {\n (target as Element).scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } catch (error) {\n /**\n * Seldomly we may found scroll target was removed before\n * its last scroll event.\n */\n }\n }\n }\n\n private applyInput(d: inputData) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n (target as HTMLInputElement).checked = d.isChecked;\n (target as HTMLInputElement).value = d.text;\n } catch (error) {\n // for safe\n }\n }\n\n private applySelection(d: selectionData) {\n try {\n const selectionSet = new Set<Selection>();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n\n if (!startContainer || !endContainer) return;\n\n const result = new Range();\n\n result.setStart(startContainer, startOffset);\n result.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc?.getSelection();\n selection && selectionSet.add(selection);\n\n return {\n range: result,\n selection,\n };\n });\n\n selectionSet.forEach((s) => s.removeAllRanges());\n\n ranges.forEach((r) => r && r.selection?.addRange(r.range));\n } catch (error) {\n // for safe\n }\n }\n\n private applyStyleSheetMutation(\n data: styleDeclarationData | styleSheetRuleData,\n ) {\n let styleSheet: CSSStyleSheet | null = null;\n if (data.styleId) styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet =\n (this.mirror.getNode(data.id) as HTMLStyleElement)?.sheet || null;\n if (!styleSheet) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n\n private applyStyleSheetRule(\n data: styleSheetRuleData,\n styleSheet: CSSStyleSheet,\n ) {\n data.adds?.forEach(({ rule, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule, index);\n } else {\n const index =\n nestedIndex === undefined\n ? undefined\n : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet?.insertRule(rule, index);\n }\n } catch (e) {\n /**\n * sometimes we may capture rules with browser prefix\n * insert rule with prefixs in other browsers may cause Error\n */\n /**\n * accessing styleSheet rules may cause SecurityError\n * for specific access control settings\n */\n }\n });\n\n data.removes?.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n styleSheet?.deleteRule(nestedIndex);\n }\n } catch (e) {\n /**\n * same as insertRule\n */\n }\n });\n\n if (data.replace)\n try {\n void styleSheet.replace?.(data.replace);\n } catch (e) {\n // for safety\n }\n\n if (data.replaceSync)\n try {\n styleSheet.replaceSync?.(data.replaceSync);\n } catch (e) {\n // for safety\n }\n }\n\n private applyStyleDeclaration(\n data: styleDeclarationData,\n styleSheet: CSSStyleSheet,\n ) {\n if (data.set) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index,\n ) as unknown as CSSStyleRule;\n rule.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority,\n );\n }\n\n if (data.remove) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index,\n ) as unknown as CSSStyleRule;\n rule.style.removeProperty(data.remove.property);\n }\n }\n\n private applyAdoptedStyleSheet(data: adoptedStyleSheetData) {\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) return;\n // Create StyleSheet objects which will be adopted after.\n data.styles?.forEach((style) => {\n let newStyleSheet: CSSStyleSheet | null = null;\n /**\n * Constructed StyleSheet can't share across multiple documents.\n * The replayer has to get the correct host window to recreate a StyleSheetObject.\n */\n let hostWindow: IWindow | null = null;\n if (hasShadowRoot(targetHost))\n hostWindow = targetHost.ownerDocument?.defaultView || null;\n else if (targetHost.nodeName === '#document')\n hostWindow = (targetHost as Document).defaultView;\n\n if (!hostWindow) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n // To reuse the code of applying stylesheet rules\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.StyleSheetRule,\n adds: style.rules,\n },\n newStyleSheet,\n );\n } catch (e) {\n // In case some browsers don't support constructing StyleSheet.\n }\n });\n\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost: Node, styleIds: number[]) => {\n const stylesToAdopt = styleIds\n .map((styleId) => this.styleMirror.getStyle(styleId))\n .filter((style) => style !== null) as CSSStyleSheet[];\n if (hasShadowRoot(targetHost))\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n (targetHost as HTMLElement).shadowRoot!.adoptedStyleSheets =\n stylesToAdopt;\n else if (targetHost.nodeName === '#document')\n (targetHost as Document).adoptedStyleSheets = stylesToAdopt;\n\n /**\n * In the live mode where events are transferred over network without strict order guarantee, some newer events are applied before some old events and adopted stylesheets may haven't been created.\n * This retry mechanism can help resolve this situation.\n */\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost, styleIds),\n 0 + 100 * count,\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n\n private legacy_resolveMissingNode(\n map: missingNodeMap,\n parent: Node | RRNode,\n target: Node | RRNode,\n targetMutation: addedNodeMutation,\n ) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node, mutation } = previousInMap;\n parent.insertBefore(node as Node & RRNode, target as Node & RRNode);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n if (nextInMap) {\n const { node, mutation } = nextInMap;\n parent.insertBefore(\n node as Node & RRNode,\n target.nextSibling as Node & RRNode,\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n }\n\n private moveAndHover(\n x: number,\n y: number,\n id: number,\n isSync: boolean,\n debugData: incrementalData,\n ) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n\n const base = getBaseDimension(target, this.iframe);\n const _x = x * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target as Element);\n }\n\n private drawMouseTail(position: { x: number; y: number }) {\n if (!this.mouseTail) {\n return;\n }\n\n const { lineCap, lineWidth, strokeStyle, duration } =\n this.config.mouseTail === true\n ? defaultMouseTailConfig\n : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext('2d');\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n\n this.tailPositions.push(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n\n private hoverElements(el: Element) {\n (this.lastHoveredRootNode || this.iframe.contentDocument)\n ?.querySelectorAll('.\\\\:hover')\n .forEach((hoveredEl) => {\n hoveredEl.classList.remove(':hover');\n });\n this.lastHoveredRootNode = el.getRootNode() as Document | ShadowRoot;\n let currentEl: Element | null = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(':hover');\n }\n currentEl = currentEl.parentElement;\n }\n }\n\n private isUserInteraction(event: eventWithTime): boolean {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return (\n event.data.source > IncrementalSource.Mutation &&\n event.data.source <= IncrementalSource.Input\n );\n }\n\n private backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches('normal')) {\n return;\n }\n this.speedService.send({ type: 'BACK_TO_NORMAL' });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed,\n });\n }\n\n private warnNodeNotFound(d: incrementalData, id: number) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n\n private warnCanvasMutationFailed(\n d: canvasMutationData | canvasMutationCommand,\n error: unknown,\n ) {\n this.warn(`Has error on canvas update`, error, 'canvas mutation:', d);\n }\n\n private debugNodeNotFound(d: incrementalData, id: number) {\n /**\n * There maybe some valid scenes of node not being found.\n * Because DOM events are macrotask and MutationObserver callback\n * is microtask, so events fired on a removed DOM may emit\n * snapshots in the reverse order.\n */\n this.debug(`Node with id '${id}' not found. `, d);\n }\n\n private warn(...args: Parameters<typeof console.warn>) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n\n private debug(...args: Parameters<typeof console.log>) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\n\nexport { type PlayerMachineState, type SpeedMachineState, type playerConfig };\n","import record from './record';\nimport {\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n} from './replay';\nimport canvasMutation from './replay/canvas';\nimport { _mirror } from './utils';\nimport * as utils from './utils';\n\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n ReplayerEvents,\n type eventWithTime,\n} from '@rrweb/types';\n\n// exports style.css from replay\nimport './replay/styles/style.css';\n\nexport type { recordOptions, ReplayPlugin } from './types';\n\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\n\nexport {\n record,\n addCustomEvent,\n freezePage,\n takeFullSnapshot,\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n canvasMutation,\n _mirror as mirror,\n utils,\n};\n"]}