{"version":3,"file":"rrweb-player.107364ab.js","sources":["../../../node_modules/rrweb-player/dist/rrweb-player.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nfunction noop() {\n}\nfunction assign(tar, src) {\n for (const k in src)\n tar[k] = src[k];\n return (\n /** @type {T & S} */\n tar\n );\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === \"function\";\n}\nfunction safe_not_equal(a2, b) {\n return a2 != a2 ? b == b : a2 !== b || a2 && typeof a2 === \"object\" || typeof a2 === \"function\";\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== \"$\")\n result[k] = props[k];\n return result;\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction svg_element(name) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(\" \");\n}\nfunction empty() {\n return text(\"\");\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction children(element2) {\n return Array.from(element2.childNodes);\n}\nfunction set_data(text2, data) {\n data = \"\" + data;\n if (text2.data === data)\n return;\n text2.data = /** @type {string} */\n data;\n}\nfunction set_style(node, key, value, important) {\n if (value == null) {\n node.style.removeProperty(key);\n } else {\n node.style.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nfunction toggle_class(element2, name, toggle) {\n element2.classList.toggle(name, !!toggle);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n return new CustomEvent(type, { detail, bubbles, cancelable });\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(\"Function called outside component initialization\");\n return current_component;\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n const event = custom_event(\n /** @type {string} */\n type,\n detail,\n { cancelable }\n );\n callbacks.slice().forEach((fn) => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\nconst dirty_components = [];\nconst binding_callbacks = [];\nlet render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = /* @__PURE__ */ Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nconst seen_callbacks = /* @__PURE__ */ new Set();\nlet flushidx = 0;\nfunction flush() {\n if (flushidx !== 0) {\n return;\n }\n const saved_component = current_component;\n do {\n try {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n } catch (e2) {\n dirty_components.length = 0;\n flushidx = 0;\n throw e2;\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\nfunction flush_render_callbacks(fns) {\n const filtered = [];\n const targets = [];\n render_callbacks.forEach((c2) => fns.indexOf(c2) === -1 ? filtered.push(c2) : targets.push(c2));\n targets.forEach((c2) => c2());\n render_callbacks = filtered;\n}\nconst outroing = /* @__PURE__ */ new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros\n // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach2, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach2)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n } else if (callback) {\n callback();\n }\n}\nfunction ensure_array_like(array_like_or_iterator) {\n return (array_like_or_iterator == null ? void 0 : array_like_or_iterator.length) !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);\n}\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== void 0) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n } else {\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n flush_render_callbacks($$.after_update);\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\nfunction init(component, options, instance2, create_fragment2, not_equal, props, append_styles = null, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance2 ? instance2(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n }) : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n } else {\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nclass SvelteComponent {\n constructor() {\n /**\n * ### PRIVATE API\n *\n * Do not use, may change at any time\n *\n * @type {any}\n */\n __publicField(this, \"$$\");\n /**\n * ### PRIVATE API\n *\n * Do not use, may change at any time\n *\n * @type {any}\n */\n __publicField(this, \"$$set\");\n }\n /** @returns {void} */\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n /**\n * @template {Extract} K\n * @param {K} type\n * @param {((e: Events[K]) => void) | null | undefined} callback\n * @returns {() => void}\n */\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n /**\n * @param {Partial} props\n * @returns {void}\n */\n $set(props) {\n if (this.$$set && !is_empty(props)) {\n this.$$.skip_bound = true;\n this.$$set(props);\n this.$$.skip_bound = false;\n }\n }\n}\nconst PUBLIC_VERSION = \"4\";\nif (typeof window !== \"undefined\")\n (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(PUBLIC_VERSION);\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => {\n __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar _a$1;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar NodeType$2 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$2 || {});\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2)\n return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nfunction isNodeMetaEqual(a2, b) {\n if (!a2 || !b || a2.type !== b.type)\n return false;\n if (a2.type === NodeType$2.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$2.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$2.Comment || a2.type === NodeType$2.Text || a2.type === NodeType$2.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$2.Element)\n return a2.tagName === b.tagName && JSON.stringify(a2.attributes) === JSON.stringify(b.attributes) && a2.isSVG === b.isSVG && a2.needBlock === b.needBlock;\n return false;\n}\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction parse(css, options = {}) {\n let lineno = 1;\n let column = 1;\n function updatePosition(str) {\n const lines = str.match(/\\n/g);\n if (lines) {\n lineno += lines.length;\n }\n const i2 = str.lastIndexOf(\"\\n\");\n column = i2 === -1 ? column + str.length : str.length - i2;\n }\n function position2() {\n const start = { line: lineno, column };\n return (node) => {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n const _Position = class _Position2 {\n constructor(start) {\n __publicField$1(this, \"content\");\n __publicField$1(this, \"start\");\n __publicField$1(this, \"end\");\n __publicField$1(this, \"source\");\n this.start = start;\n this.end = { line: lineno, column };\n this.source = options.source;\n this.content = _Position2.content;\n }\n };\n __publicField$1(_Position, \"content\");\n let Position = _Position;\n Position.content = css;\n const errorsList = [];\n function error(msg) {\n const err = new Error(\n `${options.source || \"\"}:${lineno}:${column}: ${msg}`\n );\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 } else {\n throw err;\n }\n }\n function stylesheet() {\n const rulesList = rules2();\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 rules2() {\n let node;\n const rules22 = [];\n whitespace();\n comments(rules22);\n while (css.length && css.charAt(0) !== \"}\" && (node = atrule() || rule())) {\n if (node) {\n rules22.push(node);\n comments(rules22);\n }\n }\n return rules22;\n }\n function match(re) {\n const m = re.exec(css);\n if (!m) {\n return;\n }\n const 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(rules22 = []) {\n let c2;\n while (c2 = comment()) {\n if (c2) {\n rules22.push(c2);\n }\n c2 = comment();\n }\n return rules22;\n }\n function comment() {\n const pos = position2();\n if (\"/\" !== css.charAt(0) || \"*\" !== css.charAt(1)) {\n return;\n }\n let i2 = 2;\n while (\"\" !== css.charAt(i2) && (\"*\" !== css.charAt(i2) || \"/\" !== css.charAt(i2 + 1))) {\n ++i2;\n }\n i2 += 2;\n if (\"\" === css.charAt(i2 - 1)) {\n return error(\"End of comment missing\");\n }\n const str = css.slice(2, i2 - 2);\n column += 2;\n updatePosition(str);\n css = css.slice(i2);\n column += 2;\n return pos({\n type: \"comment\",\n comment: str\n });\n }\n const selectorMatcher = new RegExp(\n \"^((\" + [\n /[^\\\\]\"(?:\\\\\"|[^\"])*\"/.source,\n // consume any quoted parts (checking that the double quote isn't itself escaped)\n /[^\\\\]'(?:\\\\'|[^'])*'/.source,\n // same but for single quotes\n \"[^{]\"\n ].join(\"|\") + \")+)\"\n );\n function selector() {\n whitespace();\n while (css[0] == \"}\") {\n error(\"extra closing bracket\");\n css = css.slice(1);\n whitespace();\n }\n const m = match(selectorMatcher);\n if (!m) {\n return;\n }\n const cleanedInput = m[0].trim().replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, \"\").replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m2) => {\n return m2.replace(/,/g, \"‌\");\n });\n return customSplit(cleanedInput).map(\n (s2) => s2.replace(/\\u200C/g, \",\").trim()\n );\n }\n function customSplit(input) {\n const result = [];\n let currentSegment = \"\";\n let depthParentheses = 0;\n let depthBrackets = 0;\n let currentStringChar = null;\n for (const char of input) {\n const hasStringEscape = currentSegment.endsWith(\"\\\\\");\n if (currentStringChar) {\n if (currentStringChar === char && !hasStringEscape) {\n currentStringChar = null;\n }\n } else if (char === \"(\") {\n depthParentheses++;\n } else if (char === \")\") {\n depthParentheses--;\n } else if (char === \"[\") {\n depthBrackets++;\n } else if (char === \"]\") {\n depthBrackets--;\n } else if (`'\"`.includes(char)) {\n currentStringChar = char;\n }\n if (char === \",\" && depthParentheses === 0 && depthBrackets === 0) {\n result.push(currentSegment);\n currentSegment = \"\";\n } else {\n currentSegment += char;\n }\n }\n if (currentSegment) {\n result.push(currentSegment);\n }\n return result;\n }\n function declaration() {\n const pos = position2();\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n const prop = trim(propMatch[0]);\n if (!match(/^:\\s*/)) {\n return error(`property missing ':'`);\n }\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\n const 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 const decls = [];\n if (!open()) {\n return error(`missing '{'`);\n }\n comments(decls);\n let 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 let m;\n const vals = [];\n const pos = position2();\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 const pos = position2();\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n const vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error(\"@keyframes missing name\");\n }\n const name = m[1];\n if (!open()) {\n return error(`@keyframes missing '{'`);\n }\n let frame;\n let 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,\n vendor,\n keyframes: frames\n });\n }\n function atsupports() {\n const pos = position2();\n const m = match(/^@supports *([^{]+)/);\n if (!m) {\n return;\n }\n const supports = trim(m[1]);\n if (!open()) {\n return error(`@supports missing '{'`);\n }\n const style = comments().concat(rules2());\n if (!close()) {\n return error(`@supports missing '}'`);\n }\n return pos({\n type: \"supports\",\n supports,\n rules: style\n });\n }\n function athost() {\n const pos = position2();\n const m = match(/^@host\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(`@host missing '{'`);\n }\n const style = comments().concat(rules2());\n if (!close()) {\n return error(`@host missing '}'`);\n }\n return pos({\n type: \"host\",\n rules: style\n });\n }\n function atmedia() {\n const pos = position2();\n const m = match(/^@media *([^{]+)/);\n if (!m) {\n return;\n }\n const media = trim(m[1]);\n if (!open()) {\n return error(`@media missing '{'`);\n }\n const style = comments().concat(rules2());\n if (!close()) {\n return error(`@media missing '}'`);\n }\n return pos({\n type: \"media\",\n media,\n rules: style\n });\n }\n function atcustommedia() {\n const pos = position2();\n const 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 const pos = position2();\n const m = match(/^@page */);\n if (!m) {\n return;\n }\n const sel = selector() || [];\n if (!open()) {\n return error(`@page missing '{'`);\n }\n let decls = comments();\n let 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 const pos = position2();\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n const vendor = trim(m[1]);\n const doc = trim(m[2]);\n if (!open()) {\n return error(`@document missing '{'`);\n }\n const style = comments().concat(rules2());\n if (!close()) {\n return error(`@document missing '}'`);\n }\n return pos({\n type: \"document\",\n document: doc,\n vendor,\n rules: style\n });\n }\n function atfontface() {\n const pos = position2();\n const m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n if (!open()) {\n return error(`@font-face missing '{'`);\n }\n let decls = comments();\n let 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 const atimport = _compileAtrule(\"import\");\n const atcharset = _compileAtrule(\"charset\");\n const atnamespace = _compileAtrule(\"namespace\");\n function _compileAtrule(name) {\n const re = new RegExp(\n \"^@\" + name + \"\\\\s*((?:\" + [\n /[^\\\\]\"(?:\\\\\"|[^\"])*\"/.source,\n // consume any quoted parts (checking that the double quote isn't itself escaped)\n /[^\\\\]'(?:\\\\'|[^'])*'/.source,\n // same but for single quotes\n \"[^;]\"\n ].join(\"|\") + \")+);\"\n );\n return () => {\n const pos = position2();\n const m = match(re);\n if (!m) {\n return;\n }\n const 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() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface();\n }\n function rule() {\n const pos = position2();\n const 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 const isNode = obj && typeof obj.type === \"string\";\n const childParent = isNode ? obj : parent;\n for (const k of Object.keys(obj)) {\n const value = obj[k];\n if (Array.isArray(value)) {\n value.forEach((v2) => {\n addParent(v2, childParent);\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}\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n2) {\n let tagName = tagMap[n2.tagName] ? tagMap[n2.tagName] : n2.tagName;\n if (tagName === \"link\" && n2.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, \"g\");\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle)\n return cachedStyle;\n const ast = parse(cssText, {\n silent: true\n });\n if (!ast.stylesheet) {\n return cssText;\n }\n const selectors = [];\n const medias = [];\n function getSelectors(rule) {\n if (\"selectors\" in rule && rule.selectors) {\n rule.selectors.forEach((selector) => {\n if (HOVER_SELECTOR.test(selector)) {\n selectors.push(selector);\n }\n });\n }\n if (\"media\" in rule && rule.media && MEDIA_SELECTOR.test(rule.media)) {\n medias.push(rule.media);\n }\n if (\"rules\" in rule && rule.rules) {\n rule.rules.forEach(getSelectors);\n }\n }\n getSelectors(ast.stylesheet);\n let result = cssText;\n if (selectors.length > 0) {\n const selectorMatcher = new RegExp(\n selectors.filter((selector, index) => selectors.indexOf(selector) === index).sort((a2, b) => b.length - a2.length).map((selector) => {\n return escapeRegExp(selector);\n }).join(\"|\"),\n \"g\"\n );\n result = result.replace(selectorMatcher, (selector) => {\n const newSelector = selector.replace(\n HOVER_SELECTOR_GLOBAL,\n \"$1.\\\\:hover\"\n );\n return `${selector}, ${newSelector}`;\n });\n }\n if (medias.length > 0) {\n const mediaMatcher = new RegExp(\n medias.filter((media, index) => medias.indexOf(media) === index).sort((a2, b) => b.length - a2.length).map((media) => {\n return escapeRegExp(media);\n }).join(\"|\"),\n \"g\"\n );\n result = result.replace(mediaMatcher, (media) => {\n return media.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n });\n }\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\n return result;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$2.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$2.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$2.Element: {\n const tagName = getTagName(n2);\n let node;\n if (n2.isSVG) {\n node = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n2.isCustom && // If the browser supports custom elements\n ((_a2 = doc.defaultView) == null ? void 0 : _a2.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n2.tagName)\n )\n doc.defaultView.customElements.define(\n n2.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n2.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n2.attributes, name)) {\n continue;\n }\n let value = n2.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true)\n value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n const isTextarea = tagName === \"textarea\" && name === \"value\";\n const isRemoteOrDynamicCss = tagName === \"style\" && name === \"_cssText\";\n if (isRemoteOrDynamicCss && hackCss && typeof value === \"string\") {\n value = adaptCssForReplay(value, cache);\n }\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === \"string\") {\n node.appendChild(doc.createTextNode(value));\n n2.childNodes = [];\n continue;\n }\n try {\n if (n2.isSVG && name === \"xlink:href\") {\n node.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n2.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n2.attributes.rel === \"preload\" || n2.attributes.rel === \"modulepreload\") && n2.attributes.as === \"script\") {\n } else if (tagName === \"link\" && n2.attributes.rel === \"prefetch\" && typeof n2.attributes.href === \"string\" && n2.attributes.href.endsWith(\".js\")) {\n } else if (tagName === \"img\" && n2.attributes.srcset && n2.attributes.rr_dataURL) {\n node.setAttribute(\n \"rrweb-original-srcset\",\n n2.attributes.srcset\n );\n } else {\n node.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node.RRNodeType)\n node.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n2.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node.style.width = value.toString();\n } else if (name === \"rr_height\") {\n node.style.height = value.toString();\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node.volume = value;\n }\n }\n if (n2.isShadowHost) {\n if (!node.shadowRoot) {\n node.attachShadow({ mode: \"open\" });\n } else {\n while (node.shadowRoot.firstChild) {\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\n }\n }\n }\n return node;\n }\n case NodeType$2.Text:\n return doc.createTextNode(\n n2.isStyle && hackCss ? adaptCssForReplay(n2.textContent, cache) : n2.textContent\n );\n case NodeType$2.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$2.Comment:\n return doc.createComment(n2.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n2, options) {\n const {\n doc,\n mirror: mirror2,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror2.has(n2.id)) {\n const nodeInMirror = mirror2.getNode(n2.id);\n const meta = mirror2.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n2))\n return mirror2.getNode(n2.id);\n }\n let node = buildNode(n2, { doc, hackCss, cache });\n if (!node) {\n return null;\n }\n if (n2.rootId && mirror2.getNode(n2.rootId) !== doc) {\n mirror2.replace(n2.rootId, doc);\n }\n if (n2.type === NodeType$2.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$2.DocumentType) {\n if (n2.childNodes[0].type === NodeType$2.Element && \"xmlns\" in n2.childNodes[0].attributes && n2.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n ''\n );\n } else {\n doc.write(\n ''\n );\n }\n }\n node = doc;\n }\n mirror2.add(node, n2);\n if ((n2.type === NodeType$2.Document || n2.type === NodeType$2.Element) && !skipChild) {\n for (const childN of n2.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\n node.shadowRoot.appendChild(childNode);\n } else if (n2.type === NodeType$2.Document && childN.type == NodeType$2.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\")\n body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node.appendChild(childNode);\n }\n } else {\n node.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node;\n}\nfunction visit(mirror2, onVisit) {\n function walk(node) {\n onVisit(node);\n }\n for (const id of mirror2.getIds()) {\n if (mirror2.has(id)) {\n walk(mirror2.getNode(id));\n }\n }\n}\nfunction handleScroll(node, mirror2) {\n const n2 = mirror2.getMeta(node);\n if ((n2 == null ? void 0 : n2.type) !== NodeType$2.Element) {\n return;\n }\n const el = node;\n for (const name in n2.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n2.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n2.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n2, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror: mirror2 = new Mirror()\n } = options;\n const node = buildNodeWithSN(n2, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror2, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror2);\n });\n return node;\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString()))\n ;\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = (...args) => {\n let node = args[0];\n if (!(0 in args)) {\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}\nfunction queueToResolveTrees(queue) {\n const queueNodeMap = {};\n const putIntoMap = (m, parent) => {\n const nodeInTree = {\n value: m,\n parent,\n children: []\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n const queueNodeTrees = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent)\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (let i2 = tree.children.length - 1; i2 >= 0; i2--) {\n iterateResolveTree(tree.children[i2], cb);\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction getBaseDimension(node, rootIframe) {\n var _a2, _b2;\n const frameElement = (_b2 = (_a2 = node.ownerDocument) == null ? void 0 : _a2.defaultView) == null ? void 0 : _b2.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale + frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale + frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale\n };\n}\nfunction hasShadowRoot(n2) {\n return Boolean(n2 == null ? void 0 : n2.shadowRoot);\n}\nfunction getNestedRule(rules2, position2) {\n const rule = rules2[position2[0]];\n if (position2.length === 1) {\n return rule;\n } else {\n return getNestedRule(\n rule.cssRules[position2[1]].cssRules,\n position2.slice(2)\n );\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n const positions = [...nestedIndex];\n const index = positions.pop();\n return { positions, index };\n}\nfunction uniqueTextMutations(mutations) {\n const idSet = /* @__PURE__ */ new Set();\n const uniqueMutations = [];\n for (let i2 = mutations.length; i2--; ) {\n const mutation = mutations[i2];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n return uniqueMutations;\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField2(this, \"id\", 1);\n __publicField2(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField2(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet))\n return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else\n newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nvar EventType$1 = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType$1 || {});\nvar IncrementalSource$1 = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource$1 || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n};\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpCiAgICAgICAgcmV0dXJuIHRyYW5zcGFyZW50QmxvYk1hcC5nZXQoaWQpOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIHRyYW5zcGFyZW50QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICAgIHJldHVybiBiYXNlNjQ7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfQogIGNvbnN0IHdvcmtlciA9IHNlbGY7CiAgd29ya2VyLm9ubWVzc2FnZSA9IGFzeW5jIGZ1bmN0aW9uKGUpIHsKICAgIGlmICgiT2Zmc2NyZWVuQ2FudmFzIiBpbiBnbG9iYWxUaGlzKSB7CiAgICAgIGNvbnN0IHsgaWQsIGJpdG1hcCwgd2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMgfSA9IGUuZGF0YTsKICAgICAgY29uc3QgdHJhbnNwYXJlbnRCYXNlNjQgPSBnZXRUcmFuc3BhcmVudEJsb2JGb3IoCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0LAogICAgICAgIGRhdGFVUkxPcHRpb25zCiAgICAgICk7CiAgICAgIGNvbnN0IG9mZnNjcmVlbiA9IG5ldyBPZmZzY3JlZW5DYW52YXMod2lkdGgsIGhlaWdodCk7CiAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCIyZCIpOwogICAgICBjdHguZHJhd0ltYWdlKGJpdG1hcCwgMCwgMCk7CiAgICAgIGJpdG1hcC5jbG9zZSgpOwogICAgICBjb25zdCBibG9iID0gYXdhaXQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOwogICAgICBjb25zdCB0eXBlID0gYmxvYi50eXBlOwogICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGF3YWl0IGJsb2IuYXJyYXlCdWZmZXIoKTsKICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsKICAgICAgaWYgKCFsYXN0QmxvYk1hcC5oYXMoaWQpICYmIGF3YWl0IHRyYW5zcGFyZW50QmFzZTY0ID09PSBiYXNlNjQpIHsKICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOwogICAgICB9CiAgICAgIGlmIChsYXN0QmxvYk1hcC5nZXQoaWQpID09PSBiYXNlNjQpCiAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoewogICAgICAgIGlkLAogICAgICAgIHR5cGUsCiAgICAgICAgYmFzZTY0LAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodAogICAgICB9KTsKICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkOiBlLmRhdGEuaWQgfSk7CiAgICB9CiAgfTsKfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtYml0bWFwLWRhdGEtdXJsLXdvcmtlci1CWjFyN1JKRC5qcy5tYXAK\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\ntypeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a$1 = cleanFrame.contentWindow) == null ? void 0 : _a$1.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\ncreateMirror$2();\nvar __defProp22 = Object.defineProperty;\nvar __defNormalProp22 = (obj, key, value) => key in obj ? __defProp22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField22 = (obj, key, value) => {\n __defNormalProp22(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __defProp222 = Object.defineProperty;\nvar __defNormalProp222 = (obj, key, value) => key in obj ? __defProp222(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField222 = (obj, key, value) => {\n __defNormalProp222(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nlet Mirror$1 = class Mirror2 {\n constructor() {\n __publicField222(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField222(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2)\n return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\")\n continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str))\n return str;\n return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField22(this, \"parentElement\", null);\n __publicField22(this, \"parentNode\", null);\n __publicField22(this, \"ownerDocument\");\n __publicField22(this, \"firstChild\", null);\n __publicField22(this, \"lastChild\", null);\n __publicField22(this, \"previousSibling\", null);\n __publicField22(this, \"nextSibling\", null);\n __publicField22(this, \"ELEMENT_NODE\", 1);\n __publicField22(this, \"TEXT_NODE\", 3);\n __publicField22(this, \"nodeType\");\n __publicField22(this, \"nodeName\");\n __publicField22(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes;\n }\n contains(node) {\n if (!(node instanceof BaseRRNode))\n return false;\n else if (node.ownerDocument !== this.ownerDocument)\n return false;\n else if (node === this)\n return true;\n while (node.parentNode) {\n if (node.parentNode === this)\n return true;\n node = node.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField22(this, \"nodeType\", 9);\n __publicField22(this, \"nodeName\", \"#document\");\n __publicField22(this, \"compatMode\", \"CSS1Compat\");\n __publicField22(this, \"RRNodeType\", NodeType$1.Document);\n __publicField22(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node) => node.RRNodeType === NodeType$1.Element && node.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node) => node.RRNodeType === NodeType$1.Element && node.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node) => node.RRNodeType === NodeType$1.Element && node.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node) {\n return removeChild(this, node);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\')\n * 2. doc.write('\\')\n */\n write(content) {\n let publicId;\n if (content === '')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element2 = new BaseRRElement(tagName);\n element2.ownerDocument = this;\n return element2;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text2 = new BaseRRText(data);\n text2.ownerDocument = this;\n return text2;\n }\n createComment(data) {\n const comment = new BaseRRComment(data);\n comment.ownerDocument = this;\n return comment;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField22(this, \"nodeType\", 10);\n __publicField22(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField22(this, \"name\");\n __publicField22(this, \"publicId\");\n __publicField22(this, \"systemId\");\n __publicField22(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField22(this, \"nodeType\", 1);\n __publicField22(this, \"RRNodeType\", NodeType$1.Element);\n __publicField22(this, \"tagName\");\n __publicField22(this, \"attributes\", {});\n __publicField22(this, \"shadowRoot\", null);\n __publicField22(this, \"scrollLeft\");\n __publicField22(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result = \"\";\n this.childNodes.forEach((node) => result += node.textContent);\n return result;\n }\n set textContent(textContent) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name))\n return;\n const normalizedName = camelize(name);\n if (!value)\n delete style[normalizedName];\n else\n style[normalizedName] = value;\n if (priority === \"important\")\n style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name))\n return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n return this.attributes[name] || null;\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node) {\n return removeChild(this, node);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot;\n return shadowRoot;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField22(this, \"currentTime\");\n __publicField22(this, \"volume\");\n __publicField22(this, \"paused\");\n __publicField22(this, \"muted\");\n __publicField22(this, \"playbackRate\");\n __publicField22(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField22(this, \"nodeType\", 3);\n __publicField22(this, \"nodeName\", \"#text\");\n __publicField22(this, \"RRNodeType\", NodeType$1.Text);\n __publicField22(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField22(this, \"nodeType\", 8);\n __publicField22(this, \"nodeName\", \"#comment\");\n __publicField22(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField22(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField22(this, \"nodeName\", \"#cdata-section\");\n __publicField22(this, \"nodeType\", 4);\n __publicField22(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField22(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField22(this, \"onChange\");\n __publicField22(this, \"classes\", []);\n __publicField22(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0)\n continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField22(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode)\n newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild)\n return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild)\n return newChild;\n if (newChild.parentNode)\n newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling)\n newChild.previousSibling.nextSibling = newChild;\n else\n parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else\n parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else\n parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a2;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a2 = oldTree.parentNode) == null ? void 0 : _a2.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument)\n break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot)\n oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a2;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation2) => replayer.applyCanvas(\n canvasMutation2.event,\n canvasMutation2.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a2 = replayer.afterAppend) == null ? void 0 : _a2.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\")\n continue;\n else\n oldTree.setAttribute(name, newValue);\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes))\n oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0)\n return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e2) {\n console.warn(e2);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i2 = oldStartIndex; i2 <= oldEndIndex; i2++) {\n const oldChild2 = oldChildren[i2];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i2;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e2) {\n console.warn(e2);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e2) {\n console.warn(e2);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node = oldChildren[oldStartIndex];\n if (!node || node.parentNode !== oldTree)\n continue;\n try {\n oldTree.removeChild(node);\n replayer.mirror.removeNodeFromMap(node);\n } catch (e2) {\n console.warn(e2);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node = null;\n if (nodeId > -1)\n node = domMirror.getNode(nodeId);\n if (node !== null && sameNodeType(node, rrNode))\n return node;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node = new Document();\n break;\n case NodeType$1.DocumentType:\n node = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else\n node = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn)\n domMirror.add(node, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node);\n } catch (e2) {\n }\n return node;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType)\n return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id)\n return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror2) {\n super();\n __publicField22(this, \"UNSERIALIZED_STARTING_ID\", -2);\n __publicField22(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField22(this, \"mirror\", createMirror());\n __publicField22(this, \"scrollData\", null);\n if (mirror2) {\n this.mirror = mirror2;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element2;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element2 = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element2 = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element2 = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element2 = new RRStyleElement(upperTagName);\n break;\n default:\n element2 = new RRElement(upperTagName);\n break;\n }\n element2.ownerDocument = this;\n return element2;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField22(this, \"inputData\", null);\n __publicField22(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField22(this, \"rr_dataURL\", null);\n __publicField22(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField22(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror2) {\n super(upperTagName);\n __publicField22(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror2;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element2) {\n if (element2 instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element2.tagName.toUpperCase();\n}\nfunction buildFromNode(node, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node.nodeType) {\n case NodeType.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node.compatMode;\n }\n break;\n case NodeType.DOCUMENT_TYPE_NODE: {\n const documentType = node;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType.ELEMENT_NODE: {\n const elementNode = node;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType.TEXT_NODE:\n rrNode = rrdom.createTextNode(node.textContent || \"\");\n break;\n case NodeType.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node.data);\n break;\n case NodeType.COMMENT_NODE:\n rrNode = rrdom.createComment(node.textContent || \"\");\n break;\n case NodeType.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node, parentRRNode) {\n const rrNode = buildFromNode(node, rrdom, domMirror, parentRRNode);\n if (rrNode === null)\n return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node.nodeName === \"IFRAME\") {\n const iframeDoc = node.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node.nodeType === NodeType.DOCUMENT_NODE || node.nodeType === NodeType.ELEMENT_NODE || node.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n if (node.nodeType === NodeType.ELEMENT_NODE && node.shadowRoot)\n walk2(node.shadowRoot, rrNode);\n node.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror22();\n}\nclass Mirror22 {\n constructor() {\n __publicField22(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField22(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2)\n return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node, id) {\n switch (node.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node;\n return {\n id,\n type: node.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node.RRNodeType,\n tagName: node.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node.RRNodeType,\n textContent: node.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node.RRNodeType,\n textContent: node.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node.RRNodeType,\n textContent: \"\"\n };\n }\n}\nfunction mitt$1(n2) {\n return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 ? i2.push(e2) : n2.set(t2, [e2]);\n }, off: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && (e2 ? i2.splice(i2.indexOf(e2) >>> 0, 1) : n2.set(t2, []));\n }, emit: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && i2.slice().map(function(n3) {\n n3(e2);\n }), (i2 = n2.get(\"*\")) && i2.slice().map(function(n3) {\n n3(t2, e2);\n });\n } };\n}\nconst mittProxy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mitt$1\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction polyfill(w = window, d = document) {\n if (\"scrollBehavior\" in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n const Element2 = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element2.prototype.scroll || scrollElement,\n scrollIntoView: Element2.prototype.scrollIntoView\n };\n const now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = [\"MSIE \", \"Trident/\", \"Edge/\"];\n return new RegExp(userAgentPatterns.join(\"|\")).test(userAgent);\n }\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== \"object\" || firstArg.behavior === void 0 || firstArg.behavior === \"auto\" || firstArg.behavior === \"instant\") {\n return true;\n }\n if (typeof firstArg === \"object\" && firstArg.behavior === \"smooth\") {\n return false;\n }\n throw new TypeError(\n \"behavior member of ScrollOptions \" + firstArg.behavior + \" is not a valid value for enumeration ScrollBehavior.\"\n );\n }\n function hasScrollableSpace(el, axis) {\n if (axis === \"Y\") {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === \"X\") {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)[\"overflow\" + axis];\n return overflowValue === \"auto\" || overflowValue === \"scroll\";\n }\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, \"Y\") && canOverflow(el, \"Y\");\n const isScrollableX = hasScrollableSpace(el, \"X\") && canOverflow(el, \"X\");\n return isScrollableY || isScrollableX;\n }\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n elapsed = elapsed > 1 ? 1 : elapsed;\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n function smoothScroll(el, x, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n step({\n scrollable,\n method,\n startTime,\n startX,\n startY,\n x,\n y\n });\n }\n w.scroll = w.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : w.scrollY || w.pageYOffset\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== void 0 ? ~~arguments[0].left : w.scrollX || w.pageXOffset,\n arguments[0].top !== void 0 ? ~~arguments[0].top : w.scrollY || w.pageYOffset\n );\n };\n w.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : 0,\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n Element2.prototype.scroll = Element2.prototype.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n if (typeof arguments[0] === \"number\" && arguments[1] === void 0) {\n throw new SyntaxError(\"Value could not be converted\");\n }\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] !== \"object\" ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop\n );\n return;\n }\n const left = arguments[0].left;\n const top = arguments[0].top;\n smoothScroll.call(\n this,\n this,\n typeof left === \"undefined\" ? this.scrollLeft : ~~left,\n typeof top === \"undefined\" ? this.scrollTop : ~~top\n );\n };\n Element2.prototype.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop\n );\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n Element2.prototype.scrollIntoView = function() {\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === void 0 ? true : arguments[0]\n );\n return;\n }\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n if (w.getComputedStyle(scrollableParent).position !== \"fixed\") {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: \"smooth\"\n });\n }\n } else {\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: \"smooth\"\n });\n }\n };\n}\nclass Timer {\n constructor(actions = [], config) {\n __publicField2(this, \"timeOffset\", 0);\n __publicField2(this, \"speed\");\n __publicField2(this, \"actions\");\n __publicField2(this, \"raf\", null);\n __publicField2(this, \"lastTimestamp\");\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n addAction(action) {\n const rafWasActive = this.raf === true;\n if (!this.actions.length || this.actions[this.actions.length - 1].delay <= action.delay) {\n this.actions.push(action);\n } else {\n const index = this.findActionIndex(action);\n this.actions.splice(index, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true;\n }\n }\n clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n setSpeed(speed) {\n this.speed = speed;\n }\n isActive() {\n return this.raf !== null;\n }\n findActionIndex(action) {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n return mid + 1;\n }\n }\n return start;\n }\n}\nfunction addDelay(event, baselineTime) {\n if (event.type === EventType$1.IncrementalSnapshot && event.data.source === IncrementalSource$1.MouseMove && event.data.positions && event.data.positions.length) {\n const firstOffset = event.data.positions[0].timeOffset;\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t2, n2) {\n var e2 = \"function\" == typeof Symbol && t2[Symbol.iterator];\n if (!e2)\n return t2;\n var r2, o2, i2 = e2.call(t2), a2 = [];\n try {\n for (; (void 0 === n2 || n2-- > 0) && !(r2 = i2.next()).done; )\n a2.push(r2.value);\n } catch (t3) {\n o2 = { error: t3 };\n } finally {\n try {\n r2 && !r2.done && (e2 = i2.return) && e2.call(i2);\n } finally {\n if (o2)\n throw o2.error;\n }\n }\n return a2;\n}\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nvar e = { type: \"xstate.init\" };\nfunction r(t2) {\n return void 0 === t2 ? [] : [].concat(t2);\n}\nfunction o(t2) {\n return { type: \"xstate.assign\", assignment: t2 };\n}\nfunction i$2(t2, n2) {\n return \"string\" == typeof (t2 = \"string\" == typeof t2 && n2 && n2[t2] ? n2[t2] : t2) ? { type: t2 } : \"function\" == typeof t2 ? { type: t2.name, exec: t2 } : t2;\n}\nfunction a(t2) {\n return function(n2) {\n return t2 === n2;\n };\n}\nfunction u(t2) {\n return \"string\" == typeof t2 ? { type: t2 } : t2;\n}\nfunction c(t2, n2) {\n return { value: t2, context: n2, actions: [], changed: false, matches: a(t2) };\n}\nfunction f(t2, n2, e2) {\n var r2 = n2, o2 = false;\n return [t2.filter(function(t3) {\n if (\"xstate.assign\" === t3.type) {\n o2 = true;\n var n3 = Object.assign({}, r2);\n return \"function\" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(o3) {\n n3[o3] = \"function\" == typeof t3.assignment[o3] ? t3.assignment[o3](r2, e2) : t3.assignment[o3];\n }), r2 = n3, false;\n }\n return true;\n }), r2, o2];\n}\nfunction s(n2, o2) {\n void 0 === o2 && (o2 = {});\n var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {\n return i$2(t2, o2.actions);\n }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {\n var s3, l3, v3 = \"string\" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(o3), x = n2.states[p];\n if (x.on) {\n var m = r(x.on[d.type]);\n try {\n for (var h = function(t2) {\n var n3 = \"function\" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;\n if (e3)\n return e3.call(t2);\n if (t2 && \"number\" == typeof t2.length)\n return { next: function() {\n return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };\n } };\n throw new TypeError(n3 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(m), b = h.next(); !b.done; b = h.next()) {\n var S = b.value;\n if (void 0 === S)\n return c(p, g);\n var w = \"string\" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {\n return true;\n } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];\n if (O(g, d)) {\n var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function(t2) {\n return t2;\n })).map(function(t2) {\n return i$2(t2, y._options.actions);\n }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;\n return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };\n }\n }\n } catch (t2) {\n s3 = { error: t2 };\n } finally {\n try {\n b && !b.done && (l3 = h.return) && l3.call(h);\n } finally {\n if (s3)\n throw s3.error;\n }\n }\n }\n return c(p, g);\n } };\n return y;\n}\nvar l = function(t2, n2) {\n return t2.actions.forEach(function(e2) {\n var r2 = e2.exec;\n return r2 && r2(t2.context, n2);\n });\n};\nfunction v(t2) {\n var r2 = t2.initialState, o2 = n.NotStarted, i2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {\n o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach(function(t3) {\n return t3(r2);\n }));\n }, subscribe: function(t3) {\n return i2.add(t3), t3(r2), { unsubscribe: function() {\n return i2.delete(t3);\n } };\n }, start: function(i3) {\n if (i3) {\n var u2 = \"object\" == typeof i3 ? i3 : { context: t2.config.context, value: i3 };\n r2 = { value: u2.value, actions: [], context: u2.context, matches: a(u2.value) };\n }\n return o2 = n.Running, l(r2, e), c2;\n }, stop: function() {\n return o2 = n.Stopped, i2.clear(), c2;\n }, get state() {\n return r2;\n }, get status() {\n return o2;\n } };\n return c2;\n}\nfunction discardPriorSnapshots(events, baselineTime) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType$1.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\n const playerMachine = s(\n {\n id: \"player\",\n context,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n },\n {\n actions: {\n castEvent: o({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === \"CAST_EVENT\") {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n }\n }),\n recordTimeOffset: o((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if (\"payload\" in event && \"timeOffset\" in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset\n };\n }),\n play(ctx) {\n var _a2;\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n for (const event of events) {\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n let lastPlayedTimestamp = lastPlayedEvent == null ? void 0 : lastPlayedEvent.timestamp;\n if ((lastPlayedEvent == null ? void 0 : lastPlayedEvent.type) === EventType$1.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource$1.MouseMove) {\n lastPlayedTimestamp = lastPlayedEvent.timestamp + ((_a2 = lastPlayedEvent.data.positions[0]) == null ? void 0 : _a2.timeOffset);\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n const syncEvents = new Array();\n for (const event of neededEvents) {\n if (lastPlayedTimestamp && lastPlayedTimestamp < baselineTime && (event.timestamp <= lastPlayedTimestamp || event === lastPlayedEvent)) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: o((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null\n };\n }),\n startLive: o({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === \"TO_LIVE\" && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n }\n }),\n addEvent: o((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === \"ADD_EVENT\") {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n return { ...ctx, events };\n })\n }\n }\n );\n return v(playerMachine);\n}\nfunction createSpeedService(context) {\n const speedMachine = s(\n {\n id: \"speed\",\n context,\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if (\"payload\" in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: o({\n normalSpeed: (ctx) => ctx.timer.speed\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n }\n }\n }\n );\n return v(speedMachine);\n}\nconst rules = (blockClass) => [\n `.${blockClass} { background: currentColor }`,\n \"noscript { display: none !important; }\"\n];\nconst webGLVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nfunction deserializeArg(imageMap, ctx, preload) {\n return async (arg) => {\n if (arg && typeof arg === \"object\" && \"rr_type\" in arg) {\n if (preload)\n preload.isUnchanged = false;\n if (arg.rr_type === \"ImageBitmap\" && \"args\" in arg) {\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n return await createImageBitmap.apply(null, args);\n } else if (\"index\" in arg) {\n if (preload || ctx === null)\n return arg;\n const { rr_type: name, index } = arg;\n return variableListFor(ctx, name)[index];\n } else if (\"args\" in arg) {\n const { rr_type: name, args } = arg;\n const ctor = window[name];\n return new ctor(\n ...await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload))\n )\n );\n } else if (\"base64\" in arg) {\n return decode(arg.base64);\n } else if (\"src\" in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image2 = new Image();\n image2.src = arg.src;\n imageMap.set(arg.src, image2);\n return image2;\n }\n } else if (\"data\" in arg && arg.rr_type === \"Blob\") {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload))\n );\n const blob2 = new Blob(blobContents, {\n type: arg.type\n });\n return blob2;\n }\n } else if (Array.isArray(arg)) {\n const result = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload))\n );\n return result;\n }\n return arg;\n };\n}\nfunction getContext(target, type) {\n try {\n if (type === CanvasContext.WebGL) {\n return target.getContext(\"webgl\") || target.getContext(\"experimental-webgl\");\n }\n return target.getContext(\"webgl2\");\n } catch (e2) {\n return null;\n }\n}\nconst WebGLVariableConstructorsNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\"\n];\nfunction saveToWebGLVarMap(ctx, result) {\n if (!(result == null ? void 0 : result.constructor))\n return;\n const { name } = result.constructor;\n if (!WebGLVariableConstructorsNames.includes(name))\n return;\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result))\n variables.push(result);\n}\nasync function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler: errorHandler2\n}) {\n try {\n const ctx = getContext(target, type);\n if (!ctx)\n return;\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx))\n );\n const result = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result);\n const debugMode = false;\n if (debugMode)\n ;\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nasync function canvasMutation$1({\n event,\n mutations,\n target,\n imageMap,\n errorHandler: errorHandler2\n}) {\n const ctx = target.getContext(\"2d\");\n if (!ctx) {\n errorHandler2(mutations[0], new Error(\"Canvas context is null\"));\n return;\n }\n const mutationArgsPromises = mutations.map(\n async (mutation) => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n }\n );\n const args = await Promise.all(mutationArgsPromises);\n args.forEach((args2, index) => {\n const mutation = mutations[index];\n try {\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n if (mutation.property === \"drawImage\" && typeof mutation.args[0] === \"string\") {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args2);\n }\n } catch (error) {\n errorHandler2(mutation, error);\n }\n return;\n });\n}\nasync function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler: errorHandler2\n}) {\n try {\n const precomputedMutation = canvasEventMap.get(event) || mutation;\n const commands = \"commands\" in precomputedMutation ? precomputedMutation.commands : [precomputedMutation];\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i2 = 0; i2 < commands.length; i2++) {\n const command = commands[i2];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n }\n return;\n }\n await canvasMutation$1({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nclass MediaManager {\n constructor(options) {\n __publicField2(this, \"mediaMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"warn\");\n __publicField2(this, \"service\");\n __publicField2(this, \"speedService\");\n __publicField2(this, \"emitter\");\n __publicField2(this, \"getCurrentTime\");\n __publicField2(this, \"metadataCallbackMap\", /* @__PURE__ */ new Map());\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n start() {\n this.syncAllMediaElements();\n }\n pause() {\n this.syncAllMediaElements({ pause: true });\n }\n seekTo({\n time,\n target,\n mediaState\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp = time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset = differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1e3 * mediaState.playbackRate;\n const duration = \"duration\" in target && target.duration;\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n let seekToTime = mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n if (target.loop && // RRMediaElement doesn't have a duration property\n duration !== false) {\n seekToTime = seekToTime % duration;\n }\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n waitForMetadata(target) {\n if (this.metadataCallbackMap.has(target))\n return;\n if (!(\"addEventListener\" in target))\n return;\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState)\n return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n };\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener(\"loadedmetadata\", onLoadedMetadata, {\n once: true\n });\n }\n getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n }) {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n const isPlaying = type === MediaInteractions.Play || type !== MediaInteractions.Pause && ((lastState == null ? void 0 : lastState.isPlaying) || target.getAttribute(\"autoplay\") !== null);\n const mediaState = {\n isPlaying,\n currentTimeAtLastInteraction: currentTime ?? (lastState == null ? void 0 : lastState.currentTimeAtLastInteraction) ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? (lastState == null ? void 0 : lastState.playbackRate) ?? 1,\n volume: volume ?? (lastState == null ? void 0 : lastState.volume) ?? 1,\n muted: muted ?? (lastState == null ? void 0 : lastState.muted) ?? target.getAttribute(\"muted\") === null,\n loop: loop ?? (lastState == null ? void 0 : lastState.loop) ?? target.getAttribute(\"loop\") === null\n };\n return mediaState;\n }\n syncTargetWithState(target) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState)\n return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const playbackRate = mediaState.playbackRate * this.speedService.state.context.timer.speed;\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n if (target.playbackRate !== playbackRate) {\n target.playbackRate = playbackRate;\n }\n if (isPlaying && !playerIsPaused) {\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`\n );\n }\n }\n addMediaElements(node, timeOffset, mirror2) {\n if (![\"AUDIO\", \"VIDEO\"].includes(node.nodeName))\n return;\n const target = node;\n const serializedNode = mirror2.getMeta(target);\n if (!serializedNode || !(\"attributes\" in serializedNode))\n return;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const mediaAttributes = serializedNode.attributes;\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === \"played\";\n } else {\n isPlaying = target.getAttribute(\"autoplay\") !== null;\n }\n if (isPlaying && playerIsPaused)\n target.pause();\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === \"number\") {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === \"boolean\") {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute(\"muted\") !== null;\n }\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === \"boolean\") {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute(\"loop\") !== null;\n }\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === \"number\") {\n volume = mediaAttributes.rr_mediaVolume;\n }\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === \"number\") {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop\n });\n this.syncTargetWithState(target);\n }\n mediaMutation({\n target,\n timeOffset,\n mutation\n }) {\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n })\n );\n this.syncTargetWithState(target);\n }\n isSupportedMediaElement(node) {\n return [\"AUDIO\", \"VIDEO\"].includes(node.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nconst SKIP_TIME_INTERVAL = 5 * 1e3;\nconst mitt = mitt$1 || mittProxy;\nconst REPLAY_CONSOLE_PREFIX = \"[replayer]\";\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n};\nfunction indicatesTouchDevice(e2) {\n return e2.type == EventType$1.IncrementalSnapshot && (e2.data.source == IncrementalSource$1.TouchMove || e2.data.source == IncrementalSource$1.MouseInteraction && e2.data.type == MouseInteractions.TouchStart);\n}\nclass Replayer {\n constructor(events, config) {\n __publicField2(this, \"wrapper\");\n __publicField2(this, \"iframe\");\n __publicField2(this, \"service\");\n __publicField2(this, \"speedService\");\n __publicField2(this, \"config\");\n __publicField2(this, \"usingVirtualDom\", false);\n __publicField2(this, \"virtualDom\", new RRDocument());\n __publicField2(this, \"mouse\");\n __publicField2(this, \"mouseTail\", null);\n __publicField2(this, \"tailPositions\", []);\n __publicField2(this, \"emitter\", mitt());\n __publicField2(this, \"nextUserInteractionEvent\");\n __publicField2(this, \"legacy_missingNodeRetryMap\", {});\n __publicField2(this, \"cache\", createCache());\n __publicField2(this, \"imageMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"mirror\", createMirror$2());\n __publicField2(this, \"styleMirror\", new StyleSheetMirror());\n __publicField2(this, \"mediaManager\");\n __publicField2(this, \"firstFullSnapshot\", null);\n __publicField2(this, \"newDocumentQueue\", []);\n __publicField2(this, \"mousePos\", null);\n __publicField2(this, \"touchActive\", null);\n __publicField2(this, \"lastMouseDownEvent\", null);\n __publicField2(this, \"lastHoveredRootNode\");\n __publicField2(this, \"lastSelectionData\", null);\n __publicField2(this, \"constructedStyleMutations\", []);\n __publicField2(this, \"adoptedStyleSheets\", []);\n __publicField2(this, \"handleResize\", (dimension) => {\n this.iframe.style.display = \"inherit\";\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute(\"width\", String(dimension.width));\n el.setAttribute(\"height\", String(dimension.height));\n }\n });\n __publicField2(this, \"applyEventsSynchronously\", (events2) => {\n for (const event of events2) {\n switch (event.type) {\n case EventType$1.DomContentLoaded:\n case EventType$1.Load:\n case EventType$1.Custom:\n continue;\n case EventType$1.FullSnapshot:\n case EventType$1.Meta:\n case EventType$1.Plugin:\n case EventType$1.IncrementalSnapshot:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n });\n __publicField2(this, \"getCastFn\", (event, isSync = false) => {\n let castFn;\n switch (event.type) {\n case EventType$1.DomContentLoaded:\n case EventType$1.Load:\n break;\n case EventType$1.Custom:\n castFn = () => {\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType$1.Meta:\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n break;\n case EventType$1.FullSnapshot:\n castFn = () => {\n var _a2;\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n this.firstFullSnapshot = true;\n return;\n }\n } else {\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType$1.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay - event.delay > this.config.inactivePeriodThreshold * this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime = (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay - event.delay\n );\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed\n )\n };\n this.speedService.send({ type: \"FAST_FORWARD\", payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n for (const plugin of this.config.plugins || []) {\n if (plugin.handler)\n plugin.handler(event, isSync, { replayer: this });\n }\n this.service.send({ type: \"CAST_EVENT\", payload: { event } });\n const last_index = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && event === this.service.state.context.events[last_index]) {\n const finish = () => {\n if (last_index < this.service.state.context.events.length - 1) {\n return;\n }\n this.backToNormal();\n this.service.send(\"END\");\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finish_buffer = 50;\n if (event.type === EventType$1.IncrementalSnapshot && event.data.source === IncrementalSource$1.MouseMove && event.data.positions.length) {\n finish_buffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finish_buffer);\n }\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n });\n if (!(config == null ? void 0 : config.liveMode) && events.length < 2) {\n throw new Error(\"Replayer need at least 2 events.\");\n }\n const defaultConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1e3,\n showWarning: true,\n showDebug: false,\n blockClass: \"rr-block\",\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true,\n // Virtual-dom optimization is enabled by default.\n logger: console\n };\n this.config = Object.assign({}, defaultConfig, config);\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\n this.setupDom();\n for (const plugin of this.config.plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({ nodeMirror: this.mirror });\n }\n this.emitter.on(ReplayerEvents.Flush, () => {\n if (this.usingVirtualDom) {\n const replayerHandler = {\n mirror: this.mirror,\n applyCanvas: (canvasEvent, canvasMutationData2, target) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData2,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (data, styleSheet) => {\n if (data.source === IncrementalSource$1.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource$1.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node, id) => {\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(node, { id, replayer: this });\n }\n }\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror\n );\n } catch (e2) {\n console.warn(e2);\n }\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node,\n this.mirror,\n this.virtualDom.mirror\n );\n diff(\n realNode,\n value.node,\n replayerHandler,\n this.virtualDom.mirror\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData\n );\n this.mousePos = null;\n }\n if (this.touchActive === true) {\n this.mouse.classList.add(\"touch-active\");\n } else if (this.touchActive === false) {\n this.mouse.classList.remove(\"touch-active\");\n }\n this.touchActive = null;\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n });\n const timer = new Timer([], {\n speed: this.config.speed\n });\n this.service = createPlayerService(\n {\n events: events.map((e2) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e2);\n }\n return e2;\n }).sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }\n );\n this.service.start();\n this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer\n });\n this.speedService.start();\n this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this)\n });\n const firstMeta = this.service.state.context.events.find(\n (e2) => e2.type === EventType$1.Meta\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e2) => e2.type === EventType$1.FullSnapshot\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data;\n setTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(() => {\n var _a2;\n if (this.firstFullSnapshot) {\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot\n );\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(\n firstFullsnapshot.data.initialOffset\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add(\"touch-device\");\n }\n }\n get timer() {\n return this.service.state.context.timer;\n }\n on(event, handler) {\n this.emitter.on(event, handler);\n return this;\n }\n off(event, handler) {\n this.emitter.off(event, handler);\n return this;\n }\n setConfig(config) {\n Object.keys(config).forEach((key) => {\n config[key];\n this.config[key] = config[key];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== \"undefined\") {\n this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: config.speed\n }\n });\n }\n if (typeof config.mouseTail !== \"undefined\") {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = \"none\";\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = \"inherit\";\n }\n }\n }\n getMetaData() {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp\n };\n }\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n getCurrentTime() {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n getTimeOffset() {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n getMirror() {\n return this.mirror;\n }\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n play(timeOffset = 0) {\n var _a2, _b2;\n if (this.service.state.matches(\"paused\")) {\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n } else {\n this.service.send({ type: \"PAUSE\" });\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n }\n (_b2 = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b2.classList.remove(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Start);\n }\n pause(timeOffset) {\n var _a2, _b2;\n if (timeOffset === void 0 && this.service.state.matches(\"playing\")) {\n this.service.send({ type: \"PAUSE\" });\n }\n if (typeof timeOffset === \"number\") {\n this.play(timeOffset);\n this.service.send({ type: \"PAUSE\" });\n }\n (_b2 = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b2.classList.add(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Pause);\n }\n resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n destroy() {\n this.pause();\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.config.root.removeChild(this.wrapper);\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n startLive(baselineTime) {\n this.service.send({ type: \"TO_LIVE\", payload: { baselineTime } });\n }\n addEvent(rawEvent) {\n const event = this.config.unpackFn ? this.config.unpackFn(rawEvent) : rawEvent;\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add(\"touch-device\");\n }\n void Promise.resolve().then(\n () => this.service.send({ type: \"ADD_EVENT\", payload: { event } })\n );\n }\n enableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"auto\");\n this.iframe.style.pointerEvents = \"auto\";\n }\n disableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"no\");\n this.iframe.style.pointerEvents = \"none\";\n }\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n resetCache() {\n this.cache = createCache();\n }\n setupDom() {\n this.wrapper = document.createElement(\"div\");\n this.wrapper.classList.add(\"replayer-wrapper\");\n this.config.root.appendChild(this.wrapper);\n this.mouse = document.createElement(\"div\");\n this.mouse.classList.add(\"replayer-mouse\");\n this.wrapper.appendChild(this.mouse);\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.mouseTail.style.display = \"inherit\";\n this.wrapper.appendChild(this.mouseTail);\n }\n this.iframe = document.createElement(\"iframe\");\n const attributes2 = [\"allow-same-origin\"];\n if (this.config.UNSAFE_replayCanvas) {\n attributes2.push(\"allow-scripts\");\n }\n this.iframe.style.display = \"none\";\n this.iframe.setAttribute(\"sandbox\", attributes2.join(\" \"));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n polyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument\n );\n polyfill$1(this.iframe.contentWindow);\n }\n }\n rebuildFullSnapshot(event, isSync = false) {\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n \"Found unresolved missing node map\",\n this.legacy_missingNodeRetryMap\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collected = [];\n const afterAppend = (builtNode, id) => {\n this.collectIframeAndAttachDocument(collected, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror\n );\n }\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n for (const { mutationInQueue, builtNode } of collected) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"rrweb-paused\");\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n insertStyleRules(documentElement, head) {\n var _a2;\n const injectStylesRules = rules(\n this.config.blockClass\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n \"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\"\n );\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId)\n );\n documentElement.insertBefore(styleEl, head);\n styleEl.rules.push({\n source: IncrementalSource$1.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index) => ({\n rule: cssText,\n index\n }))\n });\n } else {\n const styleEl = document.createElement(\"style\");\n documentElement.insertBefore(\n styleEl,\n head\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n (_a2 = styleEl.sheet) == null ? void 0 : _a2.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n attachDocumentToIframe(mutation, iframeEl) {\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n const collected = [];\n const afterAppend = (builtNode, id) => {\n this.collectIframeAndAttachDocument(collected, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType$2.Element && (sn == null ? void 0 : sn.tagName.toUpperCase()) === \"HTML\") {\n const { documentElement, head } = iframeEl.contentDocument;\n this.insertStyleRules(\n documentElement,\n head\n );\n }\n if (this.usingVirtualDom)\n return;\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument,\n mirror: mirror2,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache\n });\n afterAppend(iframeEl.contentDocument, mutation.node.id);\n for (const { mutationInQueue, builtNode } of collected) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n collectIframeAndAttachDocument(collected, builtNode) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode)\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode\n });\n }\n }\n }\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n waitForStylesheetLoad() {\n var _a2;\n const head = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.head;\n if (head) {\n const unloadSheets = /* @__PURE__ */ new Set();\n let timer;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((css) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener(\"load\", () => {\n unloadSheets.delete(css);\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n if (unloadSheets.size > 0) {\n this.service.send({ type: \"PAUSE\" });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n async preloadAllImages() {\n const promises = [];\n for (const event of this.service.state.context.events) {\n if (event.type === EventType$1.IncrementalSnapshot && event.data.source === IncrementalSource$1.CanvasMutation) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event)\n );\n const commands = \"commands\" in event.data ? event.data.commands : [event.data];\n commands.forEach((c2) => {\n this.preloadImages(c2, event);\n });\n }\n }\n return Promise.all(promises);\n }\n preloadImages(data, event) {\n if (data.property === \"drawImage\" && typeof data.args[0] === \"string\" && !this.imageMap.has(event)) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n const imgd = ctx == null ? void 0 : ctx.createImageData(canvas.width, canvas.height);\n ctx == null ? void 0 : ctx.putImageData(imgd, 0, 0);\n }\n }\n async deserializeAndPreloadCanvasEvents(data, event) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true\n };\n if (\"commands\" in data) {\n const commands = await Promise.all(\n data.commands.map(async (c2) => {\n const args = await Promise.all(\n c2.args.map(deserializeArg(this.imageMap, null, status))\n );\n return { ...c2, args };\n })\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status))\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n applyIncremental(e2, isSync) {\n var _a2, _b2, _c;\n const { data: d } = e2;\n switch (d.source) {\n case IncrementalSource$1.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource$1.Drag:\n case IncrementalSource$1.TouchMove:\n case IncrementalSource$1.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: p.timeOffset + e2.timestamp - this.service.state.context.baselineTime\n };\n this.timer.addAction(action);\n });\n this.timer.addAction({\n doAction() {\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e2.delay - ((_a2 = d.positions[0]) == null ? void 0 : _a2.timeOffset)\n });\n }\n break;\n case IncrementalSource$1.MouseInteraction: {\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if (\"blur\" in target) {\n target.blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && target.focus) {\n target.focus({\n preventScroll: true\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n this.mouse.classList.remove(\"active\");\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"active\");\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"touch-active\");\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove(\"touch-active\");\n } else {\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove(\"touch-active\");\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource$1.Scroll: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource$1.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource$1.Input: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource$1.MediaInteraction: {\n const target = this.usingVirtualDom ? this.virtualDom.mirror.getNode(d.id) : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target;\n const { events } = this.service.state.context;\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e2.timestamp - events[0].timestamp,\n mutation: d\n });\n break;\n }\n case IncrementalSource$1.StyleSheetRule:\n case IncrementalSource$1.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId)\n this.constructedStyleMutations.push(d);\n else if (d.id)\n (_b2 = this.virtualDom.mirror.getNode(d.id)) == null ? void 0 : _b2.rules.push(d);\n } else\n this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource$1.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id\n );\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e2,\n mutation: d\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e2,\n mutation: d,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n }\n break;\n }\n case IncrementalSource$1.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer ? new Uint8Array(JSON.parse(d.fontSource)) : d.fontSource,\n d.descriptors\n );\n (_c = this.iframe.contentDocument) == null ? void 0 : _c.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource$1.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource$1.AdoptedStyleSheet: {\n if (this.usingVirtualDom)\n this.adoptedStyleSheets.push(d);\n else\n this.applyAdoptedStyleSheet(d);\n break;\n }\n }\n }\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n applyMutation(d, isSync) {\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node,\n this.virtualDom,\n this.mirror\n );\n if (virtualNode)\n value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n d.removes = d.removes.filter((mutation) => {\n if (!mirror2.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n return;\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent)) {\n parent = parent.shadowRoot;\n }\n mirror2.removeNodeFromMap(target);\n if (parent)\n try {\n parent.removeChild(target);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_a2 = parent.rules) == null ? void 0 : _a2.length) > 0)\n parent.rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n \"parent could not remove child in mutation\",\n parent,\n target,\n d\n );\n } else {\n throw error;\n }\n }\n });\n const legacy_missingNodeMap = {\n ...this.legacy_missingNodeRetryMap\n };\n const queue = [];\n const nextNotInDOM = (mutation) => {\n let next = null;\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (mutation.nextId !== null && mutation.nextId !== void 0 && mutation.nextId !== -1 && !next) {\n return true;\n }\n return false;\n };\n const appendNode = (mutation) => {\n var _a2, _b2;\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n if (mutation.node.type === NodeType$2.Document) {\n return this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n if (mutation.node.isShadow) {\n if (!hasShadowRoot(parent)) {\n parent.attachShadow({ mode: \"open\" });\n parent = parent.shadowRoot;\n } else\n parent = parent.shadowRoot;\n }\n let previous = null;\n let next = null;\n if (mutation.previousId) {\n previous = mirror2.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n if (mutation.node.rootId && !mirror2.getNode(mutation.node.rootId)) {\n return;\n }\n const targetDoc = mutation.node.rootId ? mirror2.getNode(mutation.node.rootId) : this.usingVirtualDom ? this.virtualDom : this.iframe.contentDocument;\n if (isSerializedIframe(parent, mirror2)) {\n this.attachDocumentToIframe(\n mutation,\n parent\n );\n return;\n }\n const afterAppend = (node, id) => {\n if (this.usingVirtualDom)\n return;\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(node, { id, replayer: this });\n }\n };\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc,\n // can be Document or RRDocument\n mirror: mirror2,\n // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend\n });\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation\n };\n return;\n }\n const parentSn = mirror2.getMeta(parent);\n if (parentSn && parentSn.type === NodeType$2.Element && parentSn.tagName === \"textarea\" && mutation.node.type === NodeType$2.Text) {\n const childNodeArray = Array.isArray(parent.childNodes) ? parent.childNodes : Array.from(parent.childNodes);\n for (const c2 of childNodeArray) {\n if (c2.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c2);\n }\n }\n } else if ((parentSn == null ? void 0 : parentSn.type) === NodeType$2.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType$2.DocumentType && ((_a2 = parentDoc.childNodes[0]) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_TYPE_NODE)\n parentDoc.removeChild(parentDoc.childNodes[0]);\n if (target.nodeName === \"HTML\" && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement\n );\n }\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n parent.insertBefore(\n target,\n previous.nextSibling\n );\n } else if (next && next.parentNode) {\n parent.contains(next) ? parent.insertBefore(target, next) : parent.insertBefore(target, null);\n } else {\n parent.appendChild(target);\n }\n afterAppend(target, mutation.node.id);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_b2 = parent.rules) == null ? void 0 : _b2.length) > 0)\n parent.rules = [];\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation\n );\n }\n };\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n const startTime = Date.now();\n while (queue.length) {\n const resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn(\n \"Timeout in the loop, please check the resolve tree data:\",\n resolveTrees\n );\n break;\n }\n for (const tree of resolveTrees) {\n const parent = mirror2.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n \"Drop resolve tree since there is no parent for the root node.\",\n tree\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n uniqueTextMutations(d.texts).forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n target.textContent = mutation.value;\n if (this.usingVirtualDom) {\n const parent = target.parentNode;\n if (((_a2 = parent == null ? void 0 : parent.rules) == null ? void 0 : _a2.length) > 0)\n parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === \"string\") {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n target.removeAttribute(attributeName);\n } else if (typeof value === \"string\") {\n try {\n if (attributeName === \"_cssText\" && (target.nodeName === \"LINK\" || target.nodeName === \"STYLE\")) {\n try {\n const newSn = mirror2.getMeta(\n target\n );\n Object.assign(\n newSn.attributes,\n mutation.attributes\n );\n const newNode = buildNodeWithSN(newSn, {\n doc: target.ownerDocument,\n // can be Document or RRDocument\n mirror: mirror2,\n skipChild: true,\n hackCss: true,\n cache: this.cache\n });\n const siblingNode = target.nextSibling;\n const parentNode = target.parentNode;\n if (newNode && parentNode) {\n parentNode.removeChild(target);\n parentNode.insertBefore(\n newNode,\n siblingNode\n );\n mirror2.replace(mutation.id, newNode);\n break;\n }\n } catch (e2) {\n }\n }\n if (attributeName === \"value\" && target.nodeName === \"TEXTAREA\") {\n const textarea = target;\n textarea.childNodes.forEach(\n (c2) => textarea.removeChild(c2)\n );\n const tn = (_a2 = target.ownerDocument) == null ? void 0 : _a2.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn);\n }\n } else {\n target.setAttribute(\n attributeName,\n value\n );\n }\n } catch (error) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n error\n );\n }\n } else if (attributeName === \"style\") {\n const styleValues = value;\n const targetEl = target;\n for (const s2 in styleValues) {\n if (styleValues[s2] === false) {\n targetEl.style.removeProperty(s2);\n } else if (styleValues[s2] instanceof Array) {\n const svp = styleValues[s2];\n targetEl.style.setProperty(s2, svp[0], svp[1]);\n } else {\n const svs = styleValues[s2];\n targetEl.style.setProperty(s2, svs);\n }\n }\n }\n }\n }\n });\n }\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n applyScroll(d, isSync) {\n var _a2, _b2;\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else if ((sn == null ? void 0 : sn.type) === NodeType$2.Document) {\n (_b2 = target.defaultView) == null ? void 0 : _b2.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else {\n try {\n target.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } catch (error) {\n }\n }\n }\n applyInput(d) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n target.checked = d.isChecked;\n target.value = d.text;\n } catch (error) {\n }\n }\n applySelection(d) {\n try {\n const selectionSet = /* @__PURE__ */ new Set();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n if (!startContainer || !endContainer)\n return;\n const result = new Range();\n result.setStart(startContainer, startOffset);\n result.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc == null ? void 0 : doc.getSelection();\n selection && selectionSet.add(selection);\n return {\n range: result,\n selection\n };\n });\n selectionSet.forEach((s2) => s2.removeAllRanges());\n ranges.forEach((r2) => {\n var _a2;\n return r2 && ((_a2 = r2.selection) == null ? void 0 : _a2.addRange(r2.range));\n });\n } catch (error) {\n }\n }\n applyStyleSheetMutation(data) {\n var _a2;\n let styleSheet = null;\n if (data.styleId)\n styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet = ((_a2 = this.mirror.getNode(data.id)) == null ? void 0 : _a2.sheet) || null;\n if (!styleSheet)\n return;\n if (data.source === IncrementalSource$1.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource$1.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n applyStyleSheetRule(data, styleSheet) {\n var _a2, _b2, _c, _d;\n (_a2 = data.adds) == null ? void 0 : _a2.forEach(({ rule, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule, index);\n } else {\n const index = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule, index);\n }\n } catch (e2) {\n }\n });\n (_b2 = data.removes) == null ? void 0 : _b2.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n styleSheet == null ? void 0 : styleSheet.deleteRule(nestedIndex);\n }\n } catch (e2) {\n }\n });\n if (data.replace)\n try {\n void ((_c = styleSheet.replace) == null ? void 0 : _c.call(styleSheet, data.replace));\n } catch (e2) {\n }\n if (data.replaceSync)\n try {\n (_d = styleSheet.replaceSync) == null ? void 0 : _d.call(styleSheet, data.replaceSync);\n } catch (e2) {\n }\n }\n applyStyleDeclaration(data, styleSheet) {\n if (data.set) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority\n );\n }\n if (data.remove) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule.style.removeProperty(data.remove.property);\n }\n }\n applyAdoptedStyleSheet(data) {\n var _a2;\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost)\n return;\n (_a2 = data.styles) == null ? void 0 : _a2.forEach((style) => {\n var _a3;\n let newStyleSheet = null;\n let hostWindow = null;\n if (hasShadowRoot(targetHost))\n hostWindow = ((_a3 = targetHost.ownerDocument) == null ? void 0 : _a3.defaultView) || null;\n else if (targetHost.nodeName === \"#document\")\n hostWindow = targetHost.defaultView;\n if (!hostWindow)\n return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n this.applyStyleSheetRule(\n {\n source: IncrementalSource$1.StyleSheetRule,\n adds: style.rules\n },\n newStyleSheet\n );\n } catch (e2) {\n }\n });\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost2, styleIds) => {\n const stylesToAdopt = styleIds.map((styleId) => this.styleMirror.getStyle(styleId)).filter((style) => style !== null);\n if (hasShadowRoot(targetHost2))\n targetHost2.shadowRoot.adoptedStyleSheets = stylesToAdopt;\n else if (targetHost2.nodeName === \"#document\")\n targetHost2.adoptedStyleSheets = stylesToAdopt;\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost2, styleIds),\n 0 + 100 * count\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node, mutation } = previousInMap;\n parent.insertBefore(node, target);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n if (nextInMap) {\n const { node, mutation } = nextInMap;\n parent.insertBefore(\n node,\n target.nextSibling\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n }\n moveAndHover(x, y, id, isSync, debugData) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n const base = getBaseDimension(target, this.iframe);\n const _x = x * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target);\n }\n drawMouseTail(position2) {\n if (!this.mouseTail) {\n return;\n }\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true ? defaultMouseTailConfig : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext(\"2d\");\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n this.tailPositions.push(position2);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position2);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n hoverElements(el) {\n var _a2;\n (_a2 = this.lastHoveredRootNode || this.iframe.contentDocument) == null ? void 0 : _a2.querySelectorAll(\".\\\\:hover\").forEach((hoveredEl) => {\n hoveredEl.classList.remove(\":hover\");\n });\n this.lastHoveredRootNode = el.getRootNode();\n let currentEl = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(\":hover\");\n }\n currentEl = currentEl.parentElement;\n }\n }\n isUserInteraction(event) {\n if (event.type !== EventType$1.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource$1.Mutation && event.data.source <= IncrementalSource$1.Input;\n }\n backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches(\"normal\")) {\n return;\n }\n this.speedService.send({ type: \"BACK_TO_NORMAL\" });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n });\n }\n warnNodeNotFound(d, id) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n warnCanvasMutationFailed(d, error) {\n this.warn(`Has error on canvas update`, error, \"canvas mutation:\", d);\n }\n debugNodeNotFound(d, id) {\n this.debug(`Node with id '${id}' not found. `, d);\n }\n warn(...args) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n debug(...args) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\nvar fleb = new u8([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n]);\nvar fdeb = new u8([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n]);\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nvar freb = function(eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n var r2 = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r2[j] = j - b[i] << 5 | i;\n }\n }\n return [b, r2];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0];\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n var x = (i & 43690) >>> 1 | (i & 21845) << 1;\n x = (x & 52428) >>> 2 | (x & 13107) << 2;\n x = (x & 61680) >>> 4 | (x & 3855) << 4;\n rev[i] = ((x & 65280) >>> 8 | (x & 255) << 8) >>> 1;\n}\nvar hMap = function(cd, mb, r2) {\n var s2 = cd.length;\n var i = 0;\n var l2 = new u16(mb);\n for (; i < s2; ++i)\n ++l2[cd[i] - 1];\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l2[i - 1] << 1;\n }\n var co;\n if (r2) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i = 0; i < s2; ++i) {\n if (cd[i]) {\n var sv = i << 4 | cd[i];\n var r_1 = mb - cd[i];\n var v2 = le[cd[i] - 1]++ << r_1;\n for (var m = v2 | (1 << r_1) - 1; v2 <= m; ++v2) {\n co[rev[v2] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s2);\n for (i = 0; i < s2; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n return co;\n};\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\nvar flrm = /* @__PURE__ */ hMap(flt, 9, 1);\nvar fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);\nvar max = function(a2) {\n var m = a2[0];\n for (var i = 1; i < a2.length; ++i) {\n if (a2[i] > m)\n m = a2[i];\n }\n return m;\n};\nvar bits = function(d, p, m) {\n var o2 = p / 8 >> 0;\n return (d[o2] | d[o2 + 1] << 8) >>> (p & 7) & m;\n};\nvar bits16 = function(d, p) {\n var o2 = p / 8 >> 0;\n return (d[o2] | d[o2 + 1] << 8 | d[o2 + 2] << 16) >>> (p & 7);\n};\nvar shft = function(p) {\n return (p / 8 >> 0) + (p & 7 && 1);\n};\nvar slc = function(v2, s2, e2) {\n if (s2 == null || s2 < 0)\n s2 = 0;\n if (e2 == null || e2 > v2.length)\n e2 = v2.length;\n var n2 = new (v2 instanceof u16 ? u16 : v2 instanceof u32 ? u32 : u8)(e2 - s2);\n n2.set(v2.subarray(s2, e2));\n return n2;\n};\nvar inflt = function(dat, buf, st) {\n var sl = dat.length;\n var noBuf = !buf || st;\n var noSt = !st || st.i;\n if (!st)\n st = {};\n if (!buf)\n buf = new u8(sl * 3);\n var cbuf = function(l22) {\n var bl = buf.length;\n if (l22 > bl) {\n var nbuf = new u8(Math.max(bl * 2, l22));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n st.f = final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s2 = shft(pos) + 4, l2 = dat[s2 - 4] | dat[s2 - 3] << 8, t2 = s2 + l2;\n if (t2 > sl) {\n if (noSt)\n throw \"unexpected EOF\";\n break;\n }\n if (noBuf)\n cbuf(bt + l2);\n buf.set(dat.subarray(s2, t2), bt);\n st.b = bt += l2, st.p = pos = t2 * 8;\n continue;\n } else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl; ) {\n var r2 = clm[bits(dat, pos, clbmsk)];\n pos += r2 & 15;\n var s2 = r2 >>> 4;\n if (s2 < 16) {\n ldt[i++] = s2;\n } else {\n var c2 = 0, n2 = 0;\n if (s2 == 16)\n n2 = 3 + bits(dat, pos, 3), pos += 2, c2 = ldt[i - 1];\n else if (s2 == 17)\n n2 = 3 + bits(dat, pos, 7), pos += 3;\n else if (s2 == 18)\n n2 = 11 + bits(dat, pos, 127), pos += 7;\n while (n2--)\n ldt[i++] = c2;\n }\n }\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else\n throw \"invalid block type\";\n if (pos > tbts)\n throw \"unexpected EOF\";\n }\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n var c2 = lm[bits16(dat, pos) & lms], sym = c2 >>> 4;\n pos += c2 & 15;\n if (pos > tbts)\n throw \"unexpected EOF\";\n if (!c2)\n throw \"invalid length/literal\";\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw \"invalid distance\";\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts)\n throw \"unexpected EOF\";\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\nvar zlv = function(d) {\n if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31)\n throw \"invalid zlib data\";\n if (d[1] & 32)\n throw \"invalid zlib data: preset dictionaries not supported\";\n};\nfunction unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\nfunction strToU8(str, latin1) {\n var l2 = str.length;\n if (!latin1 && typeof TextEncoder != \"undefined\")\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function(v2) {\n ar[ai++] = v2;\n };\n for (var i = 0; i < l2; ++i) {\n if (ai + 5 > ar.length) {\n var n2 = new u8(ai + 8 + (l2 - i << 1));\n n2.set(ar);\n ar = n2;\n }\n var c2 = str.charCodeAt(i);\n if (c2 < 128 || latin1)\n w(c2);\n else if (c2 < 2048)\n w(192 | c2 >>> 6), w(128 | c2 & 63);\n else if (c2 > 55295 && c2 < 57344)\n c2 = 65536 + (c2 & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c2 >>> 18), w(128 | c2 >>> 12 & 63), w(128 | c2 >>> 6 & 63), w(128 | c2 & 63);\n else\n w(224 | c2 >>> 12), w(128 | c2 >>> 6 & 63), w(128 | c2 & 63);\n }\n return slc(ar, 0, ai);\n}\nfunction strFromU8(dat, latin1) {\n var r2 = \"\";\n if (!latin1 && typeof TextDecoder != \"undefined\")\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length; ) {\n var c2 = dat[i++];\n if (c2 < 128 || latin1)\n r2 += String.fromCharCode(c2);\n else if (c2 < 224)\n r2 += String.fromCharCode((c2 & 31) << 6 | dat[i++] & 63);\n else if (c2 < 240)\n r2 += String.fromCharCode((c2 & 15) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63);\n else\n c2 = ((c2 & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | dat[i++] & 63) - 65536, r2 += String.fromCharCode(55296 | c2 >> 10, 56320 | c2 & 1023);\n }\n return r2;\n}\nconst MARK = \"v1\";\nconst unpack = (raw) => {\n if (typeof raw !== \"string\") {\n return raw;\n }\n try {\n const e2 = JSON.parse(raw);\n if (e2.timestamp) {\n return e2;\n }\n } catch (error) {\n }\n try {\n const e2 = JSON.parse(\n strFromU8(unzlibSync(strToU8(raw, true)))\n );\n if (e2.v === MARK) {\n return e2;\n }\n throw new Error(\n `These events were packed with packer ${e2.v} which is incompatible with current packer ${MARK}.`\n );\n } catch (error) {\n console.error(error);\n throw new Error(\"Unknown data format.\");\n }\n};\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nfunction inlineCss(cssObj) {\n let style = \"\";\n Object.keys(cssObj).forEach((key) => {\n style += `${key}: ${cssObj[key]};`;\n });\n return style;\n}\nfunction padZero(num, len = 2) {\n let str = String(num);\n const threshold = Math.pow(10, len - 1);\n if (num < threshold) {\n while (String(threshold).length > str.length) {\n str = `0${num}`;\n }\n }\n return str;\n}\nconst SECOND = 1e3;\nconst MINUTE = 60 * SECOND;\nconst HOUR = 60 * MINUTE;\nfunction formatTime(ms) {\n if (ms <= 0) {\n return \"00:00\";\n }\n const hour = Math.floor(ms / HOUR);\n ms = ms % HOUR;\n const minute = Math.floor(ms / MINUTE);\n ms = ms % MINUTE;\n const second = Math.floor(ms / SECOND);\n if (hour) {\n return `${padZero(hour)}:${padZero(minute)}:${padZero(second)}`;\n }\n return `${padZero(minute)}:${padZero(second)}`;\n}\nfunction openFullscreen(el) {\n if (el.requestFullscreen) {\n return el.requestFullscreen();\n } else if (el.mozRequestFullScreen) {\n return el.mozRequestFullScreen();\n } else if (el.webkitRequestFullscreen) {\n return el.webkitRequestFullscreen();\n } else if (el.msRequestFullscreen) {\n return el.msRequestFullscreen();\n }\n return Promise.resolve();\n}\nfunction exitFullscreen() {\n if (document.exitFullscreen) {\n return document.exitFullscreen();\n } else if (document.mozExitFullscreen) {\n return document.mozExitFullscreen();\n } else if (document.webkitExitFullscreen) {\n return document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) {\n return document.msExitFullscreen();\n }\n return Promise.resolve();\n}\nfunction isFullscreen() {\n let fullscreen = false;\n [\n \"fullscreen\",\n \"webkitIsFullScreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].forEach((fullScreenAccessor) => {\n if (fullScreenAccessor in document) {\n fullscreen = fullscreen || Boolean(document[fullScreenAccessor]);\n }\n });\n return fullscreen;\n}\nfunction onFullscreenChange(handler) {\n document.addEventListener(\"fullscreenchange\", handler);\n document.addEventListener(\"webkitfullscreenchange\", handler);\n document.addEventListener(\"mozfullscreenchange\", handler);\n document.addEventListener(\"MSFullscreenChange\", handler);\n return () => {\n document.removeEventListener(\"fullscreenchange\", handler);\n document.removeEventListener(\"webkitfullscreenchange\", handler);\n document.removeEventListener(\"mozfullscreenchange\", handler);\n document.removeEventListener(\"MSFullscreenChange\", handler);\n };\n}\nfunction typeOf(obj) {\n const toString = Object.prototype.toString;\n const map = {\n \"[object Boolean]\": \"boolean\",\n \"[object Number]\": \"number\",\n \"[object String]\": \"string\",\n \"[object Function]\": \"function\",\n \"[object Array]\": \"array\",\n \"[object Date]\": \"date\",\n \"[object RegExp]\": \"regExp\",\n \"[object Undefined]\": \"undefined\",\n \"[object Null]\": \"null\",\n \"[object Object]\": \"object\"\n };\n return map[toString.call(obj)];\n}\nfunction isUserInteraction(event) {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.Input;\n}\nfunction getInactivePeriods(events, inactivePeriodThreshold) {\n const inactivePeriods = [];\n let lastActiveTime = events[0].timestamp;\n for (const event of events) {\n if (!isUserInteraction(event))\n continue;\n if (event.timestamp - lastActiveTime > inactivePeriodThreshold) {\n inactivePeriods.push([lastActiveTime, event.timestamp]);\n }\n lastActiveTime = event.timestamp;\n }\n return inactivePeriods;\n}\nfunction create_fragment$2(ctx) {\n let div;\n let input;\n let t0;\n let label_1;\n let t1;\n let span;\n let t2;\n let mounted;\n let dispose;\n return {\n c() {\n div = element(\"div\");\n input = element(\"input\");\n t0 = space();\n label_1 = element(\"label\");\n t1 = space();\n span = element(\"span\");\n t2 = text(\n /*label*/\n ctx[3]\n );\n attr(input, \"type\", \"checkbox\");\n attr(\n input,\n \"id\",\n /*id*/\n ctx[2]\n );\n input.disabled = /*disabled*/\n ctx[1];\n attr(input, \"class\", \"svelte-a6h7w7\");\n attr(\n label_1,\n \"for\",\n /*id*/\n ctx[2]\n );\n attr(label_1, \"class\", \"svelte-a6h7w7\");\n attr(span, \"class\", \"label svelte-a6h7w7\");\n attr(div, \"class\", \"switch svelte-a6h7w7\");\n toggle_class(\n div,\n \"disabled\",\n /*disabled*/\n ctx[1]\n );\n },\n m(target, anchor) {\n insert(target, div, anchor);\n append(div, input);\n input.checked = /*checked*/\n ctx[0];\n append(div, t0);\n append(div, label_1);\n append(div, t1);\n append(div, span);\n append(span, t2);\n if (!mounted) {\n dispose = listen(\n input,\n \"change\",\n /*input_change_handler*/\n ctx[4]\n );\n mounted = true;\n }\n },\n p(ctx2, [dirty]) {\n if (dirty & /*id*/\n 4) {\n attr(\n input,\n \"id\",\n /*id*/\n ctx2[2]\n );\n }\n if (dirty & /*disabled*/\n 2) {\n input.disabled = /*disabled*/\n ctx2[1];\n }\n if (dirty & /*checked*/\n 1) {\n input.checked = /*checked*/\n ctx2[0];\n }\n if (dirty & /*id*/\n 4) {\n attr(\n label_1,\n \"for\",\n /*id*/\n ctx2[2]\n );\n }\n if (dirty & /*label*/\n 8)\n set_data(\n t2,\n /*label*/\n ctx2[3]\n );\n if (dirty & /*disabled*/\n 2) {\n toggle_class(\n div,\n \"disabled\",\n /*disabled*/\n ctx2[1]\n );\n }\n },\n i: noop,\n o: noop,\n d(detaching) {\n if (detaching) {\n detach(div);\n }\n mounted = false;\n dispose();\n }\n };\n}\nfunction instance$2($$self, $$props, $$invalidate) {\n let { disabled } = $$props;\n let { checked } = $$props;\n let { id } = $$props;\n let { label } = $$props;\n function input_change_handler() {\n checked = this.checked;\n $$invalidate(0, checked);\n }\n $$self.$$set = ($$props2) => {\n if (\"disabled\" in $$props2)\n $$invalidate(1, disabled = $$props2.disabled);\n if (\"checked\" in $$props2)\n $$invalidate(0, checked = $$props2.checked);\n if (\"id\" in $$props2)\n $$invalidate(2, id = $$props2.id);\n if (\"label\" in $$props2)\n $$invalidate(3, label = $$props2.label);\n };\n return [checked, disabled, id, label, input_change_handler];\n}\nclass Switch extends SvelteComponent {\n constructor(options) {\n super();\n init(this, options, instance$2, create_fragment$2, safe_not_equal, { disabled: 1, checked: 0, id: 2, label: 3 });\n }\n}\nfunction get_each_context(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[38] = list[i];\n return child_ctx;\n}\nfunction get_each_context_1(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[41] = list[i];\n return child_ctx;\n}\nfunction get_each_context_2(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[44] = list[i];\n return child_ctx;\n}\nfunction create_if_block$1(ctx) {\n let div5;\n let div3;\n let span0;\n let t0_value = formatTime(\n /*currentTime*/\n ctx[6]\n ) + \"\";\n let t0;\n let t1;\n let div2;\n let div0;\n let t2;\n let t3;\n let t4;\n let div1;\n let t5;\n let span1;\n let t6_value = formatTime(\n /*meta*/\n ctx[8].totalTime\n ) + \"\";\n let t6;\n let t7;\n let div4;\n let button0;\n let t8;\n let t9;\n let switch_1;\n let updating_checked;\n let t10;\n let button1;\n let current;\n let mounted;\n let dispose;\n let each_value_2 = ensure_array_like(\n /*inactivePeriods*/\n ctx[13]\n );\n let each_blocks_2 = [];\n for (let i = 0; i < each_value_2.length; i += 1) {\n each_blocks_2[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i));\n }\n let each_value_1 = ensure_array_like(\n /*customEvents*/\n ctx[9]\n );\n let each_blocks_1 = [];\n for (let i = 0; i < each_value_1.length; i += 1) {\n each_blocks_1[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i));\n }\n function select_block_type(ctx2, dirty) {\n if (\n /*playerState*/\n ctx2[7] === \"playing\"\n )\n return create_if_block_1;\n return create_else_block;\n }\n let current_block_type = select_block_type(ctx);\n let if_block = current_block_type(ctx);\n let each_value = ensure_array_like(\n /*speedOption*/\n ctx[3]\n );\n let each_blocks = [];\n for (let i = 0; i < each_value.length; i += 1) {\n each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));\n }\n function switch_1_checked_binding(value) {\n ctx[29](value);\n }\n let switch_1_props = {\n id: \"skip\",\n disabled: (\n /*speedState*/\n ctx[10] === \"skipping\"\n ),\n label: \"skip inactive\"\n };\n if (\n /*skipInactive*/\n ctx[0] !== void 0\n ) {\n switch_1_props.checked = /*skipInactive*/\n ctx[0];\n }\n switch_1 = new Switch({ props: switch_1_props });\n binding_callbacks.push(() => bind(switch_1, \"checked\", switch_1_checked_binding));\n return {\n c() {\n div5 = element(\"div\");\n div3 = element(\"div\");\n span0 = element(\"span\");\n t0 = text(t0_value);\n t1 = space();\n div2 = element(\"div\");\n div0 = element(\"div\");\n t2 = space();\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].c();\n }\n t3 = space();\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].c();\n }\n t4 = space();\n div1 = element(\"div\");\n t5 = space();\n span1 = element(\"span\");\n t6 = text(t6_value);\n t7 = space();\n div4 = element(\"div\");\n button0 = element(\"button\");\n if_block.c();\n t8 = space();\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n t9 = space();\n create_component(switch_1.$$.fragment);\n t10 = space();\n button1 = element(\"button\");\n button1.innerHTML = ``;\n attr(span0, \"class\", \"rr-timeline__time svelte-189zk2r\");\n attr(div0, \"class\", \"rr-progress__step svelte-189zk2r\");\n set_style(\n div0,\n \"width\",\n /*percentage*/\n ctx[12]\n );\n attr(div1, \"class\", \"rr-progress__handler svelte-189zk2r\");\n set_style(\n div1,\n \"left\",\n /*percentage*/\n ctx[12]\n );\n attr(div2, \"class\", \"rr-progress svelte-189zk2r\");\n toggle_class(\n div2,\n \"disabled\",\n /*speedState*/\n ctx[10] === \"skipping\"\n );\n attr(span1, \"class\", \"rr-timeline__time svelte-189zk2r\");\n attr(div3, \"class\", \"rr-timeline svelte-189zk2r\");\n attr(button0, \"class\", \"svelte-189zk2r\");\n attr(button1, \"class\", \"svelte-189zk2r\");\n attr(div4, \"class\", \"rr-controller__btns svelte-189zk2r\");\n attr(div5, \"class\", \"rr-controller svelte-189zk2r\");\n },\n m(target, anchor) {\n insert(target, div5, anchor);\n append(div5, div3);\n append(div3, span0);\n append(span0, t0);\n append(div3, t1);\n append(div3, div2);\n append(div2, div0);\n append(div2, t2);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n if (each_blocks_2[i]) {\n each_blocks_2[i].m(div2, null);\n }\n }\n append(div2, t3);\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n if (each_blocks_1[i]) {\n each_blocks_1[i].m(div2, null);\n }\n }\n append(div2, t4);\n append(div2, div1);\n ctx[27](div2);\n append(div3, t5);\n append(div3, span1);\n append(span1, t6);\n append(div5, t7);\n append(div5, div4);\n append(div4, button0);\n if_block.m(button0, null);\n append(div4, t8);\n for (let i = 0; i < each_blocks.length; i += 1) {\n if (each_blocks[i]) {\n each_blocks[i].m(div4, null);\n }\n }\n append(div4, t9);\n mount_component(switch_1, div4, null);\n append(div4, t10);\n append(div4, button1);\n current = true;\n if (!mounted) {\n dispose = [\n listen(\n div2,\n \"click\",\n /*handleProgressClick*/\n ctx[15]\n ),\n listen(\n div2,\n \"keydown\",\n /*handleProgressKeydown*/\n ctx[16]\n ),\n listen(\n button0,\n \"click\",\n /*toggle*/\n ctx[4]\n ),\n listen(\n button1,\n \"click\",\n /*click_handler_1*/\n ctx[30]\n )\n ];\n mounted = true;\n }\n },\n p(ctx2, dirty) {\n if ((!current || dirty[0] & /*currentTime*/\n 64) && t0_value !== (t0_value = formatTime(\n /*currentTime*/\n ctx2[6]\n ) + \"\"))\n set_data(t0, t0_value);\n if (!current || dirty[0] & /*percentage*/\n 4096) {\n set_style(\n div0,\n \"width\",\n /*percentage*/\n ctx2[12]\n );\n }\n if (dirty[0] & /*inactivePeriods*/\n 8192) {\n each_value_2 = ensure_array_like(\n /*inactivePeriods*/\n ctx2[13]\n );\n let i;\n for (i = 0; i < each_value_2.length; i += 1) {\n const child_ctx = get_each_context_2(ctx2, each_value_2, i);\n if (each_blocks_2[i]) {\n each_blocks_2[i].p(child_ctx, dirty);\n } else {\n each_blocks_2[i] = create_each_block_2(child_ctx);\n each_blocks_2[i].c();\n each_blocks_2[i].m(div2, t3);\n }\n }\n for (; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].d(1);\n }\n each_blocks_2.length = each_value_2.length;\n }\n if (dirty[0] & /*customEvents*/\n 512) {\n each_value_1 = ensure_array_like(\n /*customEvents*/\n ctx2[9]\n );\n let i;\n for (i = 0; i < each_value_1.length; i += 1) {\n const child_ctx = get_each_context_1(ctx2, each_value_1, i);\n if (each_blocks_1[i]) {\n each_blocks_1[i].p(child_ctx, dirty);\n } else {\n each_blocks_1[i] = create_each_block_1(child_ctx);\n each_blocks_1[i].c();\n each_blocks_1[i].m(div2, t4);\n }\n }\n for (; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].d(1);\n }\n each_blocks_1.length = each_value_1.length;\n }\n if (!current || dirty[0] & /*percentage*/\n 4096) {\n set_style(\n div1,\n \"left\",\n /*percentage*/\n ctx2[12]\n );\n }\n if (!current || dirty[0] & /*speedState*/\n 1024) {\n toggle_class(\n div2,\n \"disabled\",\n /*speedState*/\n ctx2[10] === \"skipping\"\n );\n }\n if ((!current || dirty[0] & /*meta*/\n 256) && t6_value !== (t6_value = formatTime(\n /*meta*/\n ctx2[8].totalTime\n ) + \"\"))\n set_data(t6, t6_value);\n if (current_block_type !== (current_block_type = select_block_type(ctx2))) {\n if_block.d(1);\n if_block = current_block_type(ctx2);\n if (if_block) {\n if_block.c();\n if_block.m(button0, null);\n }\n }\n if (dirty[0] & /*speedState, speedOption, speed, setSpeed*/\n 1066) {\n each_value = ensure_array_like(\n /*speedOption*/\n ctx2[3]\n );\n let i;\n for (i = 0; i < each_value.length; i += 1) {\n const child_ctx = get_each_context(ctx2, each_value, i);\n if (each_blocks[i]) {\n each_blocks[i].p(child_ctx, dirty);\n } else {\n each_blocks[i] = create_each_block(child_ctx);\n each_blocks[i].c();\n each_blocks[i].m(div4, t9);\n }\n }\n for (; i < each_blocks.length; i += 1) {\n each_blocks[i].d(1);\n }\n each_blocks.length = each_value.length;\n }\n const switch_1_changes = {};\n if (dirty[0] & /*speedState*/\n 1024)\n switch_1_changes.disabled = /*speedState*/\n ctx2[10] === \"skipping\";\n if (!updating_checked && dirty[0] & /*skipInactive*/\n 1) {\n updating_checked = true;\n switch_1_changes.checked = /*skipInactive*/\n ctx2[0];\n add_flush_callback(() => updating_checked = false);\n }\n switch_1.$set(switch_1_changes);\n },\n i(local) {\n if (current)\n return;\n transition_in(switch_1.$$.fragment, local);\n current = true;\n },\n o(local) {\n transition_out(switch_1.$$.fragment, local);\n current = false;\n },\n d(detaching) {\n if (detaching) {\n detach(div5);\n }\n destroy_each(each_blocks_2, detaching);\n destroy_each(each_blocks_1, detaching);\n ctx[27](null);\n if_block.d();\n destroy_each(each_blocks, detaching);\n destroy_component(switch_1);\n mounted = false;\n run_all(dispose);\n }\n };\n}\nfunction create_each_block_2(ctx) {\n let div;\n let div_title_value;\n return {\n c() {\n div = element(\"div\");\n attr(div, \"title\", div_title_value = /*period*/\n ctx[44].name);\n set_style(\n div,\n \"width\",\n /*period*/\n ctx[44].width\n );\n set_style(div, \"height\", \"4px\");\n set_style(div, \"position\", \"absolute\");\n set_style(\n div,\n \"background\",\n /*period*/\n ctx[44].background\n );\n set_style(\n div,\n \"left\",\n /*period*/\n ctx[44].position\n );\n },\n m(target, anchor) {\n insert(target, div, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & /*inactivePeriods*/\n 8192 && div_title_value !== (div_title_value = /*period*/\n ctx2[44].name)) {\n attr(div, \"title\", div_title_value);\n }\n if (dirty[0] & /*inactivePeriods*/\n 8192) {\n set_style(\n div,\n \"width\",\n /*period*/\n ctx2[44].width\n );\n }\n if (dirty[0] & /*inactivePeriods*/\n 8192) {\n set_style(\n div,\n \"background\",\n /*period*/\n ctx2[44].background\n );\n }\n if (dirty[0] & /*inactivePeriods*/\n 8192) {\n set_style(\n div,\n \"left\",\n /*period*/\n ctx2[44].position\n );\n }\n },\n d(detaching) {\n if (detaching) {\n detach(div);\n }\n }\n };\n}\nfunction create_each_block_1(ctx) {\n let div;\n let div_title_value;\n return {\n c() {\n div = element(\"div\");\n attr(div, \"title\", div_title_value = /*event*/\n ctx[41].name);\n set_style(div, \"width\", \"10px\");\n set_style(div, \"height\", \"5px\");\n set_style(div, \"position\", \"absolute\");\n set_style(div, \"top\", \"2px\");\n set_style(div, \"transform\", \"translate(-50%, -50%)\");\n set_style(\n div,\n \"background\",\n /*event*/\n ctx[41].background\n );\n set_style(\n div,\n \"left\",\n /*event*/\n ctx[41].position\n );\n },\n m(target, anchor) {\n insert(target, div, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & /*customEvents*/\n 512 && div_title_value !== (div_title_value = /*event*/\n ctx2[41].name)) {\n attr(div, \"title\", div_title_value);\n }\n if (dirty[0] & /*customEvents*/\n 512) {\n set_style(\n div,\n \"background\",\n /*event*/\n ctx2[41].background\n );\n }\n if (dirty[0] & /*customEvents*/\n 512) {\n set_style(\n div,\n \"left\",\n /*event*/\n ctx2[41].position\n );\n }\n },\n d(detaching) {\n if (detaching) {\n detach(div);\n }\n }\n };\n}\nfunction create_else_block(ctx) {\n let svg;\n let path;\n return {\n c() {\n svg = svg_element(\"svg\");\n path = svg_element(\"path\");\n attr(path, \"d\", \"M170.65984 896l0-768 640 384zM644.66944\\n 512l-388.66944-233.32864 0 466.65728z\");\n attr(svg, \"class\", \"icon\");\n attr(svg, \"viewBox\", \"0 0 1024 1024\");\n attr(svg, \"version\", \"1.1\");\n attr(svg, \"xmlns\", \"http://www.w3.org/2000/svg\");\n attr(svg, \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n attr(svg, \"width\", \"16\");\n attr(svg, \"height\", \"16\");\n },\n m(target, anchor) {\n insert(target, svg, anchor);\n append(svg, path);\n },\n d(detaching) {\n if (detaching) {\n detach(svg);\n }\n }\n };\n}\nfunction create_if_block_1(ctx) {\n let svg;\n let path;\n return {\n c() {\n svg = svg_element(\"svg\");\n path = svg_element(\"path\");\n attr(path, \"d\", \"M682.65984 128q53.00224 0 90.50112 37.49888t37.49888 90.50112l0\\n 512q0 53.00224-37.49888 90.50112t-90.50112\\n 37.49888-90.50112-37.49888-37.49888-90.50112l0-512q0-53.00224\\n 37.49888-90.50112t90.50112-37.49888zM341.34016 128q53.00224 0\\n 90.50112 37.49888t37.49888 90.50112l0 512q0 53.00224-37.49888\\n 90.50112t-90.50112\\n 37.49888-90.50112-37.49888-37.49888-90.50112l0-512q0-53.00224\\n 37.49888-90.50112t90.50112-37.49888zM341.34016 213.34016q-17.67424\\n 0-30.16704 12.4928t-12.4928 30.16704l0 512q0 17.67424 12.4928\\n 30.16704t30.16704 12.4928 30.16704-12.4928\\n 12.4928-30.16704l0-512q0-17.67424-12.4928-30.16704t-30.16704-12.4928zM682.65984\\n 213.34016q-17.67424 0-30.16704 12.4928t-12.4928 30.16704l0 512q0\\n 17.67424 12.4928 30.16704t30.16704 12.4928 30.16704-12.4928\\n 12.4928-30.16704l0-512q0-17.67424-12.4928-30.16704t-30.16704-12.4928z\");\n attr(svg, \"class\", \"icon\");\n attr(svg, \"viewBox\", \"0 0 1024 1024\");\n attr(svg, \"version\", \"1.1\");\n attr(svg, \"xmlns\", \"http://www.w3.org/2000/svg\");\n attr(svg, \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n attr(svg, \"width\", \"16\");\n attr(svg, \"height\", \"16\");\n },\n m(target, anchor) {\n insert(target, svg, anchor);\n append(svg, path);\n },\n d(detaching) {\n if (detaching) {\n detach(svg);\n }\n }\n };\n}\nfunction create_each_block(ctx) {\n let button;\n let t0_value = (\n /*s*/\n ctx[38] + \"\"\n );\n let t0;\n let t1;\n let button_disabled_value;\n let mounted;\n let dispose;\n function click_handler() {\n return (\n /*click_handler*/\n ctx[28](\n /*s*/\n ctx[38]\n )\n );\n }\n return {\n c() {\n button = element(\"button\");\n t0 = text(t0_value);\n t1 = text(\"x\");\n button.disabled = button_disabled_value = /*speedState*/\n ctx[10] === \"skipping\";\n attr(button, \"class\", \"svelte-189zk2r\");\n toggle_class(\n button,\n \"active\",\n /*s*/\n ctx[38] === /*speed*/\n ctx[1] && /*speedState*/\n ctx[10] !== \"skipping\"\n );\n },\n m(target, anchor) {\n insert(target, button, anchor);\n append(button, t0);\n append(button, t1);\n if (!mounted) {\n dispose = listen(button, \"click\", click_handler);\n mounted = true;\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & /*speedOption*/\n 8 && t0_value !== (t0_value = /*s*/\n ctx[38] + \"\"))\n set_data(t0, t0_value);\n if (dirty[0] & /*speedState*/\n 1024 && button_disabled_value !== (button_disabled_value = /*speedState*/\n ctx[10] === \"skipping\")) {\n button.disabled = button_disabled_value;\n }\n if (dirty[0] & /*speedOption, speed, speedState*/\n 1034) {\n toggle_class(\n button,\n \"active\",\n /*s*/\n ctx[38] === /*speed*/\n ctx[1] && /*speedState*/\n ctx[10] !== \"skipping\"\n );\n }\n },\n d(detaching) {\n if (detaching) {\n detach(button);\n }\n mounted = false;\n dispose();\n }\n };\n}\nfunction create_fragment$1(ctx) {\n let if_block_anchor;\n let current;\n let if_block = (\n /*showController*/\n ctx[2] && create_if_block$1(ctx)\n );\n return {\n c() {\n if (if_block)\n if_block.c();\n if_block_anchor = empty();\n },\n m(target, anchor) {\n if (if_block)\n if_block.m(target, anchor);\n insert(target, if_block_anchor, anchor);\n current = true;\n },\n p(ctx2, dirty) {\n if (\n /*showController*/\n ctx2[2]\n ) {\n if (if_block) {\n if_block.p(ctx2, dirty);\n if (dirty[0] & /*showController*/\n 4) {\n transition_in(if_block, 1);\n }\n } else {\n if_block = create_if_block$1(ctx2);\n if_block.c();\n transition_in(if_block, 1);\n if_block.m(if_block_anchor.parentNode, if_block_anchor);\n }\n } else if (if_block) {\n group_outros();\n transition_out(if_block, 1, 1, () => {\n if_block = null;\n });\n check_outros();\n }\n },\n i(local) {\n if (current)\n return;\n transition_in(if_block);\n current = true;\n },\n o(local) {\n transition_out(if_block);\n current = false;\n },\n d(detaching) {\n if (detaching) {\n detach(if_block_anchor);\n }\n if (if_block)\n if_block.d(detaching);\n }\n };\n}\nfunction position(startTime, endTime, tagTime) {\n const sessionDuration = endTime - startTime;\n const eventDuration = endTime - tagTime;\n const eventPosition = 100 - eventDuration / sessionDuration * 100;\n return eventPosition.toFixed(2);\n}\nfunction instance$1($$self, $$props, $$invalidate) {\n const dispatch = createEventDispatcher();\n let { replayer } = $$props;\n let { showController } = $$props;\n let { autoPlay } = $$props;\n let { skipInactive } = $$props;\n let { speedOption } = $$props;\n let { speed = speedOption.length ? speedOption[0] : 1 } = $$props;\n let { tags = {} } = $$props;\n let { inactiveColor } = $$props;\n let currentTime = 0;\n let timer = null;\n let playerState;\n let speedState;\n let progress;\n let finished;\n let pauseAt = false;\n let onPauseHook = null;\n let loop = null;\n let meta;\n let percentage;\n let customEvents;\n let inactivePeriods;\n const loopTimer = () => {\n stopTimer();\n function update2() {\n $$invalidate(6, currentTime = replayer.getCurrentTime());\n if (pauseAt && currentTime >= pauseAt) {\n if (loop) {\n playRange(loop.start, loop.end, true, void 0);\n } else {\n replayer.pause();\n if (onPauseHook) {\n onPauseHook();\n onPauseHook = null;\n }\n }\n }\n if (currentTime < meta.totalTime) {\n timer = requestAnimationFrame(update2);\n }\n }\n timer = requestAnimationFrame(update2);\n };\n const stopTimer = () => {\n if (timer) {\n cancelAnimationFrame(timer);\n timer = null;\n }\n };\n const toggle = () => {\n switch (playerState) {\n case \"playing\":\n pause();\n break;\n case \"paused\":\n play();\n break;\n }\n };\n const play = () => {\n if (playerState !== \"paused\") {\n return;\n }\n if (finished) {\n replayer.play();\n finished = false;\n } else {\n replayer.play(currentTime);\n }\n };\n const pause = () => {\n if (playerState !== \"playing\") {\n return;\n }\n replayer.pause();\n pauseAt = false;\n };\n const goto = (timeOffset, play2) => {\n $$invalidate(6, currentTime = timeOffset);\n pauseAt = false;\n finished = false;\n const resumePlaying = typeof play2 === \"boolean\" ? play2 : playerState === \"playing\";\n if (resumePlaying) {\n replayer.play(timeOffset);\n } else {\n replayer.pause(timeOffset);\n }\n };\n const playRange = (timeOffset, endTimeOffset, startLooping = false, afterHook = void 0) => {\n if (startLooping) {\n loop = { start: timeOffset, end: endTimeOffset };\n } else {\n loop = null;\n }\n $$invalidate(6, currentTime = timeOffset);\n pauseAt = endTimeOffset;\n onPauseHook = afterHook || null;\n replayer.play(timeOffset);\n };\n const handleProgressClick = (event) => {\n if (speedState === \"skipping\") {\n return;\n }\n const progressRect = progress.getBoundingClientRect();\n const x = event.clientX - progressRect.left;\n let percent = x / progressRect.width;\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n const timeOffset = meta.totalTime * percent;\n goto(timeOffset);\n };\n const handleProgressKeydown = (event) => {\n if (speedState === \"skipping\") {\n return;\n }\n if (event.key === \"ArrowLeft\") {\n goto(currentTime - 5);\n } else if (event.key === \"ArrowRight\") {\n goto(currentTime + 5);\n }\n };\n const setSpeed = (newSpeed) => {\n let needFreeze = playerState === \"playing\";\n $$invalidate(1, speed = newSpeed);\n if (needFreeze) {\n replayer.pause();\n }\n replayer.setConfig({ speed });\n if (needFreeze) {\n replayer.play(currentTime);\n }\n };\n const toggleSkipInactive = () => {\n $$invalidate(0, skipInactive = !skipInactive);\n };\n const triggerUpdateMeta = () => {\n return Promise.resolve().then(() => {\n $$invalidate(8, meta = replayer.getMetaData());\n });\n };\n onMount(() => {\n $$invalidate(7, playerState = replayer.service.state.value);\n $$invalidate(10, speedState = replayer.speedService.state.value);\n replayer.on(\"state-change\", (states) => {\n const { player, speed: speed2 } = states;\n if ((player == null ? void 0 : player.value) && playerState !== player.value) {\n $$invalidate(7, playerState = player.value);\n switch (playerState) {\n case \"playing\":\n loopTimer();\n break;\n case \"paused\":\n stopTimer();\n break;\n }\n }\n if ((speed2 == null ? void 0 : speed2.value) && speedState !== speed2.value) {\n $$invalidate(10, speedState = speed2.value);\n }\n });\n replayer.on(\"finish\", () => {\n finished = true;\n if (onPauseHook) {\n onPauseHook();\n onPauseHook = null;\n }\n });\n if (autoPlay) {\n replayer.play();\n }\n });\n afterUpdate(() => {\n if (skipInactive !== replayer.config.skipInactive) {\n replayer.setConfig({ skipInactive });\n }\n });\n onDestroy(() => {\n replayer.pause();\n stopTimer();\n });\n function div2_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n progress = $$value;\n $$invalidate(11, progress);\n });\n }\n const click_handler = (s2) => setSpeed(s2);\n function switch_1_checked_binding(value) {\n skipInactive = value;\n $$invalidate(0, skipInactive);\n }\n const click_handler_1 = () => dispatch(\"fullscreen\");\n $$self.$$set = ($$props2) => {\n if (\"replayer\" in $$props2)\n $$invalidate(17, replayer = $$props2.replayer);\n if (\"showController\" in $$props2)\n $$invalidate(2, showController = $$props2.showController);\n if (\"autoPlay\" in $$props2)\n $$invalidate(18, autoPlay = $$props2.autoPlay);\n if (\"skipInactive\" in $$props2)\n $$invalidate(0, skipInactive = $$props2.skipInactive);\n if (\"speedOption\" in $$props2)\n $$invalidate(3, speedOption = $$props2.speedOption);\n if (\"speed\" in $$props2)\n $$invalidate(1, speed = $$props2.speed);\n if (\"tags\" in $$props2)\n $$invalidate(19, tags = $$props2.tags);\n if (\"inactiveColor\" in $$props2)\n $$invalidate(20, inactiveColor = $$props2.inactiveColor);\n };\n $$self.$$.update = () => {\n if ($$self.$$.dirty[0] & /*currentTime*/\n 64) {\n {\n dispatch(\"ui-update-current-time\", { payload: currentTime });\n }\n }\n if ($$self.$$.dirty[0] & /*playerState*/\n 128) {\n {\n dispatch(\"ui-update-player-state\", { payload: playerState });\n }\n }\n if ($$self.$$.dirty[0] & /*replayer*/\n 131072) {\n $$invalidate(8, meta = replayer.getMetaData());\n }\n if ($$self.$$.dirty[0] & /*currentTime, meta*/\n 320) {\n {\n const percent = Math.min(1, currentTime / meta.totalTime);\n $$invalidate(12, percentage = `${100 * percent}%`);\n dispatch(\"ui-update-progress\", { payload: percent });\n }\n }\n if ($$self.$$.dirty[0] & /*replayer, tags*/\n 655360) {\n $$invalidate(9, customEvents = (() => {\n const { context } = replayer.service.state;\n const totalEvents = context.events.length;\n const start = context.events[0].timestamp;\n const end = context.events[totalEvents - 1].timestamp;\n const customEvents2 = [];\n context.events.forEach((event) => {\n if (event.type === EventType.Custom) {\n const customEvent = {\n name: event.data.tag,\n background: tags[event.data.tag] || \"rgb(73, 80, 246)\",\n position: `${position(start, end, event.timestamp)}%`\n };\n customEvents2.push(customEvent);\n }\n });\n return customEvents2;\n })());\n }\n if ($$self.$$.dirty[0] & /*replayer, inactiveColor*/\n 1179648) {\n $$invalidate(13, inactivePeriods = (() => {\n try {\n const { context } = replayer.service.state;\n const totalEvents = context.events.length;\n const start = context.events[0].timestamp;\n const end = context.events[totalEvents - 1].timestamp;\n const periods = getInactivePeriods(context.events, replayer.config.inactivePeriodThreshold);\n const getWidth = (startTime, endTime, tagStart, tagEnd) => {\n const sessionDuration = endTime - startTime;\n const eventDuration = tagEnd - tagStart;\n const width = eventDuration / sessionDuration * 100;\n return width.toFixed(2);\n };\n return periods.map((period) => ({\n name: \"inactive period\",\n background: inactiveColor,\n position: `${position(start, end, period[0])}%`,\n width: `${getWidth(start, end, period[0], period[1])}%`\n }));\n } catch (e2) {\n return [];\n }\n })());\n }\n };\n return [\n skipInactive,\n speed,\n showController,\n speedOption,\n toggle,\n setSpeed,\n currentTime,\n playerState,\n meta,\n customEvents,\n speedState,\n progress,\n percentage,\n inactivePeriods,\n dispatch,\n handleProgressClick,\n handleProgressKeydown,\n replayer,\n autoPlay,\n tags,\n inactiveColor,\n play,\n pause,\n goto,\n playRange,\n toggleSkipInactive,\n triggerUpdateMeta,\n div2_binding,\n click_handler,\n switch_1_checked_binding,\n click_handler_1\n ];\n}\nclass Controller extends SvelteComponent {\n constructor(options) {\n super();\n init(\n this,\n options,\n instance$1,\n create_fragment$1,\n safe_not_equal,\n {\n replayer: 17,\n showController: 2,\n autoPlay: 18,\n skipInactive: 0,\n speedOption: 3,\n speed: 1,\n tags: 19,\n inactiveColor: 20,\n toggle: 4,\n play: 21,\n pause: 22,\n goto: 23,\n playRange: 24,\n setSpeed: 5,\n toggleSkipInactive: 25,\n triggerUpdateMeta: 26\n },\n null,\n [-1, -1]\n );\n }\n get toggle() {\n return this.$$.ctx[4];\n }\n get play() {\n return this.$$.ctx[21];\n }\n get pause() {\n return this.$$.ctx[22];\n }\n get goto() {\n return this.$$.ctx[23];\n }\n get playRange() {\n return this.$$.ctx[24];\n }\n get setSpeed() {\n return this.$$.ctx[5];\n }\n get toggleSkipInactive() {\n return this.$$.ctx[25];\n }\n get triggerUpdateMeta() {\n return this.$$.ctx[26];\n }\n}\nfunction create_if_block(ctx) {\n let controller_1;\n let current;\n let controller_1_props = {\n replayer: (\n /*replayer*/\n ctx[7]\n ),\n showController: (\n /*showController*/\n ctx[3]\n ),\n autoPlay: (\n /*autoPlay*/\n ctx[1]\n ),\n speedOption: (\n /*speedOption*/\n ctx[2]\n ),\n skipInactive: (\n /*skipInactive*/\n ctx[0]\n ),\n tags: (\n /*tags*/\n ctx[4]\n ),\n inactiveColor: (\n /*inactiveColor*/\n ctx[5]\n )\n };\n controller_1 = new Controller({ props: controller_1_props });\n ctx[32](controller_1);\n controller_1.$on(\n \"fullscreen\",\n /*fullscreen_handler*/\n ctx[33]\n );\n return {\n c() {\n create_component(controller_1.$$.fragment);\n },\n m(target, anchor) {\n mount_component(controller_1, target, anchor);\n current = true;\n },\n p(ctx2, dirty) {\n const controller_1_changes = {};\n if (dirty[0] & /*replayer*/\n 128)\n controller_1_changes.replayer = /*replayer*/\n ctx2[7];\n if (dirty[0] & /*showController*/\n 8)\n controller_1_changes.showController = /*showController*/\n ctx2[3];\n if (dirty[0] & /*autoPlay*/\n 2)\n controller_1_changes.autoPlay = /*autoPlay*/\n ctx2[1];\n if (dirty[0] & /*speedOption*/\n 4)\n controller_1_changes.speedOption = /*speedOption*/\n ctx2[2];\n if (dirty[0] & /*skipInactive*/\n 1)\n controller_1_changes.skipInactive = /*skipInactive*/\n ctx2[0];\n if (dirty[0] & /*tags*/\n 16)\n controller_1_changes.tags = /*tags*/\n ctx2[4];\n if (dirty[0] & /*inactiveColor*/\n 32)\n controller_1_changes.inactiveColor = /*inactiveColor*/\n ctx2[5];\n controller_1.$set(controller_1_changes);\n },\n i(local) {\n if (current)\n return;\n transition_in(controller_1.$$.fragment, local);\n current = true;\n },\n o(local) {\n transition_out(controller_1.$$.fragment, local);\n current = false;\n },\n d(detaching) {\n ctx[32](null);\n destroy_component(controller_1, detaching);\n }\n };\n}\nfunction create_fragment(ctx) {\n let div1;\n let div0;\n let t2;\n let current;\n let if_block = (\n /*replayer*/\n ctx[7] && create_if_block(ctx)\n );\n return {\n c() {\n div1 = element(\"div\");\n div0 = element(\"div\");\n t2 = space();\n if (if_block)\n if_block.c();\n attr(div0, \"class\", \"rr-player__frame\");\n attr(\n div0,\n \"style\",\n /*style*/\n ctx[11]\n );\n attr(div1, \"class\", \"rr-player\");\n attr(\n div1,\n \"style\",\n /*playerStyle*/\n ctx[12]\n );\n },\n m(target, anchor) {\n insert(target, div1, anchor);\n append(div1, div0);\n ctx[31](div0);\n append(div1, t2);\n if (if_block)\n if_block.m(div1, null);\n ctx[34](div1);\n current = true;\n },\n p(ctx2, dirty) {\n if (!current || dirty[0] & /*style*/\n 2048) {\n attr(\n div0,\n \"style\",\n /*style*/\n ctx2[11]\n );\n }\n if (\n /*replayer*/\n ctx2[7]\n ) {\n if (if_block) {\n if_block.p(ctx2, dirty);\n if (dirty[0] & /*replayer*/\n 128) {\n transition_in(if_block, 1);\n }\n } else {\n if_block = create_if_block(ctx2);\n if_block.c();\n transition_in(if_block, 1);\n if_block.m(div1, null);\n }\n } else if (if_block) {\n group_outros();\n transition_out(if_block, 1, 1, () => {\n if_block = null;\n });\n check_outros();\n }\n if (!current || dirty[0] & /*playerStyle*/\n 4096) {\n attr(\n div1,\n \"style\",\n /*playerStyle*/\n ctx2[12]\n );\n }\n },\n i(local) {\n if (current)\n return;\n transition_in(if_block);\n current = true;\n },\n o(local) {\n transition_out(if_block);\n current = false;\n },\n d(detaching) {\n if (detaching) {\n detach(div1);\n }\n ctx[31](null);\n if (if_block)\n if_block.d();\n ctx[34](null);\n }\n };\n}\nconst controllerHeight = 80;\nfunction instance($$self, $$props, $$invalidate) {\n let { width = 1024 } = $$props;\n let { height = 576 } = $$props;\n let { maxScale = 1 } = $$props;\n let { events } = $$props;\n let { skipInactive = true } = $$props;\n let { autoPlay = true } = $$props;\n let { speedOption = [1, 2, 4, 8] } = $$props;\n let { speed = 1 } = $$props;\n let { showController = true } = $$props;\n let { tags = {} } = $$props;\n let { inactiveColor = \"#D4D4D4\" } = $$props;\n let replayer;\n const getMirror = () => replayer.getMirror();\n let player;\n let frame;\n let fullscreenListener;\n let _width = width;\n let _height = height;\n let controller;\n let style;\n let playerStyle;\n const updateScale = (el, frameDimension) => {\n const widthScale = width / frameDimension.width;\n const heightScale = height / frameDimension.height;\n const scale = [widthScale, heightScale];\n if (maxScale)\n scale.push(maxScale);\n el.style.transform = `scale(${Math.min(...scale)})translate(-50%, -50%)`;\n };\n const triggerResize = () => {\n updateScale(replayer.wrapper, {\n width: replayer.iframe.offsetWidth,\n height: replayer.iframe.offsetHeight\n });\n };\n const toggleFullscreen = () => {\n if (player) {\n isFullscreen() ? exitFullscreen() : openFullscreen(player);\n }\n };\n const addEventListener = (event, handler) => {\n replayer.on(event, handler);\n switch (event) {\n case \"ui-update-current-time\":\n case \"ui-update-progress\":\n case \"ui-update-player-state\":\n controller.$on(event, ({ detail }) => handler(detail));\n }\n };\n const addEvent = (event) => {\n replayer.addEvent(event);\n controller.triggerUpdateMeta();\n };\n const getMetaData = () => replayer.getMetaData();\n const getReplayer = () => replayer;\n const toggle = () => {\n controller.toggle();\n };\n const setSpeed = (speed2) => {\n controller.setSpeed(speed2);\n };\n const toggleSkipInactive = () => {\n controller.toggleSkipInactive();\n };\n const play = () => {\n controller.play();\n };\n const pause = () => {\n controller.pause();\n };\n const goto = (timeOffset, play2) => {\n controller.goto(timeOffset, play2);\n };\n const playRange = (timeOffset, endTimeOffset, startLooping = false, afterHook = void 0) => {\n controller.playRange(timeOffset, endTimeOffset, startLooping, afterHook);\n };\n onMount(() => {\n if (speedOption !== void 0 && typeOf(speedOption) !== \"array\") {\n throw new Error(\"speedOption must be array\");\n }\n speedOption.forEach((item) => {\n if (typeOf(item) !== \"number\") {\n throw new Error(\"item of speedOption must be number\");\n }\n });\n if (speedOption.indexOf(speed) < 0) {\n throw new Error(`speed must be one of speedOption,\n current config:\n {\n ...\n speed: ${speed},\n speedOption: [${speedOption.toString()}]\n ...\n }\n `);\n }\n $$invalidate(7, replayer = new Replayer(\n events,\n {\n speed,\n root: frame,\n unpackFn: unpack,\n ...$$props\n }\n ));\n replayer.on(\"resize\", (dimension) => {\n updateScale(replayer.wrapper, dimension);\n });\n fullscreenListener = onFullscreenChange(() => {\n if (isFullscreen()) {\n setTimeout(\n () => {\n _width = width;\n _height = height;\n $$invalidate(13, width = player.offsetWidth);\n $$invalidate(14, height = player.offsetHeight - (showController ? controllerHeight : 0));\n updateScale(replayer.wrapper, {\n width: replayer.iframe.offsetWidth,\n height: replayer.iframe.offsetHeight\n });\n },\n 0\n );\n } else {\n $$invalidate(13, width = _width);\n $$invalidate(14, height = _height);\n updateScale(replayer.wrapper, {\n width: replayer.iframe.offsetWidth,\n height: replayer.iframe.offsetHeight\n });\n }\n });\n });\n onDestroy(() => {\n fullscreenListener && fullscreenListener();\n });\n function div0_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n frame = $$value;\n $$invalidate(9, frame);\n });\n }\n function controller_1_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n controller = $$value;\n $$invalidate(10, controller);\n });\n }\n const fullscreen_handler = () => toggleFullscreen();\n function div1_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n player = $$value;\n $$invalidate(8, player);\n });\n }\n $$self.$$set = ($$new_props) => {\n $$invalidate(39, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)));\n if (\"width\" in $$new_props)\n $$invalidate(13, width = $$new_props.width);\n if (\"height\" in $$new_props)\n $$invalidate(14, height = $$new_props.height);\n if (\"maxScale\" in $$new_props)\n $$invalidate(15, maxScale = $$new_props.maxScale);\n if (\"events\" in $$new_props)\n $$invalidate(16, events = $$new_props.events);\n if (\"skipInactive\" in $$new_props)\n $$invalidate(0, skipInactive = $$new_props.skipInactive);\n if (\"autoPlay\" in $$new_props)\n $$invalidate(1, autoPlay = $$new_props.autoPlay);\n if (\"speedOption\" in $$new_props)\n $$invalidate(2, speedOption = $$new_props.speedOption);\n if (\"speed\" in $$new_props)\n $$invalidate(17, speed = $$new_props.speed);\n if (\"showController\" in $$new_props)\n $$invalidate(3, showController = $$new_props.showController);\n if (\"tags\" in $$new_props)\n $$invalidate(4, tags = $$new_props.tags);\n if (\"inactiveColor\" in $$new_props)\n $$invalidate(5, inactiveColor = $$new_props.inactiveColor);\n };\n $$self.$$.update = () => {\n if ($$self.$$.dirty[0] & /*width, height*/\n 24576) {\n $$invalidate(11, style = inlineCss({\n width: `${width}px`,\n height: `${height}px`\n }));\n }\n if ($$self.$$.dirty[0] & /*width, height, showController*/\n 24584) {\n $$invalidate(12, playerStyle = inlineCss({\n width: `${width}px`,\n height: `${height + (showController ? controllerHeight : 0)}px`\n }));\n }\n };\n $$props = exclude_internal_props($$props);\n return [\n skipInactive,\n autoPlay,\n speedOption,\n showController,\n tags,\n inactiveColor,\n toggleFullscreen,\n replayer,\n player,\n frame,\n controller,\n style,\n playerStyle,\n width,\n height,\n maxScale,\n events,\n speed,\n getMirror,\n triggerResize,\n addEventListener,\n addEvent,\n getMetaData,\n getReplayer,\n toggle,\n setSpeed,\n toggleSkipInactive,\n play,\n pause,\n goto,\n playRange,\n div0_binding,\n controller_1_binding,\n fullscreen_handler,\n div1_binding\n ];\n}\nlet Player$1 = class Player extends SvelteComponent {\n constructor(options) {\n super();\n init(\n this,\n options,\n instance,\n create_fragment,\n safe_not_equal,\n {\n width: 13,\n height: 14,\n maxScale: 15,\n events: 16,\n skipInactive: 0,\n autoPlay: 1,\n speedOption: 2,\n speed: 17,\n showController: 3,\n tags: 4,\n inactiveColor: 5,\n getMirror: 18,\n triggerResize: 19,\n toggleFullscreen: 6,\n addEventListener: 20,\n addEvent: 21,\n getMetaData: 22,\n getReplayer: 23,\n toggle: 24,\n setSpeed: 25,\n toggleSkipInactive: 26,\n play: 27,\n pause: 28,\n goto: 29,\n playRange: 30\n },\n null,\n [-1, -1]\n );\n }\n get getMirror() {\n return this.$$.ctx[18];\n }\n get triggerResize() {\n return this.$$.ctx[19];\n }\n get toggleFullscreen() {\n return this.$$.ctx[6];\n }\n get addEventListener() {\n return this.$$.ctx[20];\n }\n get addEvent() {\n return this.$$.ctx[21];\n }\n get getMetaData() {\n return this.$$.ctx[22];\n }\n get getReplayer() {\n return this.$$.ctx[23];\n }\n get toggle() {\n return this.$$.ctx[24];\n }\n get setSpeed() {\n return this.$$.ctx[25];\n }\n get toggleSkipInactive() {\n return this.$$.ctx[26];\n }\n get play() {\n return this.$$.ctx[27];\n }\n get pause() {\n return this.$$.ctx[28];\n }\n get goto() {\n return this.$$.ctx[29];\n }\n get playRange() {\n return this.$$.ctx[30];\n }\n};\nclass Player2 extends Player$1 {\n constructor(options) {\n super({\n target: options.target,\n props: options.data || options.props\n });\n }\n}\nexport {\n Player2 as Player,\n Player2 as default\n};\n//# sourceMappingURL=rrweb-player.js.map\n"],"names":["__defProp","__defNormalProp","obj","key","value","__publicField","noop","assign","tar","src","k","run","fn","blank_object","run_all","fns","is_function","thing","safe_not_equal","a2","b","is_empty","exclude_internal_props","props","result","append","target","node","insert","anchor","detach","destroy_each","iterations","detaching","element","name","svg_element","text","data","space","empty","listen","event","handler","options","attr","attribute","children","element2","set_data","text2","set_style","important","toggle_class","toggle","custom_event","type","detail","bubbles","cancelable","current_component","set_current_component","component","get_current_component","onMount","afterUpdate","onDestroy","createEventDispatcher","callbacks","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","flush","add_render_callback","add_flush_callback","seen_callbacks","flushidx","saved_component","update","e2","i","callback","$$","dirty","flush_render_callbacks","filtered","targets","c2","outroing","outros","group_outros","check_outros","transition_in","block","local","transition_out","detach2","ensure_array_like","array_like_or_iterator","bind","index","create_component","mount_component","fragment","after_update","new_on_destroy","destroy_component","make_dirty","init","instance2","create_fragment2","not_equal","append_styles","parent_component","ready","ret","rest","nodes","SvelteComponent","PUBLIC_VERSION","__defProp2","__defNormalProp2","__publicField2","_a$1","__defProp$1","__defNormalProp$1","__publicField$1","NodeType$2","NodeType2","isElement","n2","Mirror","_a2","id","childNode","meta","oldNode","createMirror$2","toLowerCase","str","isNodeMetaEqual","commentre","parse","css","lineno","column","updatePosition","lines","i2","position2","start","Position","whitespace","_Position","_Position2","errorsList","error","msg","err","stylesheet","rulesList","rules2","open","match","close","rules22","comments","atrule","rule","re","m","comment","pos","selectorMatcher","selector","cleanedInput","m2","customSplit","s2","input","currentSegment","depthParentheses","depthBrackets","currentStringChar","char","hasStringEscape","declaration","propMatch","prop","trim","val","declarations","decls","decl","keyframe","vals","atkeyframes","vendor","frame","frames","atsupports","supports","style","athost","atmedia","media","atcustommedia","atpage","sel","atdocument","doc","atfontface","atimport","_compileAtrule","atcharset","atnamespace","addParent","parent","isNode","childParent","v2","tagMap","getTagName","tagName","escapeRegExp","MEDIA_SELECTOR","MEDIA_SELECTOR_GLOBAL","HOVER_SELECTOR","HOVER_SELECTOR_GLOBAL","adaptCssForReplay","cssText","cache","cachedStyle","ast","selectors","medias","getSelectors","newSelector","mediaMatcher","createCache","buildNode","hackCss","specialAttributes","isTextarea","isRemoteOrDynamicCss","image","ctx","buildNodeWithSN","mirror2","skipChild","afterAppend","nodeInMirror","childN","htmlElement","body","child","visit","onVisit","walk","handleScroll","el","rebuild","visitedNode","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","receiver","polyfill$1","win","args","queueToResolveTrees","queue","queueNodeMap","putIntoMap","nodeInTree","queueNodeTrees","mutation","nextId","parentId","nextInTree","idx","parentInTree","iterateResolveTree","tree","cb","isSerializedIframe","getBaseDimension","rootIframe","_b2","frameElement","frameDimension","frameBaseDimension","relativeScale","hasShadowRoot","getNestedRule","getPositionsAndIndex","nestedIndex","positions","uniqueTextMutations","mutations","idSet","uniqueMutations","StyleSheetMirror","_a","newId","EventType$1","EventType2","IncrementalSource$1","IncrementalSource2","MouseInteractions","MouseInteractions2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","ReplayerEvents","ReplayerEvents2","chars","lookup","i$1","decode","base64","bufferLength","len","p","encoded1","encoded2","encoded3","encoded4","arraybuffer","bytes","encodedJs","decodeBase64","x","cleanFrame","__defProp22","__defNormalProp22","__publicField22","__defProp222","__defNormalProp222","__publicField222","NodeType$1","Mirror$1","createMirror$1","parseCSSText","res","listDelimiter","propertyDelimiter","item","tmp","camelize","toCSSText","properties","normalizedName","hyphenate","camelizeRE","CUSTOM_PROPERTY_REGEX","_","hyphenateRE","BaseRRNode","_args","childNodes","childIterator","_newChild","_refChild","_node","BaseRRDocument","newChild","nodeType","appendChild","refChild","insertBefore","removeChild","content","publicId","doctype","_namespace","_qualifiedName","_doctype","qualifiedName","systemId","BaseRRDocumentType","BaseRRElement","_namespaceURI","BaseRRText","BaseRRComment","CDATASection","BaseRRCDATASection","textContent","ClassList","newClassName","hyphenateRE2","priority","_init","shadowRoot","_event","attributeString","BaseRRMediaElement","classText","onChange","classNames","className","classes","NodeType","NAMESPACES","SVGTagMap","createdNodeSet","diff","oldTree","newTree","replayer","rrnodeMirror","diffBeforeUpdatingChildren","diffChildren","diffAfterUpdatingChildren","sameNodeType","calibratedOldTree","createOrGetNode","nodeMatching","newMeta","oldElement","newRRElement","oldContentDocument","diffProps","scrollData","oldMediaElement","newMediaRRElement","rrCanvasElement","canvasMutation2","styleSheet","oldAttributes","newAttributes","newValue","sn","oldChildren","newChildren","oldStartIndex","oldEndIndex","newStartIndex","newEndIndex","oldStartNode","oldEndNode","newStartNode","newEndNode","oldIdToIndex","indexInOld","oldChild2","nodeToMove","newNode","referenceRRNode","referenceNode","oldChild","rrNode","domMirror","nodeId","node1","node2","rrdomMirror","node1Id","node2Id","RRDocument","createMirror","documentTypeNode","RRDocumentType","upperTagName","RRMediaElement","RRIFrameElement","RRCanvasElement","RRStyleElement","RRElement","commentNode","RRComment","sectionNode","RRCDATASection","textNode","RRText","getValidTagName","buildFromNode","rrdom","parentRRNode","documentType","elementNode","rrElement","getDefaultSN","buildFromDom","dom","walk2","iframeDoc","Mirror22","mitt$1","t2","n3","mittProxy","polyfill","w","d","Element2","SCROLL_TIME","original","scrollElement","now","isMicrosoftBrowser","userAgent","userAgentPatterns","ROUNDING_TOLERANCE","y","ease","shouldBailOut","firstArg","hasScrollableSpace","axis","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","findScrollableParent","step","context","time","currentX","currentY","elapsed","smoothScroll","scrollable","startX","startY","method","startTime","left","top","scrollableParent","parentRects","clientRects","Timer","actions","config","action","rafWasActive","speed","end","mid","addDelay","baselineTime","firstOffset","firstTimestamp","t","r2","o2","t3","n","e","r","o","i$2","a","u","c","f","o3","s","l2","s3","l3","v3","g","h","e3","S","j","E","R","N","O","T","q","A","B","C","l","v","i3","u2","discardPriorSnapshots","events","createPlayerService","getCastFn","applyEventsSynchronously","emitter","playerMachine","timeOffset","timer","lastPlayedEvent","neededEvents","lastPlayedTimestamp","syncEvents","castFn","machineEvent","insertionIndex","isSync","createSpeedService","speedMachine","rules","blockClass","webGLVarMap","variableListFor","ctor","contextMap","deserializeArg","imageMap","preload","arg","image2","blobContents","getContext","WebGLVariableConstructorsNames","saveToWebGLVarMap","variables","webglMutation","errorHandler2","debugMode","canvasMutation$1","mutationArgsPromises","args2","canvasMutation","canvasEventMap","precomputedMutation","commands","command","MediaManager","_mediaState","mediaState","mediaPlaybackOffset","duration","seekToTime","onLoadedMetadata","_b","_c","_d","_e","lastState","playbackRate","currentTime","muted","volume","loop","isPlaying","playerIsPaused","serializedNode","mediaAttributes","currentTimeAtLastInteraction","SKIP_TIME_INTERVAL","mitt","REPLAY_CONSOLE_PREFIX","defaultMouseTailConfig","indicatesTouchDevice","Replayer","dimension","events2","skipTime","payload","plugin","last_index","finish","finish_buffer","defaultConfig","replayerHandler","canvasEvent","canvasMutationData2","realNode","a1","state","firstMeta","firstFullsnapshot","width","height","firstEvent","lastEvent","rawEvent","attributes2","collected","builtNode","mutationInQueue","documentElement","head","injectStylesRules","styleEl","iframeEl","unloadSheets","beforeLoadState","stateHandler","unsubscribe","promises","canvas","imgd","status","lastPosition","triggerFocus","mediaEl","fontFace","virtualNode","legacy_missingNodeMap","nextNotInDOM","next","appendNode","previous","targetDoc","parentSn","childNodeArray","parentDoc","targetId","resolveTrees","attributeName","newSn","siblingNode","parentNode","textarea","tn","styleValues","targetEl","svp","svs","selectionSet","ranges","startOffset","endOffset","startContainer","endContainer","selection","targetHost","_a3","newStyleSheet","hostWindow","MAX_RETRY_TIME","count","adoptStyleSheets","targetHost2","styleIds","stylesToAdopt","styleId","map","targetMutation","previousId","previousInMap","nextInMap","debugData","base","_x","_y","lineCap","lineWidth","strokeStyle","draw","hoveredEl","currentEl","u8","u16","u32","fleb","fdeb","clim","freb","eb","fl","revfl","fd","rev","hMap","cd","mb","le","co","rvb","sv","r_1","flt","fdt","flrm","fdrm","max","bits","bits16","shft","slc","inflt","dat","buf","st","sl","noBuf","noSt","cbuf","l22","bl","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","dt","lms","dms","mxa","sym","add","dsym","zlv","unzlibSync","out","strToU8","latin1","ar","ai","strFromU8","MARK","unpack","raw","EventType","IncrementalSource","inlineCss","cssObj","padZero","num","threshold","SECOND","MINUTE","HOUR","formatTime","ms","hour","minute","second","openFullscreen","exitFullscreen","isFullscreen","fullscreen","fullScreenAccessor","onFullscreenChange","typeOf","isUserInteraction","getInactivePeriods","inactivePeriodThreshold","inactivePeriods","lastActiveTime","create_fragment$2","div","t0","label_1","t1","span","mounted","dispose","ctx2","instance$2","$$self","$$props","$$invalidate","disabled","checked","label","input_change_handler","$$props2","Switch","get_each_context","list","child_ctx","get_each_context_1","get_each_context_2","create_if_block$1","div5","div3","span0","t0_value","div2","div0","t4","div1","t5","span1","t6_value","t6","t7","div4","button0","t8","t9","switch_1","updating_checked","t10","button1","current","each_value_2","each_blocks_2","create_each_block_2","each_value_1","each_blocks_1","create_each_block_1","select_block_type","create_if_block_1","create_else_block","current_block_type","if_block","each_value","each_blocks","create_each_block","switch_1_checked_binding","switch_1_props","switch_1_changes","div_title_value","svg","path","button","button_disabled_value","click_handler","new_ctx","create_fragment$1","if_block_anchor","position","endTime","tagTime","sessionDuration","eventDuration","instance$1","dispatch","showController","autoPlay","skipInactive","speedOption","tags","inactiveColor","playerState","speedState","progress","finished","pauseAt","onPauseHook","percentage","customEvents","loopTimer","stopTimer","update2","playRange","pause","play","goto","play2","endTimeOffset","startLooping","afterHook","handleProgressClick","progressRect","percent","handleProgressKeydown","setSpeed","newSpeed","needFreeze","toggleSkipInactive","triggerUpdateMeta","states","player","speed2","div2_binding","$$value","click_handler_1","totalEvents","customEvents2","customEvent","periods","getWidth","tagStart","tagEnd","period","Controller","create_if_block","controller_1","controller_1_props","controller_1_changes","create_fragment","controllerHeight","instance","maxScale","getMirror","fullscreenListener","_width","_height","controller","playerStyle","updateScale","widthScale","heightScale","scale","triggerResize","toggleFullscreen","addEventListener","addEvent","getMetaData","getReplayer","div0_binding","controller_1_binding","fullscreen_handler","div1_binding","$$new_props","Player$1","Player2"],"mappings":"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"}