@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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.js","../node_modules/rrweb/es/rrweb/packages/types/dist/types.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../node_modules/rrweb/es/rrweb/ext/tslib/tslib.es6.js","../node_modules/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js","../node_modules/rrweb/es/rrweb/_virtual/image-bitmap-data-url-worker.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../node_modules/rrweb/es/rrweb/packages/rrdom/es/rrdom.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/index.js","../node_modules/rrweb/es/rrweb/ext/fflate/esm/browser.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/packer/base.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/packer/pack.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/packer/unpack.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/index.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js","../node_modules/rrweb/es/rrweb/ext/mitt/dist/mitt.mjs.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/smoothscroll.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/timer.js","../node_modules/rrweb/es/rrweb/ext/@xstate/fsm/es/index.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/machine.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/deserialize-args.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/2d.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/index.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/index.js"],"names":["NodeType","n","s","rules","_a","Mirror","chars","c","a","mirror","_b","i","Position","m","v","name_2","value","e","__export","_mirror","parentId","r","FontFace","o","t","__require","WorkerFactory","decodeBase64","createBase64WorkerFactory","hyphenateRE","canvasMutation","oldChildren","newChildren","createMirror","getValidTagName","l","t2","i2","fl","ORIGINAL_ATTRIBUTE_NAME","polyfill","Element","u","variableListFor","image","mitt","events","targetHost"],"mappings":"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","file":"all-M6KEAHE5.cjs","sourcesContent":["var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n var host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction getCssRulesString(s) {\r\n try {\r\n var rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules).map(getCssRuleString).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction getCssRuleString(rule) {\r\n var cssStringified = rule.cssText;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\r\n }\r\n catch (_a) {\r\n }\r\n }\r\n return cssStringified;\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nvar Mirror = (function () {\r\n function Mirror() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n Mirror.prototype.getId = function (n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n };\r\n Mirror.prototype.getNode = function (id) {\r\n return this.idNodeMap.get(id) || null;\r\n };\r\n Mirror.prototype.getIds = function () {\r\n return Array.from(this.idNodeMap.keys());\r\n };\r\n Mirror.prototype.getMeta = function (n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n };\r\n Mirror.prototype.removeNodeFromMap = function (n) {\r\n var _this = this;\r\n var id = this.getId(n);\r\n this.idNodeMap[\"delete\"](id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach(function (childNode) {\r\n return _this.removeNodeFromMap(childNode);\r\n });\r\n }\r\n };\r\n Mirror.prototype.has = function (id) {\r\n return this.idNodeMap.has(id);\r\n };\r\n Mirror.prototype.hasNode = function (node) {\r\n return this.nodeMetaMap.has(node);\r\n };\r\n Mirror.prototype.add = function (n, meta) {\r\n var id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n };\r\n Mirror.prototype.replace = function (id, n) {\r\n var oldNode = this.getNode(id);\r\n if (oldNode) {\r\n var meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n };\r\n Mirror.prototype.reset = function () {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n };\r\n return Mirror;\r\n}());\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue(_a) {\r\n var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\r\n var text = value || '';\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n var chunkSize = 50;\r\n for (var x = 0; x < canvas.width; x += chunkSize) {\r\n for (var y = 0; y < canvas.height; y += chunkSize) {\r\n var getImageData = ctx.getImageData;\r\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some(function (pixel) { return pixel !== 0; }))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\nvar _id = 1;\r\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nvar IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n var processedTagName = element.tagName.toLowerCase().trim();\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction stringifyStyleSheet(sheet) {\r\n return sheet.cssRules\r\n ? Array.from(sheet.cssRules)\r\n .map(function (rule) { return rule.cssText || ''; })\r\n .join('')\r\n : '';\r\n}\r\nfunction extractOrigin(url) {\r\n var origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nvar canvasService;\r\nvar canvasCtx;\r\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\r\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\r\n var filePath = path1 || path2 || path3;\r\n var maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (!RELATIVE_PATH.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (filePath[0] === '/') {\r\n return \"url(\".concat(maybeQuote).concat(extractOrigin(href) + filePath).concat(maybeQuote, \")\");\r\n }\r\n var stack = href.split('/');\r\n var parts = filePath.split('/');\r\n stack.pop();\r\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\r\n var part = parts_1[_i];\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return \"url(\".concat(maybeQuote).concat(stack.join('/')).concat(maybeQuote, \")\");\r\n });\r\n}\r\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n var pos = 0;\r\n function collectCharacters(regEx) {\r\n var chars;\r\n var match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n var output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n var url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n var descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n var inParens = false;\r\n while (true) {\r\n var c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n var a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n var a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (name === 'src' ||\r\n (name === 'href' && value && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n value &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset' && value) {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style' && value) {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data' && value) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else {\r\n return value;\r\n }\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (var eIndex = element.classList.length; eIndex--;) {\r\n var className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (var eIndex = node.classList.length; eIndex--;) {\r\n var className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\r\n var el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n if (el.closest(\".\".concat(maskTextClass)))\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, true))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n var win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n var fired = false;\r\n var readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n var timer_1 = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', function () {\r\n clearTimeout(timer_1);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n var blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n var fired = false;\r\n var styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n var timer = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', function () {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c;\r\n var rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: []\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId: rootId\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc: doc,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement,\r\n rootId: rootId\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n maskTextFn: maskTextFn,\r\n rootId: rootId\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId: rootId\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId: rootId\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n var docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n var maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, maskTextFn = options.maskTextFn, rootId = options.rootId;\r\n var parentTagName = n.parentNode && n.parentNode.tagName;\r\n var textContent = n.textContent;\r\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStyleSheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"Cannot get CSS styles from text's parentNode. Error: \".concat(err), n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle &&\r\n !isScript &&\r\n textContent &&\r\n needMaskingText(n, maskTextClass, maskTextSelector)) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle: isStyle,\r\n rootId: rootId\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c, rootId = options.rootId;\r\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n var tagName = getValidTagName(n);\r\n var attributes = {};\r\n var len = n.attributes.length;\r\n for (var i = 0; i < len; i++) {\r\n var attr = n.attributes[i];\r\n attributes[attr.name] = transformAttribute(doc, tagName, attr.name, attr.value);\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\r\n return s.href === n.href;\r\n });\r\n var cssText = null;\r\n if (stylesheet) {\r\n cssText = getCssRulesString(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n var cssText = getCssRulesString(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n var value = n.value;\r\n var checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n type: attributes.type,\r\n tagName: tagName,\r\n value: value,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n var blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n var image_1 = n;\r\n var oldValue_1 = image_1.crossOrigin;\r\n image_1.crossOrigin = 'anonymous';\r\n var recordInlineImage = function () {\r\n try {\r\n canvasService.width = image_1.naturalWidth;\r\n canvasService.height = image_1.naturalHeight;\r\n canvasCtx.drawImage(image_1, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(\"Cannot inline img src=\".concat(image_1.currentSrc, \"! Error: \").concat(err));\r\n }\r\n oldValue_1\r\n ? (attributes.crossOrigin = oldValue_1)\r\n : image_1.removeAttribute('crossorigin');\r\n };\r\n if (image_1.complete && image_1.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image_1.onload = recordInlineImage;\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n var _d = n.getBoundingClientRect(), width = _d.width, height = _d.height;\r\n attributes = {\r\n \"class\": attributes[\"class\"],\r\n rr_width: \"\".concat(width, \"px\"),\r\n rr_height: \"\".concat(height, \"px\")\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName: tagName,\r\n attributes: attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock: needBlock,\r\n rootId: rootId\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'preload' &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.inlineStylesheet, inlineStylesheet = _b === void 0 ? true : _b, _c = options.maskInputOptions, maskInputOptions = _c === void 0 ? {} : _c, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, slimDOMOptions = options.slimDOMOptions, _d = options.dataURLOptions, dataURLOptions = _d === void 0 ? {} : _d, _e = options.inlineImages, inlineImages = _e === void 0 ? false : _e, _f = options.recordCanvas, recordCanvas = _f === void 0 ? false : _f, onSerialize = options.onSerialize, onIframeLoad = options.onIframeLoad, _g = options.iframeLoadTimeout, iframeLoadTimeout = _g === void 0 ? 5000 : _g, onStylesheetLoad = options.onStylesheetLoad, _h = options.stylesheetLoadTimeout, stylesheetLoadTimeout = _h === void 0 ? 5000 : _h, _j = options.keepIframeSrcFn, keepIframeSrcFn = _j === void 0 ? function () { return false; } : _j, _k = options.newlyAddedElement, newlyAddedElement = _k === void 0 ? false : _k;\r\n var _l = options.preserveWhiteSpace, preserveWhiteSpace = _l === void 0 ? true : _l;\r\n var _serializedNode = serializeNode(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n var id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n var serializedNode = Object.assign(_serializedNode, { id: id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n var recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n var shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n var bypassOptions = {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: skipChild,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n };\r\n for (var _i = 0, _m = Array.from(n.childNodes); _i < _m.length; _i++) {\r\n var childN = _m[_i];\r\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (var _o = 0, _p = Array.from(n.shadowRoot.childNodes); _o < _p.length; _o++) {\r\n var childN = _p[_o];\r\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, function () {\r\n var iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, function () {\r\n if (onStylesheetLoad) {\r\n var serializedLinkNode = serializeNodeWithId(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n var _a = options || {}, _b = _a.mirror, mirror = _b === void 0 ? new Mirror() : _b, _c = _a.blockClass, blockClass = _c === void 0 ? 'rr-block' : _c, _d = _a.blockSelector, blockSelector = _d === void 0 ? null : _d, _e = _a.maskTextClass, maskTextClass = _e === void 0 ? 'rr-mask' : _e, _f = _a.maskTextSelector, maskTextSelector = _f === void 0 ? null : _f, _g = _a.inlineStylesheet, inlineStylesheet = _g === void 0 ? true : _g, _h = _a.inlineImages, inlineImages = _h === void 0 ? false : _h, _j = _a.recordCanvas, recordCanvas = _j === void 0 ? false : _j, _k = _a.maskAllInputs, maskAllInputs = _k === void 0 ? false : _k, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _l = _a.slimDOM, slimDOM = _l === void 0 ? false : _l, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, onStylesheetLoad = _a.onStylesheetLoad, stylesheetLoadTimeout = _a.stylesheetLoadTimeout, _m = _a.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\r\n var maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true\r\n }\r\n : maskAllInputs;\r\n var slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: false\r\n });\r\n}\r\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options) {\r\n if (options === void 0) { options = {}; }\r\n var lineno = 1;\r\n var column = 1;\r\n function updatePosition(str) {\r\n var lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n var i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n var start = { line: lineno, column: column };\r\n return function (node) {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n var Position = (function () {\r\n function Position(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column: column };\r\n this.source = options.source;\r\n }\r\n return Position;\r\n }());\r\n Position.prototype.content = css;\r\n var errorsList = [];\r\n function error(msg) {\r\n var err = new Error(\"\".concat(options.source || '', \":\").concat(lineno, \":\").concat(column, \": \").concat(msg));\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n var rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList\r\n }\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n var node;\r\n var rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node !== false) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n var m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n var str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules) {\r\n if (rules === void 0) { rules = []; }\r\n var c;\r\n while ((c = comment())) {\r\n if (c !== false) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n var pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n var i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n var str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str\r\n });\r\n }\r\n function selector() {\r\n var m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map(function (s) {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n var pos = position();\r\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n var prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(\"property missing ':'\");\r\n }\r\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n var ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : ''\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n var decls = [];\r\n if (!open()) {\r\n return error(\"missing '{'\");\r\n }\r\n comments(decls);\r\n var decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(\"missing '}'\");\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n var m;\r\n var vals = [];\r\n var pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations()\r\n });\r\n }\r\n function atkeyframes() {\r\n var pos = position();\r\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n var name = m[1];\r\n if (!open()) {\r\n return error(\"@keyframes missing '{'\");\r\n }\r\n var frame;\r\n var frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@keyframes missing '}'\");\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name: name,\r\n vendor: vendor,\r\n keyframes: frames\r\n });\r\n }\r\n function atsupports() {\r\n var pos = position();\r\n var m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var supports = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@supports missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@supports missing '}'\");\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports: supports,\r\n rules: style\r\n });\r\n }\r\n function athost() {\r\n var pos = position();\r\n var m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(\"@host missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@host missing '}'\");\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style\r\n });\r\n }\r\n function atmedia() {\r\n var pos = position();\r\n var m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var media = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@media missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@media missing '}'\");\r\n }\r\n return pos({\r\n type: 'media',\r\n media: media,\r\n rules: style\r\n });\r\n }\r\n function atcustommedia() {\r\n var pos = position();\r\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2])\r\n });\r\n }\r\n function atpage() {\r\n var pos = position();\r\n var m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n var sel = selector() || [];\r\n if (!open()) {\r\n return error(\"@page missing '{'\");\r\n }\r\n var decls = comments();\r\n var decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@page missing '}'\");\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls\r\n });\r\n }\r\n function atdocument() {\r\n var pos = position();\r\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = trim(m[1]);\r\n var doc = trim(m[2]);\r\n if (!open()) {\r\n return error(\"@document missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@document missing '}'\");\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor: vendor,\r\n rules: style\r\n });\r\n }\r\n function atfontface() {\r\n var pos = position();\r\n var m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(\"@font-face missing '{'\");\r\n }\r\n var decls = comments();\r\n var decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@font-face missing '}'\");\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls\r\n });\r\n }\r\n var atimport = _compileAtrule('import');\r\n var atcharset = _compileAtrule('charset');\r\n var atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return function () {\r\n var pos = position();\r\n var m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n var ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n var pos = position();\r\n var sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations()\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n var isNode = obj && typeof obj.type === 'string';\r\n var childParent = isNode ? obj : parent;\r\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n var k = _a[_i];\r\n var value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach(function (v) {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null\r\n });\r\n }\r\n return obj;\r\n}\n\nvar tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient'\r\n};\r\nfunction getTagName(n) {\r\n var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\r\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n var ast = parse(cssText, {\r\n silent: true\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n var selectors = [];\r\n ast.stylesheet.rules.forEach(function (rule) {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach(function (selector) {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n var selectorMatcher = new RegExp(selectors\r\n .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\r\n .sort(function (a, b) { return b.length - a.length; })\r\n .map(function (selector) {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n var result = cssText.replace(selectorMatcher, function (selector) {\r\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return \"\".concat(selector, \", \").concat(newSelector);\r\n });\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n var stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass: stylesWithHoverClass\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n var tagName = getTagName(n);\r\n var node_1;\r\n if (n.isSVG) {\r\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n node_1 = doc.createElement(tagName);\r\n }\r\n var specialAttributes = {};\r\n for (var name_1 in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name_1)) {\r\n continue;\r\n }\r\n var value = n.attributes[name_1];\r\n if (tagName === 'option' &&\r\n name_1 === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name_1.startsWith('rr_')) {\r\n specialAttributes[name_1] = value;\r\n continue;\r\n }\r\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\r\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n var child = doc.createTextNode(value);\r\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\r\n var c = _a[_i];\r\n if (c.nodeType === node_1.TEXT_NODE) {\r\n node_1.removeChild(c);\r\n }\r\n }\r\n node_1.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name_1 === 'xlink:href') {\r\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value.toString());\r\n }\r\n else if (name_1 === 'onload' ||\r\n name_1 === 'onclick' ||\r\n name_1.substring(0, 7) === 'onmouse') {\r\n node_1.setAttribute('_' + name_1, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name_1 === 'content') {\r\n node_1.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'preload' &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node_1.setAttribute(name_1, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n var _loop_1 = function (name_2) {\r\n var value = specialAttributes[name_2];\r\n if (tagName === 'canvas' && name_2 === 'rr_dataURL') {\r\n var image_1 = document.createElement('img');\r\n image_1.onload = function () {\r\n var ctx = node_1.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\r\n }\r\n };\r\n image_1.src = value.toString();\r\n if (node_1.RRNodeType)\r\n node_1.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name_2 === 'rr_dataURL') {\r\n var image = node_1;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name_2 === 'rr_width') {\r\n node_1.style.width = value.toString();\r\n }\r\n else if (name_2 === 'rr_height') {\r\n node_1.style.height = value.toString();\r\n }\r\n else if (name_2 === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node_1.currentTime = value;\r\n }\r\n else if (name_2 === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node_1\r\n .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\r\n break;\r\n case 'paused':\r\n node_1.pause();\r\n break;\r\n }\r\n }\r\n };\r\n for (var name_2 in specialAttributes) {\r\n _loop_1(name_2);\r\n }\r\n if (n.isShadowHost) {\r\n if (!node_1.shadowRoot) {\r\n node_1.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node_1.shadowRoot.firstChild) {\r\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node_1;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n var doc = options.doc, mirror = options.mirror, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\r\n var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\r\n var childN = _c[_i];\r\n var childNode = buildNodeWithSN(childN, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: cache\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (var _i = 0, _a = mirror.getIds(); _i < _a.length; _i++) {\r\n var id = _a[_i];\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n var n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n var el = node;\r\n for (var name_3 in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name_3) &&\r\n name_3.startsWith('rr_'))) {\r\n continue;\r\n }\r\n var value = n.attributes[name_3];\r\n if (name_3 === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name_3 === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache, _b = options.mirror, mirror = _b === void 0 ? new Mirror() : _b;\r\n var node = buildNodeWithSN(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: cache\r\n });\r\n visit(mirror, function (visitedNode) {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, createCache, createMirror, genId, getCssRuleString, getCssRulesString, is2DCanvasBlank, isCSSImportRule, isElement, isNativeShadowDom, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };\n","import { classMatchesRegex, IGNORED_NODE, isShadowRoot } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (!el)\r\n return false;\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n if (blockSelector) {\r\n if (node.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\n\nexport { StyleSheetMirror, _mirror, getBaseDimension, getNestedRule, getPositionsAndIndex, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, throttle, uniqueTextMutations };\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 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 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 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 || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, maskInputValue, transformAttribute, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n var _a, _b, _c, _d;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n let rootShadowHost = shadowHost;\r\n while (((_d = (_c = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _c === void 0 ? void 0 : _c.call(rootShadowHost)) === null || _d === void 0 ? void 0 : _d.nodeType) ===\r\n Node.DOCUMENT_FRAGMENT_NODE &&\r\n rootShadowHost.getRootNode().host)\r\n rootShadowHost = rootShadowHost.getRootNode().host;\r\n const notInDoc = !this.doc.contains(n) &&\r\n (!rootShadowHost || !this.doc.contains(rootShadowHost));\r\n if (!n.parentNode || notInDoc) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(shadowHost)\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of Array.from(this.movedSet.values())) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of Array.from(this.addedSet.values())) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n for (let index = addList.length - 1; index >= 0; index--) {\r\n const _node = addList.get(index);\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => ({\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attribute.attributes,\r\n }))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value)\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let value = m.target.getAttribute(m.attributeName);\r\n if (m.attributeName === 'value') {\r\n value = maskInputValue({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: m.target.tagName,\r\n type: m.target.getAttribute('type'),\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributes.find((a) => a.node === m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n m.attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n m.attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n };\r\n this.attributes.push(item);\r\n }\r\n if (m.attributeName === 'style') {\r\n const old = this.doc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n if (item.attributes.style === undefined ||\r\n item.attributes.style === null) {\r\n item.attributes.style = {};\r\n }\r\n const styleObj = item.attributes.style;\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n styleObj[pname] = newValue;\r\n }\r\n else {\r\n styleObj[pname] = [newValue, newPriority];\r\n }\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n styleObj[pname] = false;\r\n }\r\n }\r\n }\r\n else {\r\n item.attributes[m.attributeName] = transformAttribute(this.doc, target.tagName, m.attributeName, value);\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false))\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","import { maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowHeight, getWindowWidth, hookSetter, patch, isTouchEvent } from '../utils.js';\nimport { MouseInteractions, IncrementalSource } from '../../../types/dist/types.js';\nimport MutationBuffer from './mutation.js';\n\nconst mutationBuffers = [];\r\nconst isCSSGroupingRuleSupported = typeof CSSGroupingRule !== 'undefined';\r\nconst isCSSMediaRuleSupported = typeof CSSMediaRule !== 'undefined';\r\nconst isCSSSupportsRuleSupported = typeof CSSSupportsRule !== 'undefined';\r\nconst isCSSConditionRuleSupported = typeof CSSConditionRule !== 'undefined';\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n return event.target;\r\n }\r\n catch (_a) {\r\n return event.target;\r\n }\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(mutationBuffer.processMutations.bind(mutationBuffer));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }, callbackThreshold);\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = Date.now();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: Date.now() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }, threshold, {\r\n trailing: false,\r\n });\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const e = isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n mouseInteractionCb({\r\n type: MouseInteractions[eventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n const eventName = eventKey.toLowerCase();\r\n const handler = getHandler(eventKey);\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc) {\r\n const scrollEl = (doc.scrollingElement || doc.documentElement);\r\n scrollCb({\r\n id,\r\n x: scrollEl.scrollLeft,\r\n y: scrollEl.scrollTop,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }, sampling.scroll || 100);\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb, }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = throttle(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }, 200);\r\n return on('resize', updateDimension, window);\r\n}\r\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\r\n const value = Object.assign({}, v);\r\n if (!enable)\r\n delete value.userTriggered;\r\n return value;\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n if (target && target.tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !target.tagName ||\r\n INPUT_TAGS.indexOf(target.tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const type = target.type;\r\n if (target.classList.contains(ignoreClass)) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[target.tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, wrapEventWithUserTriggeredFlag({ text, isChecked, userTriggered }, userTriggeredOnInput));\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n cbWithDedup(el, wrapEventWithUserTriggeredFlag({\r\n text: el.value,\r\n isChecked: !isChecked,\r\n userTriggered: false,\r\n }, userTriggeredOnInput));\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n inputCb(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, eventHandler, doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n eventHandler({ target: this });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((isCSSGroupingRuleSupported &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (isCSSMediaRuleSupported &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (isCSSSupportsRuleSupported &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (isCSSConditionRuleSupported &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return insertRule.apply(this, [rule, index]);\r\n };\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return deleteRule.apply(this, [index]);\r\n };\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return replace.apply(this, [text]);\r\n };\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return replaceSync.apply(this, [text]);\r\n };\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (isCSSGroupingRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (isCSSMediaRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (isCSSConditionRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (isCSSSupportsRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(this),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].insertRule.apply(this, [rule, index]);\r\n };\r\n type.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(this), index] },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].deleteRule.apply(this, [index]);\r\n };\r\n });\r\n return () => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n };\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets');\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return () => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n };\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = function (property, value, priority) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(this, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return setProperty.apply(this, [property, value, priority]);\r\n };\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = function (property) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(this, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return removeProperty.apply(this, [property]);\r\n };\r\n return () => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n };\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, }) {\r\n const handler = (type) => throttle((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }, sampling.media || 500);\r\n const handlers = [\r\n on('play', handler(0)),\r\n on('pause', handler(1)),\r\n on('seeked', handler(2)),\r\n on('volumechange', handler(3)),\r\n on('ratechange', handler(4)),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }, 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = () => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n };\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o);\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return () => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n pluginHandlers.forEach((h) => h());\r\n };\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n if (message.data.type === 'rrweb') {\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, message.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, message.data.isCheckout);\r\n }\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { patch } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restorePatches = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n const manager = this;\r\n this.restorePatches.push(patch(Element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, this.ownerDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot);\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (iframeElement.contentWindow) {\r\n const manager = this;\r\n this.restorePatches.push(patch(iframeElement.contentWindow.HTMLElement.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, iframeElement.contentDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n }\r\n reset() {\r\n this.restorePatches.forEach((restorePatch) => restorePatch());\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nexport { __awaiter, __rest };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 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","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return [...args].map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction initCanvasContextObserver(win, blockClass, blockSelector) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n if (!('__context' in this))\r\n this.__context = contextType;\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasContextObserver as default };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","var WorkerClass = null;\n\ntry {\n var WorkerThreads =\n typeof module !== 'undefined' && typeof module.require === 'function' && module.require('worker_threads') ||\n typeof __non_webpack_require__ === 'function' && __non_webpack_require__('worker_threads') ||\n typeof require === 'function' && require('worker_threads');\n WorkerClass = WorkerThreads.Worker;\n} catch(e) {} // eslint-disable-line\n\nexport { WorkerClass };\n","import { WorkerClass } from './_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js';\n\nfunction decodeBase64(base64, enableUnicode) {\n return Buffer.from(base64, 'base64').toString(enableUnicode ? 'utf16' : 'utf8');\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n return function WorkerFactory(options) {\n return new WorkerClass(body, Object.assign({}, options, { eval: true }));\n };\n}\n\nexport { createBase64WorkerFactory };\n","function decodeBase64(base64, enableUnicode) {\n var binaryString = atob(base64);\n if (enableUnicode) {\n var binaryView = new Uint8Array(binaryString.length);\n for (var i = 0, n = binaryString.length; i < n; ++i) {\n binaryView[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode.apply(null, new Uint16Array(binaryView.buffer));\n }\n return binaryString;\n}\n\nfunction createURL(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n var blob = new Blob([body], { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(base64, sourcemapArg, enableUnicodeArg);\n return new Worker(url, options);\n };\n}\n\nexport { createBase64WorkerFactory };\n","var kIsNodeJS = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n\nfunction isNodeJS() {\n return kIsNodeJS;\n}\n\nexport { isNodeJS };\n","import { createBase64WorkerFactory as createBase64WorkerFactory$1 } from './_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js';\nimport { createBase64WorkerFactory as createBase64WorkerFactory$2 } from './_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js';\nimport { isNodeJS } from './_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js';\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n if (isNodeJS()) {\n return createBase64WorkerFactory$1(base64, sourcemapArg, enableUnicodeArg);\n }\n return createBase64WorkerFactory$2(base64, sourcemapArg, enableUnicodeArg);\n}\n\nexport { createBase64WorkerFactory };\n","import { createBase64WorkerFactory } from './_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js';\n\nvar WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucykgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBgJHt3aWR0aH0tJHtoZWlnaHR9YDsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNwYXJlbnRCbG9iTWFwLmdldChpZCk7DQogICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0geWllbGQgYmxvYi5hcnJheUJ1ZmZlcigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgY29uc3Qgd29ya2VyID0gc2VsZjsNCiAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgYml0bWFwLCB3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zKTsNCiAgICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsNCiAgICAgICAgICAgICAgICBiaXRtYXAuY2xvc2UoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsNCiAgICAgICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7DQogICAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgaWQsDQogICAgICAgICAgICAgICAgICAgIHR5cGUsDQogICAgICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsDQogICAgICAgICAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=', null, false);\n/* eslint-enable */\n\nexport { WorkerFactory as default };\n","import { __rest, __awaiter } from './../../../../../../ext/tslib/tslib.es6.js';\nimport { isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport WorkerFactory from '../../../../../../_virtual/image-bitmap-data-url-worker.js';\n\nclass CanvasManager {\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context === null || context === void 0 ? void 0 : context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager };\n","import { getCssRuleString } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n const rules = Array.from(sheet.rules || CSSRule);\r\n styles.push({\r\n styleId,\r\n rules: rules.map((r, index) => {\r\n return {\r\n rule: getCssRuleString(r),\r\n index,\r\n };\r\n }),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, getWindowWidth, getWindowHeight, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: Date.now() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), } = options;\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n window.parent.document;\r\n passEmitsToParent = false;\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: {\r\n left: window.pageXOffset !== undefined\r\n ? window.pageXOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollLeft) ||\r\n ((_b = (_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: window.pageYOffset !== undefined\r\n ? window.pageYOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollTop) ||\r\n ((_e = (_d = document === null || document === void 0 ? void 0 : document.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = document === null || document === void 0 ? void 0 : document.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n },\r\n },\r\n }));\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n }));\r\n const observe = (doc) => {\r\n var _a;\r\n return initObservers({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n recording = false;\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nexport { record as default };\n","var NodeType$1;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType$1 || (NodeType$1 = {}));\nvar Mirror$1 = (function () {\r\n function Mirror() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n Mirror.prototype.getId = function (n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n };\r\n Mirror.prototype.getNode = function (id) {\r\n return this.idNodeMap.get(id) || null;\r\n };\r\n Mirror.prototype.getIds = function () {\r\n return Array.from(this.idNodeMap.keys());\r\n };\r\n Mirror.prototype.getMeta = function (n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n };\r\n Mirror.prototype.removeNodeFromMap = function (n) {\r\n var _this = this;\r\n var id = this.getId(n);\r\n this.idNodeMap[\"delete\"](id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach(function (childNode) {\r\n return _this.removeNodeFromMap(childNode);\r\n });\r\n }\r\n };\r\n Mirror.prototype.has = function (id) {\r\n return this.idNodeMap.has(id);\r\n };\r\n Mirror.prototype.hasNode = function (node) {\r\n return this.nodeMetaMap.has(node);\r\n };\r\n Mirror.prototype.add = function (n, meta) {\r\n var id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n };\r\n Mirror.prototype.replace = function (id, n) {\r\n var oldNode = this.getNode(id);\r\n if (oldNode) {\r\n var meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n };\r\n Mirror.prototype.reset = function () {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n };\r\n return Mirror;\r\n}());\r\nfunction createMirror$1() {\r\n return new Mirror$1();\r\n}\n\nfunction parseCSSText(cssText) {\r\n const res = {};\r\n const listDelimiter = /;(?![^(]*\\))/g;\r\n const propertyDelimiter = /:(.+)/;\r\n const comment = /\\/\\*.*?\\*\\//g;\r\n cssText\r\n .replace(comment, '')\r\n .split(listDelimiter)\r\n .forEach(function (item) {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiter);\r\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\r\n }\r\n });\r\n return res;\r\n}\r\nfunction toCSSText(style) {\r\n const properties = [];\r\n for (const name in style) {\r\n const value = style[name];\r\n if (typeof value !== 'string')\r\n continue;\r\n const normalizedName = hyphenate(name);\r\n properties.push(`${normalizedName}: ${value};`);\r\n }\r\n return properties.join(' ');\r\n}\r\nconst camelizeRE = /-([a-z])/g;\r\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\r\nconst camelize = (str) => {\r\n if (CUSTOM_PROPERTY_REGEX.test(str))\r\n return str;\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n};\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\nconst hyphenate = (str) => {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n};\n\nclass BaseRRNode {\r\n constructor(..._args) {\r\n this.childNodes = [];\r\n this.parentElement = null;\r\n this.parentNode = null;\r\n this.ELEMENT_NODE = NodeType.ELEMENT_NODE;\r\n this.TEXT_NODE = NodeType.TEXT_NODE;\r\n }\r\n get firstChild() {\r\n return this.childNodes[0] || null;\r\n }\r\n get lastChild() {\r\n return this.childNodes[this.childNodes.length - 1] || null;\r\n }\r\n get nextSibling() {\r\n const parentNode = this.parentNode;\r\n if (!parentNode)\r\n return null;\r\n const siblings = parentNode.childNodes;\r\n const index = siblings.indexOf(this);\r\n return siblings[index + 1] || null;\r\n }\r\n contains(node) {\r\n if (node === this)\r\n return true;\r\n for (const child of this.childNodes) {\r\n if (child.contains(node))\r\n return true;\r\n }\r\n return false;\r\n }\r\n appendChild(_newChild) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n insertBefore(_newChild, _refChild) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n removeChild(_node) {\r\n throw new Error(`RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n toString() {\r\n return 'RRNode';\r\n }\r\n}\r\nfunction BaseRRDocumentImpl(RRNodeClass) {\r\n return class BaseRRDocument extends RRNodeClass {\r\n constructor() {\r\n super(...arguments);\r\n this.nodeType = NodeType.DOCUMENT_NODE;\r\n this.nodeName = '#document';\r\n this.compatMode = 'CSS1Compat';\r\n this.RRNodeType = NodeType$1.Document;\r\n this.textContent = null;\r\n }\r\n get documentElement() {\r\n return (this.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HTML') || null);\r\n }\r\n get body() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'BODY')) || null);\r\n }\r\n get head() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HEAD')) || null);\r\n }\r\n get implementation() {\r\n return this;\r\n }\r\n get firstElementChild() {\r\n return this.documentElement;\r\n }\r\n appendChild(childNode) {\r\n const nodeType = childNode.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n childNode.parentElement = null;\r\n childNode.parentNode = this;\r\n this.childNodes.push(childNode);\r\n return childNode;\r\n }\r\n insertBefore(newChild, refChild) {\r\n const nodeType = newChild.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n if (refChild === null)\r\n return this.appendChild(newChild);\r\n const childIndex = this.childNodes.indexOf(refChild);\r\n if (childIndex == -1)\r\n throw new Error(\"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\");\r\n this.childNodes.splice(childIndex, 0, newChild);\r\n newChild.parentElement = null;\r\n newChild.parentNode = this;\r\n return newChild;\r\n }\r\n removeChild(node) {\r\n const indexOfChild = this.childNodes.indexOf(node);\r\n if (indexOfChild === -1)\r\n throw new Error(\"Failed to execute 'removeChild' on 'RRDocument': The RRNode to be removed is not a child of this RRNode.\");\r\n this.childNodes.splice(indexOfChild, 1);\r\n node.parentElement = null;\r\n node.parentNode = null;\r\n return node;\r\n }\r\n open() {\r\n this.childNodes = [];\r\n }\r\n close() {\r\n }\r\n write(content) {\r\n let publicId;\r\n if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD XHTML 1.0 Transitional//EN';\r\n else if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD HTML 4.0 Transitional//EN';\r\n if (publicId) {\r\n const doctype = this.createDocumentType('html', publicId, '');\r\n this.open();\r\n this.appendChild(doctype);\r\n }\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new BaseRRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const doctype = new (BaseRRDocumentTypeImpl(BaseRRNode))(qualifiedName, publicId, systemId);\r\n doctype.ownerDocument = this;\r\n return doctype;\r\n }\r\n createElement(tagName) {\r\n const element = new (BaseRRElementImpl(BaseRRNode))(tagName);\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createElementNS(_namespaceURI, qualifiedName) {\r\n return this.createElement(qualifiedName);\r\n }\r\n createTextNode(data) {\r\n const text = new (BaseRRTextImpl(BaseRRNode))(data);\r\n text.ownerDocument = this;\r\n return text;\r\n }\r\n createComment(data) {\r\n const comment = new (BaseRRCommentImpl(BaseRRNode))(data);\r\n comment.ownerDocument = this;\r\n return comment;\r\n }\r\n createCDATASection(data) {\r\n const CDATASection = new (BaseRRCDATASectionImpl(BaseRRNode))(data);\r\n CDATASection.ownerDocument = this;\r\n return CDATASection;\r\n }\r\n toString() {\r\n return 'RRDocument';\r\n }\r\n };\r\n}\r\nfunction BaseRRDocumentTypeImpl(RRNodeClass) {\r\n return class BaseRRDocumentType extends RRNodeClass {\r\n constructor(qualifiedName, publicId, systemId) {\r\n super();\r\n this.nodeType = NodeType.DOCUMENT_TYPE_NODE;\r\n this.RRNodeType = NodeType$1.DocumentType;\r\n this.textContent = null;\r\n this.name = qualifiedName;\r\n this.publicId = publicId;\r\n this.systemId = systemId;\r\n this.nodeName = qualifiedName;\r\n }\r\n toString() {\r\n return 'RRDocumentType';\r\n }\r\n };\r\n}\r\nfunction BaseRRElementImpl(RRNodeClass) {\r\n return class BaseRRElement extends RRNodeClass {\r\n constructor(tagName) {\r\n super();\r\n this.nodeType = NodeType.ELEMENT_NODE;\r\n this.RRNodeType = NodeType$1.Element;\r\n this.attributes = {};\r\n this.shadowRoot = null;\r\n this.tagName = tagName.toUpperCase();\r\n this.nodeName = tagName.toUpperCase();\r\n }\r\n get textContent() {\r\n let result = '';\r\n this.childNodes.forEach((node) => (result += node.textContent));\r\n return result;\r\n }\r\n set textContent(textContent) {\r\n this.childNodes = [this.ownerDocument.createTextNode(textContent)];\r\n }\r\n get classList() {\r\n return new ClassList(this.attributes.class, (newClassName) => {\r\n this.attributes.class = newClassName;\r\n });\r\n }\r\n get id() {\r\n return this.attributes.id || '';\r\n }\r\n get className() {\r\n return this.attributes.class || '';\r\n }\r\n get style() {\r\n const style = (this.attributes.style\r\n ? parseCSSText(this.attributes.style)\r\n : {});\r\n const hyphenateRE = /\\B([A-Z])/g;\r\n style.setProperty = (name, value, priority) => {\r\n if (hyphenateRE.test(name))\r\n return;\r\n const normalizedName = camelize(name);\r\n if (!value)\r\n delete style[normalizedName];\r\n else\r\n style[normalizedName] = value;\r\n if (priority === 'important')\r\n style[normalizedName] += ' !important';\r\n this.attributes.style = toCSSText(style);\r\n };\r\n style.removeProperty = (name) => {\r\n if (hyphenateRE.test(name))\r\n return '';\r\n const normalizedName = camelize(name);\r\n const value = style[normalizedName] || '';\r\n delete style[normalizedName];\r\n this.attributes.style = toCSSText(style);\r\n return value;\r\n };\r\n return style;\r\n }\r\n getAttribute(name) {\r\n return this.attributes[name] || null;\r\n }\r\n setAttribute(name, attribute) {\r\n this.attributes[name] = attribute;\r\n }\r\n setAttributeNS(_namespace, qualifiedName, value) {\r\n this.setAttribute(qualifiedName, value);\r\n }\r\n removeAttribute(name) {\r\n delete this.attributes[name];\r\n }\r\n appendChild(newChild) {\r\n this.childNodes.push(newChild);\r\n newChild.parentNode = this;\r\n newChild.parentElement = this;\r\n return newChild;\r\n }\r\n insertBefore(newChild, refChild) {\r\n if (refChild === null)\r\n return this.appendChild(newChild);\r\n const childIndex = this.childNodes.indexOf(refChild);\r\n if (childIndex == -1)\r\n throw new Error(\"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\");\r\n this.childNodes.splice(childIndex, 0, newChild);\r\n newChild.parentElement = this;\r\n newChild.parentNode = this;\r\n return newChild;\r\n }\r\n removeChild(node) {\r\n const indexOfChild = this.childNodes.indexOf(node);\r\n if (indexOfChild === -1)\r\n throw new Error(\"Failed to execute 'removeChild' on 'RRElement': The RRNode to be removed is not a child of this RRNode.\");\r\n this.childNodes.splice(indexOfChild, 1);\r\n node.parentElement = null;\r\n node.parentNode = null;\r\n return node;\r\n }\r\n attachShadow(_init) {\r\n const shadowRoot = this.ownerDocument.createElement('SHADOWROOT');\r\n this.shadowRoot = shadowRoot;\r\n return shadowRoot;\r\n }\r\n dispatchEvent(_event) {\r\n return true;\r\n }\r\n toString() {\r\n let attributeString = '';\r\n for (const attribute in this.attributes) {\r\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\r\n }\r\n return `${this.tagName} ${attributeString}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRMediaElementImpl(RRElementClass) {\r\n return class BaseRRMediaElement extends RRElementClass {\r\n attachShadow(_init) {\r\n throw new Error(`RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`);\r\n }\r\n play() {\r\n this.paused = false;\r\n }\r\n pause() {\r\n this.paused = true;\r\n }\r\n };\r\n}\r\nfunction BaseRRTextImpl(RRNodeClass) {\r\n return class BaseRRText extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.TEXT_NODE;\r\n this.nodeName = '#text';\r\n this.RRNodeType = NodeType$1.Text;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRText text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCommentImpl(RRNodeClass) {\r\n return class BaseRRComment extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.COMMENT_NODE;\r\n this.nodeName = '#comment';\r\n this.RRNodeType = NodeType$1.Comment;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRComment text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCDATASectionImpl(RRNodeClass) {\r\n return class BaseRRCDATASection extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeName = '#cdata-section';\r\n this.nodeType = NodeType.CDATA_SECTION_NODE;\r\n this.RRNodeType = NodeType$1.CDATA;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nclass ClassList {\r\n constructor(classText, onChange) {\r\n this.classes = [];\r\n this.add = (...classNames) => {\r\n for (const item of classNames) {\r\n const className = String(item);\r\n if (this.classes.indexOf(className) >= 0)\r\n continue;\r\n this.classes.push(className);\r\n }\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n this.remove = (...classNames) => {\r\n this.classes = this.classes.filter((item) => classNames.indexOf(item) === -1);\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n if (classText) {\r\n const classes = classText.trim().split(/\\s+/);\r\n this.classes.push(...classes);\r\n }\r\n this.onChange = onChange;\r\n }\r\n}\r\nvar NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\r\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\r\n NodeType[NodeType[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\r\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\r\n NodeType[NodeType[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\r\n NodeType[NodeType[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\r\n NodeType[NodeType[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\r\n NodeType[NodeType[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\r\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\r\n})(NodeType || (NodeType = {}));\n\nconst NAMESPACES = {\r\n svg: 'http://www.w3.org/2000/svg',\r\n 'xlink:href': 'http://www.w3.org/1999/xlink',\r\n xmlns: 'http://www.w3.org/2000/xmlns/',\r\n};\r\nconst SVGTagMap = {\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction diff(oldTree, newTree, replayer, rrnodeMirror) {\r\n const oldChildren = oldTree.childNodes;\r\n const newChildren = newTree.childNodes;\r\n rrnodeMirror =\r\n rrnodeMirror ||\r\n newTree.mirror ||\r\n newTree.ownerDocument.mirror;\r\n if (oldChildren.length > 0 || newChildren.length > 0) {\r\n diffChildren(Array.from(oldChildren), newChildren, oldTree, replayer, rrnodeMirror);\r\n }\r\n let inputDataToApply = null, scrollDataToApply = null;\r\n switch (newTree.RRNodeType) {\r\n case NodeType$1.Document: {\r\n const newRRDocument = newTree;\r\n scrollDataToApply = newRRDocument.scrollData;\r\n break;\r\n }\r\n case NodeType$1.Element: {\r\n const oldElement = oldTree;\r\n const newRRElement = newTree;\r\n diffProps(oldElement, newRRElement, rrnodeMirror);\r\n scrollDataToApply = newRRElement.scrollData;\r\n inputDataToApply = newRRElement.inputData;\r\n switch (newRRElement.tagName) {\r\n case 'AUDIO':\r\n case 'VIDEO': {\r\n const oldMediaElement = oldTree;\r\n const newMediaRRElement = newRRElement;\r\n if (newMediaRRElement.paused !== undefined)\r\n newMediaRRElement.paused\r\n ? void oldMediaElement.pause()\r\n : void oldMediaElement.play();\r\n if (newMediaRRElement.muted !== undefined)\r\n oldMediaElement.muted = newMediaRRElement.muted;\r\n if (newMediaRRElement.volume !== undefined)\r\n oldMediaElement.volume = newMediaRRElement.volume;\r\n if (newMediaRRElement.currentTime !== undefined)\r\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\r\n if (newMediaRRElement.playbackRate !== undefined)\r\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\r\n break;\r\n }\r\n case 'CANVAS':\r\n {\r\n const rrCanvasElement = newTree;\r\n if (rrCanvasElement.rr_dataURL !== null) {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = oldElement.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = rrCanvasElement.rr_dataURL;\r\n }\r\n rrCanvasElement.canvasMutations.forEach((canvasMutation) => replayer.applyCanvas(canvasMutation.event, canvasMutation.mutation, oldTree));\r\n }\r\n break;\r\n case 'STYLE':\r\n {\r\n const styleSheet = oldElement.sheet;\r\n styleSheet &&\r\n newTree.rules.forEach((data) => replayer.applyStyleSheetMutation(data, styleSheet));\r\n }\r\n break;\r\n }\r\n if (newRRElement.shadowRoot) {\r\n if (!oldElement.shadowRoot)\r\n oldElement.attachShadow({ mode: 'open' });\r\n const oldChildren = oldElement.shadowRoot.childNodes;\r\n const newChildren = newRRElement.shadowRoot.childNodes;\r\n if (oldChildren.length > 0 || newChildren.length > 0)\r\n diffChildren(Array.from(oldChildren), newChildren, oldElement.shadowRoot, replayer, rrnodeMirror);\r\n }\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n case NodeType$1.Comment:\r\n case NodeType$1.CDATA:\r\n if (oldTree.textContent !==\r\n newTree.data)\r\n oldTree.textContent = newTree.data;\r\n break;\r\n }\r\n scrollDataToApply && replayer.applyScroll(scrollDataToApply, true);\r\n inputDataToApply && replayer.applyInput(inputDataToApply);\r\n if (newTree.nodeName === 'IFRAME') {\r\n const oldContentDocument = oldTree.contentDocument;\r\n const newIFrameElement = newTree;\r\n if (oldContentDocument) {\r\n const sn = rrnodeMirror.getMeta(newIFrameElement.contentDocument);\r\n if (sn) {\r\n replayer.mirror.add(oldContentDocument, Object.assign({}, sn));\r\n }\r\n diff(oldContentDocument, newIFrameElement.contentDocument, replayer, rrnodeMirror);\r\n }\r\n }\r\n}\r\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\r\n const oldAttributes = oldTree.attributes;\r\n const newAttributes = newTree.attributes;\r\n for (const name in newAttributes) {\r\n const newValue = newAttributes[name];\r\n const sn = rrnodeMirror.getMeta(newTree);\r\n if (sn && 'isSVG' in sn && sn.isSVG && NAMESPACES[name])\r\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\r\n else if (newTree.tagName === 'CANVAS' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.src = newValue;\r\n image.onload = () => {\r\n const ctx = oldTree.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n }\r\n else\r\n oldTree.setAttribute(name, newValue);\r\n }\r\n for (const { name } of Array.from(oldAttributes))\r\n if (!(name in newAttributes))\r\n oldTree.removeAttribute(name);\r\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\r\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\r\n}\r\nfunction diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirror) {\r\n var _a;\r\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\r\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\r\n let oldIdToIndex = undefined, indexInOld;\r\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\r\n const oldStartId = replayer.mirror.getId(oldStartNode);\r\n const oldEndId = replayer.mirror.getId(oldEndNode);\r\n const newStartId = rrnodeMirror.getId(newStartNode);\r\n const newEndId = rrnodeMirror.getId(newEndNode);\r\n if (oldStartNode === undefined) {\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n }\r\n else if (oldEndNode === undefined) {\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n }\r\n else if (oldStartId !== -1 &&\r\n oldStartId === newStartId) {\r\n diff(oldStartNode, newStartNode, replayer, rrnodeMirror);\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else if (oldEndId !== -1 &&\r\n oldEndId === newEndId) {\r\n diff(oldEndNode, newEndNode, replayer, rrnodeMirror);\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (oldStartId !== -1 &&\r\n oldStartId === newEndId) {\r\n parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);\r\n diff(oldStartNode, newEndNode, replayer, rrnodeMirror);\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (oldEndId !== -1 &&\r\n oldEndId === newStartId) {\r\n parentNode.insertBefore(oldEndNode, oldStartNode);\r\n diff(oldEndNode, newStartNode, replayer, rrnodeMirror);\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else {\r\n if (!oldIdToIndex) {\r\n oldIdToIndex = {};\r\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\r\n const oldChild = oldChildren[i];\r\n if (oldChild && replayer.mirror.hasNode(oldChild))\r\n oldIdToIndex[replayer.mirror.getId(oldChild)] = i;\r\n }\r\n }\r\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\r\n if (indexInOld) {\r\n const nodeToMove = oldChildren[indexInOld];\r\n parentNode.insertBefore(nodeToMove, oldStartNode);\r\n diff(nodeToMove, newStartNode, replayer, rrnodeMirror);\r\n oldChildren[indexInOld] = undefined;\r\n }\r\n else {\r\n const newNode = createOrGetNode(newStartNode, replayer.mirror, rrnodeMirror);\r\n if (parentNode.nodeName === '#document' &&\r\n ((_a = replayer.mirror.getMeta(newNode)) === null || _a === void 0 ? void 0 : _a.type) === NodeType$1.Element &&\r\n parentNode.documentElement) {\r\n parentNode.removeChild(parentNode.documentElement);\r\n oldChildren[oldStartIndex] = undefined;\r\n oldStartNode = undefined;\r\n }\r\n parentNode.insertBefore(newNode, oldStartNode || null);\r\n diff(newNode, newStartNode, replayer, rrnodeMirror);\r\n }\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n }\r\n if (oldStartIndex > oldEndIndex) {\r\n const referenceRRNode = newChildren[newEndIndex + 1];\r\n let referenceNode = null;\r\n if (referenceRRNode)\r\n parentNode.childNodes.forEach((child) => {\r\n if (replayer.mirror.getId(child) === rrnodeMirror.getId(referenceRRNode))\r\n referenceNode = child;\r\n });\r\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\r\n const newNode = createOrGetNode(newChildren[newStartIndex], replayer.mirror, rrnodeMirror);\r\n parentNode.insertBefore(newNode, referenceNode);\r\n diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror);\r\n }\r\n }\r\n else if (newStartIndex > newEndIndex) {\r\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\r\n const node = oldChildren[oldStartIndex];\r\n if (node) {\r\n parentNode.removeChild(node);\r\n replayer.mirror.removeNodeFromMap(node);\r\n }\r\n }\r\n }\r\n}\r\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\r\n const nodeId = rrnodeMirror.getId(rrNode);\r\n const sn = rrnodeMirror.getMeta(rrNode);\r\n let node = null;\r\n if (nodeId > -1)\r\n node = domMirror.getNode(nodeId);\r\n if (node !== null)\r\n return node;\r\n switch (rrNode.RRNodeType) {\r\n case NodeType$1.Document:\r\n node = new Document();\r\n break;\r\n case NodeType$1.DocumentType:\r\n node = document.implementation.createDocumentType(rrNode.name, rrNode.publicId, rrNode.systemId);\r\n break;\r\n case NodeType$1.Element: {\r\n let tagName = rrNode.tagName.toLowerCase();\r\n tagName = SVGTagMap[tagName] || tagName;\r\n if (sn && 'isSVG' in sn && (sn === null || sn === void 0 ? void 0 : sn.isSVG)) {\r\n node = document.createElementNS(NAMESPACES['svg'], tagName);\r\n }\r\n else\r\n node = document.createElement(rrNode.tagName);\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n node = document.createTextNode(rrNode.data);\r\n break;\r\n case NodeType$1.Comment:\r\n node = document.createComment(rrNode.data);\r\n break;\r\n case NodeType$1.CDATA:\r\n node = document.createCDATASection(rrNode.data);\r\n break;\r\n }\r\n if (sn)\r\n domMirror.add(node, Object.assign({}, sn));\r\n return node;\r\n}\n\nclass RRDocument extends BaseRRDocumentImpl(BaseRRNode) {\r\n constructor(mirror) {\r\n super();\r\n this.UNSERIALIZED_STARTING_ID = -2;\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n this.mirror = createMirror();\r\n this.scrollData = null;\r\n if (mirror) {\r\n this.mirror = mirror;\r\n }\r\n }\r\n get unserializedId() {\r\n return this._unserializedId--;\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new RRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const documentTypeNode = new RRDocumentType(qualifiedName, publicId, systemId);\r\n documentTypeNode.ownerDocument = this;\r\n return documentTypeNode;\r\n }\r\n createElement(tagName) {\r\n const upperTagName = tagName.toUpperCase();\r\n let element;\r\n switch (upperTagName) {\r\n case 'AUDIO':\r\n case 'VIDEO':\r\n element = new RRMediaElement(upperTagName);\r\n break;\r\n case 'IFRAME':\r\n element = new RRIFrameElement(upperTagName, this.mirror);\r\n break;\r\n case 'CANVAS':\r\n element = new RRCanvasElement(upperTagName);\r\n break;\r\n case 'STYLE':\r\n element = new RRStyleElement(upperTagName);\r\n break;\r\n default:\r\n element = new RRElement(upperTagName);\r\n break;\r\n }\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createComment(data) {\r\n const commentNode = new RRComment(data);\r\n commentNode.ownerDocument = this;\r\n return commentNode;\r\n }\r\n createCDATASection(data) {\r\n const sectionNode = new RRCDATASection(data);\r\n sectionNode.ownerDocument = this;\r\n return sectionNode;\r\n }\r\n createTextNode(data) {\r\n const textNode = new RRText(data);\r\n textNode.ownerDocument = this;\r\n return textNode;\r\n }\r\n destroyTree() {\r\n this.childNodes = [];\r\n this.mirror.reset();\r\n }\r\n open() {\r\n super.open();\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n }\r\n}\r\nconst RRDocumentType = BaseRRDocumentTypeImpl(BaseRRNode);\r\nclass RRElement extends BaseRRElementImpl(BaseRRNode) {\r\n constructor() {\r\n super(...arguments);\r\n this.inputData = null;\r\n this.scrollData = null;\r\n }\r\n}\r\nclass RRMediaElement extends BaseRRMediaElementImpl(RRElement) {\r\n}\r\nclass RRCanvasElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rr_dataURL = null;\r\n this.canvasMutations = [];\r\n }\r\n getContext() {\r\n return null;\r\n }\r\n}\r\nclass RRStyleElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rules = [];\r\n }\r\n}\r\nclass RRIFrameElement extends RRElement {\r\n constructor(upperTagName, mirror) {\r\n super(upperTagName);\r\n this.contentDocument = new RRDocument();\r\n this.contentDocument.mirror = mirror;\r\n }\r\n}\r\nconst RRText = BaseRRTextImpl(BaseRRNode);\r\nconst RRComment = BaseRRCommentImpl(BaseRRNode);\r\nconst RRCDATASection = BaseRRCDATASectionImpl(BaseRRNode);\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'FORM';\r\n }\r\n return element.tagName.toUpperCase();\r\n}\r\nfunction buildFromNode(node, rrdom, domMirror, parentRRNode) {\r\n let rrNode;\r\n switch (node.nodeType) {\r\n case NodeType.DOCUMENT_NODE:\r\n if (parentRRNode && parentRRNode.nodeName === 'IFRAME')\r\n rrNode = parentRRNode.contentDocument;\r\n else {\r\n rrNode = rrdom;\r\n rrNode.compatMode = node.compatMode;\r\n }\r\n break;\r\n case NodeType.DOCUMENT_TYPE_NODE: {\r\n const documentType = node;\r\n rrNode = rrdom.createDocumentType(documentType.name, documentType.publicId, documentType.systemId);\r\n break;\r\n }\r\n case NodeType.ELEMENT_NODE: {\r\n const elementNode = node;\r\n const tagName = getValidTagName(elementNode);\r\n rrNode = rrdom.createElement(tagName);\r\n const rrElement = rrNode;\r\n for (const { name, value } of Array.from(elementNode.attributes)) {\r\n rrElement.attributes[name] = value;\r\n }\r\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\r\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\r\n break;\r\n }\r\n case NodeType.TEXT_NODE:\r\n rrNode = rrdom.createTextNode(node.textContent || '');\r\n break;\r\n case NodeType.CDATA_SECTION_NODE:\r\n rrNode = rrdom.createCDATASection(node.data);\r\n break;\r\n case NodeType.COMMENT_NODE:\r\n rrNode = rrdom.createComment(node.textContent || '');\r\n break;\r\n case NodeType.DOCUMENT_FRAGMENT_NODE:\r\n rrNode = parentRRNode.attachShadow({ mode: 'open' });\r\n break;\r\n default:\r\n return null;\r\n }\r\n let sn = domMirror.getMeta(node);\r\n if (rrdom instanceof RRDocument) {\r\n if (!sn) {\r\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\r\n domMirror.add(node, sn);\r\n }\r\n rrdom.mirror.add(rrNode, Object.assign({}, sn));\r\n }\r\n return rrNode;\r\n}\r\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\r\n function walk(node, parentRRNode) {\r\n const rrNode = buildFromNode(node, rrdom, domMirror, parentRRNode);\r\n if (rrNode === null)\r\n return;\r\n if ((parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.nodeName) !== 'IFRAME' &&\r\n node.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.appendChild(rrNode);\r\n rrNode.parentNode = parentRRNode;\r\n rrNode.parentElement = parentRRNode;\r\n }\r\n if (node.nodeName === 'IFRAME') {\r\n const iframeDoc = node.contentDocument;\r\n iframeDoc && walk(iframeDoc, rrNode);\r\n }\r\n else if (node.nodeType === NodeType.DOCUMENT_NODE ||\r\n node.nodeType === NodeType.ELEMENT_NODE ||\r\n node.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n if (node.nodeType === NodeType.ELEMENT_NODE &&\r\n node.shadowRoot)\r\n walk(node.shadowRoot, rrNode);\r\n node.childNodes.forEach((childNode) => walk(childNode, rrNode));\r\n }\r\n }\r\n walk(dom, null);\r\n return rrdom;\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction getDefaultSN(node, id) {\r\n switch (node.RRNodeType) {\r\n case NodeType$1.Document:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n childNodes: [],\r\n };\r\n case NodeType$1.DocumentType: {\r\n const doctype = node;\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n name: doctype.name,\r\n publicId: doctype.publicId,\r\n systemId: doctype.systemId,\r\n };\r\n }\r\n case NodeType$1.Element:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n tagName: node.tagName.toLowerCase(),\r\n attributes: {},\r\n childNodes: [],\r\n };\r\n case NodeType$1.Text:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.Comment:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.CDATA:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: '',\r\n };\r\n }\r\n}\n\nexport { BaseRRCDATASectionImpl, BaseRRCommentImpl, BaseRRDocumentImpl, BaseRRDocumentTypeImpl, BaseRRElementImpl, BaseRRMediaElementImpl, BaseRRNode, BaseRRTextImpl, ClassList, Mirror, NodeType, RRCDATASection, RRCanvasElement, RRComment, RRDocument, RRDocumentType, RRElement, RRIFrameElement, RRMediaElement, BaseRRNode as RRNode, RRStyleElement, RRText, buildFromDom, buildFromNode, createMirror, createOrGetNode, diff, getDefaultSN };\n","import record from './record/index.js';\nexport { default as record } from './record/index.js';\nimport '../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport '../../rrdom/es/rrdom.js';\nimport * as utils from './utils.js';\nexport { utils };\nexport { _mirror as mirror } from './utils.js';\nimport './../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst { addCustomEvent } = record;\r\nconst { freezePage } = record;\n\nexport { addCustomEvent, freezePage };\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nfunction zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nfunction unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nfunction strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nfunction strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n\nexport { strFromU8, strToU8, unzlibSync, zlibSync };\n","const MARK = 'v1';\n\nexport { MARK };\n","import { strFromU8, zlibSync, strToU8 } from './../../../../ext/fflate/esm/browser.js';\nimport { MARK } from './base.js';\n\nconst pack = (event) => {\r\n const _e = Object.assign(Object.assign({}, event), { v: MARK });\r\n return strFromU8(zlibSync(strToU8(JSON.stringify(_e))), true);\r\n};\n\nexport { pack };\n","import { strFromU8, unzlibSync, strToU8 } from './../../../../ext/fflate/esm/browser.js';\nimport { MARK } from './base.js';\n\nconst unpack = (raw) => {\r\n if (typeof raw !== 'string') {\r\n return raw;\r\n }\r\n try {\r\n const e = JSON.parse(raw);\r\n if (e.timestamp) {\r\n return e;\r\n }\r\n }\r\n catch (error) {\r\n }\r\n try {\r\n const e = JSON.parse(strFromU8(unzlibSync(strToU8(raw, true))));\r\n if (e.v === MARK) {\r\n return e;\r\n }\r\n throw new Error(`These events were packed with packer ${e.v} which is incompatible with current packer ${MARK}.`);\r\n }\r\n catch (error) {\r\n console.error(error);\r\n throw new Error('Unknown data format.');\r\n }\r\n};\n\nexport { unpack };\n","class StackFrame {\r\n constructor(obj) {\r\n this.fileName = obj.fileName || '';\r\n this.functionName = obj.functionName || '';\r\n this.lineNumber = obj.lineNumber;\r\n this.columnNumber = obj.columnNumber;\r\n }\r\n toString() {\r\n const lineNumber = this.lineNumber || '';\r\n const columnNumber = this.columnNumber || '';\r\n if (this.functionName)\r\n return `${this.functionName} (${this.fileName}:${lineNumber}:${columnNumber})`;\r\n return `${this.fileName}:${lineNumber}:${columnNumber}`;\r\n }\r\n}\r\nconst FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\r\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\r\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\r\nconst ErrorStackParser = {\r\n parse: function (error) {\r\n if (!error) {\r\n return [];\r\n }\r\n if (typeof error.stacktrace !== 'undefined' ||\r\n typeof error['opera#sourceloc'] !== 'undefined') {\r\n return this.parseOpera(error);\r\n }\r\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\r\n return this.parseV8OrIE(error);\r\n }\r\n else if (error.stack) {\r\n return this.parseFFOrSafari(error);\r\n }\r\n else {\r\n throw new Error('Cannot parse given Error object');\r\n }\r\n },\r\n extractLocation: function (urlLike) {\r\n if (urlLike.indexOf(':') === -1) {\r\n return [urlLike];\r\n }\r\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\r\n const parts = regExp.exec(urlLike.replace(/[()]/g, ''));\r\n if (!parts)\r\n throw new Error(`Cannot parse given url: ${urlLike}`);\r\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\r\n },\r\n parseV8OrIE: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !!line.match(CHROME_IE_STACK_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf('(eval ') > -1) {\r\n line = line\r\n .replace(/eval code/g, 'eval')\r\n .replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\r\n }\r\n let sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\r\n const location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\r\n sanitizedLine = location\r\n ? sanitizedLine.replace(location[0], '')\r\n : sanitizedLine;\r\n const tokens = sanitizedLine.split(/\\s+/).slice(1);\r\n const locationParts = this.extractLocation(location ? location[1] : tokens.pop());\r\n const functionName = tokens.join(' ') || undefined;\r\n const fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1\r\n ? undefined\r\n : locationParts[0];\r\n return new StackFrame({\r\n functionName,\r\n fileName,\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n parseFFOrSafari: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf(' > eval') > -1) {\r\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\r\n }\r\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\r\n return new StackFrame({\r\n functionName: line,\r\n });\r\n }\r\n else {\r\n const functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\r\n const matches = line.match(functionNameRegex);\r\n const functionName = matches && matches[1] ? matches[1] : undefined;\r\n const locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }\r\n }, this);\r\n },\r\n parseOpera: function (e) {\r\n if (!e.stacktrace ||\r\n (e.message.indexOf('\\n') > -1 &&\r\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\r\n return this.parseOpera9(e);\r\n }\r\n else if (!e.stack) {\r\n return this.parseOpera10(e);\r\n }\r\n else {\r\n return this.parseOpera11(e);\r\n }\r\n },\r\n parseOpera9: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\r\n const lines = e.message.split('\\n');\r\n const result = [];\r\n for (let i = 2, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera10: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\r\n const lines = e.stacktrace.split('\\n');\r\n const result = [];\r\n for (let i = 0, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n functionName: match[3] || undefined,\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera11: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return (!!line.match(FIREFOX_SAFARI_STACK_REGEXP) &&\r\n !line.match(/^Error created at/));\r\n }, this);\r\n return filtered.map(function (line) {\r\n const tokens = line.split('@');\r\n const locationParts = this.extractLocation(tokens.pop());\r\n const functionCall = tokens.shift() || '';\r\n const functionName = functionCall\r\n .replace(/<anonymous function(: (\\w+))?>/, '$2')\r\n .replace(/\\([^)]*\\)/g, '') || undefined;\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n};\n\nexport { ErrorStackParser, StackFrame };\n","function pathToSelector(node) {\r\n if (!node || !node.outerHTML) {\r\n return '';\r\n }\r\n let path = '';\r\n while (node.parentElement) {\r\n let name = node.localName;\r\n if (!name) {\r\n break;\r\n }\r\n name = name.toLowerCase();\r\n const parent = node.parentElement;\r\n const domSiblings = [];\r\n if (parent.children && parent.children.length > 0) {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n const sibling = parent.children[i];\r\n if (sibling.localName && sibling.localName.toLowerCase) {\r\n if (sibling.localName.toLowerCase() === name) {\r\n domSiblings.push(sibling);\r\n }\r\n }\r\n }\r\n }\r\n if (domSiblings.length > 1) {\r\n name += `:eq(${domSiblings.indexOf(node)})`;\r\n }\r\n path = name + (path ? '>' + path : '');\r\n node = parent;\r\n }\r\n return path;\r\n}\r\nfunction isObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]';\r\n}\r\nfunction isObjTooDeep(obj, limit) {\r\n if (limit === 0) {\r\n return true;\r\n }\r\n const keys = Object.keys(obj);\r\n for (const key of keys) {\r\n if (isObject(obj[key]) &&\r\n isObjTooDeep(obj[key], limit - 1)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction stringify(obj, stringifyOptions) {\r\n const options = {\r\n numOfKeysLimit: 50,\r\n depthOfLimit: 4,\r\n };\r\n Object.assign(options, stringifyOptions);\r\n const stack = [];\r\n const keys = [];\r\n return JSON.stringify(obj, function (key, value) {\r\n if (stack.length > 0) {\r\n const thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value)) {\r\n if (stack[0] === value) {\r\n value = '[Circular ~]';\r\n }\r\n else {\r\n value =\r\n '[Circular ~.' +\r\n keys.slice(0, stack.indexOf(value)).join('.') +\r\n ']';\r\n }\r\n }\r\n }\r\n else {\r\n stack.push(value);\r\n }\r\n if (value === null)\r\n return value;\r\n if (value === undefined)\r\n return 'undefined';\r\n if (shouldIgnore(value)) {\r\n return toString(value);\r\n }\r\n if (value instanceof Event) {\r\n const eventResult = {};\r\n for (const eventKey in value) {\r\n const eventValue = value[eventKey];\r\n if (Array.isArray(eventValue)) {\r\n eventResult[eventKey] = pathToSelector((eventValue.length ? eventValue[0] : null));\r\n }\r\n else {\r\n eventResult[eventKey] = eventValue;\r\n }\r\n }\r\n return eventResult;\r\n }\r\n else if (value instanceof Node) {\r\n if (value instanceof HTMLElement) {\r\n return value ? value.outerHTML : '';\r\n }\r\n return value.nodeName;\r\n }\r\n else if (value instanceof Error) {\r\n return value.stack\r\n ? value.stack + '\\nEnd of stack for Error object'\r\n : value.name + ': ' + value.message;\r\n }\r\n return value;\r\n });\r\n function shouldIgnore(_obj) {\r\n if (isObject(_obj) && Object.keys(_obj).length > options.numOfKeysLimit) {\r\n return true;\r\n }\r\n if (typeof _obj === 'function') {\r\n return true;\r\n }\r\n if (isObject(_obj) &&\r\n isObjTooDeep(_obj, options.depthOfLimit)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function toString(_obj) {\r\n let str = _obj.toString();\r\n if (options.stringLengthLimit && str.length > options.stringLengthLimit) {\r\n str = `${str.slice(0, options.stringLengthLimit)}...`;\r\n }\r\n return str;\r\n }\r\n}\n\nexport { stringify };\n","import { patch } from '../../../utils.js';\nimport { ErrorStackParser } from './error-stack-parser.js';\nimport { stringify } from './stringify.js';\n\nconst defaultLogOptions = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n lengthThreshold: 1000,\r\n logger: 'console',\r\n};\r\nfunction initLogObserver(cb, win, options) {\r\n const logOptions = (options\r\n ? Object.assign({}, defaultLogOptions, options)\r\n : defaultLogOptions);\r\n const loggerType = logOptions.logger;\r\n if (!loggerType) {\r\n return () => {\r\n };\r\n }\r\n let logger;\r\n if (typeof loggerType === 'string') {\r\n logger = win[loggerType];\r\n }\r\n else {\r\n logger = loggerType;\r\n }\r\n let logCount = 0;\r\n const cancelHandlers = [];\r\n if (logOptions.level.includes('error')) {\r\n if (window) {\r\n const errorHandler = (event) => {\r\n const message = event.message, error = event.error;\r\n const trace = ErrorStackParser.parse(error).map((stackFrame) => stackFrame.toString());\r\n const payload = [stringify(message, logOptions.stringifyOptions)];\r\n cb({\r\n level: 'error',\r\n trace,\r\n payload,\r\n });\r\n };\r\n window.addEventListener('error', errorHandler);\r\n cancelHandlers.push(() => {\r\n if (window)\r\n window.removeEventListener('error', errorHandler);\r\n });\r\n }\r\n }\r\n for (const levelType of logOptions.level) {\r\n cancelHandlers.push(replace(logger, levelType));\r\n }\r\n return () => {\r\n cancelHandlers.forEach((h) => h());\r\n };\r\n function replace(_logger, level) {\r\n if (!_logger[level]) {\r\n return () => {\r\n };\r\n }\r\n return patch(_logger, level, (original) => {\r\n return (...args) => {\r\n original.apply(this, args);\r\n try {\r\n const trace = ErrorStackParser.parse(new Error())\r\n .map((stackFrame) => stackFrame.toString())\r\n .splice(1);\r\n const payload = args.map((s) => stringify(s, logOptions.stringifyOptions));\r\n logCount++;\r\n if (logCount < logOptions.lengthThreshold) {\r\n cb({\r\n level,\r\n trace,\r\n payload,\r\n });\r\n }\r\n else if (logCount === logOptions.lengthThreshold) {\r\n cb({\r\n level: 'warn',\r\n trace: [],\r\n payload: [\r\n stringify('The number of log records reached the threshold.'),\r\n ],\r\n });\r\n }\r\n }\r\n catch (error) {\r\n original('rrweb logger error:', error, ...args);\r\n }\r\n };\r\n });\r\n }\r\n}\r\nconst PLUGIN_NAME = 'rrweb/console@1';\r\nconst getRecordConsolePlugin = (options) => ({\r\n name: PLUGIN_NAME,\r\n observer: initLogObserver,\r\n options: options,\r\n});\n\nexport { PLUGIN_NAME, getRecordConsolePlugin };\n","import { PLUGIN_NAME } from '../record/index.js';\nimport { EventType, IncrementalSource } from '../../../../../types/dist/types.js';\n\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nconst defaultLogConfig = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n replayLogger: undefined,\r\n};\r\nclass LogReplayPlugin {\r\n constructor(config) {\r\n this.config = Object.assign(defaultLogConfig, config);\r\n }\r\n getConsoleLogger() {\r\n const replayLogger = {};\r\n for (const level of this.config.level) {\r\n if (level === 'trace') {\r\n replayLogger[level] = (data) => {\r\n const logger = console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n ? console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n : console.log;\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n else {\r\n replayLogger[level] = (data) => {\r\n const logger = console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n ? console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n : console[level];\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n }\r\n return replayLogger;\r\n }\r\n formatMessage(data) {\r\n if (data.trace.length === 0) {\r\n return '';\r\n }\r\n const stackPrefix = '\\n\\tat ';\r\n let result = stackPrefix;\r\n result += data.trace.join(stackPrefix);\r\n return result;\r\n }\r\n}\r\nconst getReplayConsolePlugin = (options) => {\r\n const replayLogger = (options === null || options === void 0 ? void 0 : options.replayLogger) || new LogReplayPlugin(options).getConsoleLogger();\r\n return {\r\n handler(event, _isSync, context) {\r\n let logData = null;\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.Log) {\r\n logData = event.data;\r\n }\r\n else if (event.type === EventType.Plugin &&\r\n event.data.plugin === PLUGIN_NAME) {\r\n logData = event.data.payload;\r\n }\r\n if (logData) {\r\n try {\r\n if (typeof replayLogger[logData.level] === 'function') {\r\n replayLogger[logData.level](logData);\r\n }\r\n }\r\n catch (error) {\r\n if (context.replayer.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n },\r\n };\r\n};\n\nexport { getReplayConsolePlugin };\n","function mitt(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\nexport { mitt as default };\n","function polyfill(w = window, d = document) {\r\n if ('scrollBehavior' in d.documentElement.style &&\r\n w.__forceSmoothScrollPolyfill__ !== true) {\r\n return;\r\n }\r\n const Element = w.HTMLElement || w.Element;\r\n const SCROLL_TIME = 468;\r\n const original = {\r\n scroll: w.scroll || w.scrollTo,\r\n scrollBy: w.scrollBy,\r\n elementScroll: Element.prototype.scroll || scrollElement,\r\n scrollIntoView: Element.prototype.scrollIntoView,\r\n };\r\n const now = w.performance && w.performance.now\r\n ? w.performance.now.bind(w.performance)\r\n : Date.now;\r\n function isMicrosoftBrowser(userAgent) {\r\n const userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\r\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\r\n }\r\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\r\n function scrollElement(x, y) {\r\n this.scrollLeft = x;\r\n this.scrollTop = y;\r\n }\r\n function ease(k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n }\r\n function shouldBailOut(firstArg) {\r\n if (firstArg === null ||\r\n typeof firstArg !== 'object' ||\r\n firstArg.behavior === undefined ||\r\n firstArg.behavior === 'auto' ||\r\n firstArg.behavior === 'instant') {\r\n return true;\r\n }\r\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\r\n return false;\r\n }\r\n throw new TypeError('behavior member of ScrollOptions ' +\r\n firstArg.behavior +\r\n ' is not a valid value for enumeration ScrollBehavior.');\r\n }\r\n function hasScrollableSpace(el, axis) {\r\n if (axis === 'Y') {\r\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\r\n }\r\n if (axis === 'X') {\r\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\r\n }\r\n }\r\n function canOverflow(el, axis) {\r\n const overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\r\n return overflowValue === 'auto' || overflowValue === 'scroll';\r\n }\r\n function isScrollable(el) {\r\n const isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\r\n const isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\r\n return isScrollableY || isScrollableX;\r\n }\r\n function findScrollableParent(el) {\r\n while (el !== d.body && isScrollable(el) === false) {\r\n el = el.parentNode || el.host;\r\n }\r\n return el;\r\n }\r\n function step(context) {\r\n const time = now();\r\n let value;\r\n let currentX;\r\n let currentY;\r\n let elapsed = (time - context.startTime) / SCROLL_TIME;\r\n elapsed = elapsed > 1 ? 1 : elapsed;\r\n value = ease(elapsed);\r\n currentX = context.startX + (context.x - context.startX) * value;\r\n currentY = context.startY + (context.y - context.startY) * value;\r\n context.method.call(context.scrollable, currentX, currentY);\r\n if (currentX !== context.x || currentY !== context.y) {\r\n w.requestAnimationFrame(step.bind(w, context));\r\n }\r\n }\r\n function smoothScroll(el, x, y) {\r\n let scrollable;\r\n let startX;\r\n let startY;\r\n let method;\r\n const startTime = now();\r\n if (el === d.body) {\r\n scrollable = w;\r\n startX = w.scrollX || w.pageXOffset;\r\n startY = w.scrollY || w.pageYOffset;\r\n method = original.scroll;\r\n }\r\n else {\r\n scrollable = el;\r\n startX = el.scrollLeft;\r\n startY = el.scrollTop;\r\n method = scrollElement;\r\n }\r\n step({\r\n scrollable: scrollable,\r\n method: method,\r\n startTime: startTime,\r\n startX: startX,\r\n startY: startY,\r\n x: x,\r\n y: y,\r\n });\r\n }\r\n w.scroll = w.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scroll.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : w.scrollY || w.pageYOffset);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : w.scrollY || w.pageYOffset);\r\n };\r\n w.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0])) {\r\n original.scrollBy.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : 0, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : 0);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\r\n };\r\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\r\n throw new SyntaxError('Value could not be converted');\r\n }\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? ~~arguments[0]\r\n : this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : arguments[1] !== undefined\r\n ? ~~arguments[1]\r\n : this.scrollTop);\r\n return;\r\n }\r\n const left = arguments[0].left;\r\n const top = arguments[0].top;\r\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\r\n };\r\n Element.prototype.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left + this.scrollLeft\r\n : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top + this.scrollTop\r\n : ~~arguments[1] + this.scrollTop);\r\n return;\r\n }\r\n this.scroll({\r\n left: ~~arguments[0].left + this.scrollLeft,\r\n top: ~~arguments[0].top + this.scrollTop,\r\n behavior: arguments[0].behavior,\r\n });\r\n };\r\n Element.prototype.scrollIntoView = function () {\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\r\n return;\r\n }\r\n const scrollableParent = findScrollableParent(this);\r\n const parentRects = scrollableParent.getBoundingClientRect();\r\n const clientRects = this.getBoundingClientRect();\r\n if (scrollableParent !== d.body) {\r\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\r\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\r\n w.scrollBy({\r\n left: parentRects.left,\r\n top: parentRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }\r\n else {\r\n w.scrollBy({\r\n left: clientRects.left,\r\n top: clientRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n };\r\n}\n\nexport { polyfill };\n","import { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass Timer {\r\n constructor(actions = [], config) {\r\n this.timeOffset = 0;\r\n this.raf = null;\r\n this.actions = actions;\r\n this.speed = config.speed;\r\n this.liveMode = config.liveMode;\r\n }\r\n addAction(action) {\r\n if (!this.actions.length ||\r\n this.actions[this.actions.length - 1].delay <= action.delay) {\r\n this.actions.push(action);\r\n return;\r\n }\r\n const index = this.findActionIndex(action);\r\n this.actions.splice(index, 0, action);\r\n }\r\n start() {\r\n this.timeOffset = 0;\r\n let lastTimestamp = performance.now();\r\n const check = () => {\r\n const time = performance.now();\r\n this.timeOffset += (time - lastTimestamp) * this.speed;\r\n lastTimestamp = time;\r\n while (this.actions.length) {\r\n const action = this.actions[0];\r\n if (this.timeOffset >= action.delay) {\r\n this.actions.shift();\r\n action.doAction();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (this.actions.length > 0 || this.liveMode) {\r\n this.raf = requestAnimationFrame(check);\r\n }\r\n };\r\n this.raf = requestAnimationFrame(check);\r\n }\r\n clear() {\r\n if (this.raf) {\r\n cancelAnimationFrame(this.raf);\r\n this.raf = null;\r\n }\r\n this.actions.length = 0;\r\n }\r\n setSpeed(speed) {\r\n this.speed = speed;\r\n }\r\n toggleLiveMode(mode) {\r\n this.liveMode = mode;\r\n }\r\n isActive() {\r\n return this.raf !== null;\r\n }\r\n findActionIndex(action) {\r\n let start = 0;\r\n let end = this.actions.length - 1;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (this.actions[mid].delay < action.delay) {\r\n start = mid + 1;\r\n }\r\n else if (this.actions[mid].delay > action.delay) {\r\n end = mid - 1;\r\n }\r\n else {\r\n return mid + 1;\r\n }\r\n }\r\n return start;\r\n }\r\n}\r\nfunction addDelay(event, baselineTime) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions &&\r\n event.data.positions.length) {\r\n const firstOffset = event.data.positions[0].timeOffset;\r\n const firstTimestamp = event.timestamp + firstOffset;\r\n event.delay = firstTimestamp - baselineTime;\r\n return firstTimestamp - baselineTime;\r\n }\r\n event.delay = event.timestamp - baselineTime;\r\n return event.delay;\r\n}\n\nexport { Timer, addDelay };\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}\n\nexport { n as InterpreterStatus, o as assign, s as createMachine, v as interpret };\n","import { interpret as v, createMachine as s, assign as o } from './../../../../ext/@xstate/fsm/es/index.js';\nimport { EventType, IncrementalSource, ReplayerEvents } from '../../../types/dist/types.js';\nimport { addDelay } from './timer.js';\n\nfunction discardPriorSnapshots(events, baselineTime) {\r\n for (let idx = events.length - 1; idx >= 0; idx--) {\r\n const event = events[idx];\r\n if (event.type === EventType.Meta) {\r\n if (event.timestamp <= baselineTime) {\r\n return events.slice(idx);\r\n }\r\n }\r\n }\r\n return events;\r\n}\r\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\r\n const playerMachine = s({\r\n id: 'player',\r\n context,\r\n initial: 'paused',\r\n states: {\r\n playing: {\r\n on: {\r\n PAUSE: {\r\n target: 'paused',\r\n actions: ['pause'],\r\n },\r\n CAST_EVENT: {\r\n target: 'playing',\r\n actions: 'castEvent',\r\n },\r\n END: {\r\n target: 'paused',\r\n actions: ['resetLastPlayedEvent', 'pause'],\r\n },\r\n ADD_EVENT: {\r\n target: 'playing',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n paused: {\r\n on: {\r\n PLAY: {\r\n target: 'playing',\r\n actions: ['recordTimeOffset', 'play'],\r\n },\r\n CAST_EVENT: {\r\n target: 'paused',\r\n actions: 'castEvent',\r\n },\r\n TO_LIVE: {\r\n target: 'live',\r\n actions: ['startLive'],\r\n },\r\n ADD_EVENT: {\r\n target: 'paused',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n live: {\r\n on: {\r\n ADD_EVENT: {\r\n target: 'live',\r\n actions: ['addEvent'],\r\n },\r\n CAST_EVENT: {\r\n target: 'live',\r\n actions: ['castEvent'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n castEvent: o({\r\n lastPlayedEvent: (ctx, event) => {\r\n if (event.type === 'CAST_EVENT') {\r\n return event.payload.event;\r\n }\r\n return ctx.lastPlayedEvent;\r\n },\r\n }),\r\n recordTimeOffset: o((ctx, event) => {\r\n let timeOffset = ctx.timeOffset;\r\n if ('payload' in event && 'timeOffset' in event.payload) {\r\n timeOffset = event.payload.timeOffset;\r\n }\r\n return Object.assign(Object.assign({}, ctx), { timeOffset, baselineTime: ctx.events[0].timestamp + timeOffset });\r\n }),\r\n play(ctx) {\r\n var _a;\r\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\r\n timer.clear();\r\n for (const event of events) {\r\n addDelay(event, baselineTime);\r\n }\r\n const neededEvents = discardPriorSnapshots(events, baselineTime);\r\n let lastPlayedTimestamp = lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.timestamp;\r\n if ((lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot &&\r\n lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\r\n lastPlayedTimestamp =\r\n lastPlayedEvent.timestamp +\r\n ((_a = lastPlayedEvent.data.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset);\r\n }\r\n if (baselineTime < (lastPlayedTimestamp || 0)) {\r\n emitter.emit(ReplayerEvents.PlayBack);\r\n }\r\n const syncEvents = new Array();\r\n for (const event of neededEvents) {\r\n if (lastPlayedTimestamp &&\r\n lastPlayedTimestamp < baselineTime &&\r\n (event.timestamp <= lastPlayedTimestamp ||\r\n event === lastPlayedEvent)) {\r\n continue;\r\n }\r\n if (event.timestamp < baselineTime) {\r\n syncEvents.push(event);\r\n }\r\n else {\r\n const castFn = getCastFn(event, false);\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n applyEventsSynchronously(syncEvents);\r\n emitter.emit(ReplayerEvents.Flush);\r\n timer.start();\r\n },\r\n pause(ctx) {\r\n ctx.timer.clear();\r\n },\r\n resetLastPlayedEvent: o((ctx) => {\r\n return Object.assign(Object.assign({}, ctx), { lastPlayedEvent: null });\r\n }),\r\n startLive: o({\r\n baselineTime: (ctx, event) => {\r\n ctx.timer.toggleLiveMode(true);\r\n ctx.timer.start();\r\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\r\n return event.payload.baselineTime;\r\n }\r\n return Date.now();\r\n },\r\n }),\r\n addEvent: o((ctx, machineEvent) => {\r\n const { baselineTime, timer, events } = ctx;\r\n if (machineEvent.type === 'ADD_EVENT') {\r\n const { event } = machineEvent.payload;\r\n addDelay(event, baselineTime);\r\n let end = events.length - 1;\r\n if (!events[end] || events[end].timestamp <= event.timestamp) {\r\n events.push(event);\r\n }\r\n else {\r\n let insertionIndex = -1;\r\n let start = 0;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (events[mid].timestamp <= event.timestamp) {\r\n start = mid + 1;\r\n }\r\n else {\r\n end = mid - 1;\r\n }\r\n }\r\n if (insertionIndex === -1) {\r\n insertionIndex = start;\r\n }\r\n events.splice(insertionIndex, 0, event);\r\n }\r\n const isSync = event.timestamp < baselineTime;\r\n const castFn = getCastFn(event, isSync);\r\n if (isSync) {\r\n castFn();\r\n }\r\n else if (timer.isActive()) {\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n return Object.assign(Object.assign({}, ctx), { events });\r\n }),\r\n },\r\n });\r\n return v(playerMachine);\r\n}\r\nfunction createSpeedService(context) {\r\n const speedMachine = s({\r\n id: 'speed',\r\n context,\r\n initial: 'normal',\r\n states: {\r\n normal: {\r\n on: {\r\n FAST_FORWARD: {\r\n target: 'skipping',\r\n actions: ['recordSpeed', 'setSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n skipping: {\r\n on: {\r\n BACK_TO_NORMAL: {\r\n target: 'normal',\r\n actions: ['restoreSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n setSpeed: (ctx, event) => {\r\n if ('payload' in event) {\r\n ctx.timer.setSpeed(event.payload.speed);\r\n }\r\n },\r\n recordSpeed: o({\r\n normalSpeed: (ctx) => ctx.timer.speed,\r\n }),\r\n restoreSpeed: (ctx) => {\r\n ctx.timer.setSpeed(ctx.normalSpeed);\r\n },\r\n },\r\n });\r\n return v(speedMachine);\r\n}\n\nexport { createPlayerService, createSpeedService, discardPriorSnapshots };\n","const rules = (blockClass) => [\r\n `.${blockClass} { background: currentColor }`,\r\n 'noscript { display: none !important; }',\r\n];\n\nexport { rules as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { decode } from './../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst webGLVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = webGLVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n webGLVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nfunction deserializeArg(imageMap, ctx, preload) {\r\n return (arg) => __awaiter(this, void 0, void 0, function* () {\r\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\r\n if (preload)\r\n preload.isUnchanged = false;\r\n if (arg.rr_type === 'ImageBitmap' && 'args' in arg) {\r\n const args = yield deserializeArg(imageMap, ctx, preload)(arg.args);\r\n return yield createImageBitmap.apply(null, args);\r\n }\r\n else if ('index' in arg) {\r\n if (preload || ctx === null)\r\n return arg;\r\n const { rr_type: name, index } = arg;\r\n return variableListFor(ctx, name)[index];\r\n }\r\n else if ('args' in arg) {\r\n const { rr_type: name, args } = arg;\r\n const ctor = window[name];\r\n return new ctor(...(yield Promise.all(args.map(deserializeArg(imageMap, ctx, preload)))));\r\n }\r\n else if ('base64' in arg) {\r\n return decode(arg.base64);\r\n }\r\n else if ('src' in arg) {\r\n const image = imageMap.get(arg.src);\r\n if (image) {\r\n return image;\r\n }\r\n else {\r\n const image = new Image();\r\n image.src = arg.src;\r\n imageMap.set(arg.src, image);\r\n return image;\r\n }\r\n }\r\n else if ('data' in arg && arg.rr_type === 'Blob') {\r\n const blobContents = yield Promise.all(arg.data.map(deserializeArg(imageMap, ctx, preload)));\r\n const blob = new Blob(blobContents, {\r\n type: arg.type,\r\n });\r\n return blob;\r\n }\r\n }\r\n else if (Array.isArray(arg)) {\r\n const result = yield Promise.all(arg.map(deserializeArg(imageMap, ctx, preload)));\r\n return result;\r\n }\r\n return arg;\r\n });\r\n}\n\nexport { deserializeArg, variableListFor };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../../types/dist/types.js';\nimport { deserializeArg, variableListFor } from './deserialize-args.js';\n\nfunction getContext(target, type) {\r\n try {\r\n if (type === CanvasContext.WebGL) {\r\n return (target.getContext('webgl') || target.getContext('experimental-webgl'));\r\n }\r\n return target.getContext('webgl2');\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n}\r\nconst WebGLVariableConstructorsNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n];\r\nfunction saveToWebGLVarMap(ctx, result) {\r\n if (!(result === null || result === void 0 ? void 0 : result.constructor))\r\n return;\r\n const { name } = result.constructor;\r\n if (!WebGLVariableConstructorsNames.includes(name))\r\n return;\r\n const variables = variableListFor(ctx, name);\r\n if (!variables.includes(result))\r\n variables.push(result);\r\n}\r\nfunction webglMutation({ mutation, target, type, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const ctx = getContext(target, type);\r\n if (!ctx)\r\n return;\r\n if (mutation.setter) {\r\n ctx[mutation.property] = mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n const args = yield Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n const result = original.apply(ctx, args);\r\n saveToWebGLVarMap(ctx, result);\r\n const debugMode = false;\r\n if (debugMode) ;\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { webglMutation as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { deserializeArg } from './deserialize-args.js';\n\nfunction canvasMutation({ event, mutation, target, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const ctx = target.getContext('2d');\r\n if (mutation.setter) {\r\n ctx[mutation.property] =\r\n mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n if (mutation.property === 'drawImage' &&\r\n typeof mutation.args[0] === 'string') {\r\n imageMap.get(event);\r\n original.apply(ctx, mutation.args);\r\n }\r\n else {\r\n const args = yield Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n original.apply(ctx, args);\r\n }\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { canvasMutation as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../../types/dist/types.js';\nimport webglMutation from './webgl.js';\nimport canvasMutation$1 from './2d.js';\n\nfunction canvasMutation({ event, mutation, target, imageMap, canvasEventMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const precomputedMutation = canvasEventMap.get(event) || mutation;\r\n const commands = 'commands' in precomputedMutation\r\n ? precomputedMutation.commands\r\n : [precomputedMutation];\r\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\r\n for (let i = 0; i < commands.length; i++) {\r\n const command = commands[i];\r\n yield webglMutation({\r\n mutation: command,\r\n type: mutation.type,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n return;\r\n }\r\n for (let i = 0; i < commands.length; i++) {\r\n const command = commands[i];\r\n yield canvasMutation$1({\r\n event,\r\n mutation: command,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { canvasMutation as default };\n","import { __awaiter } from './../../../../ext/tslib/tslib.es6.js';\nimport { createCache, createMirror, rebuild, buildNodeWithSN, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { RRDocument, diff, createOrGetNode, getDefaultSN, buildFromDom, buildFromNode } from '../../../rrdom/es/rrdom.js';\nimport * as mitt$1 from './../../../../ext/mitt/dist/mitt.mjs.js';\nimport mitt$2 from './../../../../ext/mitt/dist/mitt.mjs.js';\nimport { polyfill } from './smoothscroll.js';\nimport { Timer } from './timer.js';\nimport { createPlayerService, createSpeedService } from './machine.js';\nimport { EventType, ReplayerEvents, IncrementalSource, MouseInteractions } from '../../../types/dist/types.js';\nimport { StyleSheetMirror, polyfill as polyfill$1, isSerializedIframe, hasShadowRoot, queueToResolveTrees, iterateResolveTree, uniqueTextMutations, getPositionsAndIndex, getNestedRule, getBaseDimension } from '../utils.js';\nimport rules from './styles/inject-style.js';\nimport canvasMutation from './canvas/index.js';\nimport { deserializeArg } from './canvas/deserialize-args.js';\n\nconst SKIP_TIME_THRESHOLD = 10 * 1000;\r\nconst SKIP_TIME_INTERVAL = 5 * 1000;\r\nconst mitt = mitt$2 || mitt$1;\r\nconst REPLAY_CONSOLE_PREFIX = '[replayer]';\r\nconst defaultMouseTailConfig = {\r\n duration: 500,\r\n lineCap: 'round',\r\n lineWidth: 3,\r\n strokeStyle: 'red',\r\n};\r\nfunction indicatesTouchDevice(e) {\r\n return (e.type == EventType.IncrementalSnapshot &&\r\n (e.data.source == IncrementalSource.TouchMove ||\r\n (e.data.source == IncrementalSource.MouseInteraction &&\r\n e.data.type == MouseInteractions.TouchStart)));\r\n}\r\nclass Replayer {\r\n constructor(events, config) {\r\n this.usingVirtualDom = false;\r\n this.virtualDom = new RRDocument();\r\n this.mouseTail = null;\r\n this.tailPositions = [];\r\n this.emitter = mitt();\r\n this.legacy_missingNodeRetryMap = {};\r\n this.cache = createCache();\r\n this.imageMap = new Map();\r\n this.canvasEventMap = new Map();\r\n this.mirror = createMirror();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.firstFullSnapshot = null;\r\n this.newDocumentQueue = [];\r\n this.mousePos = null;\r\n this.touchActive = null;\r\n this.lastSelectionData = null;\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets = [];\r\n this.handleResize = (dimension) => {\r\n this.iframe.style.display = 'inherit';\r\n for (const el of [this.mouseTail, this.iframe]) {\r\n if (!el) {\r\n continue;\r\n }\r\n el.setAttribute('width', String(dimension.width));\r\n el.setAttribute('height', String(dimension.height));\r\n }\r\n };\r\n this.applyEventsSynchronously = (events) => {\r\n for (const event of events) {\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n case EventType.Custom:\r\n continue;\r\n case EventType.FullSnapshot:\r\n case EventType.Meta:\r\n case EventType.Plugin:\r\n case EventType.IncrementalSnapshot:\r\n break;\r\n }\r\n const castFn = this.getCastFn(event, true);\r\n castFn();\r\n }\r\n if (this.touchActive === true) {\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (this.touchActive === false) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n this.touchActive = null;\r\n };\r\n this.getCastFn = (event, isSync = false) => {\r\n let castFn;\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n break;\r\n case EventType.Custom:\r\n castFn = () => {\r\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\r\n };\r\n break;\r\n case EventType.Meta:\r\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\r\n width: event.data.width,\r\n height: event.data.height,\r\n });\r\n break;\r\n case EventType.FullSnapshot:\r\n castFn = () => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n if (this.firstFullSnapshot === event) {\r\n this.firstFullSnapshot = true;\r\n return;\r\n }\r\n }\r\n else {\r\n this.firstFullSnapshot = true;\r\n }\r\n this.rebuildFullSnapshot(event, isSync);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(event.data.initialOffset);\r\n this.styleMirror.reset();\r\n };\r\n break;\r\n case EventType.IncrementalSnapshot:\r\n castFn = () => {\r\n this.applyIncremental(event, isSync);\r\n if (isSync) {\r\n return;\r\n }\r\n if (event === this.nextUserInteractionEvent) {\r\n this.nextUserInteractionEvent = null;\r\n this.backToNormal();\r\n }\r\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\r\n for (const _event of this.service.state.context.events) {\r\n if (_event.timestamp <= event.timestamp) {\r\n continue;\r\n }\r\n if (this.isUserInteraction(_event)) {\r\n if (_event.delay - event.delay >\r\n SKIP_TIME_THRESHOLD *\r\n this.speedService.state.context.timer.speed) {\r\n this.nextUserInteractionEvent = _event;\r\n }\r\n break;\r\n }\r\n }\r\n if (this.nextUserInteractionEvent) {\r\n const skipTime = this.nextUserInteractionEvent.delay - event.delay;\r\n const payload = {\r\n speed: Math.min(Math.round(skipTime / SKIP_TIME_INTERVAL), this.config.maxSpeed),\r\n };\r\n this.speedService.send({ type: 'FAST_FORWARD', payload });\r\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\r\n }\r\n }\r\n };\r\n break;\r\n }\r\n const wrappedCastFn = () => {\r\n if (castFn) {\r\n castFn();\r\n }\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.handler)\r\n plugin.handler(event, isSync, { replayer: this });\r\n }\r\n this.service.send({ type: 'CAST_EVENT', payload: { event } });\r\n const last_index = this.service.state.context.events.length - 1;\r\n if (event === this.service.state.context.events[last_index]) {\r\n const finish = () => {\r\n if (last_index < this.service.state.context.events.length - 1) {\r\n return;\r\n }\r\n this.backToNormal();\r\n this.service.send('END');\r\n this.emitter.emit(ReplayerEvents.Finish);\r\n };\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions.length) {\r\n setTimeout(() => {\r\n finish();\r\n }, Math.max(0, -event.data.positions[0].timeOffset + 50));\r\n }\r\n else {\r\n finish();\r\n }\r\n }\r\n this.emitter.emit(ReplayerEvents.EventCast, event);\r\n };\r\n return wrappedCastFn;\r\n };\r\n if (!(config === null || config === void 0 ? void 0 : config.liveMode) && events.length < 2) {\r\n throw new Error('Replayer need at least 2 events.');\r\n }\r\n const defaultConfig = {\r\n speed: 1,\r\n maxSpeed: 360,\r\n root: document.body,\r\n loadTimeout: 0,\r\n skipInactive: false,\r\n showWarning: true,\r\n showDebug: false,\r\n blockClass: 'rr-block',\r\n liveMode: false,\r\n insertStyleRules: [],\r\n triggerFocus: true,\r\n UNSAFE_replayCanvas: false,\r\n pauseAnimation: true,\r\n mouseTail: defaultMouseTailConfig,\r\n useVirtualDom: true,\r\n };\r\n this.config = Object.assign({}, defaultConfig, config);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.getCastFn = this.getCastFn.bind(this);\r\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\r\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\r\n this.setupDom();\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({ nodeMirror: this.mirror });\r\n }\r\n this.emitter.on(ReplayerEvents.Flush, () => {\r\n if (this.usingVirtualDom) {\r\n const replayerHandler = {\r\n mirror: this.mirror,\r\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\r\n void canvasMutation({\r\n event: canvasEvent,\r\n mutation: canvasMutationData,\r\n target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n },\r\n applyInput: this.applyInput.bind(this),\r\n applyScroll: this.applyScroll.bind(this),\r\n applyStyleSheetMutation: (data, styleSheet) => {\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n },\r\n };\r\n this.iframe.contentDocument &&\r\n diff(this.iframe.contentDocument, this.virtualDom, replayerHandler, this.virtualDom.mirror);\r\n this.virtualDom.destroyTree();\r\n this.usingVirtualDom = false;\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const realNode = createOrGetNode(value.node, this.mirror, this.virtualDom.mirror);\r\n diff(realNode, value.node, replayerHandler, this.virtualDom.mirror);\r\n value.node = realNode;\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n }\r\n this.constructedStyleMutations.forEach((data) => {\r\n this.applyStyleSheetMutation(data);\r\n });\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets.forEach((data) => {\r\n this.applyAdoptedStyleSheet(data);\r\n });\r\n this.adoptedStyleSheets = [];\r\n }\r\n if (this.mousePos) {\r\n this.moveAndHover(this.mousePos.x, this.mousePos.y, this.mousePos.id, true, this.mousePos.debugData);\r\n this.mousePos = null;\r\n }\r\n if (this.lastSelectionData) {\r\n this.applySelection(this.lastSelectionData);\r\n this.lastSelectionData = null;\r\n }\r\n });\r\n this.emitter.on(ReplayerEvents.PlayBack, () => {\r\n this.firstFullSnapshot = null;\r\n this.mirror.reset();\r\n this.styleMirror.reset();\r\n });\r\n const timer = new Timer([], {\r\n speed: this.config.speed,\r\n liveMode: this.config.liveMode,\r\n });\r\n this.service = createPlayerService({\r\n events: events\r\n .map((e) => {\r\n if (config && config.unpackFn) {\r\n return config.unpackFn(e);\r\n }\r\n return e;\r\n })\r\n .sort((a1, a2) => a1.timestamp - a2.timestamp),\r\n timer,\r\n timeOffset: 0,\r\n baselineTime: 0,\r\n lastPlayedEvent: null,\r\n }, {\r\n getCastFn: this.getCastFn,\r\n applyEventsSynchronously: this.applyEventsSynchronously,\r\n emitter: this.emitter,\r\n });\r\n this.service.start();\r\n this.service.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n player: state,\r\n });\r\n });\r\n this.speedService = createSpeedService({\r\n normalSpeed: -1,\r\n timer,\r\n });\r\n this.speedService.start();\r\n this.speedService.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n speed: state,\r\n });\r\n });\r\n const firstMeta = this.service.state.context.events.find((e) => e.type === EventType.Meta);\r\n const firstFullsnapshot = this.service.state.context.events.find((e) => e.type === EventType.FullSnapshot);\r\n if (firstMeta) {\r\n const { width, height } = firstMeta.data;\r\n setTimeout(() => {\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width,\r\n height,\r\n });\r\n }, 0);\r\n }\r\n if (firstFullsnapshot) {\r\n setTimeout(() => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n return;\r\n }\r\n this.firstFullSnapshot = firstFullsnapshot;\r\n this.rebuildFullSnapshot(firstFullsnapshot);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(firstFullsnapshot.data.initialOffset);\r\n }, 1);\r\n }\r\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n }\r\n get timer() {\r\n return this.service.state.context.timer;\r\n }\r\n on(event, handler) {\r\n this.emitter.on(event, handler);\r\n return this;\r\n }\r\n off(event, handler) {\r\n this.emitter.off(event, handler);\r\n return this;\r\n }\r\n setConfig(config) {\r\n Object.keys(config).forEach((key) => {\r\n config[key];\r\n this.config[key] = config[key];\r\n });\r\n if (!this.config.skipInactive) {\r\n this.backToNormal();\r\n }\r\n if (typeof config.speed !== 'undefined') {\r\n this.speedService.send({\r\n type: 'SET_SPEED',\r\n payload: {\r\n speed: config.speed,\r\n },\r\n });\r\n }\r\n if (typeof config.mouseTail !== 'undefined') {\r\n if (config.mouseTail === false) {\r\n if (this.mouseTail) {\r\n this.mouseTail.style.display = 'none';\r\n }\r\n }\r\n else {\r\n if (!this.mouseTail) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\r\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\r\n }\r\n this.mouseTail.style.display = 'inherit';\r\n }\r\n }\r\n }\r\n getMetaData() {\r\n const firstEvent = this.service.state.context.events[0];\r\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\r\n return {\r\n startTime: firstEvent.timestamp,\r\n endTime: lastEvent.timestamp,\r\n totalTime: lastEvent.timestamp - firstEvent.timestamp,\r\n };\r\n }\r\n getCurrentTime() {\r\n return this.timer.timeOffset + this.getTimeOffset();\r\n }\r\n getTimeOffset() {\r\n const { baselineTime, events } = this.service.state.context;\r\n return baselineTime - events[0].timestamp;\r\n }\r\n getMirror() {\r\n return this.mirror;\r\n }\r\n play(timeOffset = 0) {\r\n var _a, _b;\r\n if (this.service.state.matches('paused')) {\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n else {\r\n this.service.send({ type: 'PAUSE' });\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.remove('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Start);\r\n }\r\n pause(timeOffset) {\r\n var _a, _b;\r\n if (timeOffset === undefined && this.service.state.matches('playing')) {\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n if (typeof timeOffset === 'number') {\r\n this.play(timeOffset);\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.add('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Pause);\r\n }\r\n resume(timeOffset = 0) {\r\n console.warn(`The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`);\r\n this.play(timeOffset);\r\n this.emitter.emit(ReplayerEvents.Resume);\r\n }\r\n destroy() {\r\n this.pause();\r\n this.config.root.removeChild(this.wrapper);\r\n this.emitter.emit(ReplayerEvents.Destroy);\r\n }\r\n startLive(baselineTime) {\r\n this.service.send({ type: 'TO_LIVE', payload: { baselineTime } });\r\n }\r\n addEvent(rawEvent) {\r\n const event = this.config.unpackFn\r\n ? this.config.unpackFn(rawEvent)\r\n : rawEvent;\r\n if (indicatesTouchDevice(event)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n void Promise.resolve().then(() => this.service.send({ type: 'ADD_EVENT', payload: { event } }));\r\n }\r\n enableInteract() {\r\n this.iframe.setAttribute('scrolling', 'auto');\r\n this.iframe.style.pointerEvents = 'auto';\r\n }\r\n disableInteract() {\r\n this.iframe.setAttribute('scrolling', 'no');\r\n this.iframe.style.pointerEvents = 'none';\r\n }\r\n resetCache() {\r\n this.cache = createCache();\r\n }\r\n setupDom() {\r\n this.wrapper = document.createElement('div');\r\n this.wrapper.classList.add('replayer-wrapper');\r\n this.config.root.appendChild(this.wrapper);\r\n this.mouse = document.createElement('div');\r\n this.mouse.classList.add('replayer-mouse');\r\n this.wrapper.appendChild(this.mouse);\r\n if (this.config.mouseTail !== false) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.mouseTail.style.display = 'inherit';\r\n this.wrapper.appendChild(this.mouseTail);\r\n }\r\n this.iframe = document.createElement('iframe');\r\n const attributes = ['allow-same-origin'];\r\n if (this.config.UNSAFE_replayCanvas) {\r\n attributes.push('allow-scripts');\r\n }\r\n this.iframe.style.display = 'none';\r\n this.iframe.setAttribute('sandbox', attributes.join(' '));\r\n this.disableInteract();\r\n this.wrapper.appendChild(this.iframe);\r\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\r\n polyfill(this.iframe.contentWindow, this.iframe.contentDocument);\r\n polyfill$1(this.iframe.contentWindow);\r\n }\r\n }\r\n rebuildFullSnapshot(event, isSync = false) {\r\n if (!this.iframe.contentDocument) {\r\n return console.warn('Looks like your replayer has been destroyed.');\r\n }\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n console.warn('Found unresolved missing node map', this.legacy_missingNodeRetryMap);\r\n }\r\n this.legacy_missingNodeRetryMap = {};\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n rebuild(event.data.node, {\r\n doc: this.iframe.contentDocument,\r\n afterAppend,\r\n cache: this.cache,\r\n mirror: this.mirror,\r\n });\r\n afterAppend(this.iframe.contentDocument, event.data.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n const { documentElement, head } = this.iframe.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n if (!this.service.state.matches('playing')) {\r\n this.iframe.contentDocument\r\n .getElementsByTagName('html')[0]\r\n .classList.add('rrweb-paused');\r\n }\r\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\r\n if (!isSync) {\r\n this.waitForStylesheetLoad();\r\n }\r\n if (this.config.UNSAFE_replayCanvas) {\r\n void this.preloadAllImages();\r\n }\r\n }\r\n insertStyleRules(documentElement, head) {\r\n var _a;\r\n const injectStylesRules = rules(this.config.blockClass).concat(this.config.insertStyleRules);\r\n if (this.config.pauseAnimation) {\r\n injectStylesRules.push('html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }');\r\n }\r\n if (this.usingVirtualDom) {\r\n const styleEl = this.virtualDom.createElement('style');\r\n this.virtualDom.mirror.add(styleEl, getDefaultSN(styleEl, this.virtualDom.unserializedId));\r\n documentElement.insertBefore(styleEl, head);\r\n styleEl.rules.push({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: injectStylesRules.map((cssText, index) => ({\r\n rule: cssText,\r\n index,\r\n })),\r\n });\r\n }\r\n else {\r\n const styleEl = document.createElement('style');\r\n documentElement.insertBefore(styleEl, head);\r\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\r\n (_a = styleEl.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(injectStylesRules[idx], idx);\r\n }\r\n }\r\n }\r\n attachDocumentToIframe(mutation, iframeEl) {\r\n const mirror = this.usingVirtualDom\r\n ? this.virtualDom.mirror\r\n : this.mirror;\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n const sn = mirror.getMeta(builtNode);\r\n if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType.Element &&\r\n (sn === null || sn === void 0 ? void 0 : sn.tagName.toUpperCase()) === 'HTML') {\r\n const { documentElement, head } = iframeEl.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n }\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n buildNodeWithSN(mutation.node, {\r\n doc: iframeEl.contentDocument,\r\n mirror: mirror,\r\n hackCss: true,\r\n skipChild: false,\r\n afterAppend,\r\n cache: this.cache,\r\n });\r\n afterAppend(iframeEl.contentDocument, mutation.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n collectIframeAndAttachDocument(collected, builtNode) {\r\n if (isSerializedIframe(builtNode, this.mirror)) {\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === this.mirror.getId(builtNode));\r\n if (mutationInQueue) {\r\n collected.push({\r\n mutationInQueue,\r\n builtNode: builtNode,\r\n });\r\n }\r\n }\r\n }\r\n waitForStylesheetLoad() {\r\n var _a;\r\n const head = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.head;\r\n if (head) {\r\n const unloadSheets = new Set();\r\n let timer;\r\n let beforeLoadState = this.service.state;\r\n const stateHandler = () => {\r\n beforeLoadState = this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const unsubscribe = () => {\r\n this.emitter.off(ReplayerEvents.Start, stateHandler);\r\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\r\n };\r\n head\r\n .querySelectorAll('link[rel=\"stylesheet\"]')\r\n .forEach((css) => {\r\n if (!css.sheet) {\r\n unloadSheets.add(css);\r\n css.addEventListener('load', () => {\r\n unloadSheets.delete(css);\r\n if (unloadSheets.size === 0 && timer !== -1) {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n unsubscribe();\r\n }\r\n });\r\n }\r\n });\r\n if (unloadSheets.size > 0) {\r\n this.service.send({ type: 'PAUSE' });\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\r\n timer = setTimeout(() => {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n timer = -1;\r\n unsubscribe();\r\n }, this.config.loadTimeout);\r\n }\r\n }\r\n }\r\n preloadAllImages() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.service.state;\r\n const stateHandler = () => {\r\n this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const promises = [];\r\n for (const event of this.service.state.context.events) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.CanvasMutation) {\r\n promises.push(this.deserializeAndPreloadCanvasEvents(event.data, event));\r\n const commands = 'commands' in event.data ? event.data.commands : [event.data];\r\n commands.forEach((c) => {\r\n this.preloadImages(c, event);\r\n });\r\n }\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n preloadImages(data, event) {\r\n if (data.property === 'drawImage' &&\r\n typeof data.args[0] === 'string' &&\r\n !this.imageMap.has(event)) {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n const imgd = ctx === null || ctx === void 0 ? void 0 : ctx.createImageData(canvas.width, canvas.height);\r\n imgd === null || imgd === void 0 ? void 0 : imgd.data;\r\n JSON.parse(data.args[0]);\r\n ctx === null || ctx === void 0 ? void 0 : ctx.putImageData(imgd, 0, 0);\r\n }\r\n }\r\n deserializeAndPreloadCanvasEvents(data, event) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.canvasEventMap.has(event)) {\r\n const status = {\r\n isUnchanged: true,\r\n };\r\n if ('commands' in data) {\r\n const commands = yield Promise.all(data.commands.map((c) => __awaiter(this, void 0, void 0, function* () {\r\n const args = yield Promise.all(c.args.map(deserializeArg(this.imageMap, null, status)));\r\n return Object.assign(Object.assign({}, c), { args });\r\n })));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { commands }));\r\n }\r\n else {\r\n const args = yield Promise.all(data.args.map(deserializeArg(this.imageMap, null, status)));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { args }));\r\n }\r\n }\r\n });\r\n }\r\n applyIncremental(e, isSync) {\r\n var _a, _b, _c;\r\n const { data: d } = e;\r\n switch (d.source) {\r\n case IncrementalSource.Mutation: {\r\n try {\r\n this.applyMutation(d, isSync);\r\n }\r\n catch (error) {\r\n this.warn(`Exception in mutation ${error.message || error}`, d);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove:\r\n if (isSync) {\r\n const lastPosition = d.positions[d.positions.length - 1];\r\n this.mousePos = {\r\n x: lastPosition.x,\r\n y: lastPosition.y,\r\n id: lastPosition.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n d.positions.forEach((p) => {\r\n const action = {\r\n doAction: () => {\r\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\r\n },\r\n delay: p.timeOffset +\r\n e.timestamp -\r\n this.service.state.context.baselineTime,\r\n };\r\n this.timer.addAction(action);\r\n });\r\n this.timer.addAction({\r\n doAction() {\r\n },\r\n delay: e.delay - ((_a = d.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset),\r\n });\r\n }\r\n break;\r\n case IncrementalSource.MouseInteraction: {\r\n if (d.id === -1 || isSync) {\r\n break;\r\n }\r\n const event = new Event(MouseInteractions[d.type].toLowerCase());\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\r\n type: d.type,\r\n target,\r\n });\r\n const { triggerFocus } = this.config;\r\n switch (d.type) {\r\n case MouseInteractions.Blur:\r\n if ('blur' in target) {\r\n target.blur();\r\n }\r\n break;\r\n case MouseInteractions.Focus:\r\n if (triggerFocus && target.focus) {\r\n target.focus({\r\n preventScroll: true,\r\n });\r\n }\r\n break;\r\n case MouseInteractions.Click:\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n if (isSync) {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.touchActive = true;\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.touchActive = false;\r\n }\r\n this.mousePos = {\r\n x: d.x,\r\n y: d.y,\r\n id: d.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.tailPositions.length = 0;\r\n }\r\n this.moveAndHover(d.x, d.y, d.id, isSync, d);\r\n if (d.type === MouseInteractions.Click) {\r\n this.mouse.classList.remove('active');\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('active');\r\n }\r\n else if (d.type === MouseInteractions.TouchStart) {\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n }\r\n break;\r\n case MouseInteractions.TouchCancel:\r\n if (isSync) {\r\n this.touchActive = false;\r\n }\r\n else {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n break;\r\n default:\r\n target.dispatchEvent(event);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Scroll: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.scrollData = d;\r\n break;\r\n }\r\n this.applyScroll(d, isSync);\r\n break;\r\n }\r\n case IncrementalSource.ViewportResize:\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width: d.width,\r\n height: d.height,\r\n });\r\n break;\r\n case IncrementalSource.Input: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.inputData = d;\r\n break;\r\n }\r\n this.applyInput(d);\r\n break;\r\n }\r\n case IncrementalSource.MediaInteraction: {\r\n const target = this.usingVirtualDom\r\n ? this.virtualDom.mirror.getNode(d.id)\r\n : this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const mediaEl = target;\r\n try {\r\n if (d.currentTime) {\r\n mediaEl.currentTime = d.currentTime;\r\n }\r\n if (d.volume) {\r\n mediaEl.volume = d.volume;\r\n }\r\n if (d.muted) {\r\n mediaEl.muted = d.muted;\r\n }\r\n if (d.type === 1) {\r\n mediaEl.pause();\r\n }\r\n if (d.type === 0) {\r\n void mediaEl.play();\r\n }\r\n if (d.type === 4) {\r\n mediaEl.playbackRate = d.playbackRate;\r\n }\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(`Failed to replay media interactions: ${error.message || error}`);\r\n }\r\n }\r\n break;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n if (this.usingVirtualDom) {\r\n if (d.styleId)\r\n this.constructedStyleMutations.push(d);\r\n else if (d.id)\r\n (_b = this.virtualDom.mirror.getNode(d.id)) === null || _b === void 0 ? void 0 : _b.rules.push(d);\r\n }\r\n else\r\n this.applyStyleSheetMutation(d);\r\n break;\r\n }\r\n case IncrementalSource.CanvasMutation: {\r\n if (!this.config.UNSAFE_replayCanvas) {\r\n return;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.canvasMutations.push({\r\n event: e,\r\n mutation: d,\r\n });\r\n }\r\n else {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n void canvasMutation({\r\n event: e,\r\n mutation: d,\r\n target: target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Font: {\r\n try {\r\n const fontFace = new FontFace(d.family, d.buffer\r\n ? new Uint8Array(JSON.parse(d.fontSource))\r\n : d.fontSource, d.descriptors);\r\n (_c = this.iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.fonts.add(fontFace);\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Selection: {\r\n if (isSync) {\r\n this.lastSelectionData = d;\r\n break;\r\n }\r\n this.applySelection(d);\r\n break;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n if (this.usingVirtualDom)\r\n this.adoptedStyleSheets.push(d);\r\n else\r\n this.applyAdoptedStyleSheet(d);\r\n break;\r\n }\r\n }\r\n }\r\n applyMutation(d, isSync) {\r\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\r\n this.usingVirtualDom = true;\r\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const virtualNode = buildFromNode(value.node, this.virtualDom, this.mirror);\r\n if (virtualNode)\r\n value.node = virtualNode;\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const mirror = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\r\n d.removes.forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.parentId)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n return this.warnNodeNotFound(d, mutation.parentId);\r\n }\r\n if (mutation.isShadow && hasShadowRoot(parent)) {\r\n parent = parent.shadowRoot;\r\n }\r\n mirror.removeNodeFromMap(target);\r\n if (parent)\r\n try {\r\n parent.removeChild(target);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_a = parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n catch (error) {\r\n if (error instanceof DOMException) {\r\n this.warn('parent could not remove child in mutation', parent, target, d);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n });\r\n const legacy_missingNodeMap = Object.assign({}, this.legacy_missingNodeRetryMap);\r\n const queue = [];\r\n const nextNotInDOM = (mutation) => {\r\n let next = null;\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (mutation.nextId !== null &&\r\n mutation.nextId !== undefined &&\r\n mutation.nextId !== -1 &&\r\n !next) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n const appendNode = (mutation) => {\r\n var _a;\r\n if (!this.iframe.contentDocument) {\r\n return console.warn('Looks like your replayer has been destroyed.');\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n if (mutation.node.type === NodeType.Document) {\r\n return this.newDocumentQueue.push(mutation);\r\n }\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.isShadow) {\r\n if (!hasShadowRoot(parent)) {\r\n parent.attachShadow({ mode: 'open' });\r\n parent = parent.shadowRoot;\r\n }\r\n else\r\n parent = parent.shadowRoot;\r\n }\r\n let previous = null;\r\n let next = null;\r\n if (mutation.previousId) {\r\n previous = mirror.getNode(mutation.previousId);\r\n }\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (nextNotInDOM(mutation)) {\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.rootId && !mirror.getNode(mutation.node.rootId)) {\r\n return;\r\n }\r\n const targetDoc = mutation.node.rootId\r\n ? mirror.getNode(mutation.node.rootId)\r\n : this.usingVirtualDom\r\n ? this.virtualDom\r\n : this.iframe.contentDocument;\r\n if (isSerializedIframe(parent, mirror)) {\r\n this.attachDocumentToIframe(mutation, parent);\r\n return;\r\n }\r\n const afterAppend = (node, id) => {\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(node, { id, replayer: this });\r\n }\r\n };\r\n const target = buildNodeWithSN(mutation.node, {\r\n doc: targetDoc,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n afterAppend,\r\n });\r\n if (mutation.previousId === -1 || mutation.nextId === -1) {\r\n legacy_missingNodeMap[mutation.node.id] = {\r\n node: target,\r\n mutation,\r\n };\r\n return;\r\n }\r\n const parentSn = mirror.getMeta(parent);\r\n if (parentSn &&\r\n parentSn.type === NodeType.Element &&\r\n parentSn.tagName === 'textarea' &&\r\n mutation.node.type === NodeType.Text) {\r\n const childNodeArray = Array.isArray(parent.childNodes)\r\n ? parent.childNodes\r\n : Array.from(parent.childNodes);\r\n for (const c of childNodeArray) {\r\n if (c.nodeType === parent.TEXT_NODE) {\r\n parent.removeChild(c);\r\n }\r\n }\r\n }\r\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\r\n parent.insertBefore(target, previous.nextSibling);\r\n }\r\n else if (next && next.parentNode) {\r\n parent.contains(next)\r\n ? parent.insertBefore(target, next)\r\n : parent.insertBefore(target, null);\r\n }\r\n else {\r\n if (parent === targetDoc) {\r\n while (targetDoc.firstChild) {\r\n targetDoc.removeChild(targetDoc.firstChild);\r\n }\r\n }\r\n parent.appendChild(target);\r\n }\r\n afterAppend(target, mutation.node.id);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_a = parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n if (isSerializedIframe(target, this.mirror)) {\r\n const targetId = this.mirror.getId(target);\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === targetId);\r\n if (mutationInQueue) {\r\n this.attachDocumentToIframe(mutationInQueue, target);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(legacy_missingNodeMap, parent, target, mutation);\r\n }\r\n };\r\n d.adds.forEach((mutation) => {\r\n appendNode(mutation);\r\n });\r\n const startTime = Date.now();\r\n while (queue.length) {\r\n const resolveTrees = queueToResolveTrees(queue);\r\n queue.length = 0;\r\n if (Date.now() - startTime > 500) {\r\n this.warn('Timeout in the loop, please check the resolve tree data:', resolveTrees);\r\n break;\r\n }\r\n for (const tree of resolveTrees) {\r\n const parent = mirror.getNode(tree.value.parentId);\r\n if (!parent) {\r\n this.debug('Drop resolve tree since there is no parent for the root node.', tree);\r\n }\r\n else {\r\n iterateResolveTree(tree, (mutation) => {\r\n appendNode(mutation);\r\n });\r\n }\r\n }\r\n }\r\n if (Object.keys(legacy_missingNodeMap).length) {\r\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\r\n }\r\n uniqueTextMutations(d.texts).forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n target.textContent = mutation.value;\r\n if (this.usingVirtualDom) {\r\n const parent = target.parentNode;\r\n if (((_a = parent === null || parent === void 0 ? void 0 : parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n });\r\n d.attributes.forEach((mutation) => {\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n for (const attributeName in mutation.attributes) {\r\n if (typeof attributeName === 'string') {\r\n const value = mutation.attributes[attributeName];\r\n if (value === null) {\r\n target.removeAttribute(attributeName);\r\n }\r\n else if (typeof value === 'string') {\r\n try {\r\n if (attributeName === '_cssText' &&\r\n (target.nodeName === 'LINK' || target.nodeName === 'STYLE')) {\r\n try {\r\n const newSn = mirror.getMeta(target);\r\n Object.assign(newSn.attributes, mutation.attributes);\r\n const newNode = buildNodeWithSN(newSn, {\r\n doc: target.ownerDocument,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n });\r\n const siblingNode = target.nextSibling;\r\n const parentNode = target.parentNode;\r\n if (newNode && parentNode) {\r\n parentNode.removeChild(target);\r\n parentNode.insertBefore(newNode, siblingNode);\r\n mirror.replace(mutation.id, newNode);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n target.setAttribute(attributeName, value);\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn('An error occurred may due to the checkout feature.', error);\r\n }\r\n }\r\n }\r\n else if (attributeName === 'style') {\r\n const styleValues = value;\r\n const targetEl = target;\r\n for (const s in styleValues) {\r\n if (styleValues[s] === false) {\r\n targetEl.style.removeProperty(s);\r\n }\r\n else if (styleValues[s] instanceof Array) {\r\n const svp = styleValues[s];\r\n targetEl.style.setProperty(s, svp[0], svp[1]);\r\n }\r\n else {\r\n const svs = styleValues[s];\r\n targetEl.style.setProperty(s, svs);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n applyScroll(d, isSync) {\r\n var _a, _b;\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const sn = this.mirror.getMeta(target);\r\n if (target === this.iframe.contentDocument) {\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType.Document) {\r\n (_b = target.defaultView) === null || _b === void 0 ? void 0 : _b.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else {\r\n try {\r\n target.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n }\r\n applyInput(d) {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n try {\r\n target.checked = d.isChecked;\r\n target.value = d.text;\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applySelection(d) {\r\n try {\r\n const selectionSet = new Set();\r\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\r\n const startContainer = this.mirror.getNode(start);\r\n const endContainer = this.mirror.getNode(end);\r\n if (!startContainer || !endContainer)\r\n return;\r\n const result = new Range();\r\n result.setStart(startContainer, startOffset);\r\n result.setEnd(endContainer, endOffset);\r\n const doc = startContainer.ownerDocument;\r\n const selection = doc === null || doc === void 0 ? void 0 : doc.getSelection();\r\n selection && selectionSet.add(selection);\r\n return {\r\n range: result,\r\n selection,\r\n };\r\n });\r\n selectionSet.forEach((s) => s.removeAllRanges());\r\n ranges.forEach((r) => { var _a; return r && ((_a = r.selection) === null || _a === void 0 ? void 0 : _a.addRange(r.range)); });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applyStyleSheetMutation(data) {\r\n var _a;\r\n let styleSheet = null;\r\n if (data.styleId)\r\n styleSheet = this.styleMirror.getStyle(data.styleId);\r\n else if (data.id)\r\n styleSheet =\r\n ((_a = this.mirror.getNode(data.id)) === null || _a === void 0 ? void 0 : _a.sheet) || null;\r\n if (!styleSheet)\r\n return;\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n }\r\n applyStyleSheetRule(data, styleSheet) {\r\n var _a, _b, _c, _d;\r\n (_a = data.adds) === null || _a === void 0 ? void 0 : _a.forEach(({ rule, index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.insertRule(rule, index);\r\n }\r\n else {\r\n const index = nestedIndex === undefined\r\n ? undefined\r\n : Math.min(nestedIndex, styleSheet.cssRules.length);\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.insertRule(rule, index);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n (_b = data.removes) === null || _b === void 0 ? void 0 : _b.forEach(({ index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.deleteRule(index || 0);\r\n }\r\n else {\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.deleteRule(nestedIndex);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n if (data.replace)\r\n try {\r\n void ((_c = styleSheet.replace) === null || _c === void 0 ? void 0 : _c.call(styleSheet, data.replace));\r\n }\r\n catch (e) {\r\n }\r\n if (data.replaceSync)\r\n try {\r\n (_d = styleSheet.replaceSync) === null || _d === void 0 ? void 0 : _d.call(styleSheet, data.replaceSync);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n applyStyleDeclaration(data, styleSheet) {\r\n if (data.set) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.setProperty(data.set.property, data.set.value, data.set.priority);\r\n }\r\n if (data.remove) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.removeProperty(data.remove.property);\r\n }\r\n }\r\n applyAdoptedStyleSheet(data) {\r\n var _a;\r\n const targetHost = this.mirror.getNode(data.id);\r\n if (!targetHost)\r\n return;\r\n (_a = data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n var _a;\r\n let newStyleSheet = null;\r\n let hostWindow = null;\r\n if (hasShadowRoot(targetHost))\r\n hostWindow = ((_a = targetHost.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) || null;\r\n else if (targetHost.nodeName === '#document')\r\n hostWindow = targetHost.defaultView;\r\n if (!hostWindow)\r\n return;\r\n try {\r\n newStyleSheet = new hostWindow.CSSStyleSheet();\r\n this.styleMirror.add(newStyleSheet, style.styleId);\r\n this.applyStyleSheetRule({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: style.rules,\r\n }, newStyleSheet);\r\n }\r\n catch (e) {\r\n }\r\n });\r\n const MAX_RETRY_TIME = 10;\r\n let count = 0;\r\n const adoptStyleSheets = (targetHost, styleIds) => {\r\n const stylesToAdopt = styleIds\r\n .map((styleId) => this.styleMirror.getStyle(styleId))\r\n .filter((style) => style !== null);\r\n if (hasShadowRoot(targetHost))\r\n targetHost.shadowRoot.adoptedStyleSheets = stylesToAdopt;\r\n else if (targetHost.nodeName === '#document')\r\n targetHost.adoptedStyleSheets = stylesToAdopt;\r\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\r\n setTimeout(() => adoptStyleSheets(targetHost, styleIds), 0 + 100 * count);\r\n count++;\r\n }\r\n };\r\n adoptStyleSheets(targetHost, data.styleIds);\r\n }\r\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\r\n const { previousId, nextId } = targetMutation;\r\n const previousInMap = previousId && map[previousId];\r\n const nextInMap = nextId && map[nextId];\r\n if (previousInMap) {\r\n const { node, mutation } = previousInMap;\r\n parent.insertBefore(node, target);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n if (nextInMap) {\r\n const { node, mutation } = nextInMap;\r\n parent.insertBefore(node, target.nextSibling);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n }\r\n moveAndHover(x, y, id, isSync, debugData) {\r\n const target = this.mirror.getNode(id);\r\n if (!target) {\r\n return this.debugNodeNotFound(debugData, id);\r\n }\r\n const base = getBaseDimension(target, this.iframe);\r\n const _x = x * base.absoluteScale + base.x;\r\n const _y = y * base.absoluteScale + base.y;\r\n this.mouse.style.left = `${_x}px`;\r\n this.mouse.style.top = `${_y}px`;\r\n if (!isSync) {\r\n this.drawMouseTail({ x: _x, y: _y });\r\n }\r\n this.hoverElements(target);\r\n }\r\n drawMouseTail(position) {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true\r\n ? defaultMouseTailConfig\r\n : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\r\n const draw = () => {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const ctx = this.mouseTail.getContext('2d');\r\n if (!ctx || !this.tailPositions.length) {\r\n return;\r\n }\r\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\r\n ctx.beginPath();\r\n ctx.lineWidth = lineWidth;\r\n ctx.lineCap = lineCap;\r\n ctx.strokeStyle = strokeStyle;\r\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\r\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\r\n ctx.stroke();\r\n };\r\n this.tailPositions.push(position);\r\n draw();\r\n setTimeout(() => {\r\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\r\n draw();\r\n }, duration / this.speedService.state.context.timer.speed);\r\n }\r\n hoverElements(el) {\r\n var _a;\r\n (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.\\\\:hover').forEach((hoveredEl) => {\r\n hoveredEl.classList.remove(':hover');\r\n });\r\n let currentEl = el;\r\n while (currentEl) {\r\n if (currentEl.classList) {\r\n currentEl.classList.add(':hover');\r\n }\r\n currentEl = currentEl.parentElement;\r\n }\r\n }\r\n isUserInteraction(event) {\r\n if (event.type !== EventType.IncrementalSnapshot) {\r\n return false;\r\n }\r\n return (event.data.source > IncrementalSource.Mutation &&\r\n event.data.source <= IncrementalSource.Input);\r\n }\r\n backToNormal() {\r\n this.nextUserInteractionEvent = null;\r\n if (this.speedService.state.matches('normal')) {\r\n return;\r\n }\r\n this.speedService.send({ type: 'BACK_TO_NORMAL' });\r\n this.emitter.emit(ReplayerEvents.SkipEnd, {\r\n speed: this.speedService.state.context.normalSpeed,\r\n });\r\n }\r\n warnNodeNotFound(d, id) {\r\n this.warn(`Node with id '${id}' not found. `, d);\r\n }\r\n warnCanvasMutationFailed(d, error) {\r\n this.warn(`Has error on canvas update`, error, 'canvas mutation:', d);\r\n }\r\n debugNodeNotFound(d, id) {\r\n this.debug(REPLAY_CONSOLE_PREFIX, `Node with id '${id}' not found. `, d);\r\n }\r\n warn(...args) {\r\n if (!this.config.showWarning) {\r\n return;\r\n }\r\n console.warn(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n debug(...args) {\r\n if (!this.config.showDebug) {\r\n return;\r\n }\r\n console.log(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n}\n\nexport { Replayer };\n"]}