@devskin/browser-sdk 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"devskin.umd.min.js","sources":["../src/collectors/device.ts","../node_modules/tslib/tslib.es6.js","../src/collectors/location.ts","../src/collectors/browser.ts","../node_modules/web-vitals/dist/web-vitals.js","../src/collectors/performance.ts","../src/collectors/error.ts","../src/collectors/network.ts","../src/collectors/heatmap.ts","../node_modules/rrweb/dist/rrweb.js","../src/recorder/rrweb.ts","../src/transport.ts","../src/index.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,"var e,n,t,i,r,a=-1,o=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(a=n.timeStamp,e(n))}),!0)},c=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0]},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),i=\"navigate\";a>=0?i=\"back-forward-cache\":t&&(document.prerendering||u()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":t.type&&(i=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v3-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return i.observe(Object.assign({type:e,buffered:!0},t||{})),i}}catch(e){}},d=function(e,n,t,i){var r,a;return function(o){n.value>=0&&(o||i)&&((a=n.value-(r||0))||void 0===r)&&(r=n.value,n.delta=a,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){var n=function(n){\"pagehide\"!==n.type&&\"hidden\"!==document.visibilityState||e(n)};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},v=function(e){var n=!1;return function(t){n||(e(t),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),o((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},L=[1800,3e3],w=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"FCP\"),a=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(a.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=Math.max(e.startTime-u(),0),r.entries.push(e),t(!0)))}))}));a&&(t=d(e,r,L,n.reportAllChanges),o((function(i){r=f(\"FCP\"),t=d(e,r,L,n.reportAllChanges),l((function(){r.value=performance.now()-i.timeStamp,t(!0)}))})))}))},b=[.1,.25],S=function(e,n){n=n||{},w(v((function(){var t,i=f(\"CLS\",0),r=0,a=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=a[0],t=a[a.length-1];r&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(r+=e.value,a.push(e)):(r=e.value,a=[e])}})),r>i.value&&(i.value=r,i.entries=a,t())},u=s(\"layout-shift\",c);u&&(t=d(e,i,b,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),o((function(){r=0,i=f(\"CLS\",0),t=d(e,i,b,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A={passive:!0,capture:!0},I=new Date,P=function(i,r){e||(e=r,n=i,t=new Date,k(removeEventListener),F())},F=function(){if(n>=0&&n<t-I){var r={entryType:\"first-input\",name:e.type,target:e.target,cancelable:e.cancelable,startTime:e.timeStamp,processingStart:e.timeStamp+n};i.forEach((function(e){e(r)})),i=[]}},M=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){P(e,n),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",t,A),removeEventListener(\"pointercancel\",i,A)};addEventListener(\"pointerup\",t,A),addEventListener(\"pointercancel\",i,A)}(n,e):P(n,e)}},k=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,M,A)}))},D=[100,300],x=function(t,r){r=r||{},C((function(){var a,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),a(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);a=d(t,u,D,r.reportAllChanges),h&&p(v((function(){m(h.takeRecords()),h.disconnect()}))),h&&o((function(){var o;u=f(\"FID\"),a=d(t,u,D,r.reportAllChanges),i=[],n=-1,e=null,k(addEventListener),o=l,i.push(o),F()}))}))},B=0,R=1/0,H=0,N=function(e){e.forEach((function(e){e.interactionId&&(R=Math.min(R,e.interactionId),H=Math.max(H,e.interactionId),B=H?(H-R)/7+1:0)}))},O=function(){return r?B:performance.interactionCount||0},q=function(){\"interactionCount\"in performance||r||(r=s(\"event\",N,{type:\"event\",buffered:!0,durationThreshold:0}))},j=[200,500],_=0,z=function(){return O()-_},G=[],J={},K=function(e){var n=G[G.length-1],t=J[e.interactionId];if(t||G.length<10||e.duration>n.latency){if(t)t.entries.push(e),t.latency=Math.max(t.latency,e.duration);else{var i={id:e.interactionId,latency:e.duration,entries:[e]};J[i.id]=i,G.push(i)}G.sort((function(e,n){return n.latency-e.latency})),G.splice(10).forEach((function(e){delete J[e.id]}))}},Q=function(e,n){n=n||{},C((function(){var t;q();var i,r=f(\"INP\"),a=function(e){e.forEach((function(e){(e.interactionId&&K(e),\"first-input\"===e.entryType)&&(!G.some((function(n){return n.entries.some((function(n){return e.duration===n.duration&&e.startTime===n.startTime}))}))&&K(e))}));var n,t=(n=Math.min(G.length-1,Math.floor(z()/50)),G[n]);t&&t.latency!==r.value&&(r.value=t.latency,r.entries=t.entries,i())},c=s(\"event\",a,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});i=d(e,r,j,n.reportAllChanges),c&&(\"PerformanceEventTiming\"in window&&\"interactionId\"in PerformanceEventTiming.prototype&&c.observe({type:\"first-input\",buffered:!0}),p((function(){a(c.takeRecords()),r.value<0&&z()>0&&(r.value=0,r.entries=[]),i(!0)})),o((function(){G=[],_=O(),r=f(\"INP\"),i=d(e,r,j,n.reportAllChanges)})))}))},U=[2500,4e3],V={},W=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"LCP\"),a=function(e){var n=e[e.length-1];n&&n.startTime<i.firstHiddenTime&&(r.value=Math.max(n.startTime-u(),0),r.entries=[n],t())},c=s(\"largest-contentful-paint\",a);if(c){t=d(e,r,U,n.reportAllChanges);var m=v((function(){V[r.id]||(a(c.takeRecords()),c.disconnect(),V[r.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return setTimeout(m,0)}),!0)})),p(m),o((function(i){r=f(\"LCP\"),t=d(e,r,U,n.reportAllChanges),l((function(){r.value=performance.now()-i.timeStamp,V[r.id]=!0,t(!0)}))}))}}))},X=[800,1800],Y=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Z=function(e,n){n=n||{};var t=f(\"TTFB\"),i=d(e,t,X,n.reportAllChanges);Y((function(){var r=c();if(r){var a=r.responseStart;if(a<=0||a>performance.now())return;t.value=Math.max(a-u(),0),t.entries=[r],i(!0),o((function(){t=f(\"TTFB\",0),(i=d(e,t,X,n.reportAllChanges))(!0)}))}}))};export{b as CLSThresholds,L as FCPThresholds,D as FIDThresholds,j as INPThresholds,U as LCPThresholds,X as TTFBThresholds,S as getCLS,w as getFCP,x as getFID,Q as getINP,W as getLCP,Z as getTTFB,S as onCLS,w as onFCP,x as onFID,Q as onINP,W as onLCP,Z as onTTFB};\n",null,null,null,null,"var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$3 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nconst index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a2, b) {\n if (!a2 || !b || a2.type !== b.type) return false;\n if (a2.type === NodeType$3.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$3.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$3.Comment || a2.type === NodeType$3.Text || a2.type === NodeType$3.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$3.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}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n}\nfunction splitCssText(cssText, style) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n const cssTextNorm = normalizeCssString(cssText);\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(childNodes2[i2].textContent);\n for (let j = 3; j < textContentNorm.length; j++) {\n const bit = textContentNorm.substring(0, j);\n if (cssTextNorm.split(bit).length === 2) {\n const splitNorm = cssTextNorm.indexOf(bit);\n for (let k = splitNorm; k < cssText.length; k++) {\n if (normalizeCssString(cssText.substring(0, k)).length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n break;\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet$1 = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1, customAlphabet: customAlphabet$1 };\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid$2(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\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 adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n const ast = postcss$1$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n const result2 = ast.css;\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction applyCssSplits(n2, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n2.childNodes) {\n if (scn.type === NodeType$3.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n for (let i2 = 0; i2 < childTextNodes.length; i2++) {\n const childTextNode = childTextNodes[i2];\n const cssTextSection = cssTextSplits[i2];\n if (childTextNode && cssTextSection) {\n childTextNode.textContent = hackCss ? adaptCssForReplay(cssTextSection, cache) : cssTextSection;\n }\n }\n}\nfunction buildStyleNode(n2, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n2.childNodes.length) {\n applyCssSplits(n2, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$3.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$3.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$3.Element: {\n const tagName = getTagName(n2);\n let node2;\n if (n2.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n 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 node2 = 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) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n2, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\n node2.appendChild(doc.createTextNode(value));\n n2.childNodes = [];\n continue;\n }\n try {\n if (n2.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n2.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.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 node2.setAttribute(\n \"rrweb-original-srcset\",\n n2.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n2.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n2.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType$3.Text:\n if (n2.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n2.textContent, cache));\n }\n return doc.createTextNode(n2.textContent);\n case NodeType$3.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$3.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)) return mirror2.getNode(n2.id);\n }\n let node2 = buildNode(n2, { doc, hackCss, cache });\n if (!node2) {\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$3.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$3.DocumentType) {\n if (n2.childNodes[0].type === NodeType$3.Element && \"xmlns\" in n2.childNodes[0].attributes && n2.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n );\n } else {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n );\n }\n }\n node2 = doc;\n }\n mirror2.add(node2, n2);\n if ((n2.type === NodeType$3.Document || n2.type === NodeType$3.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(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n2.type === NodeType$3.Document && childN.type == NodeType$3.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror2, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror2.getIds()) {\n if (mirror2.has(id)) {\n walk(mirror2.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror2) {\n const n2 = mirror2.getMeta(node2);\n if ((n2 == null ? void 0 : n2.type) !== NodeType$3.Element) {\n return;\n }\n const el = node2;\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 node2 = 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 node2;\n}\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\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) => __defNormalProp22(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror2 {\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) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, 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 __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField2(this, \"nodeType\", 9);\n __publicField2(this, \"nodeName\", \"#document\");\n __publicField2(this, \"compatMode\", \"CSS1Compat\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Document);\n __publicField2(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((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(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(content) {\n let publicId;\n if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField2(this, \"nodeType\", 10);\n __publicField2(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField2(this, \"name\");\n __publicField2(this, \"publicId\");\n __publicField2(this, \"systemId\");\n __publicField2(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 __publicField2(this, \"nodeType\", 1);\n __publicField2(this, \"RRNodeType\", NodeType$1.Element);\n __publicField2(this, \"tagName\");\n __publicField2(this, \"attributes\", {});\n __publicField2(this, \"shadowRoot\", null);\n __publicField2(this, \"scrollLeft\");\n __publicField2(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent2) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent2));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot2 = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot2;\n return shadowRoot2;\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 __publicField2(this, \"currentTime\");\n __publicField2(this, \"volume\");\n __publicField2(this, \"paused\");\n __publicField2(this, \"muted\");\n __publicField2(this, \"playbackRate\");\n __publicField2(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"tagName\", \"DIALOG\");\n __publicField2(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 3);\n __publicField2(this, \"nodeName\", \"#text\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Text);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 8);\n __publicField2(this, \"nodeName\", \"#comment\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeName\", \"#cdata-section\");\n __publicField2(this, \"nodeType\", 4);\n __publicField2(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField2(this, \"onChange\");\n __publicField2(this, \"classes\", []);\n __publicField2(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField2(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType$2 = /* @__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$2 || {});\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) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _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 case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e2) {\n console.warn(e2);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_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\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (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 node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\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 node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e2) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror2) {\n super();\n __publicField2(this, \"UNSERIALIZED_STARTING_ID\", -2);\n __publicField2(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField2(this, \"mirror\", createMirror());\n __publicField2(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 element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"inputData\", null);\n __publicField2(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rr_dataURL\", null);\n __publicField2(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 __publicField2(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror2) {\n super(upperTagName);\n __publicField2(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror2;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType$2.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType$2.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType$2.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType$2.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType$2.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType$2.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType$2.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType$2.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType$2.DOCUMENT_NODE || node2.nodeType === NodeType$2.ELEMENT_NODE || node2.nodeType === NodeType$2.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType$2.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror22();\n}\nclass Mirror22 {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction 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 isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction getBaseDimension(node2, rootIframe) {\n var _a2, _b;\n const frameElement = (_b = (_a2 = node2.ownerDocument) == null ? void 0 : _a2.defaultView) == null ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n 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 if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nfunction getNestedRule(rules2, position) {\n const rule2 = rules2[position[0]];\n if (position.length === 1) {\n return rule2;\n } else {\n return getNestedRule(\n rule2.cssRules[position[1]].cssRules,\n position.slice(2)\n );\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n const positions = [...nestedIndex];\n const index2 = positions.pop();\n return { positions, index: index2 };\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 __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nconst utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StyleSheetMirror,\n get _mirror() {\n return _mirror;\n },\n closestElementOfNode,\n getBaseDimension,\n getNestedRule,\n getPositionsAndIndex,\n getRootShadowHost,\n getShadowHost,\n getWindowHeight,\n getWindowScroll,\n getWindowWidth,\n hasShadowRoot,\n hookSetter,\n inDom,\n isAncestorRemoved,\n isBlocked,\n isIgnored,\n isSerialized,\n isSerializedIframe,\n isSerializedStylesheet,\n iterateResolveTree,\n legacy_isTouchEvent,\n get nowTimestamp() {\n return nowTimestamp;\n },\n on,\n patch,\n polyfill: polyfill$1,\n queueToResolveTrees,\n shadowHostInDom,\n throttle,\n uniqueTextMutations\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n item.attributes.value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\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 canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\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(x2, y) {\n this.scrollLeft = x2;\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, x2, 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: x2,\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 __publicField(this, \"timeOffset\", 0);\n __publicField(this, \"speed\");\n __publicField(this, \"actions\");\n __publicField(this, \"raf\", null);\n __publicField(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 index2 = this.findActionIndex(action);\n this.actions.splice(index2, 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.IncrementalSnapshot && event.data.source === IncrementalSource.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) return t2;\n var r2, o2, i2 = e2.call(t2), a2 = [];\n try {\n for (; (void 0 === n2 || n2-- > 0) && !(r2 = i2.next()).done; ) 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) 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(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(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), x2 = n2.states[p];\n if (x2.on) {\n var m = r(x2.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) return e3.call(t2);\n if (t2 && \"number\" == typeof t2.length) 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) 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(x2.exit, R, T.entry).filter(function(t2) {\n return t2;\n })).map(function(t2) {\n return i(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) 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.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.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource.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) 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) return arg;\n const { rr_type: name, index: index2 } = arg;\n return variableListFor(ctx, name)[index2];\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 result2 = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload))\n );\n return result2;\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, result2) {\n if (!(result2 == null ? void 0 : result2.constructor)) return;\n const { name } = result2.constructor;\n if (!WebGLVariableConstructorsNames.includes(name)) return;\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result2)) variables.push(result2);\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) 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 result2 = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result2);\n const debugMode = false;\n if (debugMode) ;\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, index2) => {\n const mutation = mutations[index2];\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 __publicField(this, \"mediaMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"warn\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"emitter\");\n __publicField(this, \"getCurrentTime\");\n __publicField(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)) return;\n if (!(\"addEventListener\" in target)) return;\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n };\n 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) 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(node2, timeOffset, mirror2) {\n if (![\"AUDIO\", \"VIDEO\"].includes(node2.nodeName)) return;\n const target = node2;\n const serializedNode = mirror2.getMeta(target);\n if (!serializedNode || !(\"attributes\" in serializedNode)) 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) 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(node2) {\n return [\"AUDIO\", \"VIDEO\"].includes(node2.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nfunction applyDialogToTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches(\"dialog:modal\");\n const rrOpenMode = dialog.getAttribute(\"rr_open_mode\");\n const newIsOpen = typeof (attributeMutation == null ? void 0 : attributeMutation.attributes.open) === \"string\" || typeof dialog.getAttribute(\"open\") === \"string\";\n const newIsModalState = rrOpenMode === \"modal\";\n const newIsNonModalState = rrOpenMode === \"non-modal\";\n const modalStateChanged = oldIsModalState && newIsNonModalState || !oldIsModalState && newIsModalState;\n if (oldIsOpen && !modalStateChanged) return;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\nfunction removeDialogFromTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute(\"open\");\n dialog.removeAttribute(\"rr_open_mode\");\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.IncrementalSnapshot && (e2.data.source == IncrementalSource.TouchMove || e2.data.source == IncrementalSource.MouseInteraction && e2.data.type == MouseInteractions.TouchStart);\n}\nclass Replayer {\n constructor(events, config) {\n __publicField(this, \"wrapper\");\n __publicField(this, \"iframe\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"config\");\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n __publicField(this, \"usingVirtualDom\", false);\n __publicField(this, \"virtualDom\", new RRDocument());\n __publicField(this, \"mouse\");\n __publicField(this, \"mouseTail\", null);\n __publicField(this, \"tailPositions\", []);\n __publicField(this, \"emitter\", mitt());\n __publicField(this, \"nextUserInteractionEvent\");\n __publicField(this, \"legacy_missingNodeRetryMap\", {});\n // The replayer uses the cache to speed up replay and scrubbing.\n __publicField(this, \"cache\", createCache());\n __publicField(this, \"imageMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"mirror\", createMirror$2());\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n // Used to track video & audio elements, and keep them in sync with general playback.\n __publicField(this, \"mediaManager\");\n __publicField(this, \"firstFullSnapshot\", null);\n __publicField(this, \"newDocumentQueue\", []);\n __publicField(this, \"mousePos\", null);\n __publicField(this, \"touchActive\", null);\n __publicField(this, \"lastMouseDownEvent\", null);\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n __publicField(this, \"lastHoveredRootNode\");\n // In the fast-forward mode, only the last selection data needs to be applied.\n __publicField(this, \"lastSelectionData\", null);\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n __publicField(this, \"constructedStyleMutations\", []);\n // Similar to the reason for constructedStyleMutations.\n __publicField(this, \"adoptedStyleSheets\", []);\n __publicField(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 __publicField(this, \"applyEventsSynchronously\", (events) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n });\n __publicField(this, \"getCastFn\", (event, isSync = false) => {\n let castFn;\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n 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.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 plugin3 of this.config.plugins || []) {\n if (plugin3.handler) plugin3.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.IncrementalSnapshot && event.data.source === IncrementalSource.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 plugin3 of this.config.plugins || []) {\n if (plugin3.getMirror) plugin3.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, canvasMutationData, target) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (data, styleSheet) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node2, id) => {\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { 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.Meta\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e2) => e2.type === EventType.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, _b;\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 (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.remove(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Start);\n }\n pause(timeOffset) {\n var _a2, _b;\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 (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.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 attributes = [\"allow-same-origin\"];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push(\"allow-scripts\");\n }\n this.iframe.style.display = \"none\";\n this.iframe.setAttribute(\"sandbox\", attributes.join(\" \"));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n 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 collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror\n );\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.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 collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.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 (!injectStylesRules.length) {\n return;\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId)\n );\n documentElement.insertBefore(styleEl, head);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index2) => ({\n rule: cssText,\n index: index2\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 collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType.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) return;\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.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 collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\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.IncrementalSnapshot && event.data.source === IncrementalSource.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, _b, _c;\n const { data: d } = e2;\n switch (d.source) {\n case IncrementalSource.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.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: 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.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.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.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource.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.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.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (_b = this.virtualDom.mirror.getNode(d.id)) == null ? void 0 : _b.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id\n );\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.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.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n }\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) 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, _b;\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.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 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 = (node2, id) => {\n if (this.usingVirtualDom) return;\n applyDialogToTopLevel(node2);\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { 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.Element && mutation.node.type === NodeType.Text) {\n const prospectiveSiblings = Array.isArray(parent.childNodes) ? parent.childNodes : Array.from(parent.childNodes);\n if (parentSn.tagName === \"textarea\") {\n for (const c2 of prospectiveSiblings) {\n if (c2.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c2);\n }\n }\n } else if (parentSn.tagName === \"style\" && prospectiveSiblings.length === 1) {\n for (const cssText of prospectiveSiblings) {\n if (cssText.nodeType === parent.TEXT_NODE && !mirror2.hasNode(cssText)) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if ((parentSn == null ? void 0 : parentSn.type) === NodeType.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType.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\" && ((_b = parent.rules) == null ? void 0 : _b.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 const parentEl = target.parentElement;\n if (mutation.value && parentEl && parentEl.tagName === \"STYLE\") {\n target.textContent = adaptCssForReplay(mutation.value, this.cache);\n } else {\n target.textContent = mutation.value;\n }\n if (this.usingVirtualDom) {\n const parent = target.parentNode;\n if (((_a2 = parent == null ? void 0 : parent.rules) == null ? void 0 : _a2.length) > 0) 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 if (attributeName === \"open\")\n removeDialogFromTopLevel(target, mutation);\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 parentNode2 = target.parentNode;\n if (newNode && parentNode2) {\n parentNode2.removeChild(target);\n parentNode2.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 if (attributeName === \"rr_open_mode\" && target.nodeName === \"DIALOG\") {\n applyDialogToTopLevel(target, mutation);\n }\n } catch (error) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n error\n );\n }\n } else if (attributeName === \"style\") {\n const styleValues = value;\n const targetEl = target;\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, _b;\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.Document) {\n (_b = target.defaultView) == null ? void 0 : _b.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) return;\n const result2 = new Range();\n result2.setStart(startContainer, startOffset);\n result2.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: result2,\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) 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) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n applyStyleSheetRule(data, styleSheet) {\n var _a2, _b, _c, _d;\n (_a2 = data.adds) == null ? void 0 : _a2.forEach(({ rule: rule2, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule2, index2);\n } else {\n const index2 = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule2, index2);\n }\n } catch (e2) {\n }\n });\n (_b = data.removes) == null ? void 0 : _b.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index2 || 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 rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority\n );\n }\n if (data.remove) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.removeProperty(data.remove.property);\n }\n }\n applyAdoptedStyleSheet(data) {\n var _a2;\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) 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) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.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: node2, mutation } = previousInMap;\n parent.insertBefore(node2, 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, node2, mutation);\n }\n }\n if (nextInMap) {\n const { node: node2, mutation } = nextInMap;\n parent.insertBefore(\n node2,\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, node2, mutation);\n }\n }\n }\n moveAndHover(x2, 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 = x2 * 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(position) {\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(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n 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.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.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}\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n Replayer,\n ReplayerEvents,\n addCustomEvent,\n canvasMutation,\n freezePage,\n _mirror as mirror,\n record,\n takeFullSnapshot,\n utils\n};\n//# sourceMappingURL=rrweb.js.map\n",null,null,null],"names":["DeviceCollector","constructor","config","this","collect","type","getDeviceType","vendor","getVendor","model","getModel","os","getOS","screen","getScreenInfo","memory","getMemory","cores","getCores","connection","getConnection","ua","navigator","userAgent","test","includes","undefined","modelMatch","match","name","version","replace","width","window","height","orientation","getOrientation","pixelRatio","devicePixelRatio","innerWidth","innerHeight","deviceMemory","hardwareConcurrency","mozConnection","webkitConnection","effectiveType","downlink","rtt","saveData","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","LocationCollector","geoData","captureLocation","requestGeolocation","Object","assign","url","location","href","hostname","pathname","search","hash","protocol","port","referrer","document","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","geolocation","getCurrentPosition","position","latitude","coords","longitude","reverseGeocode","error","debug","console","log","timeout","maximumAge","response","fetch","headers","ok","data","json","address","country","region","state","city","town","village","BrowserCollector","getBrowserName","getBrowserVersion","engine","getEngine","language","languages","Array","from","cookieEnabled","doNotTrack","getDoNotTrack","viewport","timezoneOffset","Date","getTimezoneOffset","dnt","msDoNotTrack","n","t","i","a","o","addEventListener","persisted","timeStamp","c","performance","getEntriesByType","u","activationStart","f","prerendering","wasDiscarded","rating","delta","entries","id","concat","now","Math","floor","random","navigationType","s","PerformanceObserver","supportedEntryTypes","getEntries","observe","buffered","d","r","l","requestAnimationFrame","p","visibilityState","v","m","h","g","T","y","removeEventListener","E","setTimeout","firstHiddenTime","C","L","w","forEach","disconnect","startTime","max","push","reportAllChanges","b","A","passive","capture","I","k","F","entryType","target","cancelable","processingStart","M","D","U","V","X","Y","readyState","Z","responseStart","PerformanceCollector","transport","metrics","start","hadRecentInput","length","takeRecords","onCLS","metric","handleMetric","onFCP","onFID","onLCP","onTTFB","collectNavigationTimings","collectResourceTimings","longTaskThreshold","observeLongTasks","metricName","toLowerCase","sendPerformanceMetric","timestamp","toISOString","timing","navigation","domLoad","domContentLoadedEventEnd","navigationStart","windowLoad","loadEventEnd","details","redirectCount","dns","domainLookupEnd","domainLookupStart","tcp","connectEnd","connectStart","request","requestStart","responseEnd","dom","domComplete","domLoading","resources","resourceStats","total","byType","slowest","resource","initiatorType","map","duration","sort","slice","observer","list","entry","entryTypes","getMetrics","ErrorCollector","breadcrumbs","maxBreadcrumbs","_a","errorOptions","event","handleError","message","filename","lineno","colno","reason","setupAutomaticBreadcrumbs","captureError","context","addBreadcrumb","breadcrumb","crumb","category","level","shift","shouldIgnoreError","errorData","Error","stack","session_id","stackMatch","line","parseInt","column","String","includeLocalVariables","localVariables","sendError","ignorePatterns","ignoreErrors","errorMessage","pattern","RegExp","denyUrls","_b","wrapConsole","tagName","className","innerText","substring","lastHref","checkNavigation","to","originalPushState","history","pushState","args","originalReplaceState","replaceState","original","arg","join","startsWith","arguments","getBreadcrumbs","NetworkCollector","interceptFetch","interceptXHR","originalFetch","Request","toString","method","clonedResponse","clone","shouldIgnoreUrl","networkRequestOptions","captureFailedOnly","networkRequest","status","size","getResponseSize","failed","captureHeaders","headersToObject","_c","captureBody","text","body","sendNetworkRequest","originalOpen","XMLHttpRequest","prototype","open","originalSend","send","async","username","password","__devskin","call","xhr","devskin","collector","__devskinNetworkCollector","parseResponseHeaders","getAllResponseHeaders","_d","responseText","apiUrl","ignoreUrls","blob","obj","key","headerStr","trim","split","parts","header","HeatmapCollector","clickData","scrollData","mouseMoveData","maxScrollDepth","flushInterval","mouseMoveSampling","heatmapOptions","enabled","trackClicks","trackScroll","trackScrollDepth","trackMouseMovement","setInterval","flush","stop","clearInterval","rect","getBoundingClientRect","relativeX","clientX","left","relativeY","clientY","top","pageX","scrollX","pageY","scrollY","x","element","getElementSelector","elementId","elementClass","pageUrl","viewportWidth","viewportHeight","updateScrollDepth","windowHeight","documentHeight","documentElement","scrollHeight","scrollTop","scrollPercent","round","depth","maxDepth","pageHeight","scrollTimeout","clearTimeout","mouseMoveTimeout","sendHeatmapData","classes","filter","__defProp","defineProperty","__publicField","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","defaultObj","globalThis","defaultPrototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","_a2","getOwnPropertyDescriptor","get","methodNames","isUntaintedMethods","Zone","iframeEl","createElement","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","ownerNode","ownerDocument","stringifiedRules","rule2","stringifyRule","cssText","isCSSImportRule","importStringified","styleSheet","statement","JSON","stringify","layerName","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","Map","WeakMap","getId","getMeta","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","maskInputOptions","maskInputFn","actualType","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","URL","err","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","indexOf","extractOrigin","pop","part","normalizeCssString","markCssSplits","style","childNodes2","splits","cssTextNorm","i2","textContentNorm","j","bit","splitNorm","splitCssText","_id","tagNameRegex","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","setAttribute","transformAttribute","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","stylesheet","find","rel","_cssText","sheet","checked","selected","rr_open_mode","__context","canvas","ctx","getContext","x2","getImageData","originalGetImageData","Uint32Array","min","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","complete","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","rr_scrollTop","class","rr_width","rr_height","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","shadowRootEl","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","listener","fired","timer","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","picocolors_browser$1","exports","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","__proto__","Symbol","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","CssSyntaxError","source","file","plugin22","super","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","end","maxWidth","index2","number","gutter","spacing","code","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","last","child","before","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","rawSemicolon","rule","ownSemicolon","stringifier$1","Stringifier$1$1","stringify$4$1","stringify_1$1","isClean$2$1","my$2$1","CssSyntaxError$2$1","Stringifier2$1","stringify$3$1","cloneNode$1","cloned","isArray","Node$4$1","defaults","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","index","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","node$1","Node$3$1","Declaration$4$1","variable","declaration$1","nonSecure$1","nanoid","SourceMapConsumer","SourceMapConsumer$2$1","SourceMapGenerator","SourceMapGenerator$2$1","existsSync","existsSync$1","readFileSync","readFileSync$1","dirname","dirname$1$1","join$1","PreviousMap$2$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath","fileURLToPath$1","pathToFileURL","pathToFileURL$1$1","isAbsolute","isAbsolute$1","resolve$1$1","nanoid$2","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","fromUrl","originalPositionFor","sourceContentFor","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative","relative$1","resolve$2","sep","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","Node$2$1","Comment$4$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","Node$1$1","cleanSource$1","markDirtyUp$1","Container$7$1","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","setPrototypeOf","LazyResult$4$1","Processor$3$1","Container$6$1","Document$3$1","toResult","registerLazyResult","registerProcessor","document$1$1","printed$1","warnOnce$2$1","Warning$2$1","range","opt","warning$1","Warning$1$1","Result$3$1","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","result$1","SINGLE_QUOTE$1","DOUBLE_QUOTE$1","BACKSLASH$1","SLASH$1","NEWLINE$1","SPACE$1","FEED$1","TAB$1","CR$1","OPEN_SQUARE$1","CLOSE_SQUARE$1","OPEN_PARENTHESES$1","CLOSE_PARENTHESES$1","OPEN_CURLY$1","CLOSE_CURLY$1","SEMICOLON$1","ASTERISK$1","COLON$1","AT$1","RE_AT_END$1","RE_WORD_END$1","RE_BAD_BRACKET$1","RE_HEX_ESCAPE$1","Container$5$1","AtRule$3$1","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","ignore","root$1","list$2$1","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","values","sep2","rule$1","Declaration$2$1","tokenizer2$1","quote","escaped","escapePos","currentToken","valueOf","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","Container$2$1","Parser2$1","spaces","createTokenizer","unnamedAtrule","init","brackets","tokenizer","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","doubleColon","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","parse","clean","reduce","all","lastTokenType","Input$2$1","parse$3$1","parser2","process","env","NODE_ENV","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","warnOnce$1$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","Root","RootExit","Rule","RuleExit","NOT_VISITORS$1","isPromise$1","getEvents$1","toStack$1","events","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","processed","syntax","parser","helpers","postcss","plugins","processing","runAsync","onRejected","catch","onFinally","getAsyncError","postcssVersion","pluginName","pluginVer","runtimeVer","prepareVisitors","listeners","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","warnOnce2$1","parse$1$1","Result$1$1","NoWorkResult$1$1","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","normalized","use","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","fromJSON","atRule","Processor","Warning","Result","Input","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","create","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node$3","Declaration$4","declaration","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container$7","Container2","container","LazyResult$4","Processor$3","Container$6","Document$3","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","Container$5","AtRule$3","LazyResult$3","Processor$2","Container$4","Root$5","list$2","list_1","Container$3","list$1","Rule$3","Declaration$2","tokenizer22","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","Container$2","Parser22","findLastWithPosition","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","warnOnce22","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","leading","remaining","trailing","hookSetter","isRevoked","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","scrollingElement","pageXOffset","pageYOffset","getWindowHeight","clientHeight","getWindowWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","processMutations","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","getHandler","PointerEvent","TouchStart","TouchEnd","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin3","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","encodedJs","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","tel","time","week","select","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped","RRWebRecorder","sessionId","onEventsReady","stopFn","hasFullSnapshot","hasData","sampleRate","eventsToSend","typeCounts","getEventCount","isRecording","Transport","maxQueueSize","flushIntervalMs","startPeriodicFlush","sendEvent","enqueue","identifyUser","user","sendToBackend","startSession","session","sendRecordingEvents","eventTypes","acc","maxRetries","lastError","attempt","delay","heatmapData","useBeacon","items","grouped","endpoint","getEndpointForType","endpoint_1","data_1","apiKey","appId","environment","release","beforeSend","sendBeacon","Authorization","keepalive","errorText","statusText","DevSkin","userId","anonymousId","sessionStartTime","initialized","deviceCollector","locationCollector","browserCollector","performanceCollector","errorCollector","networkCollector","heatmapCollector","rrwebRecorder","captureWebVitals","captureNetworkRequests","captureErrors","captureUserAgent","captureDevice","getOrCreateAnonymousId","sessionRecording","trackPageView","setupVisibilityTracking","setupUnloadTracking","track","properties","eventData","event_name","event_type","user_id","anonymous_id","getContextData","page_url","page_title","title","identify","traits","userData","startRecording","stopRecording","optOut","localStorage","setItem","optIn","removeItem","sessionData","started_at","device","browser","getItem","endedAt","durationMs","ended_at","duration_ms"],"mappings":"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","x_google_ignoreList":[1,4,9]}
1
+ {"version":3,"file":"devskin.umd.min.js","sources":["../src/collectors/device.ts","../node_modules/tslib/tslib.es6.js","../src/collectors/location.ts","../src/collectors/browser.ts","../node_modules/web-vitals/dist/web-vitals.js","../node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../src/collectors/performance.ts","../src/collectors/error.ts","../src/collectors/network.ts","../src/collectors/heatmap.ts","../node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.js","../node_modules/rrweb/es/rrweb/packages/types/dist/types.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../node_modules/rrweb/es/rrweb/ext/tslib/tslib.es6.js","../node_modules/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","../node_modules/rrweb/es/rrweb/_virtual/image-bitmap-data-url-worker.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createInlineWorkerFactory.js","../node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__funcToSource.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/processed-node-manager.js","../node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../src/recorder/rrweb.ts","../src/transport.ts","../src/index.ts"],"sourcesContent":[null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,"var e,n,t,i,r,a=-1,o=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(a=n.timeStamp,e(n))}),!0)},c=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0]},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),i=\"navigate\";a>=0?i=\"back-forward-cache\":t&&(document.prerendering||u()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":t.type&&(i=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v3-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return i.observe(Object.assign({type:e,buffered:!0},t||{})),i}}catch(e){}},d=function(e,n,t,i){var r,a;return function(o){n.value>=0&&(o||i)&&((a=n.value-(r||0))||void 0===r)&&(r=n.value,n.delta=a,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){var n=function(n){\"pagehide\"!==n.type&&\"hidden\"!==document.visibilityState||e(n)};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},v=function(e){var n=!1;return function(t){n||(e(t),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),o((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},L=[1800,3e3],w=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"FCP\"),a=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(a.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=Math.max(e.startTime-u(),0),r.entries.push(e),t(!0)))}))}));a&&(t=d(e,r,L,n.reportAllChanges),o((function(i){r=f(\"FCP\"),t=d(e,r,L,n.reportAllChanges),l((function(){r.value=performance.now()-i.timeStamp,t(!0)}))})))}))},b=[.1,.25],S=function(e,n){n=n||{},w(v((function(){var t,i=f(\"CLS\",0),r=0,a=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=a[0],t=a[a.length-1];r&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(r+=e.value,a.push(e)):(r=e.value,a=[e])}})),r>i.value&&(i.value=r,i.entries=a,t())},u=s(\"layout-shift\",c);u&&(t=d(e,i,b,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),o((function(){r=0,i=f(\"CLS\",0),t=d(e,i,b,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A={passive:!0,capture:!0},I=new Date,P=function(i,r){e||(e=r,n=i,t=new Date,k(removeEventListener),F())},F=function(){if(n>=0&&n<t-I){var r={entryType:\"first-input\",name:e.type,target:e.target,cancelable:e.cancelable,startTime:e.timeStamp,processingStart:e.timeStamp+n};i.forEach((function(e){e(r)})),i=[]}},M=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){P(e,n),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",t,A),removeEventListener(\"pointercancel\",i,A)};addEventListener(\"pointerup\",t,A),addEventListener(\"pointercancel\",i,A)}(n,e):P(n,e)}},k=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,M,A)}))},D=[100,300],x=function(t,r){r=r||{},C((function(){var a,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),a(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);a=d(t,u,D,r.reportAllChanges),h&&p(v((function(){m(h.takeRecords()),h.disconnect()}))),h&&o((function(){var o;u=f(\"FID\"),a=d(t,u,D,r.reportAllChanges),i=[],n=-1,e=null,k(addEventListener),o=l,i.push(o),F()}))}))},B=0,R=1/0,H=0,N=function(e){e.forEach((function(e){e.interactionId&&(R=Math.min(R,e.interactionId),H=Math.max(H,e.interactionId),B=H?(H-R)/7+1:0)}))},O=function(){return r?B:performance.interactionCount||0},q=function(){\"interactionCount\"in performance||r||(r=s(\"event\",N,{type:\"event\",buffered:!0,durationThreshold:0}))},j=[200,500],_=0,z=function(){return O()-_},G=[],J={},K=function(e){var n=G[G.length-1],t=J[e.interactionId];if(t||G.length<10||e.duration>n.latency){if(t)t.entries.push(e),t.latency=Math.max(t.latency,e.duration);else{var i={id:e.interactionId,latency:e.duration,entries:[e]};J[i.id]=i,G.push(i)}G.sort((function(e,n){return n.latency-e.latency})),G.splice(10).forEach((function(e){delete J[e.id]}))}},Q=function(e,n){n=n||{},C((function(){var t;q();var i,r=f(\"INP\"),a=function(e){e.forEach((function(e){(e.interactionId&&K(e),\"first-input\"===e.entryType)&&(!G.some((function(n){return n.entries.some((function(n){return e.duration===n.duration&&e.startTime===n.startTime}))}))&&K(e))}));var n,t=(n=Math.min(G.length-1,Math.floor(z()/50)),G[n]);t&&t.latency!==r.value&&(r.value=t.latency,r.entries=t.entries,i())},c=s(\"event\",a,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});i=d(e,r,j,n.reportAllChanges),c&&(\"PerformanceEventTiming\"in window&&\"interactionId\"in PerformanceEventTiming.prototype&&c.observe({type:\"first-input\",buffered:!0}),p((function(){a(c.takeRecords()),r.value<0&&z()>0&&(r.value=0,r.entries=[]),i(!0)})),o((function(){G=[],_=O(),r=f(\"INP\"),i=d(e,r,j,n.reportAllChanges)})))}))},U=[2500,4e3],V={},W=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"LCP\"),a=function(e){var n=e[e.length-1];n&&n.startTime<i.firstHiddenTime&&(r.value=Math.max(n.startTime-u(),0),r.entries=[n],t())},c=s(\"largest-contentful-paint\",a);if(c){t=d(e,r,U,n.reportAllChanges);var m=v((function(){V[r.id]||(a(c.takeRecords()),c.disconnect(),V[r.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return setTimeout(m,0)}),!0)})),p(m),o((function(i){r=f(\"LCP\"),t=d(e,r,U,n.reportAllChanges),l((function(){r.value=performance.now()-i.timeStamp,V[r.id]=!0,t(!0)}))}))}}))},X=[800,1800],Y=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Z=function(e,n){n=n||{};var t=f(\"TTFB\"),i=d(e,t,X,n.reportAllChanges);Y((function(){var r=c();if(r){var a=r.responseStart;if(a<=0||a>performance.now())return;t.value=Math.max(a-u(),0),t.entries=[r],i(!0),o((function(){t=f(\"TTFB\",0),(i=d(e,t,X,n.reportAllChanges))(!0)}))}}))};export{b as CLSThresholds,L as FCPThresholds,D as FIDThresholds,j as INPThresholds,U as LCPThresholds,X as TTFBThresholds,S as getCLS,w as getFCP,x as getFID,Q as getINP,W as getLCP,Z as getTTFB,S as onCLS,w as onFCP,x as onFID,Q as onINP,W as onLCP,Z as onTTFB};\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }) {\r\n let text = value || '';\r\n const actualType = type && toLowerCase(type);\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n (actualType && maskInputOptions[actualType])) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction extractFileExtension(path, baseURL) {\r\n var _a;\r\n let url;\r\n try {\r\n url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href);\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n const regex = /\\.([0-9a-z]+)(?:$)/i;\r\n const match = url.pathname.match(regex);\r\n return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (let eIndex = node.classList.length; eIndex--;) {\r\n const className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (checkAncestors) {\r\n if (el.closest(`.${maskTextClass}`))\r\n return true;\r\n }\r\n else {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n }\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, checkAncestors))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (checkAncestors) {\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n else {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, needsMask, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n needsMask,\r\n maskTextFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { needsMask, maskTextFn, rootId } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle && !isScript && textContent && needsMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, inlineStylesheet, maskInputOptions = {}, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n const value = n.value;\r\n const checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n element: n,\r\n type: getInputType(n),\r\n tagName,\r\n value,\r\n maskInputOptions,\r\n maskInputFn,\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n const mediaAttributes = attributes;\r\n mediaAttributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\r\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\r\n mediaAttributes.rr_mediaMuted = n.muted;\r\n mediaAttributes.rr_mediaLoop = n.loop;\r\n mediaAttributes.rr_mediaVolume = n.volume;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n extractFileExtension(sn.attributes.href) === 'js'))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, maskTextClass, maskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { needsMask } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n if (!needsMask &&\r\n n.childNodes) {\r\n const checkAncestors = needsMask === undefined;\r\n needsMask = needMaskingText(n, maskTextClass, maskTextSelector, checkAncestors);\r\n }\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'textarea' &&\r\n serializedNode.attributes.value !== undefined) ;\r\n else {\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n typeof serializedNode.attributes.rel === 'string' &&\r\n (serializedNode.attributes.rel === 'stylesheet' ||\r\n (serializedNode.attributes.rel === 'preload' &&\r\n typeof serializedNode.attributes.href === 'string' &&\r\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true,\r\n }\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n for (const char of input) {\r\n if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\r\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, 'g');\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction adaptCssForReplay(cssText, cache) {\r\n const cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n const medias = [];\r\n function getSelectors(rule) {\r\n if ('selectors' in rule && rule.selectors) {\r\n rule.selectors.forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n if ('media' in rule && rule.media && MEDIA_SELECTOR.test(rule.media)) {\r\n medias.push(rule.media);\r\n }\r\n if ('rules' in rule && rule.rules) {\r\n rule.rules.forEach(getSelectors);\r\n }\r\n }\r\n getSelectors(ast.stylesheet);\r\n let result = cssText;\r\n if (selectors.length > 0) {\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n result = result.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n }\r\n if (medias.length > 0) {\r\n const mediaMatcher = new RegExp(medias\r\n .filter((media, index) => medias.indexOf(media) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((media) => {\r\n return escapeRegExp(media);\r\n })\r\n .join('|'), 'g');\r\n result = result.replace(mediaMatcher, (media) => {\r\n return media.replace(MEDIA_SELECTOR_GLOBAL, '$1-$2');\r\n });\r\n }\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var _a;\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n ((_a = doc.defaultView) === null || _a === void 0 ? void 0 : _a.customElements) &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = adaptCssForReplay(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n node.appendChild(doc.createTextNode(value));\r\n n.childNodes = [];\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.width = value.toString();\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.height = value.toString();\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n else if (name === 'rr_mediaPlaybackRate' &&\r\n typeof value === 'number') {\r\n node.playbackRate = value;\r\n }\r\n else if (name === 'rr_mediaMuted' && typeof value === 'boolean') {\r\n node.muted = value;\r\n }\r\n else if (name === 'rr_mediaLoop' && typeof value === 'boolean') {\r\n node.loop = value;\r\n }\r\n else if (name === 'rr_mediaVolume' && typeof value === 'number') {\r\n node.volume = value;\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? adaptCssForReplay(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, adaptCssForReplay, buildNodeWithSN, classMatchesRegex, createCache, createMirror, escapeImportStatement, extractFileExtension, fixSafariColons, genId, getInputType, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, transformAttribute };\n",null,null,null,null,"import { classMatchesRegex, IGNORED_NODE, isShadowRoot } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (blockSelector) {\r\n if (el.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nexport { StyleSheetMirror, _mirror, closestElementOfNode, getBaseDimension, getNestedRule, getPositionsAndIndex, getRootShadowHost, getShadowHost, getWindowHeight, getWindowScroll, getWindowWidth, hasShadowRoot, hookSetter, inDom, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, iterateResolveTree, legacy_isTouchEvent, nowTimestamp, on, patch, polyfill, queueToResolveTrees, shadowHostInDom, throttle, uniqueTextMutations };\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, PointerTypes, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, getInputType, maskInputValue, ignoreAttribute, transformAttribute, toLowerCase, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, closestElementOfNode, hasShadowRoot, inDom, getShadowHost, isSerializedIframe, isSerializedStylesheet } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode ||\r\n !inDom(n) ||\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => {\r\n const n = text.node;\r\n if (n.parentNode &&\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(n.parentNode);\r\n }\r\n return {\r\n id: this.mirror.getId(n),\r\n value: text.value,\r\n };\r\n })\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.genTextAreaValueMutation = (textarea) => {\r\n let item = this.attributeMap.get(textarea);\r\n if (!item) {\r\n item = {\r\n node: textarea,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(textarea, item);\r\n }\r\n item.attributes.value = Array.from(textarea.childNodes, (cn) => cn.textContent || '').join('');\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, true) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n value = maskInputValue({\r\n element: target,\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n if (m.target.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(m.target);\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","let errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nexport { callbackWrapper, registerErrorHandler, unregisterErrorHandler };\n","import { toLowerCase, getInputType, maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowScroll, getWindowHeight, getWindowWidth, hookSetter, patch, legacy_isTouchEvent, nowTimestamp } from '../utils.js';\nimport { MouseInteractions, IncrementalSource, PointerTypes } from '../../../types/dist/types.js';\nimport MutationBuffer from './mutation.js';\nimport { callbackWrapper } from './error-handler.js';\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && target.tagName;\r\n if (target && tagName === 'OPTION') {\r\n target = target.parentElement;\r\n }\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n if (target.classList.contains(ignoreClass) ||\r\n (ignoreSelector && target.matches(ignoreSelector))) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n const type = getInputType(target) || '';\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n element: target,\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = el.value;\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, loop } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n loop,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n console.warn(`Custom element callback failed for ${name}`);\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n let mutationObserver;\r\n if (o.recordDOM) {\r\n mutationObserver = initMutationObserver(o, o.doc);\r\n }\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n let styleSheetObserver = () => { };\r\n let adoptedStyleSheetObserver = () => { };\r\n let styleDeclarationObserver = () => { };\r\n let fontObserver = () => { };\r\n if (o.recordDOM) {\r\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n if (o.collectFonts) {\r\n fontObserver = initFontObserver(o);\r\n }\r\n }\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver === null || mutationObserver === void 0 ? void 0 : mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { patch, inDom } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nexport { __awaiter, __rest };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasContextObserver as default };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","import { createInlineWorkerFactory } from './_rollup-plugin-web-worker-loader__helper__browser__createInlineWorkerFactory.js';\n\nvar WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {\n(function () {\n '__worker_loader_strict__';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\n\n /*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n };\n\n const lastBlobMap = new Map();\r\n const transparentBlobMap = new Map();\r\n function getTransparentBlobFor(width, height, dataURLOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const id = `${width}-${height}`;\r\n if ('OffscreenCanvas' in globalThis) {\r\n if (transparentBlobMap.has(id))\r\n return transparentBlobMap.get(id);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n offscreen.getContext('2d');\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n transparentBlobMap.set(id, base64);\r\n return base64;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n }\r\n const worker = self;\r\n worker.onmessage = function (e) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if ('OffscreenCanvas' in globalThis) {\r\n const { id, bitmap, width, height, dataURLOptions } = e.data;\r\n const transparentBase64 = getTransparentBlobFor(width, height, dataURLOptions);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n const ctx = offscreen.getContext('2d');\r\n ctx.drawImage(bitmap, 0, 0);\r\n bitmap.close();\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const type = blob.type;\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n if (!lastBlobMap.has(id) && (yield transparentBase64) === base64) {\r\n lastBlobMap.set(id, base64);\r\n return worker.postMessage({ id });\r\n }\r\n if (lastBlobMap.get(id) === base64)\r\n return worker.postMessage({ id });\r\n worker.postMessage({\r\n id,\r\n type,\r\n base64,\r\n width,\r\n height,\r\n });\r\n lastBlobMap.set(id, base64);\r\n }\r\n else {\r\n return worker.postMessage({ id: e.data.id });\r\n }\r\n });\r\n };\n\n})();\n}, null);\n/* eslint-enable */\n\nexport { WorkerFactory as default };\n","import { funcToSource } from './_rollup-plugin-web-worker-loader__helper__funcToSource.js';\n\nfunction createURL(fn, sourcemapArg) {\n var lines = funcToSource(fn, sourcemapArg);\n var blob = new Blob(lines, { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createInlineWorkerFactory(fn, sourcemapArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(fn, sourcemapArg);\n return new Worker(url, options);\n };\n}\n\nexport { createInlineWorkerFactory };\n","function funcToSource(fn, sourcemapArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var source = fn.toString();\n var lines = source.split('\\n');\n lines.pop();\n lines.shift();\n var blankPrefixLength = lines[0].search(/\\S/);\n var regex = /(['\"])__worker_loader_strict__(['\"])/g;\n for (var i = 0, n = lines.length; i < n; ++i) {\n lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\\n';\n }\n if (sourcemap) {\n lines.push('\\/\\/# sourceMappingURL=' + sourcemap + '\\n');\n }\n return lines;\n}\n\nexport { funcToSource };\n","import { __rest, __awaiter } from './../../../../../../ext/tslib/tslib.es6.js';\nimport { isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport WorkerFactory from '../../../../../../_virtual/image-bitmap-data-url-worker.js';\n\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (canvas.width === 0 || canvas.height === 0)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { stringifyRule } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","class ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nexport { ProcessedNodeManager as default };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, nowTimestamp, on, getWindowWidth, getWindowHeight, getWindowScroll, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\nimport ProcessedNodeManager from './processed-node-manager.js';\nimport { callbackWrapper, unregisterErrorHandler, registerErrorHandler } from './error-handler.js';\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n if (!recordDOM) {\r\n return;\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordDOM,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nexport { record as default };\n",null,null,null],"names":["DeviceCollector","constructor","config","this","collect","type","getDeviceType","vendor","getVendor","model","getModel","os","getOS","screen","getScreenInfo","memory","getMemory","cores","getCores","connection","getConnection","ua","navigator","userAgent","test","includes","undefined","modelMatch","match","name","version","replace","width","window","height","orientation","getOrientation","pixelRatio","devicePixelRatio","innerWidth","innerHeight","deviceMemory","hardwareConcurrency","mozConnection","webkitConnection","effectiveType","downlink","rtt","saveData","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","SuppressedError","LocationCollector","geoData","captureLocation","requestGeolocation","Object","assign","url","location","href","hostname","pathname","search","hash","protocol","port","referrer","document","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","geolocation","getCurrentPosition","position","latitude","coords","longitude","reverseGeocode","error","debug","console","log","timeout","maximumAge","response","fetch","headers","ok","data","json","address","country","region","state","city","town","village","BrowserCollector","getBrowserName","getBrowserVersion","engine","getEngine","language","languages","Array","from","cookieEnabled","doNotTrack","getDoNotTrack","viewport","timezoneOffset","Date","getTimezoneOffset","dnt","msDoNotTrack","n","t","i","NodeType","a","o","addEventListener","persisted","timeStamp","c","performance","getEntriesByType","u","activationStart","f","prerendering","wasDiscarded","rating","delta","entries","id","concat","now","Math","floor","random","navigationType","s","PerformanceObserver","supportedEntryTypes","getEntries","observe","buffered","d","r","l","requestAnimationFrame","p","visibilityState","v","m","h","g","T","y","removeEventListener","E","setTimeout","firstHiddenTime","C","L","w","forEach","disconnect","startTime","max","push","reportAllChanges","b","A","passive","capture","I","k","F","entryType","target","cancelable","processingStart","M","D","U","V","X","Y","readyState","Z","responseStart","PerformanceCollector","transport","metrics","start","hadRecentInput","length","takeRecords","onCLS","metric","handleMetric","onFCP","onFID","onLCP","onTTFB","collectNavigationTimings","collectResourceTimings","longTaskThreshold","observeLongTasks","metricName","toLowerCase","sendPerformanceMetric","timestamp","toISOString","timing","navigation","domLoad","domContentLoadedEventEnd","navigationStart","windowLoad","loadEventEnd","details","redirectCount","dns","domainLookupEnd","domainLookupStart","tcp","connectEnd","connectStart","request","requestStart","responseEnd","dom","domComplete","domLoading","resources","resourceStats","total","byType","slowest","resource","initiatorType","map","duration","sort","slice","list","entry","entryTypes","getMetrics","ErrorCollector","breadcrumbs","maxBreadcrumbs","_a","errorOptions","event","handleError","message","filename","lineno","colno","reason","setupAutomaticBreadcrumbs","captureError","context","addBreadcrumb","breadcrumb","crumb","category","level","shift","shouldIgnoreError","errorData","Error","stack","session_id","stackMatch","line","parseInt","column","String","includeLocalVariables","localVariables","sendError","ignorePatterns","ignoreErrors","errorMessage","pattern","RegExp","denyUrls","_b","wrapConsole","tagName","className","innerText","substring","lastHref","checkNavigation","to","originalPushState","history","pushState","args","originalReplaceState","replaceState","original","arg","join","startsWith","arguments","getBreadcrumbs","NetworkCollector","interceptFetch","interceptXHR","originalFetch","Request","toString","method","clonedResponse","clone","shouldIgnoreUrl","networkRequestOptions","captureFailedOnly","networkRequest","status","size","getResponseSize","failed","captureHeaders","headersToObject","_c","captureBody","text","body","sendNetworkRequest","originalOpen","XMLHttpRequest","prototype","open","originalSend","send","async","username","password","__devskin","call","xhr","devskin","collector","__devskinNetworkCollector","parseResponseHeaders","getAllResponseHeaders","_d","responseText","apiUrl","ignoreUrls","blob","obj","key","headerStr","trim","split","parts","header","HeatmapCollector","clickData","scrollData","mouseMoveData","maxScrollDepth","flushInterval","mouseMoveSampling","heatmapOptions","enabled","trackClicks","trackScroll","trackScrollDepth","trackMouseMovement","setInterval","flush","stop","clearInterval","rect","getBoundingClientRect","relativeX","clientX","left","relativeY","clientY","top","pageX","scrollX","pageY","scrollY","x","element","getElementSelector","elementId","elementClass","pageUrl","viewportWidth","viewportHeight","updateScrollDepth","windowHeight","documentHeight","documentElement","scrollHeight","scrollTop","scrollPercent","round","depth","maxDepth","pageHeight","scrollTimeout","clearTimeout","mouseMoveTimeout","sendHeatmapData","classes","filter","isShadowRoot","host","Boolean","shadowRoot","isNativeShadowDom","stringifyStylesheet","rules","cssRules","cssText","stringifyRule","rule","importStringified","isCSSImportRule","styleSheet","statement","JSON","stringify","layerName","supportsText","media","mediaText","escapeImportStatement","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","idNodeMap","Map","nodeMetaMap","WeakMap","getId","getMeta","getNode","get","getIds","keys","removeNodeFromMap","delete","childNodes","childNode","has","hasNode","node","add","meta","set","oldNode","reset","maskInputValue","maskInputOptions","maskInputFn","actualType","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","URL","err","_id","tagNameRegex","genId","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","indexOf","extractOrigin","pop","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","doc","attributeValue","createElement","isSVGElement","el","ownerSVGElement","getHref","transformAttribute","pos","collectCharacters","regEx","chars","exec","output","descriptorsStr","inParens","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","nodeType","ELEMENT_NODE","parentNode","eIndex","classList","needMaskingText","maskTextClass","maskTextSelector","parentElement","closest","contains","matches","serializeNode","options","mirror","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","attributes","len","attr","stylesheet","styleSheets","find","rel","_cssText","sheet","textContent","checked","selected","__context","canvas","ctx","getContext","getImageData","originalGetImageData","Uint32Array","min","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","oldValue","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","warn","currentSrc","removeAttribute","complete","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","rr_scrollTop","class","rr_width","rr_height","src","contentDocument","rr_src","isCustomElement","customElements","Element","isSVG","isCustom","serializeElementNode","TEXT_NODE","parentTagName","isStyle","isScript","nextSibling","previousSibling","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isElement","isShadow","iframeEl","listener","win","contentWindow","fired","timer","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","on","fn","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","func","wait","previous","leading","remaining","trailing","hookSetter","isRevoked","getOwnPropertyDescriptor","defineProperty","patch","source","replacement","wrapped","defineProperties","__rrweb_original__","enumerable","Proxy","Reflect","prop","receiver","nowTimestamp","getWindowScroll","_e","_f","scrollingElement","pageXOffset","pageYOffset","getWindowHeight","clientHeight","getWindowWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","getAttribute","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","idStyleMap","newId","getStyle","generateId","getShadowHost","shadowHost","getRootNode","Node","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","ownerDocument","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","isNodeInLinkedList","DoubleLinkedList","head","tail","current","index","addNode","__ln","removeNode","moveKey","parentId","MutationBuffer","frozen","locked","texts","attributeMap","removes","mapRemoves","movedMap","addedSet","Set","movedSet","droppedSet","processMutations","mutations","processMutation","emit","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","isParentRemoved","isAncestorInSet","candidate","tailNode","_node","unhandledNode","payload","genTextAreaValueMutation","attribute","style","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","mutationCb","textarea","item","cn","attributeName","setAttribute","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","targetId","init","freeze","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","registerErrorHandler","handler","unregisterErrorHandler","callbackWrapper","cb","rest","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","MutationObserver","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","observer","bind","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","getHandler","PointerEvent","TouchStart","TouchEnd","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","unshift","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","ownerNode","initAdoptedStyleSheetObserver","hostId","patchTarget","ShadowRoot","originalPropertyDescriptor","configurable","sheets","adoptStyleSheets","initObservers","hooks","currentWindow","mutationObserver","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","input","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","querySelectorAll","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","argumentsList","deleteRule","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","remove","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","range","getRangeAt","startContainer","startOffset","endContainer","endOffset","end","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin","plugins","callback","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","IframeManager","iframes","crossOriginIframeMap","crossOriginIframeMirror","crossOriginIframeRootIdMap","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","Input","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","isArray","child","ShadowDomManager","shadowDoms","WeakSet","restoreHandlers","patchAttachShadow","iframeElement","manager","option","lookup","charCodeAt","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","ctor","contextMap","variableListFor","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","values","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","splice","patchGLPrototype","props","getOwnPropertyNames","recordArgs","hookHandler","setter","WorkerFactory","lastBlobMap","transparentBlobMap","worker","self","onmessage","globalThis","postMessage","bitmap","transparentBase64","offscreen","OffscreenCanvas","convertToBlob","arrayBuffer","getTransparentBlobFor","close","lines","blankPrefixLength","funcToSource","Blob","createObjectURL","createURL","Worker","CanvasManager","pendingCanvasMutations","clear","resetObservers","rafStamps","latestId","invokeId","initCanvasMutationObserver","initCanvasFPSObserver","fps","canvasContextReset","snapshotInProgressMap","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","createImageBitmap","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","flushPendingCanvasMutationFor","valuesWithType","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","__rest","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","ProcessedNodeManager","nodeMap","periodicallyClear","thisBuffer","buffers","destroy","wrapEvent","takeFullSnapshot","recording","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","inEmittingFrame","parent","passEmitsToParent","color","date","email","month","number","tel","time","week","select","lastFullSnapshotEvent","NodeList","DOMTokenList","TypeError","polyfill","incrementalSnapshotCount","eventProcessor","buf","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","addCustomEvent","tag","freezePage","RRWebRecorder","sessionId","onEventsReady","stopFn","events","hasFullSnapshot","hasData","sampleRate","eventsToSend","typeCounts","getEventCount","isRecording","Transport","queue","maxQueueSize","flushIntervalMs","startPeriodicFlush","hidden","sendEvent","enqueue","identifyUser","user","sendToBackend","startSession","session","sendRecordingEvents","eventTypes","reduce","acc","maxRetries","lastError","attempt","delay","heatmapData","useBeacon","items","grouped","endpoint","getEndpointForType","endpoint_1","data_1","apiKey","appId","environment","release","beforeSend","sendBeacon","Authorization","keepalive","errorText","statusText","userId","anonymousId","sessionStartTime","initialized","deviceCollector","locationCollector","browserCollector","performanceCollector","errorCollector","networkCollector","heatmapCollector","rrwebRecorder","captureWebVitals","captureNetworkRequests","captureErrors","captureUserAgent","captureDevice","getOrCreateAnonymousId","sessionRecording","trackPageView","setupVisibilityTracking","setupUnloadTracking","track","properties","eventData","event_name","event_type","user_id","anonymous_id","getContextData","page_url","page_title","title","identify","traits","userData","startRecording","stopRecording","optOut","localStorage","setItem","optIn","removeItem","sessionData","started_at","device","browser","getItem","substr","endedAt","durationMs","ended_at","duration_ms"],"mappings":"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","x_google_ignoreList":[1,4,5,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}