posthog-js 1.45.0 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.js","sources":["../node_modules/rrweb/es/rrweb/packages/rrweb/ext/tslib/tslib.es6.js","../node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/types.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.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/iframe-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.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/webgl.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.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/2d.js","../src/loader-recorder.ts"],"sourcesContent":["/*! *****************************************************************************\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\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\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 __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nexport { __assign, __read, __rest, __spreadArray, __values };\n","var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n var _a;\n var host = (_a = n) === null || _a === void 0 ? void 0 : _a.host;\n return Boolean(host && host.shadowRoot && host.shadowRoot === n);\n}\nfunction maskInputValue(_a) {\n var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\n var text = value || '';\n if (maskInputOptions[tagName.toLowerCase()] ||\n maskInputOptions[type]) {\n if (maskInputFn) {\n text = maskInputFn(text);\n }\n else {\n text = '*'.repeat(text.length);\n }\n }\n return text;\n}\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n var ctx = canvas.getContext('2d');\n if (!ctx)\n return true;\n var chunkSize = 50;\n for (var x = 0; x < canvas.width; x += chunkSize) {\n for (var y = 0; y < canvas.height; y += chunkSize) {\n var getImageData = ctx.getImageData;\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some(function (pixel) { return pixel !== 0; }))\n return false;\n }\n }\n return true;\n}\n\nvar _id = 1;\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\nvar IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n var processedTagName = element.tagName.toLowerCase().trim();\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction getCssRulesString(s) {\n try {\n var rules = s.rules || s.cssRules;\n return rules ? Array.from(rules).map(getCssRuleString).join('') : null;\n }\n catch (error) {\n return null;\n }\n}\nfunction getCssRuleString(rule) {\n var cssStringified = rule.cssText;\n if (isCSSImportRule(rule)) {\n try {\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\n }\n catch (_a) {\n }\n }\n return cssStringified;\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction stringifyStyleSheet(sheet) {\n return sheet.cssRules\n ? Array.from(sheet.cssRules)\n .map(function (rule) { return rule.cssText || ''; })\n .join('')\n : '';\n}\nfunction extractOrigin(url) {\n var origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n }\n else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nvar canvasService;\nvar canvasCtx;\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\n var filePath = path1 || path2 || path3;\n var maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (!RELATIVE_PATH.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (DATA_URI.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (filePath[0] === '/') {\n return \"url(\" + maybeQuote + (extractOrigin(href) + filePath) + maybeQuote + \")\";\n }\n var stack = href.split('/');\n var parts = filePath.split('/');\n stack.pop();\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n if (part === '.') {\n continue;\n }\n else if (part === '..') {\n stack.pop();\n }\n else {\n stack.push(part);\n }\n }\n return \"url(\" + maybeQuote + stack.join('/') + maybeQuote + \")\";\n });\n}\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n var pos = 0;\n function collectCharacters(regEx) {\n var chars;\n var match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n var output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n var url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n }\n else {\n var descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n var inParens = false;\n while (true) {\n var c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (c === '(') {\n inParens = true;\n }\n }\n else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n var a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n var a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (name === 'src' || (name === 'href' && value)) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'xlink:href' && value && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'background' &&\n value &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'srcset' && value) {\n return getAbsoluteSrcsetString(doc, value);\n }\n else if (name === 'style' && value) {\n return absoluteToStylesheet(value, getHref());\n }\n else if (tagName === 'object' && name === 'data' && value) {\n return absoluteToDoc(doc, value);\n }\n else {\n return value;\n }\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n }\n else {\n for (var eIndex = 0; eIndex < element.classList.length; eIndex++) {\n var className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n return false;\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n if (typeof maskTextClass === 'string') {\n if (node.classList.contains(maskTextClass)) {\n return true;\n }\n }\n else {\n for (var eIndex = 0; eIndex < node.classList.length; eIndex++) {\n var className = node.classList[eIndex];\n if (maskTextClass.test(className)) {\n return true;\n }\n }\n }\n if (maskTextSelector) {\n if (node.matches(maskTextSelector)) {\n return true;\n }\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n var win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n var fired = false;\n var readyState;\n try {\n readyState = win.document.readyState;\n }\n catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n var timer_1 = setTimeout(function () {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', function () {\n clearTimeout(timer_1);\n fired = true;\n listener();\n });\n return;\n }\n var blankUrl = 'about:blank';\n if (win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === '') {\n setTimeout(listener, 0);\n return;\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction serializeNode(n, options) {\n var _a;\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _b = options.maskInputOptions, maskInputOptions = _b === void 0 ? {} : _b, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _c = options.dataURLOptions, dataURLOptions = _c === void 0 ? {} : _c, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn;\n var rootId;\n if (doc.__sn) {\n var docId = doc.__sn.id;\n rootId = docId === 1 ? undefined : docId;\n }\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode,\n rootId: rootId\n };\n }\n else {\n return {\n type: NodeType.Document,\n childNodes: [],\n rootId: rootId\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId: rootId\n };\n case n.ELEMENT_NODE:\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\n var tagName = getValidTagName(n);\n var attributes_1 = {};\n for (var _i = 0, _d = Array.from(n.attributes); _i < _d.length; _i++) {\n var _e = _d[_i], name_1 = _e.name, value = _e.value;\n attributes_1[name_1] = transformAttribute(doc, tagName, name_1, value);\n }\n if (tagName === 'link' && inlineStylesheet) {\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\n return s.href === n.href;\n });\n var cssText = null;\n if (stylesheet) {\n cssText = getCssRulesString(stylesheet);\n }\n if (cssText) {\n delete attributes_1.rel;\n delete attributes_1.href;\n attributes_1._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' &&\n n.sheet &&\n !(n.innerText ||\n n.textContent ||\n '').trim().length) {\n var cssText = getCssRulesString(n.sheet);\n if (cssText) {\n attributes_1._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select') {\n var value = n.value;\n if (attributes_1.type !== 'radio' &&\n attributes_1.type !== 'checkbox' &&\n attributes_1.type !== 'submit' &&\n attributes_1.type !== 'button' &&\n value) {\n attributes_1.value = maskInputValue({\n type: attributes_1.type,\n tagName: tagName,\n value: value,\n maskInputOptions: maskInputOptions,\n maskInputFn: maskInputFn\n });\n }\n else if (n.checked) {\n attributes_1.checked = n.checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes_1.selected = true;\n }\n else {\n delete attributes_1.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes_1.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n }\n else if (!('__context' in n)) {\n var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n var blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes_1.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n var image_1 = n;\n var oldValue_1 = image_1.crossOrigin;\n image_1.crossOrigin = 'anonymous';\n var recordInlineImage = function () {\n try {\n canvasService.width = image_1.naturalWidth;\n canvasService.height = image_1.naturalHeight;\n canvasCtx.drawImage(image_1, 0, 0);\n attributes_1.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n catch (err) {\n console.warn(\"Cannot inline img src=\" + image_1.currentSrc + \"! Error: \" + err);\n }\n oldValue_1\n ? (attributes_1.crossOrigin = oldValue_1)\n : delete attributes_1.crossOrigin;\n };\n if (image_1.complete && image_1.naturalWidth !== 0)\n recordInlineImage();\n else\n image_1.onload = recordInlineImage;\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes_1.rr_mediaState = n.paused\n ? 'paused'\n : 'played';\n attributes_1.rr_mediaCurrentTime = n.currentTime;\n }\n if (n.scrollLeft) {\n attributes_1.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes_1.rr_scrollTop = n.scrollTop;\n }\n if (needBlock) {\n var _f = n.getBoundingClientRect(), width = _f.width, height = _f.height;\n attributes_1 = {\n \"class\": attributes_1[\"class\"],\n rr_width: width + \"px\",\n rr_height: height + \"px\"\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes_1.src)) {\n if (!n.contentDocument) {\n attributes_1.rr_src = attributes_1.src;\n }\n delete attributes_1.src;\n }\n return {\n type: NodeType.Element,\n tagName: tagName,\n attributes: attributes_1,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock: needBlock,\n rootId: rootId\n };\n case n.TEXT_NODE:\n var parentTagName = n.parentNode && n.parentNode.tagName;\n var textContent = n.textContent;\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {\n }\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\n textContent = stringifyStyleSheet(n.parentNode.sheet);\n }\n }\n catch (err) {\n console.warn(\"Cannot get CSS styles from text's parentNode. Error: \" + err, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n if (!isStyle &&\n !isScript &&\n needMaskingText(n, maskTextClass, maskTextSelector) &&\n textContent) {\n textContent = maskTextFn\n ? maskTextFn(textContent)\n : textContent.replace(/[\\S]/g, '*');\n }\n return {\n type: NodeType.Text,\n textContent: textContent || '',\n isStyle: isStyle,\n rootId: rootId\n };\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: '',\n rootId: rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: n.textContent || '',\n rootId: rootId\n };\n default:\n return false;\n }\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined) {\n return '';\n }\n else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n }\n else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script &&\n (sn.tagName === 'script' ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'preload' &&\n sn.attributes.as === 'script') ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n sn.attributes.href.endsWith('.js')))) {\n return true;\n }\n else if (slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\n return true;\n }\n else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n }\n else if (slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n }\n else if (slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n }\n else if (slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined) {\n return true;\n }\n else if (slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n }\n else if (slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n var doc = options.doc, map = options.map, 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, _h = options.keepIframeSrcFn, keepIframeSrcFn = _h === void 0 ? function () { return false; } : _h;\n var _j = options.preserveWhiteSpace, preserveWhiteSpace = _j === void 0 ? true : _j;\n var _serializedNode = serializeNode(n, {\n doc: doc,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n var id;\n if ('__sn' in n) {\n id = n.__sn.id;\n }\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType.Text &&\n !_serializedNode.isStyle &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\n id = IGNORED_NODE;\n }\n else {\n id = genId();\n }\n var serializedNode = Object.assign(_serializedNode, { id: id });\n n.__sn = serializedNode;\n if (id === IGNORED_NODE) {\n return null;\n }\n map[id] = n;\n if (onSerialize) {\n onSerialize(n);\n }\n var recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n if (n.shadowRoot)\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document ||\n serializedNode.type === NodeType.Element) &&\n recordChild) {\n if (slimDOMOptions.headWhitespace &&\n _serializedNode.type === NodeType.Element &&\n _serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n var bypassOptions = {\n doc: doc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: skipChild,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n };\n for (var _i = 0, _k = Array.from(n.childNodes); _i < _k.length; _i++) {\n var childN = _k[_i];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement(n) && n.shadowRoot) {\n for (var _l = 0, _m = Array.from(n.shadowRoot.childNodes); _l < _m.length; _l++) {\n var childN = _m[_l];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedChildNode.isShadow = true;\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode && isShadowRoot(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, function () {\n var iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n var _a = options || {}, _b = _a.blockClass, blockClass = _b === void 0 ? 'rr-block' : _b, _c = _a.blockSelector, blockSelector = _c === void 0 ? null : _c, _d = _a.maskTextClass, maskTextClass = _d === void 0 ? 'rr-mask' : _d, _e = _a.maskTextSelector, maskTextSelector = _e === void 0 ? null : _e, _f = _a.inlineStylesheet, inlineStylesheet = _f === void 0 ? true : _f, _g = _a.inlineImages, inlineImages = _g === void 0 ? false : _g, _h = _a.recordCanvas, recordCanvas = _h === void 0 ? false : _h, _j = _a.maskAllInputs, maskAllInputs = _j === void 0 ? false : _j, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _k = _a.slimDOM, slimDOM = _k === void 0 ? false : _k, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, _l = _a.keepIframeSrcFn, keepIframeSrcFn = _l === void 0 ? function () { return false; } : _l;\n var idNodeMap = {};\n var maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n }\n : maskAllInputs === false\n ? {\n password: true\n }\n : maskAllInputs;\n var slimDOMOptions = slimDOM === true || slimDOM === 'all'\n ?\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n : slimDOM === false\n ? {}\n : slimDOM;\n return [\n serializeNodeWithId(n, {\n doc: n,\n map: idNodeMap,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n }),\n idNodeMap,\n ];\n}\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction parse(css, options) {\n if (options === void 0) { options = {}; }\n var lineno = 1;\n var column = 1;\n function updatePosition(str) {\n var lines = str.match(/\\n/g);\n if (lines) {\n lineno += lines.length;\n }\n var i = str.lastIndexOf('\\n');\n column = i === -1 ? column + str.length : str.length - i;\n }\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n var Position = (function () {\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n return Position;\n }());\n Position.prototype.content = css;\n var errorsList = [];\n function error(msg) {\n var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = css;\n if (options.silent) {\n errorsList.push(err);\n }\n else {\n throw err;\n }\n }\n function stylesheet() {\n var rulesList = rules();\n return {\n type: 'stylesheet',\n stylesheet: {\n source: options.source,\n rules: rulesList,\n parsingErrors: errorsList\n }\n };\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function rules() {\n var node;\n var rules = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node !== false) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n function match(re) {\n var m = re.exec(css);\n if (!m) {\n return;\n }\n var str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comments(rules) {\n if (rules === void 0) { rules = []; }\n var c;\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n c = comment();\n }\n return rules;\n }\n function comment() {\n var pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n var i = 2;\n while ('' !== css.charAt(i) &&\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\n ++i;\n }\n i += 2;\n if ('' === css.charAt(i - 1)) {\n return error('End of comment missing');\n }\n var str = css.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n css = css.slice(i);\n column += 2;\n return pos({\n type: 'comment',\n comment: str\n });\n }\n function selector() {\n var m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n return trim(m[0])\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\n return m.replace(/,/g, '\\u200C');\n })\n .split(/\\s*(?![^(]*\\)),\\s*/)\n .map(function (s) {\n return s.replace(/\\u200C/g, ',');\n });\n }\n function declaration() {\n var pos = position();\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n var prop = trim(propMatch[0]);\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\n var ret = pos({\n type: 'declaration',\n property: prop.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : ''\n });\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n var decls = [];\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n decl = declaration();\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n var m;\n var vals = [];\n var pos = position();\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (!vals.length) {\n return;\n }\n return pos({\n type: 'keyframe',\n values: vals,\n declarations: declarations()\n });\n }\n function atkeyframes() {\n var pos = position();\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error('@keyframes missing name');\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while ((frame = keyframe())) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return pos({\n type: 'keyframes',\n name: name,\n vendor: vendor,\n keyframes: frames\n });\n }\n function atsupports() {\n var pos = position();\n var m = match(/^@supports *([^{]+)/);\n if (!m) {\n return;\n }\n var supports = trim(m[1]);\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n return pos({\n type: 'supports',\n supports: supports,\n rules: style\n });\n }\n function athost() {\n var pos = position();\n var m = match(/^@host\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n return pos({\n type: 'host',\n rules: style\n });\n }\n function atmedia() {\n var pos = position();\n var m = match(/^@media *([^{]+)/);\n if (!m) {\n return;\n }\n var media = trim(m[1]);\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n return pos({\n type: 'media',\n media: media,\n rules: style\n });\n }\n function atcustommedia() {\n var pos = position();\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (!m) {\n return;\n }\n return pos({\n type: 'custom-media',\n name: trim(m[1]),\n media: trim(m[2])\n });\n }\n function atpage() {\n var pos = position();\n var m = match(/^@page */);\n if (!m) {\n return;\n }\n var sel = selector() || [];\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n var decls = comments();\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n return pos({\n type: 'page',\n selectors: sel,\n declarations: decls\n });\n }\n function atdocument() {\n var pos = position();\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n var vendor = trim(m[1]);\n var doc = trim(m[2]);\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n return pos({\n type: 'document',\n document: doc,\n vendor: vendor,\n rules: style\n });\n }\n function atfontface() {\n var pos = position();\n var m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n var decls = comments();\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n return pos({\n type: 'font-face',\n declarations: decls\n });\n }\n var atimport = _compileAtrule('import');\n var atcharset = _compileAtrule('charset');\n var atnamespace = _compileAtrule('namespace');\n function _compileAtrule(name) {\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\n return function () {\n var pos = position();\n var m = match(re);\n if (!m) {\n return;\n }\n var ret = { type: name };\n ret[name] = m[1].trim();\n return pos(ret);\n };\n }\n function atrule() {\n if (css[0] !== '@') {\n return;\n }\n return (atkeyframes() ||\n atmedia() ||\n atcustommedia() ||\n atsupports() ||\n atimport() ||\n atcharset() ||\n atnamespace() ||\n atdocument() ||\n atpage() ||\n athost() ||\n atfontface());\n }\n function rule() {\n var pos = position();\n var sel = selector();\n if (!sel) {\n return error('selector missing');\n }\n comments();\n return pos({\n type: 'rule',\n selectors: sel,\n declarations: declarations()\n });\n }\n return addParent(stylesheet());\n}\nfunction trim(str) {\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\n}\nfunction addParent(obj, parent) {\n var isNode = obj && typeof obj.type === 'string';\n var childParent = isNode ? obj : parent;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var k = _a[_i];\n var value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(function (v) {\n addParent(v, childParent);\n });\n }\n else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null\n });\n }\n return obj;\n}\n\nvar tagMap = {\n script: 'noscript',\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n fedropshadow: 'feDropShadow',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient'\n};\nfunction getTagName(n) {\n var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === 'link' && n.attributes._cssText) {\n tagName = 'style';\n }\n return tagName;\n}\nfunction escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\nfunction addHoverClass(cssText, cache) {\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle)\n return cachedStyle;\n var ast = parse(cssText, {\n silent: true\n });\n if (!ast.stylesheet) {\n return cssText;\n }\n var selectors = [];\n ast.stylesheet.rules.forEach(function (rule) {\n if ('selectors' in rule) {\n (rule.selectors || []).forEach(function (selector) {\n if (HOVER_SELECTOR.test(selector)) {\n selectors.push(selector);\n }\n });\n }\n });\n if (selectors.length === 0) {\n return cssText;\n }\n var selectorMatcher = new RegExp(selectors\n .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\n .sort(function (a, b) { return b.length - a.length; })\n .map(function (selector) {\n return escapeRegExp(selector);\n })\n .join('|'), 'g');\n var result = cssText.replace(selectorMatcher, function (selector) {\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\n return selector + \", \" + newSelector;\n });\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\n return result;\n}\nfunction createCache() {\n var stylesWithHoverClass = new Map();\n return {\n stylesWithHoverClass: stylesWithHoverClass\n };\n}\nfunction buildNode(n, options) {\n var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, '', null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\n case NodeType.Element:\n var tagName = getTagName(n);\n var node_1;\n if (n.isSVG) {\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\n }\n else {\n node_1 = doc.createElement(tagName);\n }\n var _loop_1 = function (name_1) {\n if (!n.attributes.hasOwnProperty(name_1)) {\n return \"continue\";\n }\n var value = n.attributes[name_1];\n if (tagName === 'option' && name_1 === 'selected' && value === false) {\n return \"continue\";\n }\n value =\n typeof value === 'boolean' || typeof value === 'number' ? '' : value;\n if (!name_1.startsWith('rr_')) {\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\n if (isRemoteOrDynamicCss && hackCss) {\n value = addHoverClass(value, cache);\n }\n if (isTextarea || isRemoteOrDynamicCss) {\n var child = doc.createTextNode(value);\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\n var c = _a[_i];\n if (c.nodeType === node_1.TEXT_NODE) {\n node_1.removeChild(c);\n }\n }\n node_1.appendChild(child);\n return \"continue\";\n }\n try {\n if (n.isSVG && name_1 === 'xlink:href') {\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value);\n }\n else if (name_1 === 'onload' ||\n name_1 === 'onclick' ||\n name_1.substring(0, 7) === 'onmouse') {\n node_1.setAttribute('_' + name_1, value);\n }\n else if (tagName === 'meta' &&\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\n name_1 === 'content') {\n node_1.setAttribute('csp-content', value);\n return \"continue\";\n }\n else if (tagName === 'link' &&\n n.attributes.rel === 'preload' &&\n n.attributes.as === 'script') {\n }\n else if (tagName === 'link' &&\n n.attributes.rel === 'prefetch' &&\n typeof n.attributes.href === 'string' &&\n n.attributes.href.endsWith('.js')) {\n }\n else if (tagName === 'img' &&\n n.attributes.srcset &&\n n.attributes.rr_dataURL) {\n node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\n }\n else {\n node_1.setAttribute(name_1, value);\n }\n }\n catch (error) {\n }\n }\n else {\n if (tagName === 'canvas' && name_1 === 'rr_dataURL') {\n var image_1 = document.createElement('img');\n image_1.src = value;\n image_1.onload = function () {\n var ctx = node_1.getContext('2d');\n if (ctx) {\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\n }\n };\n }\n else if (tagName === 'img' && name_1 === 'rr_dataURL') {\n var image = node_1;\n if (!image.currentSrc.startsWith('data:')) {\n image.setAttribute('rrweb-original-src', n.attributes.src);\n image.src = value;\n }\n }\n if (name_1 === 'rr_width') {\n node_1.style.width = value;\n }\n else if (name_1 === 'rr_height') {\n node_1.style.height = value;\n }\n else if (name_1 === 'rr_mediaCurrentTime') {\n node_1.currentTime = n.attributes\n .rr_mediaCurrentTime;\n }\n else if (name_1 === 'rr_mediaState') {\n switch (value) {\n case 'played':\n node_1\n .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\n break;\n case 'paused':\n node_1.pause();\n break;\n }\n }\n }\n };\n for (var name_1 in n.attributes) {\n _loop_1(name_1);\n }\n if (n.isShadowHost) {\n if (!node_1.shadowRoot) {\n node_1.attachShadow({ mode: 'open' });\n }\n else {\n while (node_1.shadowRoot.firstChild) {\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\n }\n }\n }\n return node_1;\n case NodeType.Text:\n return doc.createTextNode(n.isStyle && hackCss\n ? addHoverClass(n.textContent, cache)\n : n.textContent);\n case NodeType.CDATA:\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n var doc = options.doc, map = options.map, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\n var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: cache });\n if (!node) {\n return null;\n }\n if (n.rootId) {\n console.assert(map[n.rootId] === doc, 'Target document should has the same root id.');\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === 'BackCompat' &&\n n.childNodes &&\n n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element &&\n 'xmlns' in n.childNodes[0].attributes &&\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\n }\n else {\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\n }\n }\n node = doc;\n }\n node.__sn = n;\n map[n.id] = node;\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\n !skipChild) {\n for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\n var childN = _c[_i];\n var childNode = buildNodeWithSN(childN, {\n doc: doc,\n map: map,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n if (!childNode) {\n console.warn('Failed to rebuild', childN);\n continue;\n }\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\n node.shadowRoot.appendChild(childNode);\n }\n else {\n node.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode);\n }\n }\n }\n return node;\n}\nfunction visit(idNodeMap, onVisit) {\n function walk(node) {\n onVisit(node);\n }\n for (var key in idNodeMap) {\n if (idNodeMap[key]) {\n walk(idNodeMap[key]);\n }\n }\n}\nfunction handleScroll(node) {\n var n = node.__sn;\n if (n.type !== NodeType.Element) {\n return;\n }\n var el = node;\n for (var name_2 in n.attributes) {\n if (!(n.attributes.hasOwnProperty(name_2) && name_2.startsWith('rr_'))) {\n continue;\n }\n var value = n.attributes[name_2];\n if (name_2 === 'rr_scrollLeft') {\n el.scrollLeft = value;\n }\n if (name_2 === 'rr_scrollTop') {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache;\n var idNodeMap = {};\n var node = buildNodeWithSN(n, {\n doc: doc,\n map: idNodeMap,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n visit(idNodeMap, function (visitedNode) {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode);\n });\n return [node, idNodeMap];\n}\n\nexport { IGNORED_NODE, NodeType, addHoverClass, buildNodeWithSN, createCache, is2DCanvasBlank, isElement, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };\n","var EventType;\n(function (EventType) {\n EventType[EventType[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType[EventType[\"Load\"] = 1] = \"Load\";\n EventType[EventType[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType[EventType[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType[EventType[\"Meta\"] = 4] = \"Meta\";\n EventType[EventType[\"Custom\"] = 5] = \"Custom\";\n EventType[EventType[\"Plugin\"] = 6] = \"Plugin\";\n})(EventType || (EventType = {}));\nvar IncrementalSource;\n(function (IncrementalSource) {\n IncrementalSource[IncrementalSource[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource[IncrementalSource[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource[IncrementalSource[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource[IncrementalSource[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource[IncrementalSource[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource[IncrementalSource[\"Input\"] = 5] = \"Input\";\n IncrementalSource[IncrementalSource[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource[IncrementalSource[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource[IncrementalSource[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource[IncrementalSource[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource[IncrementalSource[\"Font\"] = 10] = \"Font\";\n IncrementalSource[IncrementalSource[\"Log\"] = 11] = \"Log\";\n IncrementalSource[IncrementalSource[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource[IncrementalSource[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n})(IncrementalSource || (IncrementalSource = {}));\nvar MouseInteractions;\n(function (MouseInteractions) {\n MouseInteractions[MouseInteractions[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions[MouseInteractions[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions[MouseInteractions[\"Click\"] = 2] = \"Click\";\n MouseInteractions[MouseInteractions[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions[MouseInteractions[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions[MouseInteractions[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions[MouseInteractions[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions[MouseInteractions[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions[MouseInteractions[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions[MouseInteractions[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions[MouseInteractions[\"TouchCancel\"] = 10] = \"TouchCancel\";\n})(MouseInteractions || (MouseInteractions = {}));\nvar CanvasContext;\n(function (CanvasContext) {\n CanvasContext[CanvasContext[\"2D\"] = 0] = \"2D\";\n CanvasContext[CanvasContext[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext[CanvasContext[\"WebGL2\"] = 2] = \"WebGL2\";\n})(CanvasContext || (CanvasContext = {}));\nvar MediaInteractions;\n(function (MediaInteractions) {\n MediaInteractions[MediaInteractions[\"Play\"] = 0] = \"Play\";\n MediaInteractions[MediaInteractions[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions[MediaInteractions[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions[MediaInteractions[\"VolumeChange\"] = 3] = \"VolumeChange\";\n})(MediaInteractions || (MediaInteractions = {}));\nvar ReplayerEvents;\n(function (ReplayerEvents) {\n ReplayerEvents[\"Start\"] = \"start\";\n ReplayerEvents[\"Pause\"] = \"pause\";\n ReplayerEvents[\"Resume\"] = \"resume\";\n ReplayerEvents[\"Resize\"] = \"resize\";\n ReplayerEvents[\"Finish\"] = \"finish\";\n ReplayerEvents[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents[\"EventCast\"] = \"event-cast\";\n ReplayerEvents[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents[\"Flush\"] = \"flush\";\n ReplayerEvents[\"StateChange\"] = \"state-change\";\n ReplayerEvents[\"PlayBack\"] = \"play-back\";\n})(ReplayerEvents || (ReplayerEvents = {}));\n\nexport { CanvasContext, EventType, IncrementalSource, MediaInteractions, MouseInteractions, ReplayerEvents };\n","import { __values } from '../ext/tslib/tslib.es6.js';\nimport { IncrementalSource } from './types.js';\nimport { IGNORED_NODE, isShadowRoot, NodeType } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target) {\n if (target === void 0) { target = document; }\n var options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return function () { return target.removeEventListener(type, fn, options); };\n}\nfunction createMirror() {\n return {\n map: {},\n getId: function (n) {\n if (!n || !n.__sn) {\n return -1;\n }\n return n.__sn.id;\n },\n getNode: function (id) {\n return this.map[id] || null;\n },\n removeNodeFromMap: function (n) {\n var _this = this;\n var id = n.__sn && n.__sn.id;\n delete this.map[id];\n if (n.childNodes) {\n n.childNodes.forEach(function (child) {\n return _this.removeNodeFromMap(child);\n });\n }\n },\n has: function (id) {\n return this.map.hasOwnProperty(id);\n },\n reset: function () {\n this.map = {};\n },\n };\n}\nvar DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nvar _mirror = {\n map: {},\n getId: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get: function (target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction throttle(func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout = null;\n var previous = 0;\n return function (arg) {\n var now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n var context = this;\n var args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win) {\n if (win === void 0) { win = window; }\n var original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set: function (value) {\n var _this = this;\n setTimeout(function () {\n d.set.call(_this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return function () { return hookSetter(target, key, original || {}, true); };\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function () { };\n }\n var original_1 = source[name];\n var wrapped = replacement(original_1);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original_1,\n },\n });\n }\n source[name] = wrapped;\n return function () {\n source[name] = original_1;\n };\n }\n catch (_a) {\n return function () { };\n }\n}\nfunction getWindowHeight() {\n return (window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight));\n}\nfunction getWindowWidth() {\n return (window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth));\n}\nfunction isBlocked(node, blockClass) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n var needBlock_1 = false;\n if (typeof blockClass === 'string') {\n if (node.closest !== undefined) {\n return node.closest('.' + blockClass) !== null;\n }\n else {\n needBlock_1 = node.classList.contains(blockClass);\n }\n }\n else {\n node.classList.forEach(function (className) {\n if (blockClass.test(className)) {\n needBlock_1 = true;\n }\n });\n }\n return needBlock_1 || isBlocked(node.parentNode, blockClass);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return isBlocked(node.parentNode, blockClass);\n }\n return isBlocked(node.parentNode, blockClass);\n}\nfunction isIgnored(n) {\n if ('__sn' in n) {\n return n.__sn.id === IGNORED_NODE;\n }\n return false;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n var id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode &&\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win) {\n if (win === void 0) { win = window; }\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype\n .forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = function contains(node) {\n if (!(0 in arguments)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while ((node = node && node.parentNode));\n return false;\n };\n }\n}\nvar TreeIndex = (function () {\n function TreeIndex() {\n this.reset();\n }\n TreeIndex.prototype.add = function (mutation) {\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = {\n id: mutation.node.id,\n mutation: mutation,\n children: [],\n texts: [],\n attributes: [],\n };\n if (!parentTreeNode) {\n this.tree[treeNode.id] = treeNode;\n }\n else {\n treeNode.parent = parentTreeNode;\n parentTreeNode.children[treeNode.id] = treeNode;\n }\n this.indexes.set(treeNode.id, treeNode);\n };\n TreeIndex.prototype.remove = function (mutation, mirror) {\n var _this = this;\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = this.indexes.get(mutation.id);\n var deepRemoveFromMirror = function (id) {\n _this.removeIdSet.add(id);\n var node = mirror.getNode(id);\n node === null || node === void 0 ? void 0 : node.childNodes.forEach(function (childNode) {\n if ('__sn' in childNode) {\n deepRemoveFromMirror(childNode.__sn.id);\n }\n });\n };\n var deepRemoveFromTreeIndex = function (node) {\n _this.removeIdSet.add(node.id);\n Object.values(node.children).forEach(function (n) { return deepRemoveFromTreeIndex(n); });\n var _treeNode = _this.indexes.get(node.id);\n if (_treeNode) {\n var _parentTreeNode = _treeNode.parent;\n if (_parentTreeNode) {\n delete _treeNode.parent;\n delete _parentTreeNode.children[_treeNode.id];\n _this.indexes.delete(mutation.id);\n }\n }\n };\n if (!treeNode) {\n this.removeNodeMutations.push(mutation);\n deepRemoveFromMirror(mutation.id);\n }\n else if (!parentTreeNode) {\n delete this.tree[treeNode.id];\n this.indexes.delete(treeNode.id);\n deepRemoveFromTreeIndex(treeNode);\n }\n else {\n delete treeNode.parent;\n delete parentTreeNode.children[treeNode.id];\n this.indexes.delete(mutation.id);\n deepRemoveFromTreeIndex(treeNode);\n }\n };\n TreeIndex.prototype.text = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.texts.push(mutation);\n }\n else {\n this.textMutations.push(mutation);\n }\n };\n TreeIndex.prototype.attribute = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.attributes.push(mutation);\n }\n else {\n this.attributeMutations.push(mutation);\n }\n };\n TreeIndex.prototype.scroll = function (d) {\n this.scrollMap.set(d.id, d);\n };\n TreeIndex.prototype.input = function (d) {\n this.inputMap.set(d.id, d);\n };\n TreeIndex.prototype.flush = function () {\n var e_1, _a, e_2, _b;\n var _this = this;\n var _c = this, tree = _c.tree, removeNodeMutations = _c.removeNodeMutations, textMutations = _c.textMutations, attributeMutations = _c.attributeMutations;\n var batchMutationData = {\n source: IncrementalSource.Mutation,\n removes: removeNodeMutations,\n texts: textMutations,\n attributes: attributeMutations,\n adds: [],\n };\n var walk = function (treeNode, removed) {\n if (removed) {\n _this.removeIdSet.add(treeNode.id);\n }\n batchMutationData.texts = batchMutationData.texts\n .concat(removed ? [] : treeNode.texts)\n .filter(function (m) { return !_this.removeIdSet.has(m.id); });\n batchMutationData.attributes = batchMutationData.attributes\n .concat(removed ? [] : treeNode.attributes)\n .filter(function (m) { return !_this.removeIdSet.has(m.id); });\n if (!_this.removeIdSet.has(treeNode.id) &&\n !_this.removeIdSet.has(treeNode.mutation.parentId) &&\n !removed) {\n batchMutationData.adds.push(treeNode.mutation);\n if (treeNode.children) {\n Object.values(treeNode.children).forEach(function (n) { return walk(n, false); });\n }\n }\n else {\n Object.values(treeNode.children).forEach(function (n) { return walk(n, true); });\n }\n };\n Object.values(tree).forEach(function (n) { return walk(n, false); });\n try {\n for (var _d = __values(this.scrollMap.keys()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var id = _e.value;\n if (this.removeIdSet.has(id)) {\n this.scrollMap.delete(id);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _f = __values(this.inputMap.keys()), _g = _f.next(); !_g.done; _g = _f.next()) {\n var id = _g.value;\n if (this.removeIdSet.has(id)) {\n this.inputMap.delete(id);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var scrollMap = new Map(this.scrollMap);\n var inputMap = new Map(this.inputMap);\n this.reset();\n return {\n mutationData: batchMutationData,\n scrollMap: scrollMap,\n inputMap: inputMap,\n };\n };\n TreeIndex.prototype.reset = function () {\n this.tree = [];\n this.indexes = new Map();\n this.removeNodeMutations = [];\n this.textMutations = [];\n this.attributeMutations = [];\n this.removeIdSet = new Set();\n this.scrollMap = new Map();\n this.inputMap = new Map();\n };\n TreeIndex.prototype.idRemoved = function (id) {\n return this.removeIdSet.has(id);\n };\n return TreeIndex;\n}());\nfunction queueToResolveTrees(queue) {\n var e_3, _a;\n var queueNodeMap = {};\n var putIntoMap = function (m, parent) {\n var nodeInTree = {\n value: m,\n parent: parent,\n children: [],\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n var queueNodeTrees = [];\n try {\n for (var queue_1 = __values(queue), queue_1_1 = queue_1.next(); !queue_1_1.done; queue_1_1 = queue_1.next()) {\n var mutation = queue_1_1.value;\n var nextId = mutation.nextId, parentId = mutation.parentId;\n if (nextId && nextId in queueNodeMap) {\n var nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n var idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\n }\n else {\n var idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n var parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (queue_1_1 && !queue_1_1.done && (_a = queue_1.return)) _a.call(queue_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (var i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\nfunction isIframeINode(node) {\n if ('__sn' in node) {\n return (node.__sn.type === NodeType.Element && node.__sn.tagName === 'iframe');\n }\n return false;\n}\nfunction getBaseDimension(node, rootIframe) {\n var _a, _b;\n var frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1,\n };\n }\n var frameDimension = frameElement.getBoundingClientRect();\n var frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n var relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale +\n frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale +\n frameBaseDimension.y,\n relativeScale: relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\n };\n}\nfunction hasShadowRoot(n) {\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\n}\n\nexport { TreeIndex, _mirror, createMirror, getBaseDimension, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIframeINode, isIgnored, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, throttle };\n","import { __values } from '../../ext/tslib/tslib.es6.js';\nimport { isShadowRoot, maskInputValue, transformAttribute, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isAncestorRemoved, isIframeINode, hasShadowRoot } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\n return '__ln' in n;\n}\nvar DoubleLinkedList = (function () {\n function DoubleLinkedList() {\n this.length = 0;\n this.head = null;\n }\n DoubleLinkedList.prototype.get = function (position) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n var current = this.head;\n for (var index = 0; index < position; index++) {\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\n }\n return current;\n };\n DoubleLinkedList.prototype.addNode = function (n) {\n var node = {\n value: n,\n previous: null,\n next: null,\n };\n n.__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n var current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n }\n else if (n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous) {\n var current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n }\n else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n this.length++;\n };\n DoubleLinkedList.prototype.removeNode = function (n) {\n var current = n.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n }\n }\n else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n }\n }\n if (n.__ln) {\n delete n.__ln;\n }\n this.length--;\n };\n return DoubleLinkedList;\n}());\nvar moveKey = function (id, parentId) { return \"\".concat(id, \"@\").concat(parentId); };\nfunction isINode(n) {\n return '__sn' in n;\n}\nvar MutationBuffer = (function () {\n function MutationBuffer() {\n var _this = this;\n this.frozen = false;\n this.locked = false;\n this.texts = [];\n this.attributes = [];\n this.removes = [];\n this.mapRemoves = [];\n this.movedMap = {};\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.processMutations = function (mutations) {\n mutations.forEach(_this.processMutation);\n _this.emit();\n };\n this.emit = function () {\n var e_1, _a, e_2, _b;\n if (_this.frozen || _this.locked) {\n return;\n }\n var adds = [];\n var addList = new DoubleLinkedList();\n var getNextId = function (n) {\n var ns = n;\n var nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && _this.mirror.getId(ns);\n }\n return nextId;\n };\n var pushAdd = function (n) {\n var _a, _b, _c, _d, _e;\n var shadowHost = n.getRootNode\n ? (_a = n.getRootNode()) === null || _a === void 0 ? void 0 : _a.host\n : null;\n var rootShadowHost = shadowHost;\n while ((_c = (_b = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _b === void 0 ? void 0 : _b.call(rootShadowHost)) === null || _c === void 0 ? void 0 : _c.host)\n rootShadowHost =\n ((_e = (_d = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _d === void 0 ? void 0 : _d.call(rootShadowHost)) === null || _e === void 0 ? void 0 : _e.host) ||\n null;\n var notInDoc = !_this.doc.contains(n) &&\n (rootShadowHost === null || !_this.doc.contains(rootShadowHost));\n if (!n.parentNode || notInDoc) {\n return;\n }\n var parentId = isShadowRoot(n.parentNode)\n ? _this.mirror.getId(shadowHost)\n : _this.mirror.getId(n.parentNode);\n var nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n var sn = serializeNodeWithId(n, {\n doc: _this.doc,\n map: _this.mirror.map,\n blockClass: _this.blockClass,\n blockSelector: _this.blockSelector,\n maskTextClass: _this.maskTextClass,\n maskTextSelector: _this.maskTextSelector,\n skipChild: true,\n inlineStylesheet: _this.inlineStylesheet,\n maskInputOptions: _this.maskInputOptions,\n maskTextFn: _this.maskTextFn,\n maskInputFn: _this.maskInputFn,\n slimDOMOptions: _this.slimDOMOptions,\n recordCanvas: _this.recordCanvas,\n inlineImages: _this.inlineImages,\n onSerialize: function (currentN) {\n if (isIframeINode(currentN)) {\n _this.iframeManager.addIframe(currentN);\n }\n if (hasShadowRoot(n)) {\n _this.shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: function (iframe, childSn) {\n _this.iframeManager.attachIframe(iframe, childSn);\n _this.shadowDomManager.observeAttachShadow(iframe);\n },\n });\n if (sn) {\n adds.push({\n parentId: parentId,\n nextId: nextId,\n node: sn,\n });\n }\n };\n while (_this.mapRemoves.length) {\n _this.mirror.removeNodeFromMap(_this.mapRemoves.shift());\n }\n try {\n for (var _c = __values(_this.movedSet), _d = _c.next(); !_d.done; _d = _c.next()) {\n var n = _d.value;\n if (isParentRemoved(_this.removes, n, _this.mirror) &&\n !_this.movedSet.has(n.parentNode)) {\n continue;\n }\n pushAdd(n);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(_this.addedSet), _f = _e.next(); !_f.done; _f = _e.next()) {\n var n = _f.value;\n if (!isAncestorInSet(_this.droppedSet, n) &&\n !isParentRemoved(_this.removes, n, _this.mirror)) {\n pushAdd(n);\n }\n else if (isAncestorInSet(_this.movedSet, n)) {\n pushAdd(n);\n }\n else {\n _this.droppedSet.add(n);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var candidate = null;\n while (addList.length) {\n var node = null;\n if (candidate) {\n var parentId = _this.mirror.getId(candidate.value.parentNode);\n var nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n for (var index = addList.length - 1; index >= 0; index--) {\n var _node = addList.get(index);\n if (_node) {\n var parentId = _this.mirror.getId(_node.value.parentNode);\n var nextId = getNextId(_node.value);\n if (parentId !== -1 && nextId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n if (!node) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n var payload = {\n texts: _this.texts\n .map(function (text) { return ({\n id: _this.mirror.getId(text.node),\n value: text.value,\n }); })\n .filter(function (text) { return _this.mirror.has(text.id); }),\n attributes: _this.attributes\n .map(function (attribute) { return ({\n id: _this.mirror.getId(attribute.node),\n attributes: attribute.attributes,\n }); })\n .filter(function (attribute) { return _this.mirror.has(attribute.id); }),\n removes: _this.removes,\n adds: adds,\n };\n if (!payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length) {\n return;\n }\n _this.texts = [];\n _this.attributes = [];\n _this.removes = [];\n _this.addedSet = new Set();\n _this.movedSet = new Set();\n _this.droppedSet = new Set();\n _this.movedMap = {};\n _this.mutationCb(payload);\n };\n this.processMutation = function (m) {\n var e_3, _a, e_4, _b;\n if (isIgnored(m.target)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n var value = m.target.textContent;\n if (!isBlocked(m.target, _this.blockClass) && value !== m.oldValue) {\n _this.texts.push({\n value: needMaskingText(m.target, _this.maskTextClass, _this.maskTextSelector) && value\n ? _this.maskTextFn\n ? _this.maskTextFn(value)\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n var target = m.target;\n var value = m.target.getAttribute(m.attributeName);\n if (m.attributeName === 'value') {\n value = maskInputValue({\n maskInputOptions: _this.maskInputOptions,\n tagName: m.target.tagName,\n type: m.target.getAttribute('type'),\n value: value,\n maskInputFn: _this.maskInputFn,\n });\n }\n if (isBlocked(m.target, _this.blockClass) || value === m.oldValue) {\n return;\n }\n var item = _this.attributes.find(function (a) { return a.node === m.target; });\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n };\n _this.attributes.push(item);\n }\n if (m.attributeName === 'style') {\n var old = _this.doc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n if (item.attributes.style === undefined ||\n item.attributes.style === null) {\n item.attributes.style = {};\n }\n var styleObj = item.attributes.style;\n try {\n for (var _c = __values(Array.from(target.style)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var pname = _d.value;\n var newValue = target.style.getPropertyValue(pname);\n var newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === '') {\n styleObj[pname] = newValue;\n }\n else {\n styleObj[pname] = [newValue, newPriority];\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _e = __values(Array.from(old.style)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var pname = _f.value;\n if (target.style.getPropertyValue(pname) === '') {\n styleObj[pname] = false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n else {\n item.attributes[m.attributeName] = transformAttribute(_this.doc, m.target.tagName, m.attributeName, value);\n }\n break;\n }\n case 'childList': {\n m.addedNodes.forEach(function (n) { return _this.genAdds(n, m.target); });\n m.removedNodes.forEach(function (n) {\n var nodeId = _this.mirror.getId(n);\n var parentId = isShadowRoot(m.target)\n ? _this.mirror.getId(m.target.host)\n : _this.mirror.getId(m.target);\n if (isBlocked(m.target, _this.blockClass) || isIgnored(n)) {\n return;\n }\n if (_this.addedSet.has(n)) {\n deepDelete(_this.addedSet, n);\n _this.droppedSet.add(n);\n }\n else if (_this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, _this.mirror)) ;\n else if (_this.movedSet.has(n) &&\n _this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(_this.movedSet, n);\n }\n else {\n _this.removes.push({\n parentId: parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) ? true : undefined,\n });\n }\n _this.mapRemoves.push(n);\n });\n break;\n }\n }\n };\n this.genAdds = function (n, target) {\n if (target && isBlocked(target, _this.blockClass)) {\n return;\n }\n if (isINode(n)) {\n if (isIgnored(n)) {\n return;\n }\n _this.movedSet.add(n);\n var targetId = null;\n if (target && isINode(target)) {\n targetId = target.__sn.id;\n }\n if (targetId) {\n _this.movedMap[moveKey(n.__sn.id, targetId)] = true;\n }\n }\n else {\n _this.addedSet.add(n);\n _this.droppedSet.delete(n);\n }\n if (!isBlocked(n, _this.blockClass))\n n.childNodes.forEach(function (childN) { return _this.genAdds(childN); });\n };\n }\n MutationBuffer.prototype.init = function (options) {\n var _this = this;\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'maskTextClass',\n 'maskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskTextFn',\n 'maskInputFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'shadowDomManager',\n 'canvasManager',\n ].forEach(function (key) {\n _this[key] = options[key];\n });\n };\n MutationBuffer.prototype.freeze = function () {\n this.frozen = true;\n this.canvasManager.freeze();\n };\n MutationBuffer.prototype.unfreeze = function () {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n };\n MutationBuffer.prototype.isFrozen = function () {\n return this.frozen;\n };\n MutationBuffer.prototype.lock = function () {\n this.locked = true;\n this.canvasManager.lock();\n };\n MutationBuffer.prototype.unlock = function () {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n };\n MutationBuffer.prototype.reset = function () {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n };\n return MutationBuffer;\n}());\nfunction deepDelete(addsSet, n) {\n addsSet.delete(n);\n n.childNodes.forEach(function (childN) { return deepDelete(addsSet, childN); });\n}\nfunction isParentRemoved(removes, n, mirror) {\n var parentNode = n.parentNode;\n if (!parentNode) {\n return false;\n }\n var parentId = mirror.getId(parentNode);\n if (removes.some(function (r) { return r.id === parentId; })) {\n return true;\n }\n return isParentRemoved(removes, parentNode, mirror);\n}\nfunction isAncestorInSet(set, n) {\n var parentNode = n.parentNode;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return isAncestorInSet(set, parentNode);\n}\n\nexport default MutationBuffer;\n","import { __read, __values, __spreadArray, __assign } from '../../ext/tslib/tslib.es6.js';\nimport { maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isTouchEvent, isBlocked, getWindowHeight, getWindowWidth, hookSetter, patch } from '../utils.js';\nimport { IncrementalSource, MouseInteractions } from '../types.js';\nimport MutationBuffer from './mutation.js';\n\nvar mutationBuffers = [];\nvar isCSSGroupingRuleSupported = typeof CSSGroupingRule !== 'undefined';\nvar isCSSMediaRuleSupported = typeof CSSMediaRule !== 'undefined';\nvar isCSSSupportsRuleSupported = typeof CSSSupportsRule !== 'undefined';\nvar isCSSConditionRuleSupported = typeof CSSConditionRule !== 'undefined';\nfunction getEventTarget(event) {\n try {\n if ('composedPath' in event) {\n var path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n }\n else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n return event.target;\n }\n catch (_a) {\n return event.target;\n }\n}\nfunction initMutationObserver(options, rootEl) {\n var _a, _b;\n var mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n var mutationObserverCtor = window.MutationObserver ||\n window.__rrMutationObserver;\n var 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');\n if (angularZoneSymbol &&\n window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n var observer = new mutationObserverCtor(mutationBuffer.processMutations.bind(mutationBuffer));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\nfunction initMoveObserver(_a) {\n var mousemoveCb = _a.mousemoveCb, sampling = _a.sampling, doc = _a.doc, mirror = _a.mirror;\n if (sampling.mousemove === false) {\n return function () { };\n }\n var threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n var callbackThreshold = typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n var positions = [];\n var timeBaseline;\n var wrappedCb = throttle(function (source) {\n var totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map(function (p) {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }, callbackThreshold);\n var updatePosition = throttle(function (evt) {\n var target = getEventTarget(evt);\n var _a = isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt, clientX = _a.clientX, clientY = _a.clientY;\n if (!timeBaseline) {\n timeBaseline = Date.now();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target),\n timeOffset: Date.now() - timeBaseline,\n });\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove);\n }, threshold, {\n trailing: false,\n });\n var handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initMouseInteractionObserver(_a) {\n var mouseInteractionCb = _a.mouseInteractionCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, sampling = _a.sampling;\n if (sampling.mouseInteraction === false) {\n return function () { };\n }\n var disableMap = sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n var handlers = [];\n var getHandler = function (eventKey) {\n return function (event) {\n var target = getEventTarget(event);\n if (isBlocked(target, blockClass)) {\n return;\n }\n var e = isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n var id = mirror.getId(target);\n var clientX = e.clientX, clientY = e.clientY;\n mouseInteractionCb({\n type: MouseInteractions[eventKey],\n id: id,\n x: clientX,\n y: clientY,\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter(function (key) {\n return Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false;\n })\n .forEach(function (eventKey) {\n var eventName = eventKey.toLowerCase();\n var handler = getHandler(eventKey);\n handlers.push(on(eventName, handler, doc));\n });\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initScrollObserver(_a) {\n var scrollCb = _a.scrollCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, sampling = _a.sampling;\n var updatePosition = throttle(function (evt) {\n var target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass)) {\n return;\n }\n var id = mirror.getId(target);\n if (target === doc) {\n var scrollEl = (doc.scrollingElement || doc.documentElement);\n scrollCb({\n id: id,\n x: scrollEl.scrollLeft,\n y: scrollEl.scrollTop,\n });\n }\n else {\n scrollCb({\n id: id,\n x: target.scrollLeft,\n y: target.scrollTop,\n });\n }\n }, sampling.scroll || 100);\n return on('scroll', updatePosition, doc);\n}\nfunction initViewportResizeObserver(_a) {\n var viewportResizeCb = _a.viewportResizeCb;\n var lastH = -1;\n var lastW = -1;\n var updateDimension = throttle(function () {\n var height = getWindowHeight();\n var width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }, 200);\n return on('resize', updateDimension, window);\n}\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\n var value = __assign({}, v);\n if (!enable)\n delete value.userTriggered;\n return value;\n}\nvar INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nvar lastInputValueMap = new WeakMap();\nfunction initInputObserver(_a) {\n var inputCb = _a.inputCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, ignoreClass = _a.ignoreClass, maskInputOptions = _a.maskInputOptions, maskInputFn = _a.maskInputFn, sampling = _a.sampling, userTriggeredOnInput = _a.userTriggeredOnInput;\n function eventHandler(event) {\n var target = getEventTarget(event);\n var userTriggered = event.isTrusted;\n if (target && target.tagName === 'OPTION')\n target = target.parentElement;\n if (!target ||\n !target.tagName ||\n INPUT_TAGS.indexOf(target.tagName) < 0 ||\n isBlocked(target, blockClass)) {\n return;\n }\n var type = target.type;\n if (target.classList.contains(ignoreClass)) {\n return;\n }\n var text = target.value;\n var isChecked = false;\n if (type === 'radio' || type === 'checkbox') {\n isChecked = target.checked;\n }\n else if (maskInputOptions[target.tagName.toLowerCase()] ||\n maskInputOptions[type]) {\n text = maskInputValue({\n maskInputOptions: maskInputOptions,\n tagName: target.tagName,\n type: type,\n value: text,\n maskInputFn: maskInputFn,\n });\n }\n cbWithDedup(target, wrapEventWithUserTriggeredFlag({ text: text, isChecked: isChecked, userTriggered: userTriggered }, userTriggeredOnInput));\n var name = target.name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(\"input[type=\\\"radio\\\"][name=\\\"\".concat(name, \"\\\"]\"))\n .forEach(function (el) {\n if (el !== target) {\n cbWithDedup(el, wrapEventWithUserTriggeredFlag({\n text: el.value,\n isChecked: !isChecked,\n userTriggered: false,\n }, userTriggeredOnInput));\n }\n });\n }\n }\n function cbWithDedup(target, v) {\n var lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked) {\n lastInputValueMap.set(target, v);\n var id = mirror.getId(target);\n inputCb(__assign(__assign({}, v), { id: id }));\n }\n }\n var events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n var handlers = events.map(function (eventName) { return on(eventName, eventHandler, doc); });\n var propertyDescriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');\n var hookProperties = [\n [HTMLInputElement.prototype, 'value'],\n [HTMLInputElement.prototype, 'checked'],\n [HTMLSelectElement.prototype, 'value'],\n [HTMLTextAreaElement.prototype, 'value'],\n [HTMLSelectElement.prototype, 'selectedIndex'],\n [HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push.apply(handlers, __spreadArray([], __read(hookProperties.map(function (p) {\n return hookSetter(p[0], p[1], {\n set: function () {\n eventHandler({ target: this });\n },\n });\n })), false));\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction getNestedCSSRulePositions(rule) {\n var positions = [];\n function recurse(childRule, pos) {\n if ((isCSSGroupingRuleSupported &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (isCSSMediaRuleSupported &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (isCSSSupportsRuleSupported &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (isCSSConditionRuleSupported &&\n childRule.parentRule instanceof CSSConditionRule)) {\n var rules = Array.from(childRule.parentRule.cssRules);\n var index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n else {\n var rules = Array.from(childRule.parentStyleSheet.cssRules);\n var index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\nfunction initStyleSheetObserver(_a, _b) {\n var styleSheetRuleCb = _a.styleSheetRuleCb, mirror = _a.mirror;\n var win = _b.win;\n var insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = function (rule, index) {\n var id = mirror.getId(this.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n adds: [{ rule: rule, index: index }],\n });\n }\n return insertRule.apply(this, arguments);\n };\n var deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = function (index) {\n var id = mirror.getId(this.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n removes: [{ index: index }],\n });\n }\n return deleteRule.apply(this, arguments);\n };\n var supportedNestedCSSRuleTypes = {};\n if (isCSSGroupingRuleSupported) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n }\n else {\n if (isCSSMediaRuleSupported) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (isCSSConditionRuleSupported) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (isCSSSupportsRuleSupported) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n var unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(function (_a) {\n var _b = __read(_a, 2), typeKey = _b[0], type = _b[1];\n unmodifiedFunctions[typeKey] = {\n insertRule: type.prototype.insertRule,\n deleteRule: type.prototype.deleteRule,\n };\n type.prototype.insertRule = function (rule, index) {\n var id = mirror.getId(this.parentStyleSheet.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n adds: [\n {\n rule: rule,\n index: __spreadArray(__spreadArray([], __read(getNestedCSSRulePositions(this)), false), [\n index || 0,\n ], false),\n },\n ],\n });\n }\n return unmodifiedFunctions[typeKey].insertRule.apply(this, arguments);\n };\n type.prototype.deleteRule = function (index) {\n var id = mirror.getId(this.parentStyleSheet.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n removes: [{ index: __spreadArray(__spreadArray([], __read(getNestedCSSRulePositions(this)), false), [index], false) }],\n });\n }\n return unmodifiedFunctions[typeKey].deleteRule.apply(this, arguments);\n };\n });\n return function () {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n Object.entries(supportedNestedCSSRuleTypes).forEach(function (_a) {\n var _b = __read(_a, 2), typeKey = _b[0], type = _b[1];\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n };\n}\nfunction initStyleDeclarationObserver(_a, _b) {\n var styleDeclarationCb = _a.styleDeclarationCb, mirror = _a.mirror;\n var win = _b.win;\n var setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = function (property, value, priority) {\n var _a, _b;\n var id = mirror.getId((_b = (_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet) === null || _b === void 0 ? void 0 : _b.ownerNode);\n if (id !== -1) {\n styleDeclarationCb({\n id: id,\n set: {\n property: property,\n value: value,\n priority: priority,\n },\n index: getNestedCSSRulePositions(this.parentRule),\n });\n }\n return setProperty.apply(this, arguments);\n };\n var removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = function (property) {\n var _a, _b;\n var id = mirror.getId((_b = (_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet) === null || _b === void 0 ? void 0 : _b.ownerNode);\n if (id !== -1) {\n styleDeclarationCb({\n id: id,\n remove: {\n property: property,\n },\n index: getNestedCSSRulePositions(this.parentRule),\n });\n }\n return removeProperty.apply(this, arguments);\n };\n return function () {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n };\n}\nfunction initMediaInteractionObserver(_a) {\n var mediaInteractionCb = _a.mediaInteractionCb, blockClass = _a.blockClass, mirror = _a.mirror, sampling = _a.sampling;\n var handler = function (type) {\n return throttle(function (event) {\n var target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass)) {\n return;\n }\n var _a = target, currentTime = _a.currentTime, volume = _a.volume, muted = _a.muted;\n mediaInteractionCb({\n type: type,\n id: mirror.getId(target),\n currentTime: currentTime,\n volume: volume,\n muted: muted,\n });\n }, sampling.media || 500);\n };\n var handlers = [\n on('play', handler(0)),\n on('pause', handler(1)),\n on('seeked', handler(2)),\n on('volumechange', handler(3)),\n ];\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initFontObserver(_a) {\n var fontCb = _a.fontCb, doc = _a.doc;\n var win = doc.defaultView;\n if (!win) {\n return function () { };\n }\n var handlers = [];\n var fontMap = new WeakMap();\n var originalFontFace = win.FontFace;\n win.FontFace = function FontFace(family, source, descriptors) {\n var fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family: family,\n buffer: typeof source !== 'string',\n descriptors: descriptors,\n fontSource: typeof source === 'string'\n ? source\n :\n JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n };\n var restoreHandler = patch(doc.fonts, 'add', function (original) {\n return function (fontFace) {\n setTimeout(function () {\n var p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }, 0);\n return original.apply(this, [fontFace]);\n };\n });\n handlers.push(function () {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction mergeHooks(o, hooks) {\n var mutationCb = o.mutationCb, mousemoveCb = o.mousemoveCb, mouseInteractionCb = o.mouseInteractionCb, scrollCb = o.scrollCb, viewportResizeCb = o.viewportResizeCb, inputCb = o.inputCb, mediaInteractionCb = o.mediaInteractionCb, styleSheetRuleCb = o.styleSheetRuleCb, styleDeclarationCb = o.styleDeclarationCb, canvasMutationCb = o.canvasMutationCb, fontCb = o.fontCb;\n o.mutationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mutation) {\n hooks.mutation.apply(hooks, __spreadArray([], __read(p), false));\n }\n mutationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mousemoveCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mousemove) {\n hooks.mousemove.apply(hooks, __spreadArray([], __read(p), false));\n }\n mousemoveCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mouseInteractionCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction.apply(hooks, __spreadArray([], __read(p), false));\n }\n mouseInteractionCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.scrollCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.scroll) {\n hooks.scroll.apply(hooks, __spreadArray([], __read(p), false));\n }\n scrollCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.viewportResizeCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.viewportResize) {\n hooks.viewportResize.apply(hooks, __spreadArray([], __read(p), false));\n }\n viewportResizeCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.inputCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.input) {\n hooks.input.apply(hooks, __spreadArray([], __read(p), false));\n }\n inputCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mediaInteractionCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction.apply(hooks, __spreadArray([], __read(p), false));\n }\n mediaInteractionCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.styleSheetRuleCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule.apply(hooks, __spreadArray([], __read(p), false));\n }\n styleSheetRuleCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.styleDeclarationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration.apply(hooks, __spreadArray([], __read(p), false));\n }\n styleDeclarationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.canvasMutationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.canvasMutation) {\n hooks.canvasMutation.apply(hooks, __spreadArray([], __read(p), false));\n }\n canvasMutationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.fontCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.font) {\n hooks.font.apply(hooks, __spreadArray([], __read(p), false));\n }\n fontCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n}\nfunction initObservers(o, hooks) {\n var e_1, _a;\n if (hooks === void 0) { hooks = {}; }\n var currentWindow = o.doc.defaultView;\n if (!currentWindow) {\n return function () { };\n }\n mergeHooks(o, hooks);\n var mutationObserver = initMutationObserver(o, o.doc);\n var mousemoveHandler = initMoveObserver(o);\n var mouseInteractionHandler = initMouseInteractionObserver(o);\n var scrollHandler = initScrollObserver(o);\n var viewportResizeHandler = initViewportResizeObserver(o);\n var inputHandler = initInputObserver(o);\n var mediaInteractionHandler = initMediaInteractionObserver(o);\n var styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n var styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n var fontObserver = o.collectFonts ? initFontObserver(o) : function () { };\n var pluginHandlers = [];\n try {\n for (var _b = __values(o.plugins), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return function () {\n mutationBuffers.forEach(function (b) { return b.reset(); });\n mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n pluginHandlers.forEach(function (h) { return h(); });\n };\n}\n\nexport { INPUT_TAGS, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","var IframeManager = (function () {\n function IframeManager(options) {\n this.iframes = new WeakMap();\n this.mutationCb = options.mutationCb;\n }\n IframeManager.prototype.addIframe = function (iframeEl) {\n this.iframes.set(iframeEl, true);\n };\n IframeManager.prototype.addLoadListener = function (cb) {\n this.loadListener = cb;\n };\n IframeManager.prototype.attachIframe = function (iframeEl, childSn) {\n var _a;\n this.mutationCb({\n adds: [\n {\n parentId: iframeEl.__sn.id,\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\n };\n return IframeManager;\n}());\n\nexport { IframeManager };\n","import { __assign } from '../../ext/tslib/tslib.es6.js';\nimport { initMutationObserver, initScrollObserver } from './observer.js';\nimport { patch } from '../utils.js';\n\nvar ShadowDomManager = (function () {\n function ShadowDomManager(options) {\n this.restorePatches = [];\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n var manager = this;\n this.restorePatches.push(patch(HTMLElement.prototype, 'attachShadow', function (original) {\n return function () {\n var shadowRoot = original.apply(this, arguments);\n if (this.shadowRoot)\n manager.addShadowRoot(this.shadowRoot, this.ownerDocument);\n return shadowRoot;\n };\n }));\n }\n ShadowDomManager.prototype.addShadowRoot = function (shadowRoot, doc) {\n initMutationObserver(__assign(__assign({}, this.bypassOptions), { doc: doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\n initScrollObserver(__assign(__assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror }));\n };\n ShadowDomManager.prototype.observeAttachShadow = function (iframeElement) {\n if (iframeElement.contentWindow) {\n var manager_1 = this;\n this.restorePatches.push(patch(iframeElement.contentWindow.HTMLElement.prototype, 'attachShadow', function (original) {\n return function () {\n var shadowRoot = original.apply(this, arguments);\n if (this.shadowRoot)\n manager_1.addShadowRoot(this.shadowRoot, iframeElement.contentDocument);\n return shadowRoot;\n };\n }));\n }\n };\n ShadowDomManager.prototype.reset = function () {\n this.restorePatches.forEach(function (restorePatch) { return restorePatch(); });\n };\n return ShadowDomManager;\n}());\n\nexport { ShadowDomManager };\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 { __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { encode } from '../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nvar webGLVarMap = new Map();\nfunction variableListFor(ctx, ctor) {\n var contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nvar saveWebGLVar = function (value, win, ctx) {\n if (!value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\n return;\n var name = value.constructor.name;\n var list = variableListFor(ctx, name);\n var index = list.indexOf(value);\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map(function (arg) { return serializeArg(arg, win, ctx); });\n }\n else if (value === null) {\n return value;\n }\n else if (value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray) {\n var name_1 = value.constructor.name;\n return {\n rr_type: name_1,\n args: [Object.values(value)],\n };\n }\n else if (value instanceof ArrayBuffer) {\n var name_2 = value.constructor.name;\n var base64 = encode(value);\n return {\n rr_type: name_2,\n base64: base64,\n };\n }\n else if (value instanceof DataView) {\n var name_3 = value.constructor.name;\n return {\n rr_type: name_3,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength,\n ],\n };\n }\n else if (value instanceof HTMLImageElement) {\n var name_4 = value.constructor.name;\n var src = value.src;\n return {\n rr_type: name_4,\n src: src,\n };\n }\n else if (value instanceof ImageData) {\n var name_5 = value.constructor.name;\n return {\n rr_type: name_5,\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\n };\n }\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n var name_6 = value.constructor.name;\n var index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name_6,\n index: index,\n };\n }\n return value;\n}\nvar serializeArgs = function (args, win, ctx) {\n return __spreadArray([], __read(args), false).map(function (arg) { return serializeArg(arg, win, ctx); });\n};\nvar isInstanceOfWebGLObject = function (value, win) {\n var webGLConstructorNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n 'WebGLVertexArrayObjectOES',\n ];\n var supportedWebGLConstructorNames = webGLConstructorNames.filter(function (name) { return typeof win[name] === 'function'; });\n return Boolean(supportedWebGLConstructorNames.find(function (name) { return value instanceof win[name]; }));\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { __spreadArray, __read, __values } from '../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, mirror, win) {\n var e_1, _a;\n var handlers = [];\n var props = Object.getOwnPropertyNames(prototype);\n var _loop_1 = function (prop) {\n try {\n if (typeof prototype[prop] !== 'function') {\n return \"continue\";\n }\n var restoreHandler = patch(prototype, prop, function (original) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n saveWebGLVar(result, win, prototype);\n if (!isBlocked(this.canvas, blockClass)) {\n var id = mirror.getId(this.canvas);\n var recordArgs = serializeArgs(__spreadArray([], __read(args), false), win, prototype);\n var mutation = {\n type: type,\n property: prop,\n args: recordArgs,\n };\n cb(this.canvas, mutation);\n }\n return result;\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_b) {\n var hookHandler = hookSetter(prototype, prop, {\n set: function (v) {\n cb(this.canvas, {\n type: type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n };\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, mirror) {\n var handlers = [];\n handlers.push.apply(handlers, __spreadArray([], __read(patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, mirror, win)), false));\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push.apply(handlers, __spreadArray([], __read(patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, mirror, win)), false));\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvasWebGLMutationObserver;\n","import { __rest } from '../../../../ext/tslib/tslib.es6.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\n\nvar CanvasManager = (function () {\n function CanvasManager(options) {\n this.pendingCanvasMutations = new Map();\n this.rafStamps = { latestId: 0, invokeId: null };\n this.frozen = false;\n this.locked = false;\n this.processMutation = function (target, mutation) {\n var newFrame = this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n };\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (options.recordCanvas === true)\n this.initCanvasMutationObserver(options.win, options.blockClass);\n }\n CanvasManager.prototype.reset = function () {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n };\n CanvasManager.prototype.freeze = function () {\n this.frozen = true;\n };\n CanvasManager.prototype.unfreeze = function () {\n this.frozen = false;\n };\n CanvasManager.prototype.lock = function () {\n this.locked = true;\n };\n CanvasManager.prototype.unlock = function () {\n this.locked = false;\n };\n CanvasManager.prototype.initCanvasMutationObserver = function (win, blockClass) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n var canvasContextReset = initCanvasContextObserver(win, blockClass);\n var canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, this.mirror);\n var canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, this.mirror);\n this.resetObservers = function () {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n };\n CanvasManager.prototype.startPendingCanvasMutationFlusher = function () {\n var _this = this;\n requestAnimationFrame(function () { return _this.flushPendingCanvasMutations(); });\n };\n CanvasManager.prototype.startRAFTimestamping = function () {\n var _this = this;\n var setLatestRAFTimestamp = function (timestamp) {\n _this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n CanvasManager.prototype.flushPendingCanvasMutations = function () {\n var _this = this;\n this.pendingCanvasMutations.forEach(function (values, canvas) {\n var id = _this.mirror.getId(canvas);\n _this.flushPendingCanvasMutationFor(canvas, id);\n });\n requestAnimationFrame(function () { return _this.flushPendingCanvasMutations(); });\n };\n CanvasManager.prototype.flushPendingCanvasMutationFor = function (canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n var valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1)\n return;\n var values = valuesWithType.map(function (value) {\n value.type; var rest = __rest(value, [\"type\"]);\n return rest;\n });\n var type = valuesWithType[0].type;\n this.mutationCb({ id: id, type: type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n };\n return CanvasManager;\n}());\n\nexport { CanvasManager };\n","import { __assign, __read, __values } from '../../ext/tslib/tslib.es6.js';\nimport { snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, createMirror, getWindowWidth, getWindowHeight, isIframeINode, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\n\nfunction wrapEvent(e) {\n return __assign(__assign({}, e), { timestamp: Date.now() });\n}\nvar wrappedEmit;\nvar takeFullSnapshot;\nvar mirror = createMirror();\nfunction record(options) {\n if (options === void 0) { options = {}; }\n var emit = options.emit, checkoutEveryNms = options.checkoutEveryNms, checkoutEveryNth = options.checkoutEveryNth, _a = options.blockClass, blockClass = _a === void 0 ? 'rr-block' : _a, _b = options.blockSelector, blockSelector = _b === void 0 ? null : _b, _c = options.ignoreClass, ignoreClass = _c === void 0 ? 'rr-ignore' : _c, _d = options.maskTextClass, maskTextClass = _d === void 0 ? 'rr-mask' : _d, _e = options.maskTextSelector, maskTextSelector = _e === void 0 ? null : _e, _f = options.inlineStylesheet, inlineStylesheet = _f === void 0 ? true : _f, maskAllInputs = options.maskAllInputs, _maskInputOptions = options.maskInputOptions, _slimDOMOptions = options.slimDOMOptions, maskInputFn = options.maskInputFn, maskTextFn = options.maskTextFn, hooks = options.hooks, packFn = options.packFn, _g = options.sampling, sampling = _g === void 0 ? {} : _g, mousemoveWait = options.mousemoveWait, _h = options.recordCanvas, recordCanvas = _h === void 0 ? false : _h, _j = options.userTriggeredOnInput, userTriggeredOnInput = _j === void 0 ? false : _j, _k = options.collectFonts, collectFonts = _k === void 0 ? false : _k, _l = options.inlineImages, inlineImages = _l === void 0 ? false : _l, plugins = options.plugins, _m = options.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\n if (!emit) {\n throw new Error('emit function is required');\n }\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n var maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : { password: true };\n var slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n polyfill();\n var lastFullSnapshotEvent;\n var incrementalSnapshotCount = 0;\n var eventProcessor = function (e) {\n var e_1, _a;\n try {\n for (var _b = __values(plugins || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (packFn) {\n e = packFn(e);\n }\n return e;\n };\n wrappedEmit = function (e, isCheckout) {\n var _a;\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\n e.type !== EventType.FullSnapshot &&\n !(e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach(function (buf) { return buf.unfreeze(); });\n }\n emit(eventProcessor(e), isCheckout);\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n }\n else if (e.type === EventType.IncrementalSnapshot) {\n if (e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n var exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n var exceedTime = checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n var wrappedMutationEmit = function (m) {\n wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Mutation }, m),\n }));\n };\n var wrappedScrollEmit = function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Scroll }, p),\n }));\n };\n var wrappedCanvasMutationEmit = function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.CanvasMutation }, p),\n }));\n };\n var iframeManager = new IframeManager({\n mutationCb: wrappedMutationEmit,\n });\n var canvasManager = new CanvasManager({\n recordCanvas: recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass: blockClass,\n mirror: mirror,\n });\n var shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n sampling: sampling,\n slimDOMOptions: slimDOMOptions,\n iframeManager: iframeManager,\n canvasManager: canvasManager,\n },\n mirror: mirror,\n });\n takeFullSnapshot = function (isCheckout) {\n var _a, _b, _c, _d;\n if (isCheckout === void 0) { isCheckout = false; }\n wrappedEmit(wrapEvent({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n }), isCheckout);\n mutationBuffers.forEach(function (buf) { return buf.lock(); });\n var _e = __read(snapshot(document, {\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn: maskTextFn,\n slimDOM: slimDOMOptions,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n onSerialize: function (n) {\n if (isIframeINode(n)) {\n iframeManager.addIframe(n);\n }\n if (hasShadowRoot(n)) {\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: function (iframe, childSn) {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n keepIframeSrcFn: keepIframeSrcFn,\n }), 2), node = _e[0], idNodeMap = _e[1];\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n mirror.map = idNodeMap;\n wrappedEmit(wrapEvent({\n type: EventType.FullSnapshot,\n data: {\n node: node,\n initialOffset: {\n left: window.pageXOffset !== undefined\n ? window.pageXOffset\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollLeft) ||\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) ||\n (document === null || document === void 0 ? void 0 : document.body.scrollLeft) ||\n 0,\n top: window.pageYOffset !== undefined\n ? window.pageYOffset\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollTop) ||\n ((_d = (_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.scrollTop) ||\n (document === null || document === void 0 ? void 0 : document.body.scrollTop) ||\n 0,\n },\n },\n }));\n mutationBuffers.forEach(function (buf) { return buf.unlock(); });\n };\n try {\n var handlers_1 = [];\n handlers_1.push(on('DOMContentLoaded', function () {\n wrappedEmit(wrapEvent({\n type: EventType.DomContentLoaded,\n data: {},\n }));\n }));\n var observe_1 = function (doc) {\n var _a;\n return initObservers({\n mutationCb: wrappedMutationEmit,\n mousemoveCb: function (positions, source) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: source,\n positions: positions,\n },\n }));\n },\n mouseInteractionCb: function (d) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.MouseInteraction }, d),\n }));\n },\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: function (d) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.ViewportResize }, d),\n }));\n },\n inputCb: function (v) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Input }, v),\n }));\n },\n mediaInteractionCb: function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.MediaInteraction }, p),\n }));\n },\n styleSheetRuleCb: function (r) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.StyleSheetRule }, r),\n }));\n },\n styleDeclarationCb: function (r) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.StyleDeclaration }, r),\n }));\n },\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Font }, p),\n }));\n },\n blockClass: blockClass,\n ignoreClass: ignoreClass,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n maskInputOptions: maskInputOptions,\n inlineStylesheet: inlineStylesheet,\n sampling: sampling,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n userTriggeredOnInput: userTriggeredOnInput,\n collectFonts: collectFonts,\n doc: doc,\n maskInputFn: maskInputFn,\n maskTextFn: maskTextFn,\n blockSelector: blockSelector,\n slimDOMOptions: slimDOMOptions,\n mirror: mirror,\n iframeManager: iframeManager,\n shadowDomManager: shadowDomManager,\n canvasManager: canvasManager,\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter(function (p) { return p.observer; })) === null || _a === void 0 ? void 0 : _a.map(function (p) { return ({\n observer: p.observer,\n options: p.options,\n callback: function (payload) {\n return wrappedEmit(wrapEvent({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload: payload,\n },\n }));\n },\n }); })) || [],\n }, hooks);\n };\n iframeManager.addLoadListener(function (iframeEl) {\n handlers_1.push(observe_1(iframeEl.contentDocument));\n });\n var init_1 = function () {\n takeFullSnapshot();\n handlers_1.push(observe_1(document));\n };\n if (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n init_1();\n }\n else {\n handlers_1.push(on('load', function () {\n wrappedEmit(wrapEvent({\n type: EventType.Load,\n data: {},\n }));\n init_1();\n }, window));\n }\n return function () {\n handlers_1.forEach(function (h) { return h(); });\n };\n }\n catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = function (tag, payload) {\n if (!wrappedEmit) {\n throw new Error('please add custom event after start recording');\n }\n wrappedEmit(wrapEvent({\n type: EventType.Custom,\n data: {\n tag: tag,\n payload: payload,\n },\n }));\n};\nrecord.freezePage = function () {\n mutationBuffers.forEach(function (buf) { return buf.freeze(); });\n};\nrecord.takeFullSnapshot = function (isCheckout) {\n if (!takeFullSnapshot) {\n throw new Error('please take full snapshot after start recording');\n }\n takeFullSnapshot(isCheckout);\n};\nrecord.mirror = mirror;\n\nexport default record;\n","import { __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { patch, isBlocked } from '../../../utils.js';\n\nfunction initCanvasContextObserver(win, blockClass) {\n var handlers = [];\n try {\n var restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\n return function (contextType) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!isBlocked(this, blockClass)) {\n if (!('__context' in this))\n this.__context = contextType;\n }\n return original.apply(this, __spreadArray([contextType], __read(args), false));\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_a) {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvasContextObserver;\n","import { __values, __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, mirror) {\n var e_1, _a;\n var handlers = [];\n var props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n var _loop_1 = function (prop) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\n return \"continue\";\n }\n var restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!isBlocked(this.canvas, blockClass)) {\n setTimeout(function () {\n var recordArgs = __spreadArray([], __read(args), false);\n if (prop === 'drawImage') {\n if (recordArgs[0] &&\n recordArgs[0] instanceof HTMLCanvasElement) {\n var canvas = recordArgs[0];\n var ctx = canvas.getContext('2d');\n var imgd = ctx === null || ctx === void 0 ? void 0 : ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pix = imgd === null || imgd === void 0 ? void 0 : imgd.data;\n recordArgs[0] = JSON.stringify(pix);\n }\n }\n cb(_this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_b) {\n var hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set: function (v) {\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n };\n try {\n for (var props2D_1 = __values(props2D), props2D_1_1 = props2D_1.next(); !props2D_1_1.done; props2D_1_1 = props2D_1.next()) {\n var prop = props2D_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props2D_1_1 && !props2D_1_1.done && (_a = props2D_1.return)) _a.call(props2D_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvas2DMutationObserver;\n","// Same as loader-globals.ts except includes rrweb scripts.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport rrwebRecord from 'rrweb/es/rrweb/packages/rrweb/src/record'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport 'rrweb/es/rrweb/packages/rrweb/src/plugins/console/record'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n\nconst win: Window & typeof globalThis = typeof window !== 'undefined' ? window : ({} as typeof window)\n\n;(win as any).rrweb = { record: rrwebRecord }\n\nexport default rrwebRecord\n"],"names":["NodeType","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","r","e","ar","push","error","__spreadArray","to","from","pack","l","Array","slice","concat","isShadowRoot","_a","host","Boolean","shadowRoot","maskInputValue","maskInputOptions","tagName","type","maskInputFn","text","toLowerCase","repeat","ORIGINAL_ATTRIBUTE_NAME","canvasService","canvasCtx","_id","tagNameRegex","RegExp","getCssRulesString","rules","cssRules","map","getCssRuleString","join","rule","cssStringified","cssText","isCSSImportRule","styleSheet","URL_IN_CSS_REF","RELATIVE_PATH","DATA_URI","absoluteToStylesheet","href","replace","origin","quote1","path1","quote2","path2","path3","url","filePath","maybeQuote","test","indexOf","split","stack","parts","pop","_i","parts_1","part","EventType","IncrementalSource","MouseInteractions","CanvasContext","MediaInteractions","ReplayerEvents","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","doc","attributeValue","trim","a","createElement","getHref","document","transformAttribute","name","pos","collectCharacters","regEx","chars","match","exec","substring","output","descriptorsStr","inParens","c","charAt","getAbsoluteSrcsetString","needMaskingText","node","maskTextClass","maskTextSelector","nodeType","ELEMENT_NODE","classList","contains","eIndex","className","matches","parentNode","TEXT_NODE","serializeNode","options","rootId","sheet","el","blockClass","blockSelector","inlineStylesheet","_b","maskTextFn","_c","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","__sn","docId","id","undefined","DOCUMENT_NODE","compatMode","Document","childNodes","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","element","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","attributes_1","_d","attributes","_e","name_1","stylesheet","styleSheets","find","rel","_cssText","innerText","textContent","checked","selected","__context","canvas","ctx","getContext","x","width","y","height","getImageData","originalGetImageData","Uint32Array","Math","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image_1","oldValue_1","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","err","console","warn","currentSrc","complete","onload","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","_f","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","Element","isSVG","ownerSVGElement","parentTagName","isStyle","isScript","nextSibling","previousSibling","Text","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","_g","iframeLoadTimeout","_h","_j","preserveWhiteSpace","_serializedNode","sn","comment","script","as","endsWith","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","_k","serializedChildNode","isElement","_l","_m","isShadow","iframeEl","listener","win","contentWindow","readyState","fired","blankUrl","location","addEventListener","setTimeout","timer_1","clearTimeout","onceIframeLoaded","iframeDoc","serializedIframeNode","on","fn","target","capture","passive","removeEventListener","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","getId","getNode","removeNodeFromMap","has","reset","throttle","func","wait","timeout","previous","arg","now","Date","leading","remaining","context","args","trailing","hookSetter","key","d","isRevoked","window","original","getOwnPropertyDescriptor","defineProperty","set","_this","patch","source","replacement","original_1","wrapped","defineProperties","__rrweb_original__","enumerable","getWindowHeight","innerHeight","documentElement","clientHeight","body","getWindowWidth","innerWidth","clientWidth","isBlocked","needBlock_1","closest","forEach","isIgnored","isAncestorRemoved","mirror","isTouchEvent","event","changedTouches","isIframeINode","hasShadowRoot","isNodeInLinkedList","Proxy","Reflect","get","prop","receiver","DoubleLinkedList","head","position","Error","current","index","addNode","__ln","removeNode","moveKey","parentId","isINode","deepDelete","addsSet","childN","isParentRemoved","removes","isAncestorInSet","MutationBuffer$1","MutationBuffer","frozen","locked","texts","mapRemoves","movedMap","addedSet","Set","movedSet","droppedSet","processMutations","mutations","processMutation","emit","e_1","e_2","adds","addList","getNextId","ns","nextId","pushAdd","shadowHost","getRootNode","rootShadowHost","notInDoc","currentN","iframeManager","addIframe","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","shift","e_1_1","add","e_2_1","candidate","_node","payload","filter","attribute","mutationCb","e_3","e_4","oldValue","getAttribute","attributeName","item","old","setAttribute","style","styleObj","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","e_3_1","e_4_1","addedNodes","genAdds","removedNodes","nodeId","targetId","init","freeze","canvasManager","unfreeze","isFrozen","lock","unlock","mutationBuffers","isCSSGroupingRuleSupported","CSSGroupingRule","isCSSMediaRuleSupported","CSSMediaRule","isCSSSupportsRuleSupported","CSSSupportsRule","isCSSConditionRuleSupported","CSSConditionRule","getEventTarget","path","composedPath","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","MutationObserver","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","observer","bind","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","keys","Number","isNaN","eventKey","eventName","handler","clientX","clientY","getHandler","h","initScrollObserver","scrollCb","evt","scrollEl","scrollingElement","scroll","wrapEventWithUserTriggeredFlag","v","enable","userTriggered","INPUT_TAGS","lastInputValueMap","WeakMap","getNestedCSSRulePositions","childRule","parentRule","unshift","parentStyleSheet","recurse","initObservers","hooks","currentWindow","defaultView","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","mutation","mousemove","viewportResize","input","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","mergeHooks","mutationObserver","mousemoveHandler","timeBaseline","threshold","callbackThreshold","mousemoveCallback","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","userTriggeredOnInput","eventHandler","isTrusted","parentElement","isChecked","cbWithDedup","querySelectorAll","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","volume","muted","media","initMediaInteractionObserver","styleSheetObserver","insertRule","CSSStyleSheet","ownerNode","deleteRule","supportedNestedCSSRuleTypes","unmodifiedFunctions","entries","typeKey","initStyleSheetObserver","styleDeclarationObserver","setProperty","CSSStyleDeclaration","priority","removeProperty","remove","initStyleDeclarationObserver","fontObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","JSON","stringify","Uint8Array","restoreHandler","fonts","initFontObserver","pluginHandlers","plugins","plugin","callback","b","disconnect","IframeManager","iframes","addLoadListener","cb","loadListener","isAttachIframe","ShadowDomManager","restorePatches","manager","HTMLElement","ownerDocument","iframeElement","manager_1","restorePatch","lookup","charCodeAt","webGLVarMap","Map","saveWebGLVar","isInstanceOfWebGLObject","_typeof","list","ctor","contextMap","variableListFor","constructor","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","values","ArrayBuffer","name_2","base64","arraybuffer","bytes","len","encode","DataView","byteOffset","byteLength","HTMLImageElement","ImageData","serializeArgs","supportedWebGLConstructorNames","patchGLPrototype","props","getOwnPropertyNames","_loop_1","result","recordArgs","hookHandler","setter","props_1","props_1_1","wrappedEmit","takeFullSnapshot","CanvasManager","pendingCanvasMutations","rafStamps","latestId","invokeId","initCanvasMutationObserver","clear","resetObservers","startRAFTimestamping","startPendingCanvasMutationFlusher","canvasContextReset","HTMLCanvasElement","contextType","initCanvasContextObserver","canvas2DReset","props2D","CanvasRenderingContext2D","imgd","pix","props2D_1","props2D_1_1","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","requestAnimationFrame","flushPendingCanvasMutations","setLatestRAFTimestamp","timestamp","flushPendingCanvasMutationFor","valuesWithType","rest","getOwnPropertySymbols","propertyIsEnumerable","__rest","commands","wrapEvent","child","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","lastFullSnapshotEvent","color","date","email","month","number","range","search","tel","time","week","textarea","select","password","NodeList","DOMTokenList","Node","polyfill","incrementalSnapshotCount","isCheckout","FullSnapshot","IncrementalSnapshot","Mutation","buf","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","Scroll","wrappedCanvasMutationEmit","CanvasMutation","Meta","slimDOM","idNodeMap","snapshot","initialOffset","left","pageXOffset","top","pageYOffset","handlers_1","DomContentLoaded","observe_1","MouseInteraction","ViewportResize","Input","MediaInteraction","StyleSheetRule","StyleDeclaration","Font","Plugin","init_1","Load","addCustomEvent","tag","Custom","freezePage","rrweb","rrwebRecord"],"mappings":"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"}
1
+ {"version":3,"file":"recorder.js","sources":["../node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/rrweb/es/rrweb/packages/rrweb/ext/tslib/tslib.es6.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/types.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.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/iframe-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.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/webgl.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.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/2d.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","../src/loader-recorder.ts"],"sourcesContent":["var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n var _a;\n var host = (_a = n) === null || _a === void 0 ? void 0 : _a.host;\n return Boolean(host && host.shadowRoot && host.shadowRoot === n);\n}\nfunction maskInputValue(_a) {\n var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\n var text = value || '';\n if (maskInputOptions[tagName.toLowerCase()] ||\n maskInputOptions[type]) {\n if (maskInputFn) {\n text = maskInputFn(text);\n }\n else {\n text = '*'.repeat(text.length);\n }\n }\n return text;\n}\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n var ctx = canvas.getContext('2d');\n if (!ctx)\n return true;\n var chunkSize = 50;\n for (var x = 0; x < canvas.width; x += chunkSize) {\n for (var y = 0; y < canvas.height; y += chunkSize) {\n var getImageData = ctx.getImageData;\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some(function (pixel) { return pixel !== 0; }))\n return false;\n }\n }\n return true;\n}\n\nvar _id = 1;\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\nvar IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n var processedTagName = element.tagName.toLowerCase().trim();\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction getCssRulesString(s) {\n try {\n var rules = s.rules || s.cssRules;\n return rules ? Array.from(rules).map(getCssRuleString).join('') : null;\n }\n catch (error) {\n return null;\n }\n}\nfunction getCssRuleString(rule) {\n var cssStringified = rule.cssText;\n if (isCSSImportRule(rule)) {\n try {\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\n }\n catch (_a) {\n }\n }\n return cssStringified;\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction stringifyStyleSheet(sheet) {\n return sheet.cssRules\n ? Array.from(sheet.cssRules)\n .map(function (rule) { return rule.cssText || ''; })\n .join('')\n : '';\n}\nfunction extractOrigin(url) {\n var origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n }\n else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nvar canvasService;\nvar canvasCtx;\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\n var filePath = path1 || path2 || path3;\n var maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (!RELATIVE_PATH.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (DATA_URI.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (filePath[0] === '/') {\n return \"url(\" + maybeQuote + (extractOrigin(href) + filePath) + maybeQuote + \")\";\n }\n var stack = href.split('/');\n var parts = filePath.split('/');\n stack.pop();\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n if (part === '.') {\n continue;\n }\n else if (part === '..') {\n stack.pop();\n }\n else {\n stack.push(part);\n }\n }\n return \"url(\" + maybeQuote + stack.join('/') + maybeQuote + \")\";\n });\n}\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n var pos = 0;\n function collectCharacters(regEx) {\n var chars;\n var match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n var output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n var url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n }\n else {\n var descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n var inParens = false;\n while (true) {\n var c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (c === '(') {\n inParens = true;\n }\n }\n else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n var a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n var a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (name === 'src' || (name === 'href' && value)) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'xlink:href' && value && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'background' &&\n value &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'srcset' && value) {\n return getAbsoluteSrcsetString(doc, value);\n }\n else if (name === 'style' && value) {\n return absoluteToStylesheet(value, getHref());\n }\n else if (tagName === 'object' && name === 'data' && value) {\n return absoluteToDoc(doc, value);\n }\n else {\n return value;\n }\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n }\n else {\n for (var eIndex = 0; eIndex < element.classList.length; eIndex++) {\n var className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n return false;\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n if (typeof maskTextClass === 'string') {\n if (node.classList.contains(maskTextClass)) {\n return true;\n }\n }\n else {\n for (var eIndex = 0; eIndex < node.classList.length; eIndex++) {\n var className = node.classList[eIndex];\n if (maskTextClass.test(className)) {\n return true;\n }\n }\n }\n if (maskTextSelector) {\n if (node.matches(maskTextSelector)) {\n return true;\n }\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n }\n return needMaskingText(node.parentNode, maskTextClass, maskTextSelector);\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n var win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n var fired = false;\n var readyState;\n try {\n readyState = win.document.readyState;\n }\n catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n var timer_1 = setTimeout(function () {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', function () {\n clearTimeout(timer_1);\n fired = true;\n listener();\n });\n return;\n }\n var blankUrl = 'about:blank';\n if (win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === '') {\n setTimeout(listener, 0);\n return;\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction serializeNode(n, options) {\n var _a;\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _b = options.maskInputOptions, maskInputOptions = _b === void 0 ? {} : _b, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _c = options.dataURLOptions, dataURLOptions = _c === void 0 ? {} : _c, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn;\n var rootId;\n if (doc.__sn) {\n var docId = doc.__sn.id;\n rootId = docId === 1 ? undefined : docId;\n }\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode,\n rootId: rootId\n };\n }\n else {\n return {\n type: NodeType.Document,\n childNodes: [],\n rootId: rootId\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId: rootId\n };\n case n.ELEMENT_NODE:\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\n var tagName = getValidTagName(n);\n var attributes_1 = {};\n for (var _i = 0, _d = Array.from(n.attributes); _i < _d.length; _i++) {\n var _e = _d[_i], name_1 = _e.name, value = _e.value;\n attributes_1[name_1] = transformAttribute(doc, tagName, name_1, value);\n }\n if (tagName === 'link' && inlineStylesheet) {\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\n return s.href === n.href;\n });\n var cssText = null;\n if (stylesheet) {\n cssText = getCssRulesString(stylesheet);\n }\n if (cssText) {\n delete attributes_1.rel;\n delete attributes_1.href;\n attributes_1._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' &&\n n.sheet &&\n !(n.innerText ||\n n.textContent ||\n '').trim().length) {\n var cssText = getCssRulesString(n.sheet);\n if (cssText) {\n attributes_1._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select') {\n var value = n.value;\n if (attributes_1.type !== 'radio' &&\n attributes_1.type !== 'checkbox' &&\n attributes_1.type !== 'submit' &&\n attributes_1.type !== 'button' &&\n value) {\n attributes_1.value = maskInputValue({\n type: attributes_1.type,\n tagName: tagName,\n value: value,\n maskInputOptions: maskInputOptions,\n maskInputFn: maskInputFn\n });\n }\n else if (n.checked) {\n attributes_1.checked = n.checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes_1.selected = true;\n }\n else {\n delete attributes_1.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes_1.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n }\n else if (!('__context' in n)) {\n var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n var blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes_1.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n var image_1 = n;\n var oldValue_1 = image_1.crossOrigin;\n image_1.crossOrigin = 'anonymous';\n var recordInlineImage = function () {\n try {\n canvasService.width = image_1.naturalWidth;\n canvasService.height = image_1.naturalHeight;\n canvasCtx.drawImage(image_1, 0, 0);\n attributes_1.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n catch (err) {\n console.warn(\"Cannot inline img src=\" + image_1.currentSrc + \"! Error: \" + err);\n }\n oldValue_1\n ? (attributes_1.crossOrigin = oldValue_1)\n : delete attributes_1.crossOrigin;\n };\n if (image_1.complete && image_1.naturalWidth !== 0)\n recordInlineImage();\n else\n image_1.onload = recordInlineImage;\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes_1.rr_mediaState = n.paused\n ? 'paused'\n : 'played';\n attributes_1.rr_mediaCurrentTime = n.currentTime;\n }\n if (n.scrollLeft) {\n attributes_1.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes_1.rr_scrollTop = n.scrollTop;\n }\n if (needBlock) {\n var _f = n.getBoundingClientRect(), width = _f.width, height = _f.height;\n attributes_1 = {\n \"class\": attributes_1[\"class\"],\n rr_width: width + \"px\",\n rr_height: height + \"px\"\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes_1.src)) {\n if (!n.contentDocument) {\n attributes_1.rr_src = attributes_1.src;\n }\n delete attributes_1.src;\n }\n return {\n type: NodeType.Element,\n tagName: tagName,\n attributes: attributes_1,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock: needBlock,\n rootId: rootId\n };\n case n.TEXT_NODE:\n var parentTagName = n.parentNode && n.parentNode.tagName;\n var textContent = n.textContent;\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {\n }\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\n textContent = stringifyStyleSheet(n.parentNode.sheet);\n }\n }\n catch (err) {\n console.warn(\"Cannot get CSS styles from text's parentNode. Error: \" + err, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n if (!isStyle &&\n !isScript &&\n needMaskingText(n, maskTextClass, maskTextSelector) &&\n textContent) {\n textContent = maskTextFn\n ? maskTextFn(textContent)\n : textContent.replace(/[\\S]/g, '*');\n }\n return {\n type: NodeType.Text,\n textContent: textContent || '',\n isStyle: isStyle,\n rootId: rootId\n };\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: '',\n rootId: rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: n.textContent || '',\n rootId: rootId\n };\n default:\n return false;\n }\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined) {\n return '';\n }\n else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n }\n else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script &&\n (sn.tagName === 'script' ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'preload' &&\n sn.attributes.as === 'script') ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n sn.attributes.href.endsWith('.js')))) {\n return true;\n }\n else if (slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\n return true;\n }\n else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n }\n else if (slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n }\n else if (slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n }\n else if (slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined) {\n return true;\n }\n else if (slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n }\n else if (slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n var doc = options.doc, map = options.map, 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, _h = options.keepIframeSrcFn, keepIframeSrcFn = _h === void 0 ? function () { return false; } : _h;\n var _j = options.preserveWhiteSpace, preserveWhiteSpace = _j === void 0 ? true : _j;\n var _serializedNode = serializeNode(n, {\n doc: doc,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n var id;\n if ('__sn' in n) {\n id = n.__sn.id;\n }\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType.Text &&\n !_serializedNode.isStyle &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\n id = IGNORED_NODE;\n }\n else {\n id = genId();\n }\n var serializedNode = Object.assign(_serializedNode, { id: id });\n n.__sn = serializedNode;\n if (id === IGNORED_NODE) {\n return null;\n }\n map[id] = n;\n if (onSerialize) {\n onSerialize(n);\n }\n var recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n if (n.shadowRoot)\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document ||\n serializedNode.type === NodeType.Element) &&\n recordChild) {\n if (slimDOMOptions.headWhitespace &&\n _serializedNode.type === NodeType.Element &&\n _serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n var bypassOptions = {\n doc: doc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: skipChild,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n };\n for (var _i = 0, _k = Array.from(n.childNodes); _i < _k.length; _i++) {\n var childN = _k[_i];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement(n) && n.shadowRoot) {\n for (var _l = 0, _m = Array.from(n.shadowRoot.childNodes); _l < _m.length; _l++) {\n var childN = _m[_l];\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedChildNode.isShadow = true;\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode && isShadowRoot(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, function () {\n var iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n map: map,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n var _a = options || {}, _b = _a.blockClass, blockClass = _b === void 0 ? 'rr-block' : _b, _c = _a.blockSelector, blockSelector = _c === void 0 ? null : _c, _d = _a.maskTextClass, maskTextClass = _d === void 0 ? 'rr-mask' : _d, _e = _a.maskTextSelector, maskTextSelector = _e === void 0 ? null : _e, _f = _a.inlineStylesheet, inlineStylesheet = _f === void 0 ? true : _f, _g = _a.inlineImages, inlineImages = _g === void 0 ? false : _g, _h = _a.recordCanvas, recordCanvas = _h === void 0 ? false : _h, _j = _a.maskAllInputs, maskAllInputs = _j === void 0 ? false : _j, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _k = _a.slimDOM, slimDOM = _k === void 0 ? false : _k, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, _l = _a.keepIframeSrcFn, keepIframeSrcFn = _l === void 0 ? function () { return false; } : _l;\n var idNodeMap = {};\n var maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n }\n : maskAllInputs === false\n ? {\n password: true\n }\n : maskAllInputs;\n var slimDOMOptions = slimDOM === true || slimDOM === 'all'\n ?\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n : slimDOM === false\n ? {}\n : slimDOM;\n return [\n serializeNodeWithId(n, {\n doc: n,\n map: idNodeMap,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n }),\n idNodeMap,\n ];\n}\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction parse(css, options) {\n if (options === void 0) { options = {}; }\n var lineno = 1;\n var column = 1;\n function updatePosition(str) {\n var lines = str.match(/\\n/g);\n if (lines) {\n lineno += lines.length;\n }\n var i = str.lastIndexOf('\\n');\n column = i === -1 ? column + str.length : str.length - i;\n }\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n var Position = (function () {\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n return Position;\n }());\n Position.prototype.content = css;\n var errorsList = [];\n function error(msg) {\n var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = css;\n if (options.silent) {\n errorsList.push(err);\n }\n else {\n throw err;\n }\n }\n function stylesheet() {\n var rulesList = rules();\n return {\n type: 'stylesheet',\n stylesheet: {\n source: options.source,\n rules: rulesList,\n parsingErrors: errorsList\n }\n };\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function rules() {\n var node;\n var rules = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node !== false) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n function match(re) {\n var m = re.exec(css);\n if (!m) {\n return;\n }\n var str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comments(rules) {\n if (rules === void 0) { rules = []; }\n var c;\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n c = comment();\n }\n return rules;\n }\n function comment() {\n var pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n var i = 2;\n while ('' !== css.charAt(i) &&\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\n ++i;\n }\n i += 2;\n if ('' === css.charAt(i - 1)) {\n return error('End of comment missing');\n }\n var str = css.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n css = css.slice(i);\n column += 2;\n return pos({\n type: 'comment',\n comment: str\n });\n }\n function selector() {\n var m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n return trim(m[0])\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\n return m.replace(/,/g, '\\u200C');\n })\n .split(/\\s*(?![^(]*\\)),\\s*/)\n .map(function (s) {\n return s.replace(/\\u200C/g, ',');\n });\n }\n function declaration() {\n var pos = position();\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n var prop = trim(propMatch[0]);\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\n var ret = pos({\n type: 'declaration',\n property: prop.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : ''\n });\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n var decls = [];\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n decl = declaration();\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n var m;\n var vals = [];\n var pos = position();\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (!vals.length) {\n return;\n }\n return pos({\n type: 'keyframe',\n values: vals,\n declarations: declarations()\n });\n }\n function atkeyframes() {\n var pos = position();\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error('@keyframes missing name');\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while ((frame = keyframe())) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return pos({\n type: 'keyframes',\n name: name,\n vendor: vendor,\n keyframes: frames\n });\n }\n function atsupports() {\n var pos = position();\n var m = match(/^@supports *([^{]+)/);\n if (!m) {\n return;\n }\n var supports = trim(m[1]);\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n return pos({\n type: 'supports',\n supports: supports,\n rules: style\n });\n }\n function athost() {\n var pos = position();\n var m = match(/^@host\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n return pos({\n type: 'host',\n rules: style\n });\n }\n function atmedia() {\n var pos = position();\n var m = match(/^@media *([^{]+)/);\n if (!m) {\n return;\n }\n var media = trim(m[1]);\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n return pos({\n type: 'media',\n media: media,\n rules: style\n });\n }\n function atcustommedia() {\n var pos = position();\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (!m) {\n return;\n }\n return pos({\n type: 'custom-media',\n name: trim(m[1]),\n media: trim(m[2])\n });\n }\n function atpage() {\n var pos = position();\n var m = match(/^@page */);\n if (!m) {\n return;\n }\n var sel = selector() || [];\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n var decls = comments();\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n return pos({\n type: 'page',\n selectors: sel,\n declarations: decls\n });\n }\n function atdocument() {\n var pos = position();\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n var vendor = trim(m[1]);\n var doc = trim(m[2]);\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n var style = comments().concat(rules());\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n return pos({\n type: 'document',\n document: doc,\n vendor: vendor,\n rules: style\n });\n }\n function atfontface() {\n var pos = position();\n var m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n var decls = comments();\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n return pos({\n type: 'font-face',\n declarations: decls\n });\n }\n var atimport = _compileAtrule('import');\n var atcharset = _compileAtrule('charset');\n var atnamespace = _compileAtrule('namespace');\n function _compileAtrule(name) {\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\n return function () {\n var pos = position();\n var m = match(re);\n if (!m) {\n return;\n }\n var ret = { type: name };\n ret[name] = m[1].trim();\n return pos(ret);\n };\n }\n function atrule() {\n if (css[0] !== '@') {\n return;\n }\n return (atkeyframes() ||\n atmedia() ||\n atcustommedia() ||\n atsupports() ||\n atimport() ||\n atcharset() ||\n atnamespace() ||\n atdocument() ||\n atpage() ||\n athost() ||\n atfontface());\n }\n function rule() {\n var pos = position();\n var sel = selector();\n if (!sel) {\n return error('selector missing');\n }\n comments();\n return pos({\n type: 'rule',\n selectors: sel,\n declarations: declarations()\n });\n }\n return addParent(stylesheet());\n}\nfunction trim(str) {\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\n}\nfunction addParent(obj, parent) {\n var isNode = obj && typeof obj.type === 'string';\n var childParent = isNode ? obj : parent;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var k = _a[_i];\n var value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(function (v) {\n addParent(v, childParent);\n });\n }\n else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null\n });\n }\n return obj;\n}\n\nvar tagMap = {\n script: 'noscript',\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n fedropshadow: 'feDropShadow',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient'\n};\nfunction getTagName(n) {\n var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === 'link' && n.attributes._cssText) {\n tagName = 'style';\n }\n return tagName;\n}\nfunction escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\nfunction addHoverClass(cssText, cache) {\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle)\n return cachedStyle;\n var ast = parse(cssText, {\n silent: true\n });\n if (!ast.stylesheet) {\n return cssText;\n }\n var selectors = [];\n ast.stylesheet.rules.forEach(function (rule) {\n if ('selectors' in rule) {\n (rule.selectors || []).forEach(function (selector) {\n if (HOVER_SELECTOR.test(selector)) {\n selectors.push(selector);\n }\n });\n }\n });\n if (selectors.length === 0) {\n return cssText;\n }\n var selectorMatcher = new RegExp(selectors\n .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\n .sort(function (a, b) { return b.length - a.length; })\n .map(function (selector) {\n return escapeRegExp(selector);\n })\n .join('|'), 'g');\n var result = cssText.replace(selectorMatcher, function (selector) {\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\n return selector + \", \" + newSelector;\n });\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\n return result;\n}\nfunction createCache() {\n var stylesWithHoverClass = new Map();\n return {\n stylesWithHoverClass: stylesWithHoverClass\n };\n}\nfunction buildNode(n, options) {\n var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, '', null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\n case NodeType.Element:\n var tagName = getTagName(n);\n var node_1;\n if (n.isSVG) {\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\n }\n else {\n node_1 = doc.createElement(tagName);\n }\n var _loop_1 = function (name_1) {\n if (!n.attributes.hasOwnProperty(name_1)) {\n return \"continue\";\n }\n var value = n.attributes[name_1];\n if (tagName === 'option' && name_1 === 'selected' && value === false) {\n return \"continue\";\n }\n value =\n typeof value === 'boolean' || typeof value === 'number' ? '' : value;\n if (!name_1.startsWith('rr_')) {\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\n if (isRemoteOrDynamicCss && hackCss) {\n value = addHoverClass(value, cache);\n }\n if (isTextarea || isRemoteOrDynamicCss) {\n var child = doc.createTextNode(value);\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\n var c = _a[_i];\n if (c.nodeType === node_1.TEXT_NODE) {\n node_1.removeChild(c);\n }\n }\n node_1.appendChild(child);\n return \"continue\";\n }\n try {\n if (n.isSVG && name_1 === 'xlink:href') {\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value);\n }\n else if (name_1 === 'onload' ||\n name_1 === 'onclick' ||\n name_1.substring(0, 7) === 'onmouse') {\n node_1.setAttribute('_' + name_1, value);\n }\n else if (tagName === 'meta' &&\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\n name_1 === 'content') {\n node_1.setAttribute('csp-content', value);\n return \"continue\";\n }\n else if (tagName === 'link' &&\n n.attributes.rel === 'preload' &&\n n.attributes.as === 'script') {\n }\n else if (tagName === 'link' &&\n n.attributes.rel === 'prefetch' &&\n typeof n.attributes.href === 'string' &&\n n.attributes.href.endsWith('.js')) {\n }\n else if (tagName === 'img' &&\n n.attributes.srcset &&\n n.attributes.rr_dataURL) {\n node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\n }\n else {\n node_1.setAttribute(name_1, value);\n }\n }\n catch (error) {\n }\n }\n else {\n if (tagName === 'canvas' && name_1 === 'rr_dataURL') {\n var image_1 = document.createElement('img');\n image_1.src = value;\n image_1.onload = function () {\n var ctx = node_1.getContext('2d');\n if (ctx) {\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\n }\n };\n }\n else if (tagName === 'img' && name_1 === 'rr_dataURL') {\n var image = node_1;\n if (!image.currentSrc.startsWith('data:')) {\n image.setAttribute('rrweb-original-src', n.attributes.src);\n image.src = value;\n }\n }\n if (name_1 === 'rr_width') {\n node_1.style.width = value;\n }\n else if (name_1 === 'rr_height') {\n node_1.style.height = value;\n }\n else if (name_1 === 'rr_mediaCurrentTime') {\n node_1.currentTime = n.attributes\n .rr_mediaCurrentTime;\n }\n else if (name_1 === 'rr_mediaState') {\n switch (value) {\n case 'played':\n node_1\n .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\n break;\n case 'paused':\n node_1.pause();\n break;\n }\n }\n }\n };\n for (var name_1 in n.attributes) {\n _loop_1(name_1);\n }\n if (n.isShadowHost) {\n if (!node_1.shadowRoot) {\n node_1.attachShadow({ mode: 'open' });\n }\n else {\n while (node_1.shadowRoot.firstChild) {\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\n }\n }\n }\n return node_1;\n case NodeType.Text:\n return doc.createTextNode(n.isStyle && hackCss\n ? addHoverClass(n.textContent, cache)\n : n.textContent);\n case NodeType.CDATA:\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n var doc = options.doc, map = options.map, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\n var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: cache });\n if (!node) {\n return null;\n }\n if (n.rootId) {\n console.assert(map[n.rootId] === doc, 'Target document should has the same root id.');\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === 'BackCompat' &&\n n.childNodes &&\n n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element &&\n 'xmlns' in n.childNodes[0].attributes &&\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\n }\n else {\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\n }\n }\n node = doc;\n }\n node.__sn = n;\n map[n.id] = node;\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\n !skipChild) {\n for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\n var childN = _c[_i];\n var childNode = buildNodeWithSN(childN, {\n doc: doc,\n map: map,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n if (!childNode) {\n console.warn('Failed to rebuild', childN);\n continue;\n }\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\n node.shadowRoot.appendChild(childNode);\n }\n else {\n node.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode);\n }\n }\n }\n return node;\n}\nfunction visit(idNodeMap, onVisit) {\n function walk(node) {\n onVisit(node);\n }\n for (var key in idNodeMap) {\n if (idNodeMap[key]) {\n walk(idNodeMap[key]);\n }\n }\n}\nfunction handleScroll(node) {\n var n = node.__sn;\n if (n.type !== NodeType.Element) {\n return;\n }\n var el = node;\n for (var name_2 in n.attributes) {\n if (!(n.attributes.hasOwnProperty(name_2) && name_2.startsWith('rr_'))) {\n continue;\n }\n var value = n.attributes[name_2];\n if (name_2 === 'rr_scrollLeft') {\n el.scrollLeft = value;\n }\n if (name_2 === 'rr_scrollTop') {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache;\n var idNodeMap = {};\n var node = buildNodeWithSN(n, {\n doc: doc,\n map: idNodeMap,\n skipChild: false,\n hackCss: hackCss,\n afterAppend: afterAppend,\n cache: cache\n });\n visit(idNodeMap, function (visitedNode) {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode);\n });\n return [node, idNodeMap];\n}\n\nexport { IGNORED_NODE, NodeType, addHoverClass, buildNodeWithSN, createCache, is2DCanvasBlank, isElement, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };\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\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\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 __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nexport { __assign, __read, __rest, __spreadArray, __values };\n","var EventType;\n(function (EventType) {\n EventType[EventType[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType[EventType[\"Load\"] = 1] = \"Load\";\n EventType[EventType[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType[EventType[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType[EventType[\"Meta\"] = 4] = \"Meta\";\n EventType[EventType[\"Custom\"] = 5] = \"Custom\";\n EventType[EventType[\"Plugin\"] = 6] = \"Plugin\";\n})(EventType || (EventType = {}));\nvar IncrementalSource;\n(function (IncrementalSource) {\n IncrementalSource[IncrementalSource[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource[IncrementalSource[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource[IncrementalSource[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource[IncrementalSource[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource[IncrementalSource[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource[IncrementalSource[\"Input\"] = 5] = \"Input\";\n IncrementalSource[IncrementalSource[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource[IncrementalSource[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource[IncrementalSource[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource[IncrementalSource[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource[IncrementalSource[\"Font\"] = 10] = \"Font\";\n IncrementalSource[IncrementalSource[\"Log\"] = 11] = \"Log\";\n IncrementalSource[IncrementalSource[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource[IncrementalSource[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n})(IncrementalSource || (IncrementalSource = {}));\nvar MouseInteractions;\n(function (MouseInteractions) {\n MouseInteractions[MouseInteractions[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions[MouseInteractions[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions[MouseInteractions[\"Click\"] = 2] = \"Click\";\n MouseInteractions[MouseInteractions[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions[MouseInteractions[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions[MouseInteractions[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions[MouseInteractions[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions[MouseInteractions[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions[MouseInteractions[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions[MouseInteractions[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions[MouseInteractions[\"TouchCancel\"] = 10] = \"TouchCancel\";\n})(MouseInteractions || (MouseInteractions = {}));\nvar CanvasContext;\n(function (CanvasContext) {\n CanvasContext[CanvasContext[\"2D\"] = 0] = \"2D\";\n CanvasContext[CanvasContext[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext[CanvasContext[\"WebGL2\"] = 2] = \"WebGL2\";\n})(CanvasContext || (CanvasContext = {}));\nvar MediaInteractions;\n(function (MediaInteractions) {\n MediaInteractions[MediaInteractions[\"Play\"] = 0] = \"Play\";\n MediaInteractions[MediaInteractions[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions[MediaInteractions[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions[MediaInteractions[\"VolumeChange\"] = 3] = \"VolumeChange\";\n})(MediaInteractions || (MediaInteractions = {}));\nvar ReplayerEvents;\n(function (ReplayerEvents) {\n ReplayerEvents[\"Start\"] = \"start\";\n ReplayerEvents[\"Pause\"] = \"pause\";\n ReplayerEvents[\"Resume\"] = \"resume\";\n ReplayerEvents[\"Resize\"] = \"resize\";\n ReplayerEvents[\"Finish\"] = \"finish\";\n ReplayerEvents[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents[\"EventCast\"] = \"event-cast\";\n ReplayerEvents[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents[\"Flush\"] = \"flush\";\n ReplayerEvents[\"StateChange\"] = \"state-change\";\n ReplayerEvents[\"PlayBack\"] = \"play-back\";\n})(ReplayerEvents || (ReplayerEvents = {}));\n\nexport { CanvasContext, EventType, IncrementalSource, MediaInteractions, MouseInteractions, ReplayerEvents };\n","import { __values } from '../ext/tslib/tslib.es6.js';\nimport { IncrementalSource } from './types.js';\nimport { IGNORED_NODE, isShadowRoot, NodeType } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target) {\n if (target === void 0) { target = document; }\n var options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return function () { return target.removeEventListener(type, fn, options); };\n}\nfunction createMirror() {\n return {\n map: {},\n getId: function (n) {\n if (!n || !n.__sn) {\n return -1;\n }\n return n.__sn.id;\n },\n getNode: function (id) {\n return this.map[id] || null;\n },\n removeNodeFromMap: function (n) {\n var _this = this;\n var id = n.__sn && n.__sn.id;\n delete this.map[id];\n if (n.childNodes) {\n n.childNodes.forEach(function (child) {\n return _this.removeNodeFromMap(child);\n });\n }\n },\n has: function (id) {\n return this.map.hasOwnProperty(id);\n },\n reset: function () {\n this.map = {};\n },\n };\n}\nvar DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nvar _mirror = {\n map: {},\n getId: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset: function () {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get: function (target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction throttle(func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout = null;\n var previous = 0;\n return function (arg) {\n var now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n var context = this;\n var args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win) {\n if (win === void 0) { win = window; }\n var original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set: function (value) {\n var _this = this;\n setTimeout(function () {\n d.set.call(_this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return function () { return hookSetter(target, key, original || {}, true); };\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function () { };\n }\n var original_1 = source[name];\n var wrapped = replacement(original_1);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original_1,\n },\n });\n }\n source[name] = wrapped;\n return function () {\n source[name] = original_1;\n };\n }\n catch (_a) {\n return function () { };\n }\n}\nfunction getWindowHeight() {\n return (window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight));\n}\nfunction getWindowWidth() {\n return (window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth));\n}\nfunction isBlocked(node, blockClass) {\n if (!node) {\n return false;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n var needBlock_1 = false;\n if (typeof blockClass === 'string') {\n if (node.closest !== undefined) {\n return node.closest('.' + blockClass) !== null;\n }\n else {\n needBlock_1 = node.classList.contains(blockClass);\n }\n }\n else {\n node.classList.forEach(function (className) {\n if (blockClass.test(className)) {\n needBlock_1 = true;\n }\n });\n }\n return needBlock_1 || isBlocked(node.parentNode, blockClass);\n }\n if (node.nodeType === node.TEXT_NODE) {\n return isBlocked(node.parentNode, blockClass);\n }\n return isBlocked(node.parentNode, blockClass);\n}\nfunction isIgnored(n) {\n if ('__sn' in n) {\n return n.__sn.id === IGNORED_NODE;\n }\n return false;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n var id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode &&\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win) {\n if (win === void 0) { win = window; }\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype\n .forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = function contains(node) {\n if (!(0 in arguments)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while ((node = node && node.parentNode));\n return false;\n };\n }\n}\nvar TreeIndex = (function () {\n function TreeIndex() {\n this.reset();\n }\n TreeIndex.prototype.add = function (mutation) {\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = {\n id: mutation.node.id,\n mutation: mutation,\n children: [],\n texts: [],\n attributes: [],\n };\n if (!parentTreeNode) {\n this.tree[treeNode.id] = treeNode;\n }\n else {\n treeNode.parent = parentTreeNode;\n parentTreeNode.children[treeNode.id] = treeNode;\n }\n this.indexes.set(treeNode.id, treeNode);\n };\n TreeIndex.prototype.remove = function (mutation, mirror) {\n var _this = this;\n var parentTreeNode = this.indexes.get(mutation.parentId);\n var treeNode = this.indexes.get(mutation.id);\n var deepRemoveFromMirror = function (id) {\n _this.removeIdSet.add(id);\n var node = mirror.getNode(id);\n node === null || node === void 0 ? void 0 : node.childNodes.forEach(function (childNode) {\n if ('__sn' in childNode) {\n deepRemoveFromMirror(childNode.__sn.id);\n }\n });\n };\n var deepRemoveFromTreeIndex = function (node) {\n _this.removeIdSet.add(node.id);\n Object.values(node.children).forEach(function (n) { return deepRemoveFromTreeIndex(n); });\n var _treeNode = _this.indexes.get(node.id);\n if (_treeNode) {\n var _parentTreeNode = _treeNode.parent;\n if (_parentTreeNode) {\n delete _treeNode.parent;\n delete _parentTreeNode.children[_treeNode.id];\n _this.indexes.delete(mutation.id);\n }\n }\n };\n if (!treeNode) {\n this.removeNodeMutations.push(mutation);\n deepRemoveFromMirror(mutation.id);\n }\n else if (!parentTreeNode) {\n delete this.tree[treeNode.id];\n this.indexes.delete(treeNode.id);\n deepRemoveFromTreeIndex(treeNode);\n }\n else {\n delete treeNode.parent;\n delete parentTreeNode.children[treeNode.id];\n this.indexes.delete(mutation.id);\n deepRemoveFromTreeIndex(treeNode);\n }\n };\n TreeIndex.prototype.text = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.texts.push(mutation);\n }\n else {\n this.textMutations.push(mutation);\n }\n };\n TreeIndex.prototype.attribute = function (mutation) {\n var treeNode = this.indexes.get(mutation.id);\n if (treeNode) {\n treeNode.attributes.push(mutation);\n }\n else {\n this.attributeMutations.push(mutation);\n }\n };\n TreeIndex.prototype.scroll = function (d) {\n this.scrollMap.set(d.id, d);\n };\n TreeIndex.prototype.input = function (d) {\n this.inputMap.set(d.id, d);\n };\n TreeIndex.prototype.flush = function () {\n var e_1, _a, e_2, _b;\n var _this = this;\n var _c = this, tree = _c.tree, removeNodeMutations = _c.removeNodeMutations, textMutations = _c.textMutations, attributeMutations = _c.attributeMutations;\n var batchMutationData = {\n source: IncrementalSource.Mutation,\n removes: removeNodeMutations,\n texts: textMutations,\n attributes: attributeMutations,\n adds: [],\n };\n var walk = function (treeNode, removed) {\n if (removed) {\n _this.removeIdSet.add(treeNode.id);\n }\n batchMutationData.texts = batchMutationData.texts\n .concat(removed ? [] : treeNode.texts)\n .filter(function (m) { return !_this.removeIdSet.has(m.id); });\n batchMutationData.attributes = batchMutationData.attributes\n .concat(removed ? [] : treeNode.attributes)\n .filter(function (m) { return !_this.removeIdSet.has(m.id); });\n if (!_this.removeIdSet.has(treeNode.id) &&\n !_this.removeIdSet.has(treeNode.mutation.parentId) &&\n !removed) {\n batchMutationData.adds.push(treeNode.mutation);\n if (treeNode.children) {\n Object.values(treeNode.children).forEach(function (n) { return walk(n, false); });\n }\n }\n else {\n Object.values(treeNode.children).forEach(function (n) { return walk(n, true); });\n }\n };\n Object.values(tree).forEach(function (n) { return walk(n, false); });\n try {\n for (var _d = __values(this.scrollMap.keys()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var id = _e.value;\n if (this.removeIdSet.has(id)) {\n this.scrollMap.delete(id);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _f = __values(this.inputMap.keys()), _g = _f.next(); !_g.done; _g = _f.next()) {\n var id = _g.value;\n if (this.removeIdSet.has(id)) {\n this.inputMap.delete(id);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var scrollMap = new Map(this.scrollMap);\n var inputMap = new Map(this.inputMap);\n this.reset();\n return {\n mutationData: batchMutationData,\n scrollMap: scrollMap,\n inputMap: inputMap,\n };\n };\n TreeIndex.prototype.reset = function () {\n this.tree = [];\n this.indexes = new Map();\n this.removeNodeMutations = [];\n this.textMutations = [];\n this.attributeMutations = [];\n this.removeIdSet = new Set();\n this.scrollMap = new Map();\n this.inputMap = new Map();\n };\n TreeIndex.prototype.idRemoved = function (id) {\n return this.removeIdSet.has(id);\n };\n return TreeIndex;\n}());\nfunction queueToResolveTrees(queue) {\n var e_3, _a;\n var queueNodeMap = {};\n var putIntoMap = function (m, parent) {\n var nodeInTree = {\n value: m,\n parent: parent,\n children: [],\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n var queueNodeTrees = [];\n try {\n for (var queue_1 = __values(queue), queue_1_1 = queue_1.next(); !queue_1_1.done; queue_1_1 = queue_1.next()) {\n var mutation = queue_1_1.value;\n var nextId = mutation.nextId, parentId = mutation.parentId;\n if (nextId && nextId in queueNodeMap) {\n var nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n var idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\n }\n else {\n var idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n var parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (queue_1_1 && !queue_1_1.done && (_a = queue_1.return)) _a.call(queue_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (var i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\nfunction isIframeINode(node) {\n if ('__sn' in node) {\n return (node.__sn.type === NodeType.Element && node.__sn.tagName === 'iframe');\n }\n return false;\n}\nfunction getBaseDimension(node, rootIframe) {\n var _a, _b;\n var frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1,\n };\n }\n var frameDimension = frameElement.getBoundingClientRect();\n var frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n var relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale +\n frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale +\n frameBaseDimension.y,\n relativeScale: relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\n };\n}\nfunction hasShadowRoot(n) {\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\n}\n\nexport { TreeIndex, _mirror, createMirror, getBaseDimension, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIframeINode, isIgnored, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, throttle };\n","import { __values } from '../../ext/tslib/tslib.es6.js';\nimport { isShadowRoot, maskInputValue, transformAttribute, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isAncestorRemoved, isIframeINode, hasShadowRoot } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\n return '__ln' in n;\n}\nvar DoubleLinkedList = (function () {\n function DoubleLinkedList() {\n this.length = 0;\n this.head = null;\n }\n DoubleLinkedList.prototype.get = function (position) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n var current = this.head;\n for (var index = 0; index < position; index++) {\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\n }\n return current;\n };\n DoubleLinkedList.prototype.addNode = function (n) {\n var node = {\n value: n,\n previous: null,\n next: null,\n };\n n.__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n var current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n }\n else if (n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous) {\n var current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n }\n else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n this.length++;\n };\n DoubleLinkedList.prototype.removeNode = function (n) {\n var current = n.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n }\n }\n else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n }\n }\n if (n.__ln) {\n delete n.__ln;\n }\n this.length--;\n };\n return DoubleLinkedList;\n}());\nvar moveKey = function (id, parentId) { return \"\".concat(id, \"@\").concat(parentId); };\nfunction isINode(n) {\n return '__sn' in n;\n}\nvar MutationBuffer = (function () {\n function MutationBuffer() {\n var _this = this;\n this.frozen = false;\n this.locked = false;\n this.texts = [];\n this.attributes = [];\n this.removes = [];\n this.mapRemoves = [];\n this.movedMap = {};\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.processMutations = function (mutations) {\n mutations.forEach(_this.processMutation);\n _this.emit();\n };\n this.emit = function () {\n var e_1, _a, e_2, _b;\n if (_this.frozen || _this.locked) {\n return;\n }\n var adds = [];\n var addList = new DoubleLinkedList();\n var getNextId = function (n) {\n var ns = n;\n var nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && _this.mirror.getId(ns);\n }\n return nextId;\n };\n var pushAdd = function (n) {\n var _a, _b, _c, _d, _e;\n var shadowHost = n.getRootNode\n ? (_a = n.getRootNode()) === null || _a === void 0 ? void 0 : _a.host\n : null;\n var rootShadowHost = shadowHost;\n while ((_c = (_b = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _b === void 0 ? void 0 : _b.call(rootShadowHost)) === null || _c === void 0 ? void 0 : _c.host)\n rootShadowHost =\n ((_e = (_d = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _d === void 0 ? void 0 : _d.call(rootShadowHost)) === null || _e === void 0 ? void 0 : _e.host) ||\n null;\n var notInDoc = !_this.doc.contains(n) &&\n (rootShadowHost === null || !_this.doc.contains(rootShadowHost));\n if (!n.parentNode || notInDoc) {\n return;\n }\n var parentId = isShadowRoot(n.parentNode)\n ? _this.mirror.getId(shadowHost)\n : _this.mirror.getId(n.parentNode);\n var nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n var sn = serializeNodeWithId(n, {\n doc: _this.doc,\n map: _this.mirror.map,\n blockClass: _this.blockClass,\n blockSelector: _this.blockSelector,\n maskTextClass: _this.maskTextClass,\n maskTextSelector: _this.maskTextSelector,\n skipChild: true,\n inlineStylesheet: _this.inlineStylesheet,\n maskInputOptions: _this.maskInputOptions,\n maskTextFn: _this.maskTextFn,\n maskInputFn: _this.maskInputFn,\n slimDOMOptions: _this.slimDOMOptions,\n recordCanvas: _this.recordCanvas,\n inlineImages: _this.inlineImages,\n onSerialize: function (currentN) {\n if (isIframeINode(currentN)) {\n _this.iframeManager.addIframe(currentN);\n }\n if (hasShadowRoot(n)) {\n _this.shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: function (iframe, childSn) {\n _this.iframeManager.attachIframe(iframe, childSn);\n _this.shadowDomManager.observeAttachShadow(iframe);\n },\n });\n if (sn) {\n adds.push({\n parentId: parentId,\n nextId: nextId,\n node: sn,\n });\n }\n };\n while (_this.mapRemoves.length) {\n _this.mirror.removeNodeFromMap(_this.mapRemoves.shift());\n }\n try {\n for (var _c = __values(_this.movedSet), _d = _c.next(); !_d.done; _d = _c.next()) {\n var n = _d.value;\n if (isParentRemoved(_this.removes, n, _this.mirror) &&\n !_this.movedSet.has(n.parentNode)) {\n continue;\n }\n pushAdd(n);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(_this.addedSet), _f = _e.next(); !_f.done; _f = _e.next()) {\n var n = _f.value;\n if (!isAncestorInSet(_this.droppedSet, n) &&\n !isParentRemoved(_this.removes, n, _this.mirror)) {\n pushAdd(n);\n }\n else if (isAncestorInSet(_this.movedSet, n)) {\n pushAdd(n);\n }\n else {\n _this.droppedSet.add(n);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var candidate = null;\n while (addList.length) {\n var node = null;\n if (candidate) {\n var parentId = _this.mirror.getId(candidate.value.parentNode);\n var nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n for (var index = addList.length - 1; index >= 0; index--) {\n var _node = addList.get(index);\n if (_node) {\n var parentId = _this.mirror.getId(_node.value.parentNode);\n var nextId = getNextId(_node.value);\n if (parentId !== -1 && nextId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n if (!node) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n var payload = {\n texts: _this.texts\n .map(function (text) { return ({\n id: _this.mirror.getId(text.node),\n value: text.value,\n }); })\n .filter(function (text) { return _this.mirror.has(text.id); }),\n attributes: _this.attributes\n .map(function (attribute) { return ({\n id: _this.mirror.getId(attribute.node),\n attributes: attribute.attributes,\n }); })\n .filter(function (attribute) { return _this.mirror.has(attribute.id); }),\n removes: _this.removes,\n adds: adds,\n };\n if (!payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length) {\n return;\n }\n _this.texts = [];\n _this.attributes = [];\n _this.removes = [];\n _this.addedSet = new Set();\n _this.movedSet = new Set();\n _this.droppedSet = new Set();\n _this.movedMap = {};\n _this.mutationCb(payload);\n };\n this.processMutation = function (m) {\n var e_3, _a, e_4, _b;\n if (isIgnored(m.target)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n var value = m.target.textContent;\n if (!isBlocked(m.target, _this.blockClass) && value !== m.oldValue) {\n _this.texts.push({\n value: needMaskingText(m.target, _this.maskTextClass, _this.maskTextSelector) && value\n ? _this.maskTextFn\n ? _this.maskTextFn(value)\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n var target = m.target;\n var value = m.target.getAttribute(m.attributeName);\n if (m.attributeName === 'value') {\n value = maskInputValue({\n maskInputOptions: _this.maskInputOptions,\n tagName: m.target.tagName,\n type: m.target.getAttribute('type'),\n value: value,\n maskInputFn: _this.maskInputFn,\n });\n }\n if (isBlocked(m.target, _this.blockClass) || value === m.oldValue) {\n return;\n }\n var item = _this.attributes.find(function (a) { return a.node === m.target; });\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n };\n _this.attributes.push(item);\n }\n if (m.attributeName === 'style') {\n var old = _this.doc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n if (item.attributes.style === undefined ||\n item.attributes.style === null) {\n item.attributes.style = {};\n }\n var styleObj = item.attributes.style;\n try {\n for (var _c = __values(Array.from(target.style)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var pname = _d.value;\n var newValue = target.style.getPropertyValue(pname);\n var newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === '') {\n styleObj[pname] = newValue;\n }\n else {\n styleObj[pname] = [newValue, newPriority];\n }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _e = __values(Array.from(old.style)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var pname = _f.value;\n if (target.style.getPropertyValue(pname) === '') {\n styleObj[pname] = false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n else {\n item.attributes[m.attributeName] = transformAttribute(_this.doc, m.target.tagName, m.attributeName, value);\n }\n break;\n }\n case 'childList': {\n m.addedNodes.forEach(function (n) { return _this.genAdds(n, m.target); });\n m.removedNodes.forEach(function (n) {\n var nodeId = _this.mirror.getId(n);\n var parentId = isShadowRoot(m.target)\n ? _this.mirror.getId(m.target.host)\n : _this.mirror.getId(m.target);\n if (isBlocked(m.target, _this.blockClass) || isIgnored(n)) {\n return;\n }\n if (_this.addedSet.has(n)) {\n deepDelete(_this.addedSet, n);\n _this.droppedSet.add(n);\n }\n else if (_this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, _this.mirror)) ;\n else if (_this.movedSet.has(n) &&\n _this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(_this.movedSet, n);\n }\n else {\n _this.removes.push({\n parentId: parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) ? true : undefined,\n });\n }\n _this.mapRemoves.push(n);\n });\n break;\n }\n }\n };\n this.genAdds = function (n, target) {\n if (target && isBlocked(target, _this.blockClass)) {\n return;\n }\n if (isINode(n)) {\n if (isIgnored(n)) {\n return;\n }\n _this.movedSet.add(n);\n var targetId = null;\n if (target && isINode(target)) {\n targetId = target.__sn.id;\n }\n if (targetId) {\n _this.movedMap[moveKey(n.__sn.id, targetId)] = true;\n }\n }\n else {\n _this.addedSet.add(n);\n _this.droppedSet.delete(n);\n }\n if (!isBlocked(n, _this.blockClass))\n n.childNodes.forEach(function (childN) { return _this.genAdds(childN); });\n };\n }\n MutationBuffer.prototype.init = function (options) {\n var _this = this;\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'maskTextClass',\n 'maskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskTextFn',\n 'maskInputFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'shadowDomManager',\n 'canvasManager',\n ].forEach(function (key) {\n _this[key] = options[key];\n });\n };\n MutationBuffer.prototype.freeze = function () {\n this.frozen = true;\n this.canvasManager.freeze();\n };\n MutationBuffer.prototype.unfreeze = function () {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n };\n MutationBuffer.prototype.isFrozen = function () {\n return this.frozen;\n };\n MutationBuffer.prototype.lock = function () {\n this.locked = true;\n this.canvasManager.lock();\n };\n MutationBuffer.prototype.unlock = function () {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n };\n MutationBuffer.prototype.reset = function () {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n };\n return MutationBuffer;\n}());\nfunction deepDelete(addsSet, n) {\n addsSet.delete(n);\n n.childNodes.forEach(function (childN) { return deepDelete(addsSet, childN); });\n}\nfunction isParentRemoved(removes, n, mirror) {\n var parentNode = n.parentNode;\n if (!parentNode) {\n return false;\n }\n var parentId = mirror.getId(parentNode);\n if (removes.some(function (r) { return r.id === parentId; })) {\n return true;\n }\n return isParentRemoved(removes, parentNode, mirror);\n}\nfunction isAncestorInSet(set, n) {\n var parentNode = n.parentNode;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return isAncestorInSet(set, parentNode);\n}\n\nexport default MutationBuffer;\n","import { __read, __values, __spreadArray, __assign } from '../../ext/tslib/tslib.es6.js';\nimport { maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isTouchEvent, isBlocked, getWindowHeight, getWindowWidth, hookSetter, patch } from '../utils.js';\nimport { IncrementalSource, MouseInteractions } from '../types.js';\nimport MutationBuffer from './mutation.js';\n\nvar mutationBuffers = [];\nvar isCSSGroupingRuleSupported = typeof CSSGroupingRule !== 'undefined';\nvar isCSSMediaRuleSupported = typeof CSSMediaRule !== 'undefined';\nvar isCSSSupportsRuleSupported = typeof CSSSupportsRule !== 'undefined';\nvar isCSSConditionRuleSupported = typeof CSSConditionRule !== 'undefined';\nfunction getEventTarget(event) {\n try {\n if ('composedPath' in event) {\n var path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n }\n else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n return event.target;\n }\n catch (_a) {\n return event.target;\n }\n}\nfunction initMutationObserver(options, rootEl) {\n var _a, _b;\n var mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n var mutationObserverCtor = window.MutationObserver ||\n window.__rrMutationObserver;\n var 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');\n if (angularZoneSymbol &&\n window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n var observer = new mutationObserverCtor(mutationBuffer.processMutations.bind(mutationBuffer));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\nfunction initMoveObserver(_a) {\n var mousemoveCb = _a.mousemoveCb, sampling = _a.sampling, doc = _a.doc, mirror = _a.mirror;\n if (sampling.mousemove === false) {\n return function () { };\n }\n var threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n var callbackThreshold = typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n var positions = [];\n var timeBaseline;\n var wrappedCb = throttle(function (source) {\n var totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map(function (p) {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }, callbackThreshold);\n var updatePosition = throttle(function (evt) {\n var target = getEventTarget(evt);\n var _a = isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt, clientX = _a.clientX, clientY = _a.clientY;\n if (!timeBaseline) {\n timeBaseline = Date.now();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target),\n timeOffset: Date.now() - timeBaseline,\n });\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove);\n }, threshold, {\n trailing: false,\n });\n var handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initMouseInteractionObserver(_a) {\n var mouseInteractionCb = _a.mouseInteractionCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, sampling = _a.sampling;\n if (sampling.mouseInteraction === false) {\n return function () { };\n }\n var disableMap = sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n var handlers = [];\n var getHandler = function (eventKey) {\n return function (event) {\n var target = getEventTarget(event);\n if (isBlocked(target, blockClass)) {\n return;\n }\n var e = isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n var id = mirror.getId(target);\n var clientX = e.clientX, clientY = e.clientY;\n mouseInteractionCb({\n type: MouseInteractions[eventKey],\n id: id,\n x: clientX,\n y: clientY,\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter(function (key) {\n return Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false;\n })\n .forEach(function (eventKey) {\n var eventName = eventKey.toLowerCase();\n var handler = getHandler(eventKey);\n handlers.push(on(eventName, handler, doc));\n });\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initScrollObserver(_a) {\n var scrollCb = _a.scrollCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, sampling = _a.sampling;\n var updatePosition = throttle(function (evt) {\n var target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass)) {\n return;\n }\n var id = mirror.getId(target);\n if (target === doc) {\n var scrollEl = (doc.scrollingElement || doc.documentElement);\n scrollCb({\n id: id,\n x: scrollEl.scrollLeft,\n y: scrollEl.scrollTop,\n });\n }\n else {\n scrollCb({\n id: id,\n x: target.scrollLeft,\n y: target.scrollTop,\n });\n }\n }, sampling.scroll || 100);\n return on('scroll', updatePosition, doc);\n}\nfunction initViewportResizeObserver(_a) {\n var viewportResizeCb = _a.viewportResizeCb;\n var lastH = -1;\n var lastW = -1;\n var updateDimension = throttle(function () {\n var height = getWindowHeight();\n var width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }, 200);\n return on('resize', updateDimension, window);\n}\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\n var value = __assign({}, v);\n if (!enable)\n delete value.userTriggered;\n return value;\n}\nvar INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nvar lastInputValueMap = new WeakMap();\nfunction initInputObserver(_a) {\n var inputCb = _a.inputCb, doc = _a.doc, mirror = _a.mirror, blockClass = _a.blockClass, ignoreClass = _a.ignoreClass, maskInputOptions = _a.maskInputOptions, maskInputFn = _a.maskInputFn, sampling = _a.sampling, userTriggeredOnInput = _a.userTriggeredOnInput;\n function eventHandler(event) {\n var target = getEventTarget(event);\n var userTriggered = event.isTrusted;\n if (target && target.tagName === 'OPTION')\n target = target.parentElement;\n if (!target ||\n !target.tagName ||\n INPUT_TAGS.indexOf(target.tagName) < 0 ||\n isBlocked(target, blockClass)) {\n return;\n }\n var type = target.type;\n if (target.classList.contains(ignoreClass)) {\n return;\n }\n var text = target.value;\n var isChecked = false;\n if (type === 'radio' || type === 'checkbox') {\n isChecked = target.checked;\n }\n else if (maskInputOptions[target.tagName.toLowerCase()] ||\n maskInputOptions[type]) {\n text = maskInputValue({\n maskInputOptions: maskInputOptions,\n tagName: target.tagName,\n type: type,\n value: text,\n maskInputFn: maskInputFn,\n });\n }\n cbWithDedup(target, wrapEventWithUserTriggeredFlag({ text: text, isChecked: isChecked, userTriggered: userTriggered }, userTriggeredOnInput));\n var name = target.name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(\"input[type=\\\"radio\\\"][name=\\\"\".concat(name, \"\\\"]\"))\n .forEach(function (el) {\n if (el !== target) {\n cbWithDedup(el, wrapEventWithUserTriggeredFlag({\n text: el.value,\n isChecked: !isChecked,\n userTriggered: false,\n }, userTriggeredOnInput));\n }\n });\n }\n }\n function cbWithDedup(target, v) {\n var lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked) {\n lastInputValueMap.set(target, v);\n var id = mirror.getId(target);\n inputCb(__assign(__assign({}, v), { id: id }));\n }\n }\n var events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n var handlers = events.map(function (eventName) { return on(eventName, eventHandler, doc); });\n var propertyDescriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');\n var hookProperties = [\n [HTMLInputElement.prototype, 'value'],\n [HTMLInputElement.prototype, 'checked'],\n [HTMLSelectElement.prototype, 'value'],\n [HTMLTextAreaElement.prototype, 'value'],\n [HTMLSelectElement.prototype, 'selectedIndex'],\n [HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push.apply(handlers, __spreadArray([], __read(hookProperties.map(function (p) {\n return hookSetter(p[0], p[1], {\n set: function () {\n eventHandler({ target: this });\n },\n });\n })), false));\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction getNestedCSSRulePositions(rule) {\n var positions = [];\n function recurse(childRule, pos) {\n if ((isCSSGroupingRuleSupported &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (isCSSMediaRuleSupported &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (isCSSSupportsRuleSupported &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (isCSSConditionRuleSupported &&\n childRule.parentRule instanceof CSSConditionRule)) {\n var rules = Array.from(childRule.parentRule.cssRules);\n var index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n else {\n var rules = Array.from(childRule.parentStyleSheet.cssRules);\n var index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\nfunction initStyleSheetObserver(_a, _b) {\n var styleSheetRuleCb = _a.styleSheetRuleCb, mirror = _a.mirror;\n var win = _b.win;\n var insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = function (rule, index) {\n var id = mirror.getId(this.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n adds: [{ rule: rule, index: index }],\n });\n }\n return insertRule.apply(this, arguments);\n };\n var deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = function (index) {\n var id = mirror.getId(this.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n removes: [{ index: index }],\n });\n }\n return deleteRule.apply(this, arguments);\n };\n var supportedNestedCSSRuleTypes = {};\n if (isCSSGroupingRuleSupported) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n }\n else {\n if (isCSSMediaRuleSupported) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (isCSSConditionRuleSupported) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (isCSSSupportsRuleSupported) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n var unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(function (_a) {\n var _b = __read(_a, 2), typeKey = _b[0], type = _b[1];\n unmodifiedFunctions[typeKey] = {\n insertRule: type.prototype.insertRule,\n deleteRule: type.prototype.deleteRule,\n };\n type.prototype.insertRule = function (rule, index) {\n var id = mirror.getId(this.parentStyleSheet.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n adds: [\n {\n rule: rule,\n index: __spreadArray(__spreadArray([], __read(getNestedCSSRulePositions(this)), false), [\n index || 0,\n ], false),\n },\n ],\n });\n }\n return unmodifiedFunctions[typeKey].insertRule.apply(this, arguments);\n };\n type.prototype.deleteRule = function (index) {\n var id = mirror.getId(this.parentStyleSheet.ownerNode);\n if (id !== -1) {\n styleSheetRuleCb({\n id: id,\n removes: [{ index: __spreadArray(__spreadArray([], __read(getNestedCSSRulePositions(this)), false), [index], false) }],\n });\n }\n return unmodifiedFunctions[typeKey].deleteRule.apply(this, arguments);\n };\n });\n return function () {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n Object.entries(supportedNestedCSSRuleTypes).forEach(function (_a) {\n var _b = __read(_a, 2), typeKey = _b[0], type = _b[1];\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n };\n}\nfunction initStyleDeclarationObserver(_a, _b) {\n var styleDeclarationCb = _a.styleDeclarationCb, mirror = _a.mirror;\n var win = _b.win;\n var setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = function (property, value, priority) {\n var _a, _b;\n var id = mirror.getId((_b = (_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet) === null || _b === void 0 ? void 0 : _b.ownerNode);\n if (id !== -1) {\n styleDeclarationCb({\n id: id,\n set: {\n property: property,\n value: value,\n priority: priority,\n },\n index: getNestedCSSRulePositions(this.parentRule),\n });\n }\n return setProperty.apply(this, arguments);\n };\n var removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = function (property) {\n var _a, _b;\n var id = mirror.getId((_b = (_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet) === null || _b === void 0 ? void 0 : _b.ownerNode);\n if (id !== -1) {\n styleDeclarationCb({\n id: id,\n remove: {\n property: property,\n },\n index: getNestedCSSRulePositions(this.parentRule),\n });\n }\n return removeProperty.apply(this, arguments);\n };\n return function () {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n };\n}\nfunction initMediaInteractionObserver(_a) {\n var mediaInteractionCb = _a.mediaInteractionCb, blockClass = _a.blockClass, mirror = _a.mirror, sampling = _a.sampling;\n var handler = function (type) {\n return throttle(function (event) {\n var target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass)) {\n return;\n }\n var _a = target, currentTime = _a.currentTime, volume = _a.volume, muted = _a.muted;\n mediaInteractionCb({\n type: type,\n id: mirror.getId(target),\n currentTime: currentTime,\n volume: volume,\n muted: muted,\n });\n }, sampling.media || 500);\n };\n var handlers = [\n on('play', handler(0)),\n on('pause', handler(1)),\n on('seeked', handler(2)),\n on('volumechange', handler(3)),\n ];\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction initFontObserver(_a) {\n var fontCb = _a.fontCb, doc = _a.doc;\n var win = doc.defaultView;\n if (!win) {\n return function () { };\n }\n var handlers = [];\n var fontMap = new WeakMap();\n var originalFontFace = win.FontFace;\n win.FontFace = function FontFace(family, source, descriptors) {\n var fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family: family,\n buffer: typeof source !== 'string',\n descriptors: descriptors,\n fontSource: typeof source === 'string'\n ? source\n :\n JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n };\n var restoreHandler = patch(doc.fonts, 'add', function (original) {\n return function (fontFace) {\n setTimeout(function () {\n var p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }, 0);\n return original.apply(this, [fontFace]);\n };\n });\n handlers.push(function () {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\nfunction mergeHooks(o, hooks) {\n var mutationCb = o.mutationCb, mousemoveCb = o.mousemoveCb, mouseInteractionCb = o.mouseInteractionCb, scrollCb = o.scrollCb, viewportResizeCb = o.viewportResizeCb, inputCb = o.inputCb, mediaInteractionCb = o.mediaInteractionCb, styleSheetRuleCb = o.styleSheetRuleCb, styleDeclarationCb = o.styleDeclarationCb, canvasMutationCb = o.canvasMutationCb, fontCb = o.fontCb;\n o.mutationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mutation) {\n hooks.mutation.apply(hooks, __spreadArray([], __read(p), false));\n }\n mutationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mousemoveCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mousemove) {\n hooks.mousemove.apply(hooks, __spreadArray([], __read(p), false));\n }\n mousemoveCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mouseInteractionCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction.apply(hooks, __spreadArray([], __read(p), false));\n }\n mouseInteractionCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.scrollCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.scroll) {\n hooks.scroll.apply(hooks, __spreadArray([], __read(p), false));\n }\n scrollCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.viewportResizeCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.viewportResize) {\n hooks.viewportResize.apply(hooks, __spreadArray([], __read(p), false));\n }\n viewportResizeCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.inputCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.input) {\n hooks.input.apply(hooks, __spreadArray([], __read(p), false));\n }\n inputCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.mediaInteractionCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction.apply(hooks, __spreadArray([], __read(p), false));\n }\n mediaInteractionCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.styleSheetRuleCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule.apply(hooks, __spreadArray([], __read(p), false));\n }\n styleSheetRuleCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.styleDeclarationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration.apply(hooks, __spreadArray([], __read(p), false));\n }\n styleDeclarationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.canvasMutationCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.canvasMutation) {\n hooks.canvasMutation.apply(hooks, __spreadArray([], __read(p), false));\n }\n canvasMutationCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n o.fontCb = function () {\n var p = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n p[_i] = arguments[_i];\n }\n if (hooks.font) {\n hooks.font.apply(hooks, __spreadArray([], __read(p), false));\n }\n fontCb.apply(void 0, __spreadArray([], __read(p), false));\n };\n}\nfunction initObservers(o, hooks) {\n var e_1, _a;\n if (hooks === void 0) { hooks = {}; }\n var currentWindow = o.doc.defaultView;\n if (!currentWindow) {\n return function () { };\n }\n mergeHooks(o, hooks);\n var mutationObserver = initMutationObserver(o, o.doc);\n var mousemoveHandler = initMoveObserver(o);\n var mouseInteractionHandler = initMouseInteractionObserver(o);\n var scrollHandler = initScrollObserver(o);\n var viewportResizeHandler = initViewportResizeObserver(o);\n var inputHandler = initInputObserver(o);\n var mediaInteractionHandler = initMediaInteractionObserver(o);\n var styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n var styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n var fontObserver = o.collectFonts ? initFontObserver(o) : function () { };\n var pluginHandlers = [];\n try {\n for (var _b = __values(o.plugins), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return function () {\n mutationBuffers.forEach(function (b) { return b.reset(); });\n mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n pluginHandlers.forEach(function (h) { return h(); });\n };\n}\n\nexport { INPUT_TAGS, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","var IframeManager = (function () {\n function IframeManager(options) {\n this.iframes = new WeakMap();\n this.mutationCb = options.mutationCb;\n }\n IframeManager.prototype.addIframe = function (iframeEl) {\n this.iframes.set(iframeEl, true);\n };\n IframeManager.prototype.addLoadListener = function (cb) {\n this.loadListener = cb;\n };\n IframeManager.prototype.attachIframe = function (iframeEl, childSn) {\n var _a;\n this.mutationCb({\n adds: [\n {\n parentId: iframeEl.__sn.id,\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\n };\n return IframeManager;\n}());\n\nexport { IframeManager };\n","import { __assign } from '../../ext/tslib/tslib.es6.js';\nimport { initMutationObserver, initScrollObserver } from './observer.js';\nimport { patch } from '../utils.js';\n\nvar ShadowDomManager = (function () {\n function ShadowDomManager(options) {\n this.restorePatches = [];\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n var manager = this;\n this.restorePatches.push(patch(HTMLElement.prototype, 'attachShadow', function (original) {\n return function () {\n var shadowRoot = original.apply(this, arguments);\n if (this.shadowRoot)\n manager.addShadowRoot(this.shadowRoot, this.ownerDocument);\n return shadowRoot;\n };\n }));\n }\n ShadowDomManager.prototype.addShadowRoot = function (shadowRoot, doc) {\n initMutationObserver(__assign(__assign({}, this.bypassOptions), { doc: doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\n initScrollObserver(__assign(__assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror }));\n };\n ShadowDomManager.prototype.observeAttachShadow = function (iframeElement) {\n if (iframeElement.contentWindow) {\n var manager_1 = this;\n this.restorePatches.push(patch(iframeElement.contentWindow.HTMLElement.prototype, 'attachShadow', function (original) {\n return function () {\n var shadowRoot = original.apply(this, arguments);\n if (this.shadowRoot)\n manager_1.addShadowRoot(this.shadowRoot, iframeElement.contentDocument);\n return shadowRoot;\n };\n }));\n }\n };\n ShadowDomManager.prototype.reset = function () {\n this.restorePatches.forEach(function (restorePatch) { return restorePatch(); });\n };\n return ShadowDomManager;\n}());\n\nexport { ShadowDomManager };\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 { __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { encode } from '../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nvar webGLVarMap = new Map();\nfunction variableListFor(ctx, ctor) {\n var contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nvar saveWebGLVar = function (value, win, ctx) {\n if (!value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\n return;\n var name = value.constructor.name;\n var list = variableListFor(ctx, name);\n var index = list.indexOf(value);\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map(function (arg) { return serializeArg(arg, win, ctx); });\n }\n else if (value === null) {\n return value;\n }\n else if (value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray) {\n var name_1 = value.constructor.name;\n return {\n rr_type: name_1,\n args: [Object.values(value)],\n };\n }\n else if (value instanceof ArrayBuffer) {\n var name_2 = value.constructor.name;\n var base64 = encode(value);\n return {\n rr_type: name_2,\n base64: base64,\n };\n }\n else if (value instanceof DataView) {\n var name_3 = value.constructor.name;\n return {\n rr_type: name_3,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength,\n ],\n };\n }\n else if (value instanceof HTMLImageElement) {\n var name_4 = value.constructor.name;\n var src = value.src;\n return {\n rr_type: name_4,\n src: src,\n };\n }\n else if (value instanceof ImageData) {\n var name_5 = value.constructor.name;\n return {\n rr_type: name_5,\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\n };\n }\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n var name_6 = value.constructor.name;\n var index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name_6,\n index: index,\n };\n }\n return value;\n}\nvar serializeArgs = function (args, win, ctx) {\n return __spreadArray([], __read(args), false).map(function (arg) { return serializeArg(arg, win, ctx); });\n};\nvar isInstanceOfWebGLObject = function (value, win) {\n var webGLConstructorNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n 'WebGLVertexArrayObjectOES',\n ];\n var supportedWebGLConstructorNames = webGLConstructorNames.filter(function (name) { return typeof win[name] === 'function'; });\n return Boolean(supportedWebGLConstructorNames.find(function (name) { return value instanceof win[name]; }));\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { __spreadArray, __read, __values } from '../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, mirror, win) {\n var e_1, _a;\n var handlers = [];\n var props = Object.getOwnPropertyNames(prototype);\n var _loop_1 = function (prop) {\n try {\n if (typeof prototype[prop] !== 'function') {\n return \"continue\";\n }\n var restoreHandler = patch(prototype, prop, function (original) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n saveWebGLVar(result, win, prototype);\n if (!isBlocked(this.canvas, blockClass)) {\n var id = mirror.getId(this.canvas);\n var recordArgs = serializeArgs(__spreadArray([], __read(args), false), win, prototype);\n var mutation = {\n type: type,\n property: prop,\n args: recordArgs,\n };\n cb(this.canvas, mutation);\n }\n return result;\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_b) {\n var hookHandler = hookSetter(prototype, prop, {\n set: function (v) {\n cb(this.canvas, {\n type: type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n };\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, mirror) {\n var handlers = [];\n handlers.push.apply(handlers, __spreadArray([], __read(patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, mirror, win)), false));\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push.apply(handlers, __spreadArray([], __read(patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, mirror, win)), false));\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvasWebGLMutationObserver;\n","import { __rest } from '../../../../ext/tslib/tslib.es6.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\n\nvar CanvasManager = (function () {\n function CanvasManager(options) {\n this.pendingCanvasMutations = new Map();\n this.rafStamps = { latestId: 0, invokeId: null };\n this.frozen = false;\n this.locked = false;\n this.processMutation = function (target, mutation) {\n var newFrame = this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n };\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (options.recordCanvas === true)\n this.initCanvasMutationObserver(options.win, options.blockClass);\n }\n CanvasManager.prototype.reset = function () {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n };\n CanvasManager.prototype.freeze = function () {\n this.frozen = true;\n };\n CanvasManager.prototype.unfreeze = function () {\n this.frozen = false;\n };\n CanvasManager.prototype.lock = function () {\n this.locked = true;\n };\n CanvasManager.prototype.unlock = function () {\n this.locked = false;\n };\n CanvasManager.prototype.initCanvasMutationObserver = function (win, blockClass) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n var canvasContextReset = initCanvasContextObserver(win, blockClass);\n var canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, this.mirror);\n var canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, this.mirror);\n this.resetObservers = function () {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n };\n CanvasManager.prototype.startPendingCanvasMutationFlusher = function () {\n var _this = this;\n requestAnimationFrame(function () { return _this.flushPendingCanvasMutations(); });\n };\n CanvasManager.prototype.startRAFTimestamping = function () {\n var _this = this;\n var setLatestRAFTimestamp = function (timestamp) {\n _this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n CanvasManager.prototype.flushPendingCanvasMutations = function () {\n var _this = this;\n this.pendingCanvasMutations.forEach(function (values, canvas) {\n var id = _this.mirror.getId(canvas);\n _this.flushPendingCanvasMutationFor(canvas, id);\n });\n requestAnimationFrame(function () { return _this.flushPendingCanvasMutations(); });\n };\n CanvasManager.prototype.flushPendingCanvasMutationFor = function (canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n var valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1)\n return;\n var values = valuesWithType.map(function (value) {\n value.type; var rest = __rest(value, [\"type\"]);\n return rest;\n });\n var type = valuesWithType[0].type;\n this.mutationCb({ id: id, type: type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n };\n return CanvasManager;\n}());\n\nexport { CanvasManager };\n","import { __assign, __read, __values } from '../../ext/tslib/tslib.es6.js';\nimport { snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, createMirror, getWindowWidth, getWindowHeight, isIframeINode, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\n\nfunction wrapEvent(e) {\n return __assign(__assign({}, e), { timestamp: Date.now() });\n}\nvar wrappedEmit;\nvar takeFullSnapshot;\nvar mirror = createMirror();\nfunction record(options) {\n if (options === void 0) { options = {}; }\n var emit = options.emit, checkoutEveryNms = options.checkoutEveryNms, checkoutEveryNth = options.checkoutEveryNth, _a = options.blockClass, blockClass = _a === void 0 ? 'rr-block' : _a, _b = options.blockSelector, blockSelector = _b === void 0 ? null : _b, _c = options.ignoreClass, ignoreClass = _c === void 0 ? 'rr-ignore' : _c, _d = options.maskTextClass, maskTextClass = _d === void 0 ? 'rr-mask' : _d, _e = options.maskTextSelector, maskTextSelector = _e === void 0 ? null : _e, _f = options.inlineStylesheet, inlineStylesheet = _f === void 0 ? true : _f, maskAllInputs = options.maskAllInputs, _maskInputOptions = options.maskInputOptions, _slimDOMOptions = options.slimDOMOptions, maskInputFn = options.maskInputFn, maskTextFn = options.maskTextFn, hooks = options.hooks, packFn = options.packFn, _g = options.sampling, sampling = _g === void 0 ? {} : _g, mousemoveWait = options.mousemoveWait, _h = options.recordCanvas, recordCanvas = _h === void 0 ? false : _h, _j = options.userTriggeredOnInput, userTriggeredOnInput = _j === void 0 ? false : _j, _k = options.collectFonts, collectFonts = _k === void 0 ? false : _k, _l = options.inlineImages, inlineImages = _l === void 0 ? false : _l, plugins = options.plugins, _m = options.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\n if (!emit) {\n throw new Error('emit function is required');\n }\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n var maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : { password: true };\n var slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n polyfill();\n var lastFullSnapshotEvent;\n var incrementalSnapshotCount = 0;\n var eventProcessor = function (e) {\n var e_1, _a;\n try {\n for (var _b = __values(plugins || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (packFn) {\n e = packFn(e);\n }\n return e;\n };\n wrappedEmit = function (e, isCheckout) {\n var _a;\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\n e.type !== EventType.FullSnapshot &&\n !(e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach(function (buf) { return buf.unfreeze(); });\n }\n emit(eventProcessor(e), isCheckout);\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n }\n else if (e.type === EventType.IncrementalSnapshot) {\n if (e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n var exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n var exceedTime = checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n var wrappedMutationEmit = function (m) {\n wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Mutation }, m),\n }));\n };\n var wrappedScrollEmit = function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Scroll }, p),\n }));\n };\n var wrappedCanvasMutationEmit = function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.CanvasMutation }, p),\n }));\n };\n var iframeManager = new IframeManager({\n mutationCb: wrappedMutationEmit,\n });\n var canvasManager = new CanvasManager({\n recordCanvas: recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass: blockClass,\n mirror: mirror,\n });\n var shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n sampling: sampling,\n slimDOMOptions: slimDOMOptions,\n iframeManager: iframeManager,\n canvasManager: canvasManager,\n },\n mirror: mirror,\n });\n takeFullSnapshot = function (isCheckout) {\n var _a, _b, _c, _d;\n if (isCheckout === void 0) { isCheckout = false; }\n wrappedEmit(wrapEvent({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n }), isCheckout);\n mutationBuffers.forEach(function (buf) { return buf.lock(); });\n var _e = __read(snapshot(document, {\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn: maskTextFn,\n slimDOM: slimDOMOptions,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n onSerialize: function (n) {\n if (isIframeINode(n)) {\n iframeManager.addIframe(n);\n }\n if (hasShadowRoot(n)) {\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: function (iframe, childSn) {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n keepIframeSrcFn: keepIframeSrcFn,\n }), 2), node = _e[0], idNodeMap = _e[1];\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n mirror.map = idNodeMap;\n wrappedEmit(wrapEvent({\n type: EventType.FullSnapshot,\n data: {\n node: node,\n initialOffset: {\n left: window.pageXOffset !== undefined\n ? window.pageXOffset\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollLeft) ||\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) ||\n (document === null || document === void 0 ? void 0 : document.body.scrollLeft) ||\n 0,\n top: window.pageYOffset !== undefined\n ? window.pageYOffset\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollTop) ||\n ((_d = (_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.scrollTop) ||\n (document === null || document === void 0 ? void 0 : document.body.scrollTop) ||\n 0,\n },\n },\n }));\n mutationBuffers.forEach(function (buf) { return buf.unlock(); });\n };\n try {\n var handlers_1 = [];\n handlers_1.push(on('DOMContentLoaded', function () {\n wrappedEmit(wrapEvent({\n type: EventType.DomContentLoaded,\n data: {},\n }));\n }));\n var observe_1 = function (doc) {\n var _a;\n return initObservers({\n mutationCb: wrappedMutationEmit,\n mousemoveCb: function (positions, source) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: source,\n positions: positions,\n },\n }));\n },\n mouseInteractionCb: function (d) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.MouseInteraction }, d),\n }));\n },\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: function (d) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.ViewportResize }, d),\n }));\n },\n inputCb: function (v) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Input }, v),\n }));\n },\n mediaInteractionCb: function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.MediaInteraction }, p),\n }));\n },\n styleSheetRuleCb: function (r) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.StyleSheetRule }, r),\n }));\n },\n styleDeclarationCb: function (r) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.StyleDeclaration }, r),\n }));\n },\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: function (p) {\n return wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: __assign({ source: IncrementalSource.Font }, p),\n }));\n },\n blockClass: blockClass,\n ignoreClass: ignoreClass,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n maskInputOptions: maskInputOptions,\n inlineStylesheet: inlineStylesheet,\n sampling: sampling,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n userTriggeredOnInput: userTriggeredOnInput,\n collectFonts: collectFonts,\n doc: doc,\n maskInputFn: maskInputFn,\n maskTextFn: maskTextFn,\n blockSelector: blockSelector,\n slimDOMOptions: slimDOMOptions,\n mirror: mirror,\n iframeManager: iframeManager,\n shadowDomManager: shadowDomManager,\n canvasManager: canvasManager,\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter(function (p) { return p.observer; })) === null || _a === void 0 ? void 0 : _a.map(function (p) { return ({\n observer: p.observer,\n options: p.options,\n callback: function (payload) {\n return wrappedEmit(wrapEvent({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload: payload,\n },\n }));\n },\n }); })) || [],\n }, hooks);\n };\n iframeManager.addLoadListener(function (iframeEl) {\n handlers_1.push(observe_1(iframeEl.contentDocument));\n });\n var init_1 = function () {\n takeFullSnapshot();\n handlers_1.push(observe_1(document));\n };\n if (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n init_1();\n }\n else {\n handlers_1.push(on('load', function () {\n wrappedEmit(wrapEvent({\n type: EventType.Load,\n data: {},\n }));\n init_1();\n }, window));\n }\n return function () {\n handlers_1.forEach(function (h) { return h(); });\n };\n }\n catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = function (tag, payload) {\n if (!wrappedEmit) {\n throw new Error('please add custom event after start recording');\n }\n wrappedEmit(wrapEvent({\n type: EventType.Custom,\n data: {\n tag: tag,\n payload: payload,\n },\n }));\n};\nrecord.freezePage = function () {\n mutationBuffers.forEach(function (buf) { return buf.freeze(); });\n};\nrecord.takeFullSnapshot = function (isCheckout) {\n if (!takeFullSnapshot) {\n throw new Error('please take full snapshot after start recording');\n }\n takeFullSnapshot(isCheckout);\n};\nrecord.mirror = mirror;\n\nexport default record;\n","import { __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { patch, isBlocked } from '../../../utils.js';\n\nfunction initCanvasContextObserver(win, blockClass) {\n var handlers = [];\n try {\n var restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\n return function (contextType) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!isBlocked(this, blockClass)) {\n if (!('__context' in this))\n this.__context = contextType;\n }\n return original.apply(this, __spreadArray([contextType], __read(args), false));\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_a) {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvasContextObserver;\n","import { __values, __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, mirror) {\n var e_1, _a;\n var handlers = [];\n var props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n var _loop_1 = function (prop) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\n return \"continue\";\n }\n var restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!isBlocked(this.canvas, blockClass)) {\n setTimeout(function () {\n var recordArgs = __spreadArray([], __read(args), false);\n if (prop === 'drawImage') {\n if (recordArgs[0] &&\n recordArgs[0] instanceof HTMLCanvasElement) {\n var canvas = recordArgs[0];\n var ctx = canvas.getContext('2d');\n var imgd = ctx === null || ctx === void 0 ? void 0 : ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pix = imgd === null || imgd === void 0 ? void 0 : imgd.data;\n recordArgs[0] = JSON.stringify(pix);\n }\n }\n cb(_this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (_b) {\n var hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set: function (v) {\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n };\n try {\n for (var props2D_1 = __values(props2D), props2D_1_1 = props2D_1.next(); !props2D_1_1.done; props2D_1_1 = props2D_1.next()) {\n var prop = props2D_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props2D_1_1 && !props2D_1_1.done && (_a = props2D_1.return)) _a.call(props2D_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return function () {\n handlers.forEach(function (h) { return h(); });\n };\n}\n\nexport default initCanvas2DMutationObserver;\n","var StackFrame = (function () {\n function StackFrame(obj) {\n this.fileName = obj.fileName || '';\n this.functionName = obj.functionName || '';\n this.lineNumber = obj.lineNumber;\n this.columnNumber = obj.columnNumber;\n }\n StackFrame.prototype.toString = function () {\n var lineNumber = this.lineNumber || '';\n var columnNumber = this.columnNumber || '';\n if (this.functionName) {\n return (this.functionName +\n ' (' +\n this.fileName +\n ':' +\n lineNumber +\n ':' +\n columnNumber +\n ')');\n }\n return this.fileName + ':' + lineNumber + ':' + columnNumber;\n };\n return StackFrame;\n}());\nvar FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\nvar CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nvar SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\nvar ErrorStackParser = {\n parse: function (error) {\n if (!error) {\n return [];\n }\n if (typeof error.stacktrace !== 'undefined' ||\n typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n }\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n }\n else if (error.stack) {\n return this.parseFFOrSafari(error);\n }\n else {\n throw new Error('Cannot parse given Error object');\n }\n },\n extractLocation: function (urlLike) {\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n if (!parts)\n throw new Error(\"Cannot parse given url: \".concat(urlLike));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function (error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n line = line\n .replace(/eval code/g, 'eval')\n .replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n sanitizedLine = location\n ? sanitizedLine.replace(location[0], '')\n : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1\n ? undefined\n : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n });\n }, this);\n },\n parseFFOrSafari: function (error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n return new StackFrame({\n functionName: line,\n });\n }\n else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n });\n }\n }, this);\n },\n parseOpera: function (e) {\n if (!e.stacktrace ||\n (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n }\n else if (!e.stack) {\n return this.parseOpera10(e);\n }\n else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function (e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: parseFloat(match[1]),\n }));\n }\n }\n return result;\n },\n parseOpera10: function (e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: parseFloat(match[1]),\n }));\n }\n }\n return result;\n },\n parseOpera11: function (error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return (!!line.match(FIREFOX_SAFARI_STACK_REGEXP) &&\n !line.match(/^Error created at/));\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall\n .replace(/<anonymous function(: (\\w+))?>/, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n });\n }, this);\n },\n};\n\nexport { ErrorStackParser, StackFrame };\n","import { __values } from '../../../../ext/tslib/tslib.es6.js';\n\nfunction pathToSelector(node) {\n if (!node || !node.outerHTML) {\n return '';\n }\n var path = '';\n while (node.parentElement) {\n var name_1 = node.localName;\n if (!name_1) {\n break;\n }\n name_1 = name_1.toLowerCase();\n var parent_1 = node.parentElement;\n var domSiblings = [];\n if (parent_1.children && parent_1.children.length > 0) {\n for (var i = 0; i < parent_1.children.length; i++) {\n var sibling = parent_1.children[i];\n if (sibling.localName && sibling.localName.toLowerCase) {\n if (sibling.localName.toLowerCase() === name_1) {\n domSiblings.push(sibling);\n }\n }\n }\n }\n if (domSiblings.length > 1) {\n name_1 += ':eq(' + domSiblings.indexOf(node) + ')';\n }\n path = name_1 + (path ? '>' + path : '');\n node = parent_1;\n }\n return path;\n}\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\nfunction isObjTooDeep(obj, limit) {\n var e_1, _a;\n if (limit === 0) {\n return true;\n }\n var keys = Object.keys(obj);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n if (isObject(obj[key]) && isObjTooDeep(obj[key], limit - 1)) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\nfunction stringify(obj, stringifyOptions) {\n var options = {\n numOfKeysLimit: 50,\n depthOfLimit: 4,\n };\n Object.assign(options, stringifyOptions);\n var stack = [];\n var keys = [];\n return JSON.stringify(obj, function (key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) {\n if (stack[0] === value) {\n value = '[Circular ~]';\n }\n else {\n value =\n '[Circular ~.' +\n keys.slice(0, stack.indexOf(value)).join('.') +\n ']';\n }\n }\n }\n else {\n stack.push(value);\n }\n if (value === null || value === undefined) {\n return value;\n }\n if (shouldIgnore(value)) {\n return toString(value);\n }\n if (value instanceof Event) {\n var eventResult = {};\n for (var eventKey in value) {\n var eventValue = value[eventKey];\n if (Array.isArray(eventValue)) {\n eventResult[eventKey] = pathToSelector(eventValue.length ? eventValue[0] : null);\n }\n else {\n eventResult[eventKey] = eventValue;\n }\n }\n return eventResult;\n }\n else if (value instanceof Node) {\n if (value instanceof HTMLElement) {\n return value ? value.outerHTML : '';\n }\n return value.nodeName;\n }\n else if (value instanceof Error) {\n return value.stack\n ? value.stack + '\\nEnd of stack for Error object'\n : value.name + ': ' + value.message;\n }\n return value;\n });\n function shouldIgnore(_obj) {\n if (isObject(_obj) && Object.keys(_obj).length > options.numOfKeysLimit) {\n return true;\n }\n if (typeof _obj === 'function') {\n return true;\n }\n if (isObject(_obj) && isObjTooDeep(_obj, options.depthOfLimit)) {\n return true;\n }\n return false;\n }\n function toString(_obj) {\n var str = _obj.toString();\n if (options.stringLengthLimit && str.length > options.stringLengthLimit) {\n str = \"\".concat(str.slice(0, options.stringLengthLimit), \"...\");\n }\n return str;\n }\n}\n\nexport { stringify };\n","import { __values, __spreadArray, __read } from '../../../../ext/tslib/tslib.es6.js';\nimport { patch } from '../../../utils.js';\nimport { ErrorStackParser } from './error-stack-parser.js';\nimport { stringify } from './stringify.js';\n\nvar defaultLogOptions = {\n level: [\n 'assert',\n 'clear',\n 'count',\n 'countReset',\n 'debug',\n 'dir',\n 'dirxml',\n 'error',\n 'group',\n 'groupCollapsed',\n 'groupEnd',\n 'info',\n 'log',\n 'table',\n 'time',\n 'timeEnd',\n 'timeLog',\n 'trace',\n 'warn',\n ],\n lengthThreshold: 1000,\n logger: 'console',\n};\nfunction initLogObserver(cb, win, logOptions) {\n var e_1, _a;\n var loggerType = logOptions.logger;\n if (!loggerType) {\n return function () { };\n }\n var logger;\n if (typeof loggerType === 'string') {\n logger = win[loggerType];\n }\n else {\n logger = loggerType;\n }\n var logCount = 0;\n var cancelHandlers = [];\n if (logOptions.level.includes('error')) {\n if (window) {\n var errorHandler_1 = function (event) {\n var message = event.message, error = event.error;\n var trace = ErrorStackParser.parse(error).map(function (stackFrame) { return stackFrame.toString(); });\n var payload = [stringify(message, logOptions.stringifyOptions)];\n cb({\n level: 'error',\n trace: trace,\n payload: payload,\n });\n };\n window.addEventListener('error', errorHandler_1);\n cancelHandlers.push(function () {\n if (window)\n window.removeEventListener('error', errorHandler_1);\n });\n }\n }\n try {\n for (var _b = __values(logOptions.level), _c = _b.next(); !_c.done; _c = _b.next()) {\n var levelType = _c.value;\n cancelHandlers.push(replace(logger, levelType));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return function () {\n cancelHandlers.forEach(function (h) { return h(); });\n };\n function replace(_logger, level) {\n var _this = this;\n if (!_logger[level]) {\n return function () { };\n }\n return patch(_logger, level, function (original) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n original.apply(_this, args);\n try {\n var trace = ErrorStackParser.parse(new Error())\n .map(function (stackFrame) { return stackFrame.toString(); })\n .splice(1);\n var payload = args.map(function (s) {\n return stringify(s, logOptions.stringifyOptions);\n });\n logCount++;\n if (logCount < logOptions.lengthThreshold) {\n cb({\n level: level,\n trace: trace,\n payload: payload,\n });\n }\n else if (logCount === logOptions.lengthThreshold) {\n cb({\n level: 'warn',\n trace: [],\n payload: [\n stringify('The number of log records reached the threshold.'),\n ],\n });\n }\n }\n catch (error) {\n original.apply(void 0, __spreadArray(['rrweb logger error:', error], __read(args), false));\n }\n };\n });\n }\n}\nvar PLUGIN_NAME = 'rrweb/console@1';\nvar getRecordConsolePlugin = function (options) { return ({\n name: PLUGIN_NAME,\n observer: initLogObserver,\n options: options\n ? Object.assign({}, defaultLogOptions, options)\n : defaultLogOptions,\n}); };\n\nexport { PLUGIN_NAME, getRecordConsolePlugin };\n","import { version } from 'rrweb2/package.json'\n\n// Same as loader-globals.ts except includes rrweb scripts.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport rrwebRecord from 'rrweb/es/rrweb/packages/rrweb/src/record'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { getRecordConsolePlugin } from 'rrweb/es/rrweb/packages/rrweb/src/plugins/console/record'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n\nconst win: Window & typeof globalThis = typeof window !== 'undefined' ? window : ({} as typeof window)\n\n;(win as any).rrweb = { record: rrwebRecord, version }\n;(win as any).rrwebConsoleRecord = { getRecordConsolePlugin }\n\nexport default rrwebRecord\n"],"names":["NodeType","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","r","e","ar","push","error","__spreadArray","to","from","pack","l","Array","slice","concat","isShadowRoot","_a","host","Boolean","shadowRoot","maskInputValue","maskInputOptions","tagName","type","maskInputFn","text","toLowerCase","repeat","ORIGINAL_ATTRIBUTE_NAME","canvasService","canvasCtx","_id","tagNameRegex","RegExp","getCssRulesString","rules","cssRules","map","getCssRuleString","join","rule","cssStringified","cssText","isCSSImportRule","styleSheet","URL_IN_CSS_REF","RELATIVE_PATH","DATA_URI","absoluteToStylesheet","href","replace","origin","quote1","path1","quote2","path2","path3","url","filePath","maybeQuote","test","indexOf","split","stack","parts","pop","_i","parts_1","part","EventType","IncrementalSource","MouseInteractions","CanvasContext","MediaInteractions","ReplayerEvents","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","doc","attributeValue","trim","a","createElement","getHref","document","transformAttribute","name","pos","collectCharacters","regEx","chars","match","exec","substring","output","descriptorsStr","inParens","c","charAt","getAbsoluteSrcsetString","needMaskingText","node","maskTextClass","maskTextSelector","nodeType","ELEMENT_NODE","classList","contains","eIndex","className","matches","parentNode","TEXT_NODE","serializeNode","options","rootId","sheet","el","blockClass","blockSelector","inlineStylesheet","_b","maskTextFn","_c","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","__sn","docId","id","undefined","DOCUMENT_NODE","compatMode","Document","childNodes","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","element","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","attributes_1","_d","attributes","_e","name_1","stylesheet","styleSheets","find","rel","_cssText","innerText","textContent","checked","selected","__context","canvas","ctx","getContext","x","width","y","height","getImageData","originalGetImageData","Uint32Array","Math","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image_1","oldValue_1","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","err","console","warn","currentSrc","complete","onload","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","_f","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","Element","isSVG","ownerSVGElement","parentTagName","isStyle","isScript","nextSibling","previousSibling","Text","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","_g","iframeLoadTimeout","_h","_j","preserveWhiteSpace","_serializedNode","sn","comment","script","as","endsWith","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","_k","serializedChildNode","isElement","_l","_m","isShadow","iframeEl","listener","win","contentWindow","readyState","fired","blankUrl","location","addEventListener","setTimeout","timer_1","clearTimeout","onceIframeLoaded","iframeDoc","serializedIframeNode","on","fn","target","capture","passive","removeEventListener","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","getId","getNode","removeNodeFromMap","has","reset","throttle","func","wait","timeout","previous","arg","now","Date","leading","remaining","context","args","trailing","hookSetter","key","d","isRevoked","window","original","getOwnPropertyDescriptor","defineProperty","set","_this","patch","source","replacement","original_1","wrapped","defineProperties","__rrweb_original__","enumerable","getWindowHeight","innerHeight","documentElement","clientHeight","body","getWindowWidth","innerWidth","clientWidth","isBlocked","needBlock_1","closest","forEach","isIgnored","isAncestorRemoved","mirror","isTouchEvent","event","changedTouches","isIframeINode","hasShadowRoot","isNodeInLinkedList","Proxy","Reflect","get","prop","receiver","DoubleLinkedList","head","position","Error","current","index","addNode","__ln","removeNode","moveKey","parentId","isINode","deepDelete","addsSet","childN","isParentRemoved","removes","isAncestorInSet","MutationBuffer$1","MutationBuffer","frozen","locked","texts","mapRemoves","movedMap","addedSet","Set","movedSet","droppedSet","processMutations","mutations","processMutation","emit","e_1","e_2","adds","addList","getNextId","ns","nextId","pushAdd","shadowHost","getRootNode","rootShadowHost","notInDoc","currentN","iframeManager","addIframe","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","shift","e_1_1","add","e_2_1","candidate","_node","payload","filter","attribute","mutationCb","e_3","e_4","oldValue","getAttribute","attributeName","item","old","setAttribute","style","styleObj","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","e_3_1","e_4_1","addedNodes","genAdds","removedNodes","nodeId","targetId","init","freeze","canvasManager","unfreeze","isFrozen","lock","unlock","mutationBuffers","isCSSGroupingRuleSupported","CSSGroupingRule","isCSSMediaRuleSupported","CSSMediaRule","isCSSSupportsRuleSupported","CSSSupportsRule","isCSSConditionRuleSupported","CSSConditionRule","getEventTarget","path","composedPath","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","MutationObserver","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","observer","bind","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","keys","Number","isNaN","eventKey","eventName","handler","clientX","clientY","getHandler","h","initScrollObserver","scrollCb","evt","scrollEl","scrollingElement","scroll","wrapEventWithUserTriggeredFlag","v","enable","userTriggered","INPUT_TAGS","lastInputValueMap","WeakMap","getNestedCSSRulePositions","childRule","parentRule","unshift","parentStyleSheet","recurse","initObservers","hooks","currentWindow","defaultView","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","mutation","mousemove","viewportResize","input","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","mergeHooks","mutationObserver","mousemoveHandler","timeBaseline","threshold","callbackThreshold","mousemoveCallback","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","userTriggeredOnInput","eventHandler","isTrusted","parentElement","isChecked","cbWithDedup","querySelectorAll","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","volume","muted","media","initMediaInteractionObserver","styleSheetObserver","insertRule","CSSStyleSheet","ownerNode","deleteRule","supportedNestedCSSRuleTypes","unmodifiedFunctions","entries","typeKey","initStyleSheetObserver","styleDeclarationObserver","setProperty","CSSStyleDeclaration","priority","removeProperty","remove","initStyleDeclarationObserver","fontObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","JSON","stringify","Uint8Array","restoreHandler","fonts","initFontObserver","pluginHandlers","plugins","plugin","callback","b","disconnect","IframeManager","iframes","addLoadListener","cb","loadListener","isAttachIframe","ShadowDomManager","restorePatches","manager","HTMLElement","ownerDocument","iframeElement","manager_1","restorePatch","lookup","charCodeAt","webGLVarMap","Map","saveWebGLVar","isInstanceOfWebGLObject","_typeof","list","ctor","contextMap","variableListFor","constructor","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","values","ArrayBuffer","name_2","base64","arraybuffer","bytes","len","encode","DataView","byteOffset","byteLength","HTMLImageElement","ImageData","serializeArgs","supportedWebGLConstructorNames","patchGLPrototype","props","getOwnPropertyNames","_loop_1","result","recordArgs","hookHandler","setter","props_1","props_1_1","wrappedEmit","takeFullSnapshot","CanvasManager","pendingCanvasMutations","rafStamps","latestId","invokeId","initCanvasMutationObserver","clear","resetObservers","startRAFTimestamping","startPendingCanvasMutationFlusher","canvasContextReset","HTMLCanvasElement","contextType","initCanvasContextObserver","canvas2DReset","props2D","CanvasRenderingContext2D","imgd","pix","props2D_1","props2D_1_1","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","requestAnimationFrame","flushPendingCanvasMutations","setLatestRAFTimestamp","timestamp","flushPendingCanvasMutationFor","valuesWithType","rest","getOwnPropertySymbols","propertyIsEnumerable","__rest","commands","wrapEvent","child","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","lastFullSnapshotEvent","color","date","email","month","number","range","search","tel","time","week","textarea","select","password","NodeList","DOMTokenList","Node","polyfill","incrementalSnapshotCount","isCheckout","FullSnapshot","IncrementalSnapshot","Mutation","buf","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","Scroll","wrappedCanvasMutationEmit","CanvasMutation","Meta","slimDOM","idNodeMap","snapshot","initialOffset","left","pageXOffset","top","pageYOffset","handlers_1","DomContentLoaded","observe_1","MouseInteraction","ViewportResize","Input","MediaInteraction","StyleSheetRule","StyleDeclaration","Font","Plugin","init_1","Load","addCustomEvent","tag","Custom","freezePage","StackFrame","obj","fileName","functionName","lineNumber","columnNumber","toString","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser","parse","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","line","sanitizedLine","tokens","locationParts","functionNameRegex","message","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","parseFloat","pathToSelector","outerHTML","localName","parent_1","domSiblings","children","sibling","isObject","isObjTooDeep","limit","keys_1","keys_1_1","stringifyOptions","numOfKeysLimit","depthOfLimit","thisPos","splice","Infinity","_obj","shouldIgnore","str","stringLengthLimit","Event","eventResult","eventValue","isArray","nodeName","defaultLogOptions","level","lengthThreshold","logger","initLogObserver","logOptions","loggerType","logCount","cancelHandlers","includes","errorHandler_1","trace","stackFrame","levelType","_logger","rrweb","rrwebRecord","version","rrwebConsoleRecord","getRecordConsolePlugin"],"mappings":"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"}