@highlight-run/rrweb 2.0.6 → 2.0.9
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.
- package/dist/plugins/console-record.min.js.map +1 -1
- package/dist/plugins/console-replay.min.js.map +1 -1
- package/dist/record/rrweb-record-pack.min.js.map +1 -1
- package/dist/record/rrweb-record.js +3 -3
- package/dist/record/rrweb-record.min.js +3 -3
- package/dist/record/rrweb-record.min.js.map +1 -1
- package/dist/replay/rrweb-replay-unpack.js +4 -4
- package/dist/replay/rrweb-replay-unpack.min.js +4 -4
- package/dist/replay/rrweb-replay-unpack.min.js.map +1 -1
- package/dist/replay/rrweb-replay.js +4 -4
- package/dist/replay/rrweb-replay.min.js +4 -4
- package/dist/replay/rrweb-replay.min.js.map +1 -1
- package/dist/rrweb-all.js +12 -12
- package/dist/rrweb-all.min.js +12 -12
- package/dist/rrweb-all.min.js.map +1 -1
- package/dist/rrweb.js +5 -5
- package/dist/rrweb.min.js +5 -5
- package/dist/rrweb.min.js.map +1 -1
- package/es/rrweb/packages/rrdom/es/virtual-dom.js +47 -24
- package/es/rrweb/packages/rrweb/src/record/index.js +5 -2
- package/es/rrweb/packages/rrweb/src/record/mutation.js +23 -11
- package/es/rrweb/packages/rrweb/src/record/observer.js +6 -6
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js +1 -1
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js +2 -2
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js +1 -2
- package/es/rrweb/packages/rrweb/src/utils.js +16 -23
- package/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js +292 -236
- package/lib/record/rrweb-record.js +333 -280
- package/lib/replay/rrweb-replay-unpack.js +57 -24
- package/lib/replay/rrweb-replay.js +57 -24
- package/lib/rrweb-all.js +390 -304
- package/lib/rrweb.js +390 -304
- package/package.json +4 -4
- package/typings/utils.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var rrwebReplay=function(
|
|
2
|
-
`);i=b===-1?i+y.length:y.length-b}function s(){var y={line:r,column:i};return function(p){return p.position=new a(y),T(),p}}var a=function(){function y(p){this.start=p,this.end={line:r,column:i},this.source=t.source}return y}();a.prototype.content=e;var l=[];function u(y){var p=new Error(t.source+":"+r+":"+i+": "+y);if(p.reason=y,p.filename=t.source,p.line=r,p.column=i,p.source=e,t.silent)l.push(p);else throw p}function o(){var y=m();return{type:"stylesheet",stylesheet:{source:t.source,rules:y,parsingErrors:l}}}function c(){return f(/^{\s*/)}function d(){return f(/^}/)}function m(){var y,p=[];for(T(),g(p);e.length&&e.charAt(0)!=="}"&&(y=O()||te());)y!==!1&&(p.push(y),g(p));return p}function f(y){var p=y.exec(e);if(p){var b=p[0];return n(b),e=e.slice(b.length),p}}function T(){f(/^\s*/)}function g(y){y===void 0&&(y=[]);for(var p;p=E();)p!==!1&&y.push(p),p=E();return y}function E(){var y=s();if(!(e.charAt(0)!=="/"||e.charAt(1)!=="*")){for(var p=2;e.charAt(p)!==""&&(e.charAt(p)!=="*"||e.charAt(p+1)!=="/");)++p;if(p+=2,e.charAt(p-1)==="")return u("End of comment missing");var b=e.slice(2,p-2);return i+=2,n(b),e=e.slice(p),i+=2,y({type:"comment",comment:b})}}function h(){var y=f(/^([^{]+)/);if(y)return $(y[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g,"").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g,function(p){return p.replace(/,/g,"\u200C")}).split(/\s*(?![^(]*\)),\s*/).map(function(p){return p.replace(/\u200C/g,",")})}function v(){var y=s(),p=f(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);if(p){var b=$(p[0]);if(!f(/^:\s*/))return u("property missing ':'");var S=f(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/),P=y({type:"declaration",property:b.replace(Re,""),value:S?$(S[0]).replace(Re,""):""});return f(/^[;\s]*/),P}}function w(){var y=[];if(!c())return u("missing '{'");g(y);for(var p;p=v();)p!==!1&&(y.push(p),g(y)),p=v();return d()?y:u("missing '}'")}function R(){for(var y,p=[],b=s();y=f(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/);)p.push(y[1]),f(/^,\s*/);if(p.length)return b({type:"keyframe",values:p,declarations:w()})}function L(){var y=s(),p=f(/^@([-\w]+)?keyframes\s*/);if(p){var b=p[1];if(p=f(/^([-\w]+)\s*/),!p)return u("@keyframes missing name");var S=p[1];if(!c())return u("@keyframes missing '{'");for(var P,le=g();P=R();)le.push(P),le=le.concat(g());return d()?y({type:"keyframes",name:S,vendor:b,keyframes:le}):u("@keyframes missing '}'")}}function k(){var y=s(),p=f(/^@supports *([^{]+)/);if(p){var b=$(p[1]);if(!c())return u("@supports missing '{'");var S=g().concat(m());return d()?y({type:"supports",supports:b,rules:S}):u("@supports missing '}'")}}function A(){var y=s(),p=f(/^@host\s*/);if(p){if(!c())return u("@host missing '{'");var b=g().concat(m());return d()?y({type:"host",rules:b}):u("@host missing '}'")}}function G(){var y=s(),p=f(/^@media *([^{]+)/);if(p){var b=$(p[1]);if(!c())return u("@media missing '{'");var S=g().concat(m());return d()?y({type:"media",media:b,rules:S}):u("@media missing '}'")}}function W(){var y=s(),p=f(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);if(p)return y({type:"custom-media",name:$(p[1]),media:$(p[2])})}function De(){var y=s(),p=f(/^@page */);if(p){var b=h()||[];if(!c())return u("@page missing '{'");for(var S=g(),P;P=v();)S.push(P),S=S.concat(g());return d()?y({type:"page",selectors:b,declarations:S}):u("@page missing '}'")}}function Me(){var y=s(),p=f(/^@([-\w]+)?document *([^{]+)/);if(p){var b=$(p[1]),S=$(p[2]);if(!c())return u("@document missing '{'");var P=g().concat(m());return d()?y({type:"document",document:S,vendor:b,rules:P}):u("@document missing '}'")}}function ee(){var y=s(),p=f(/^@font-face\s*/);if(p){if(!c())return u("@font-face missing '{'");for(var b=g(),S;S=v();)b.push(S),b=b.concat(g());return d()?y({type:"font-face",declarations:b}):u("@font-face missing '}'")}}var ce=Q("import"),xe=Q("charset"),Ce=Q("namespace");function Q(y){var p=new RegExp("^@"+y+"\\s*([^;]+);");return function(){var b=s(),S=f(p);if(S){var P={type:y};return P[y]=S[1].trim(),b(P)}}}function O(){if(e[0]==="@")return L()||G()||W()||k()||ce()||xe()||Ce()||Me()||De()||A()||ee()}function te(){var y=s(),p=h();return p?(g(),y({type:"rule",selectors:p,declarations:w()})):u("selector missing")}return de(o())}function $(e){return e?e.replace(/^\s+|\s+$/g,""):""}function de(e,t){for(var r=e&&typeof e.type=="string",i=r?e:t,n=0,s=Object.keys(e);n<s.length;n++){var a=s[n],l=e[a];Array.isArray(l)?l.forEach(function(u){de(u,i)}):l&&typeof l=="object"&&de(l,i)}return r&&Object.defineProperty(e,"parent",{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Ae={script:"noscript",altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",fedropshadow:"feDropShadow",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient"};function Et(e){var t=Ae[e.tagName]?Ae[e.tagName]:e.tagName;return t==="link"&&e.attributes._cssText&&(t="style"),t}function wt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ie=/([^\\]):hover/,bt=new RegExp(Ie.source,"g");function Oe(e,t){var r;if(!(!((r=window?.HIG_CONFIGURATION)===null||r===void 0)&&r.enableOnHoverClass))return e;var i=t?.stylesWithHoverClass.get(e);if(i)return i;var n=Nt(e,{silent:!0});if(!n.stylesheet)return e;var s=[];if(n.stylesheet.rules.forEach(function(u){"selectors"in u&&(u.selectors||[]).forEach(function(o){Ie.test(o)&&s.push(o)})}),s.length===0)return e;var a=new RegExp(s.filter(function(u,o){return s.indexOf(u)===o}).sort(function(u,o){return o.length-u.length}).map(function(u){return wt(u)}).join("|"),"g"),l=e.replace(a,function(u){var o=u.replace(bt,"$1.\\:hover");return u+", "+o});return t?.stylesWithHoverClass.set(e,l),l}function ke(){var e=new Map;return{stylesWithHoverClass:e}}function Dt(e,t){var r=t.doc,i=t.hackCss,n=t.cache;switch(e.type){case I.Document:return r.implementation.createDocument(null,"",null);case I.DocumentType:return r.implementation.createDocumentType(e.name||"html",e.publicId,e.systemId);case I.Element:var s=Et(e),a;e.isSVG?a=r.createElementNS("http://www.w3.org/2000/svg",s):a=r.createElement(s);var l=function(o){if(!e.attributes.hasOwnProperty(o))return"continue";var c=e.attributes[o];if(s==="option"&&o==="selected"&&c===!1)return"continue";if(c=typeof c=="boolean"||typeof c=="number"?"":c,o.startsWith("rr_")){if(s==="canvas"&&o==="rr_dataURL"){var d=document.createElement("img");d.src=c,d.onload=function(){var A=a.getContext("2d");A&&A.drawImage(d,0,0,d.width,d.height)}}else if(s==="img"&&o==="rr_dataURL"){var m=a;m.currentSrc.startsWith("data:")||(m.setAttribute("rrweb-original-src",e.attributes.src),m.src=c)}if(o==="rr_width")a.style.width=c;else if(o==="rr_height")a.style.height=c;else if(o==="rr_mediaCurrentTime")a.currentTime=e.attributes.rr_mediaCurrentTime;else if(o==="rr_mediaState")switch(c){case"played":a.play().catch(function(A){return console.warn("media playback error",A)});break;case"paused":a.pause();break}}else{var f=s==="textarea"&&o==="value",T=s==="style"&&o==="_cssText";if(T&&i&&(c=Oe(c,n),typeof c=="string")){for(var g=/url\(\"https:\/\/\S*(.eot|.woff2|.ttf|.woff)\S*\"\)/gm,E=void 0,h=[],v="https://replay-cors-proxy.highlightrun.workers.dev";(E=g.exec(c))!==null;)E.index===g.lastIndex&&g.lastIndex++,E.forEach(function(A,G){if(G===0){var W=A.slice(5,A.length-2);h.push({originalUrl:W,proxyUrl:W.replace(W,v+"?url="+W)})}});h.forEach(function(A){c=c.replace(A.originalUrl,A.proxyUrl)})}if(f||T){for(var w=r.createTextNode(c),R=0,L=Array.from(a.childNodes);R<L.length;R++){var k=L[R];k.nodeType===a.TEXT_NODE&&a.removeChild(k)}return a.appendChild(w),"continue"}try{if(e.isSVG&&o==="xlink:href")a.setAttributeNS("http://www.w3.org/1999/xlink",o,c);else if(o==="onload"||o==="onclick"||o.substring(0,7)==="onmouse")a.setAttribute("_"+o,c);else{if(s==="meta"&&e.attributes["http-equiv"]==="Content-Security-Policy"&&o==="content")return a.setAttribute("csp-content",c),"continue";s==="link"&&e.attributes.rel==="preload"&&e.attributes.as==="script"||s==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&e.attributes.href.endsWith(".js")||(s==="img"&&e.attributes.srcset&&e.attributes.rr_dataURL?a.setAttribute("rrweb-original-srcset",e.attributes.srcset):a.setAttribute(o,c))}}catch{}}};for(var u in e.attributes)l(u);if(e.isShadowHost)if(!a.shadowRoot)a.attachShadow({mode:"open"});else for(;a.shadowRoot.firstChild;)a.shadowRoot.removeChild(a.shadowRoot.firstChild);return a;case I.Text:return r.createTextNode(e.isStyle&&i?Oe(e.textContent,n):e.textContent);case I.CDATA:return r.createCDATASection(e.textContent);case I.Comment:return r.createComment(e.textContent);default:return null}}function re(e,t){var r=t.doc,i=t.mirror,n=t.skipChild,s=n===void 0?!1:n,a=t.hackCss,l=a===void 0?!0:a,u=t.afterAppend,o=t.cache,c=Dt(e,{doc:r,hackCss:l,cache:o});if(!c)return null;if(e.rootId&&console.assert(i.getNode(e.rootId)===r,"Target document should have the same root id."),e.type===I.Document&&(r.close(),r.open(),e.compatMode==="BackCompat"&&e.childNodes&&e.childNodes[0].type!==I.DocumentType&&(e.childNodes[0].type===I.Element&&"xmlns"in e.childNodes[0].attributes&&e.childNodes[0].attributes.xmlns==="http://www.w3.org/1999/xhtml"?r.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">'):r.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">')),c=r),i.add(c,e),(e.type===I.Document||e.type===I.Element)&&!s)for(var d=0,m=e.childNodes;d<m.length;d++){var f=m[d],T=re(f,{doc:r,mirror:i,skipChild:!1,hackCss:l,afterAppend:u,cache:o});if(!T){console.warn("Failed to rebuild",f);continue}f.isShadow&&vt(c)&&c.shadowRoot?c.shadowRoot.appendChild(T):c.appendChild(T),u&&u(T)}return c}function Mt(e,t){function r(a){t(a)}for(var i=0,n=e.getIds();i<n.length;i++){var s=n[i];e.has(s)&&r(e.getNode(s))}}function xt(e,t){var r=t.getMeta(e);if(r?.type===I.Element){var i=e;for(var n in r.attributes)if(r.attributes.hasOwnProperty(n)&&n.startsWith("rr_")){var s=r.attributes[n];n==="rr_scrollLeft"&&(i.scrollLeft=s),n==="rr_scrollTop"&&(i.scrollTop=s)}}}function Ct(e,t){var r=t.doc,i=t.onVisit,n=t.hackCss,s=n===void 0?!0:n,a=t.afterAppend,l=t.cache,u=t.mirror,o=u===void 0?new Se:u,c=re(e,{doc:r,mirror:o,skipChild:!1,hackCss:s,afterAppend:a,cache:l});return Mt(o,function(d){i&&i(d),xt(d,o)}),c}var N;(function(e){e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment"})(N||(N={}));var St=function(){function e(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}return e.prototype.getId=function(t){var r;if(!t)return-1;var i=(r=this.getMeta(t))===null||r===void 0?void 0:r.id;return i??-1},e.prototype.getNode=function(t){return this.idNodeMap.get(t)||null},e.prototype.getIds=function(){return Array.from(this.idNodeMap.keys())},e.prototype.getMeta=function(t){return this.nodeMetaMap.get(t)||null},e.prototype.removeNodeFromMap=function(t){var r=this,i=this.getId(t);this.idNodeMap.delete(i),t.childNodes&&t.childNodes.forEach(function(n){return r.removeNodeFromMap(n)})},e.prototype.has=function(t){return this.idNodeMap.has(t)},e.prototype.hasNode=function(t){return this.nodeMetaMap.has(t)},e.prototype.add=function(t,r){var i=r.id;this.idNodeMap.set(i,t),this.nodeMetaMap.set(t,r)},e.prototype.replace=function(t,r){this.idNodeMap.set(t,r)},e.prototype.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},e}();function Rt(){return new St}function At(e){const t={},r=/;(?![^(]*\))/g,i=/:(.+)/,n=/\/\*.*?\*\//g;return e.replace(n,"").split(r).forEach(function(s){if(s){const a=s.split(i);a.length>1&&(t[he(a[0].trim())]=a[1].trim())}}),t}function _e(e){const t=[];for(const r in e){const i=e[r];if(typeof i!="string")continue;const n=_t(r);t.push(`${n}: ${i};`)}return t.join(" ")}const It=/-([a-z])/g,Ot=/^--[a-zA-Z0-9-]+$/,he=e=>Ot.test(e)?e:e.replace(It,(t,r)=>r?r.toUpperCase():""),kt=/\B([A-Z])/g,_t=e=>e.replace(kt,"-$1").toLowerCase();class F{constructor(...t){this.childNodes=[],this.parentElement=null,this.parentNode=null,this.ELEMENT_NODE=x.ELEMENT_NODE,this.TEXT_NODE=x.TEXT_NODE}get firstChild(){return this.childNodes[0]||null}get lastChild(){return this.childNodes[this.childNodes.length-1]||null}get nextSibling(){const t=this.parentNode;if(!t)return null;const r=t.childNodes,i=r.indexOf(this);return r[i+1]||null}contains(t){if(t===this)return!0;for(const r of this.childNodes)if(r.contains(t))return!0;return!1}appendChild(t){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(t,r){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(t){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}function Lt(e){return class yt extends e{constructor(){super(...arguments),this.nodeType=x.DOCUMENT_NODE,this.nodeName="#document",this.compatMode="CSS1Compat",this.RRNodeType=N.Document,this.textContent=null}get documentElement(){return this.childNodes.find(r=>r.RRNodeType===N.Element&&r.tagName==="HTML")||null}get body(){var r;return((r=this.documentElement)===null||r===void 0?void 0:r.childNodes.find(i=>i.RRNodeType===N.Element&&i.tagName==="BODY"))||null}get head(){var r;return((r=this.documentElement)===null||r===void 0?void 0:r.childNodes.find(i=>i.RRNodeType===N.Element&&i.tagName==="HEAD"))||null}get implementation(){return this}get firstElementChild(){return this.documentElement}appendChild(r){const i=r.RRNodeType;if((i===N.Element||i===N.DocumentType)&&this.childNodes.some(n=>n.RRNodeType===i))throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${i===N.Element?"RRElement":"RRDoctype"} on RRDocument allowed.`);return r.parentElement=null,r.parentNode=this,this.childNodes.push(r),r}insertBefore(r,i){const n=r.RRNodeType;if((n===N.Element||n===N.DocumentType)&&this.childNodes.some(a=>a.RRNodeType===n))throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${n===N.Element?"RRElement":"RRDoctype"} on RRDocument allowed.`);if(i===null)return this.appendChild(r);const s=this.childNodes.indexOf(i);if(s==-1)throw new Error("Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.");return this.childNodes.splice(s,0,r),r.parentElement=null,r.parentNode=this,r}removeChild(r){const i=this.childNodes.indexOf(r);if(i===-1)throw new Error("Failed to execute 'removeChild' on 'RRDocument': The RRNode to be removed is not a child of this RRNode.");return this.childNodes.splice(i,1),r.parentElement=null,r.parentNode=null,r}open(){this.childNodes=[]}close(){}write(r){let i;if(r==='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">'?i="-//W3C//DTD XHTML 1.0 Transitional//EN":r==='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">'&&(i="-//W3C//DTD HTML 4.0 Transitional//EN"),i){const n=this.createDocumentType("html",i,"");this.open(),this.appendChild(n)}}createDocument(r,i,n){return new yt}createDocumentType(r,i,n){const s=new(Le(F))(r,i,n);return s.ownerDocument=this,s}createElement(r){const i=new(Pe(F))(r);return i.ownerDocument=this,i}createElementNS(r,i){return this.createElement(i)}createTextNode(r){const i=new(Fe(F))(r);return i.ownerDocument=this,i}createComment(r){const i=new(Ue(F))(r);return i.ownerDocument=this,i}createCDATASection(r){const i=new(Be(F))(r);return i.ownerDocument=this,i}toString(){return"RRDocument"}}}function Le(e){return class extends e{constructor(t,r,i){super(),this.nodeType=x.DOCUMENT_TYPE_NODE,this.RRNodeType=N.DocumentType,this.textContent=null,this.name=t,this.publicId=r,this.systemId=i,this.nodeName=t}toString(){return"RRDocumentType"}}}function Pe(e){return class extends e{constructor(t){super(),this.nodeType=x.ELEMENT_NODE,this.RRNodeType=N.Element,this.attributes={},this.shadowRoot=null,this.tagName=t.toUpperCase(),this.nodeName=t.toUpperCase()}get textContent(){let t="";return this.childNodes.forEach(r=>t+=r.textContent),t}set textContent(t){this.childNodes=[this.ownerDocument.createTextNode(t)]}get classList(){return new Ft(this.attributes.class,t=>{this.attributes.class=t})}get id(){return this.attributes.id||""}get className(){return this.attributes.class||""}get style(){const t=this.attributes.style?At(this.attributes.style):{},r=/\B([A-Z])/g;return t.setProperty=(i,n,s)=>{if(r.test(i))return;const a=he(i);n?t[a]=n:delete t[a],s==="important"&&(t[a]+=" !important"),this.attributes.style=_e(t)},t.removeProperty=i=>{if(r.test(i))return"";const n=he(i),s=t[n]||"";return delete t[n],this.attributes.style=_e(t),s},t}getAttribute(t){return this.attributes[t]||null}setAttribute(t,r){this.attributes[t]=r}setAttributeNS(t,r,i){this.setAttribute(r,i)}removeAttribute(t){delete this.attributes[t]}appendChild(t){return this.childNodes.push(t),t.parentNode=this,t.parentElement=this,t}insertBefore(t,r){if(r===null)return this.appendChild(t);const i=this.childNodes.indexOf(r);if(i==-1)throw new Error("Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.");return this.childNodes.splice(i,0,t),t.parentElement=this,t.parentNode=this,t}removeChild(t){const r=this.childNodes.indexOf(t);if(r===-1)throw new Error("Failed to execute 'removeChild' on 'RRElement': The RRNode to be removed is not a child of this RRNode.");return this.childNodes.splice(r,1),t.parentElement=null,t.parentNode=null,t}attachShadow(t){const r=this.ownerDocument.createElement("SHADOWROOT");return this.shadowRoot=r,r}dispatchEvent(t){return!0}toString(){let t="";for(const r in this.attributes)t+=`${r}="${this.attributes[r]}" `;return`${this.tagName} ${t}`}}}function Pt(e){return class extends e{attachShadow(t){throw new Error("RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow")}play(){this.paused=!1}pause(){this.paused=!0}}}function Fe(e){return class extends e{constructor(t){super(),this.nodeType=x.TEXT_NODE,this.nodeName="#text",this.RRNodeType=N.Text,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRText text=${JSON.stringify(this.data)}`}}}function Ue(e){return class extends e{constructor(t){super(),this.nodeType=x.COMMENT_NODE,this.nodeName="#comment",this.RRNodeType=N.Comment,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRComment text=${JSON.stringify(this.data)}`}}}function Be(e){return class extends e{constructor(t){super(),this.nodeName="#cdata-section",this.nodeType=x.CDATA_SECTION_NODE,this.RRNodeType=N.CDATA,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRCDATASection data=${JSON.stringify(this.data)}`}}}class Ft{constructor(t,r){if(this.classes=[],this.add=(...i)=>{for(const n of i){const s=String(n);this.classes.indexOf(s)>=0||this.classes.push(s)}this.onChange&&this.onChange(this.classes.join(" "))},this.remove=(...i)=>{this.classes=this.classes.filter(n=>i.indexOf(n)===-1),this.onChange&&this.onChange(this.classes.join(" "))},t){const i=t.trim().split(/\s+/);this.classes.push(...i)}this.onChange=r}}var x;(function(e){e[e.PLACEHOLDER=0]="PLACEHOLDER",e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.ATTRIBUTE_NODE=2]="ATTRIBUTE_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.CDATA_SECTION_NODE=4]="CDATA_SECTION_NODE",e[e.ENTITY_REFERENCE_NODE=5]="ENTITY_REFERENCE_NODE",e[e.ENTITY_NODE=6]="ENTITY_NODE",e[e.PROCESSING_INSTRUCTION_NODE=7]="PROCESSING_INSTRUCTION_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE",e[e.DOCUMENT_NODE=9]="DOCUMENT_NODE",e[e.DOCUMENT_TYPE_NODE=10]="DOCUMENT_TYPE_NODE",e[e.DOCUMENT_FRAGMENT_NODE=11]="DOCUMENT_FRAGMENT_NODE"})(x||(x={}));const me={svg:"http://www.w3.org/2000/svg","xlink:href":"http://www.w3.org/1999/xlink",xmlns:"http://www.w3.org/2000/xmlns/"};function B(e,t,r,i){const n=e.childNodes,s=t.childNodes;i=i||t.mirror||t.ownerDocument.mirror,(n.length>0||s.length>0)&&$e(Array.from(n),s,e,r,i);let a=null,l=null;switch(t.RRNodeType){case N.Document:{l=t.scrollData;break}case N.Element:{const u=e,o=t;switch(Ut(u,o,i),l=o.scrollData,a=o.inputData,o.tagName){case"AUDIO":case"VIDEO":{const c=e,d=o;d.paused!==void 0&&(d.paused?c.pause():c.play()),d.muted!==void 0&&(c.muted=d.muted),d.volume!==void 0&&(c.volume=d.volume),d.currentTime!==void 0&&(c.currentTime=d.currentTime);break}case"CANVAS":t.canvasMutations.forEach(c=>r.applyCanvas(c.event,c.mutation,e));break;case"STYLE":Bt(u,t.rules);break}if(o.shadowRoot){u.shadowRoot||u.attachShadow({mode:"open"});const c=u.shadowRoot.childNodes,d=o.shadowRoot.childNodes;(c.length>0||d.length>0)&&$e(Array.from(c),d,u.shadowRoot,r,i)}break}case N.Text:case N.Comment:case N.CDATA:e.textContent!==t.data&&(e.textContent=t.data);break}if(l&&r.applyScroll(l,!0),a&&r.applyInput(a),t.nodeName==="IFRAME"){const u=e.contentDocument,o=t;if(u){const c=i.getMeta(o.contentDocument);c&&r.mirror.add(u,Object.assign({},c)),B(u,o.contentDocument,r,i)}}}function Ut(e,t,r){const i=e.attributes,n=t.attributes;for(const s in n){const a=n[s],l=r.getMeta(t);if(l&&"isSVG"in l&&l.isSVG&&me[s])e.setAttributeNS(me[s],s,a);else if(t.tagName==="CANVAS"&&s==="rr_dataURL"){const u=document.createElement("img");u.src=a,u.onload=()=>{const o=e.getContext("2d");o&&o.drawImage(u,0,0,u.width,u.height)}}else e.setAttribute(s,a)}for(const{name:s}of Array.from(i))s in n||e.removeAttribute(s);t.scrollLeft&&(e.scrollLeft=t.scrollLeft),t.scrollTop&&(e.scrollTop=t.scrollTop)}function $e(e,t,r,i,n){var s,a;let l=0,u=e.length-1,o=0,c=t.length-1,d=e[l],m=e[u],f=t[o],T=t[c],g,E;for(;l<=u&&o<=c;)if(d===void 0)d=e[++l];else if(m===void 0)m=e[--u];else if(i.mirror.getId(d)===n.getId(f))B(d,f,i,n),d=e[++l],f=t[++o];else if(i.mirror.getId(m)===n.getId(T))B(m,T,i,n),m=e[--u],T=t[--c];else if(i.mirror.getId(d)===n.getId(T))r.insertBefore(d,m.nextSibling),B(d,T,i,n),d=e[++l],T=t[--c];else if(i.mirror.getId(m)===n.getId(f))r.insertBefore(m,d),B(m,f,i,n),m=e[--u],f=t[++o];else{if(!g){g={};for(let h=l;h<=u;h++){const v=e[h];v&&i.mirror.hasNode(v)&&(g[i.mirror.getId(v)]=h)}}if(E=g[n.getId(f)],E){const h=e[E];r.insertBefore(h,d),B(h,f,i,n),e[E]=void 0}else{const h=pe(f,i.mirror,n);((s=i.mirror.getMeta(r))===null||s===void 0?void 0:s.type)===N.Document&&((a=i.mirror.getMeta(h))===null||a===void 0?void 0:a.type)===N.Element&&r.documentElement&&(r.removeChild(r.documentElement),e[l]=void 0,d=void 0),r.insertBefore(h,d||null),B(h,f,i,n)}f=t[++o]}if(l>u){const h=t[c+1];let v=null;for(h&&r.childNodes.forEach(w=>{i.mirror.getId(w)===n.getId(h)&&(v=w)});o<=c;++o){const w=pe(t[o],i.mirror,n);r.insertBefore(w,v),B(w,t[o],i,n)}}else if(o>c)for(;l<=u;l++){const h=e[l];h&&(r.removeChild(h),i.mirror.removeNodeFromMap(h))}}function pe(e,t,r){let i=t.getNode(r.getId(e));const n=r.getMeta(e);if(i!==null)return i;switch(e.RRNodeType){case N.Document:i=new Document;break;case N.DocumentType:i=document.implementation.createDocumentType(e.name,e.publicId,e.systemId);break;case N.Element:{e.tagName.toLowerCase(),n&&"isSVG"in n&&n?.isSVG?i=document.createElementNS(me.svg,e.tagName.toLowerCase()):i=document.createElement(e.tagName);break}case N.Text:i=document.createTextNode(e.data);break;case N.Comment:i=document.createComment(e.data);break;case N.CDATA:i=document.createCDATASection(e.data);break}return n&&t.add(i,Object.assign({},n)),i}function q(e,t){const r=e[t[0]];return t.length===1?r:q(r.cssRules[t[1]].cssRules,t.slice(2))}var U;(function(e){e[e.Insert=0]="Insert",e[e.Remove=1]="Remove",e[e.Snapshot=2]="Snapshot",e[e.SetProperty=3]="SetProperty",e[e.RemoveProperty=4]="RemoveProperty"})(U||(U={}));function Ve(e){const t=[...e],r=t.pop();return{positions:t,index:r}}function Bt(e,t){const r=e.sheet;t.forEach(i=>{if(i.type===U.Insert)try{if(Array.isArray(i.index)){const{positions:n,index:s}=Ve(i.index);q(r.cssRules,n).insertRule(i.cssText,s)}else r.insertRule(i.cssText,i.index)}catch{}else if(i.type===U.Remove)try{if(Array.isArray(i.index)){const{positions:n,index:s}=Ve(i.index);q(r.cssRules,n).deleteRule(s||0)}else r.deleteRule(i.index)}catch{}else i.type===U.SetProperty?q(r.cssRules,i.index).style.setProperty(i.property,i.value,i.priority):i.type===U.RemoveProperty&&q(r.cssRules,i.index).style.removeProperty(i.property)})}class H extends Lt(F){constructor(t){super(),this._unserializedId=-1,this.mirror=qt(),this.scrollData=null,t&&(this.mirror=t)}get unserializedId(){return this._unserializedId--}createDocument(t,r,i){return new H}createDocumentType(t,r,i){const n=new $t(t,r,i);return n.ownerDocument=this,n}createElement(t){const r=t.toUpperCase();let i;switch(r){case"AUDIO":case"VIDEO":i=new Vt(r);break;case"IFRAME":i=new Gt(r,this.mirror);break;case"CANVAS":i=new Wt(r);break;case"STYLE":i=new jt(r);break;default:i=new J(r);break}return i.ownerDocument=this,i}createComment(t){const r=new Yt(t);return r.ownerDocument=this,r}createCDATASection(t){const r=new zt(t);return r.ownerDocument=this,r}createTextNode(t){const r=new Ht(t);return r.ownerDocument=this,r}destroyTree(){this.childNodes=[],this.mirror.reset()}open(){super.open(),this._unserializedId=-1}}const $t=Le(F);class J extends Pe(F){constructor(){super(...arguments),this.inputData=null,this.scrollData=null}}class Vt extends Pt(J){}class Wt extends J{constructor(){super(...arguments),this.canvasMutations=[]}getContext(){return null}}class jt extends J{constructor(){super(...arguments),this.rules=[]}}class Gt extends J{constructor(t,r){super(t),this.contentDocument=new H,this.contentDocument.mirror=r}}const Ht=Fe(F),Yt=Ue(F),zt=Be(F);function Xt(e){return e instanceof HTMLFormElement?"FORM":e.tagName.toUpperCase()}function We(e,t,r,i){let n;switch(e.nodeType){case x.DOCUMENT_NODE:i&&i.nodeName==="IFRAME"?n=i.contentDocument:(n=t,n.compatMode=e.compatMode);break;case x.DOCUMENT_TYPE_NODE:const a=e;n=t.createDocumentType(a.name,a.publicId,a.systemId);break;case x.ELEMENT_NODE:const l=e,u=Xt(l);n=t.createElement(u);const o=n;for(const{name:c,value:d}of Array.from(l.attributes))o.attributes[c]=d;l.scrollLeft&&(o.scrollLeft=l.scrollLeft),l.scrollTop&&(o.scrollTop=l.scrollTop);break;case x.TEXT_NODE:n=t.createTextNode(e.textContent||"");break;case x.CDATA_SECTION_NODE:n=t.createCDATASection(e.data);break;case x.COMMENT_NODE:n=t.createComment(e.textContent||"");break;case x.DOCUMENT_FRAGMENT_NODE:n=i.attachShadow({mode:"open"});break;default:return null}let s=r.getMeta(e);return t instanceof H&&(s||(s=je(n,t.unserializedId),r.add(e,s)),t.mirror.add(n,Object.assign({},s))),n}function Qt(e,t=Rt(),r=new H){function i(n,s){const a=We(n,r,t,s);a!==null&&(s?.nodeName!=="IFRAME"&&n.nodeType!==x.DOCUMENT_FRAGMENT_NODE&&(s?.appendChild(a),a.parentNode=s,a.parentElement=s),n.nodeName==="IFRAME"?i(n.contentDocument,a):(n.nodeType===x.DOCUMENT_NODE||n.nodeType===x.ELEMENT_NODE||n.nodeType===x.DOCUMENT_FRAGMENT_NODE)&&(n.nodeType===x.ELEMENT_NODE&&n.shadowRoot&&i(n.shadowRoot,a),n.childNodes.forEach(l=>i(l,a))))}return i(e,null),r}function qt(){return new Jt}class Jt{constructor(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}getId(t){var r;if(!t)return-1;const i=(r=this.getMeta(t))===null||r===void 0?void 0:r.id;return i??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const r=this.getId(t);this.idNodeMap.delete(r),t.childNodes&&t.childNodes.forEach(i=>this.removeNodeFromMap(i))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,r){const i=r.id;this.idNodeMap.set(i,t),this.nodeMetaMap.set(t,r)}replace(t,r){this.idNodeMap.set(t,r)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function je(e,t){switch(e.RRNodeType){case N.Document:return{id:t,type:e.RRNodeType,childNodes:[]};case N.DocumentType:const r=e;return{id:t,type:e.RRNodeType,name:r.name,publicId:r.publicId,systemId:r.systemId};case N.Element:return{id:t,type:e.RRNodeType,tagName:e.tagName.toLowerCase(),attributes:{},childNodes:[]};case N.Text:return{id:t,type:e.RRNodeType,textContent:e.textContent||""};case N.Comment:return{id:t,type:e.RRNodeType,textContent:e.textContent||""};case N.CDATA:return{id:t,type:e.RRNodeType,textContent:""}}}function Ge(e){return e=e||Object.create(null),{on:function(r,i){(e[r]||(e[r]=[])).push(i)},off:function(r,i){e[r]&&e[r].splice(e[r].indexOf(i)>>>0,1)},emit:function(r,i){(e[r]||[]).slice().map(function(n){n(i)}),(e["*"]||[]).slice().map(function(n){n(r,i)})}}}var Zt=Object.freeze({__proto__:null,default:Ge});function Kt(e=window,t=document){if("scrollBehavior"in t.documentElement.style&&e.__forceSmoothScrollPolyfill__!==!0)return;const r=e.HTMLElement||e.Element,i=468,n={scroll:e.scroll||e.scrollTo,scrollBy:e.scrollBy,elementScroll:r.prototype.scroll||u,scrollIntoView:r.prototype.scrollIntoView},s=e.performance&&e.performance.now?e.performance.now.bind(e.performance):Date.now;function a(h){const v=["MSIE ","Trident/","Edge/"];return new RegExp(v.join("|")).test(h)}const l=a(e.navigator.userAgent)?1:0;function u(h,v){this.scrollLeft=h,this.scrollTop=v}function o(h){return .5*(1-Math.cos(Math.PI*h))}function c(h){if(h===null||typeof h!="object"||h.behavior===void 0||h.behavior==="auto"||h.behavior==="instant")return!0;if(typeof h=="object"&&h.behavior==="smooth")return!1;throw new TypeError("behavior member of ScrollOptions "+h.behavior+" is not a valid value for enumeration ScrollBehavior.")}function d(h,v){if(v==="Y")return h.clientHeight+l<h.scrollHeight;if(v==="X")return h.clientWidth+l<h.scrollWidth}function m(h,v){const w=e.getComputedStyle(h,null)["overflow"+v];return w==="auto"||w==="scroll"}function f(h){const v=d(h,"Y")&&m(h,"Y"),w=d(h,"X")&&m(h,"X");return v||w}function T(h){for(;h!==t.body&&f(h)===!1;)h=h.parentNode||h.host;return h}function g(h){const v=s();let w,R,L,k=(v-h.startTime)/i;k=k>1?1:k,w=o(k),R=h.startX+(h.x-h.startX)*w,L=h.startY+(h.y-h.startY)*w,h.method.call(h.scrollable,R,L),(R!==h.x||L!==h.y)&&e.requestAnimationFrame(g.bind(e,h))}function E(h,v,w){let R,L,k,A;const G=s();h===t.body?(R=e,L=e.scrollX||e.pageXOffset,k=e.scrollY||e.pageYOffset,A=n.scroll):(R=h,L=h.scrollLeft,k=h.scrollTop,A=u),g({scrollable:R,method:A,startTime:G,startX:L,startY:k,x:v,y:w})}e.scroll=e.scrollTo=function(){if(arguments[0]!==void 0){if(c(arguments[0])===!0){n.scroll.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:e.scrollY||e.pageYOffset);return}E.call(e,t.body,arguments[0].left!==void 0?~~arguments[0].left:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?~~arguments[0].top:e.scrollY||e.pageYOffset)}},e.scrollBy=function(){if(arguments[0]!==void 0){if(c(arguments[0])){n.scrollBy.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:0,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:0);return}E.call(e,t.body,~~arguments[0].left+(e.scrollX||e.pageXOffset),~~arguments[0].top+(e.scrollY||e.pageYOffset))}},r.prototype.scroll=r.prototype.scrollTo=function(){if(arguments[0]===void 0)return;if(c(arguments[0])===!0){if(typeof arguments[0]=="number"&&arguments[1]===void 0)throw new SyntaxError("Value could not be converted");n.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left:typeof arguments[0]!="object"?~~arguments[0]:this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top:arguments[1]!==void 0?~~arguments[1]:this.scrollTop);return}const h=arguments[0].left,v=arguments[0].top;E.call(this,this,typeof h>"u"?this.scrollLeft:~~h,typeof v>"u"?this.scrollTop:~~v)},r.prototype.scrollBy=function(){if(arguments[0]!==void 0){if(c(arguments[0])===!0){n.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop);return}this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior})}},r.prototype.scrollIntoView=function(){if(c(arguments[0])===!0){n.scrollIntoView.call(this,arguments[0]===void 0?!0:arguments[0]);return}const h=T(this),v=h.getBoundingClientRect(),w=this.getBoundingClientRect();h!==t.body?(E.call(this,h,h.scrollLeft+w.left-v.left,h.scrollTop+w.top-v.top),e.getComputedStyle(h).position!=="fixed"&&e.scrollBy({left:v.left,top:v.top,behavior:"smooth"})):e.scrollBy({left:w.left,top:w.top,behavior:"smooth"})}}var M=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(M||{}),C=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e))(C||{}),_=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(_||{}),ie=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(ie||{}),fe=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e))(fe||{}),D=(e=>(e.Start="start",e.Pause="pause",e.Resume="resume",e.Resize="resize",e.Finish="finish",e.FullsnapshotRebuilded="fullsnapshot-rebuilded",e.LoadStylesheetStart="load-stylesheet-start",e.LoadStylesheetEnd="load-stylesheet-end",e.SkipStart="skip-start",e.SkipEnd="skip-end",e.MouseInteraction="mouse-interaction",e.EventCast="event-cast",e.CustomEvent="custom-event",e.Flush="flush",e.StateChange="state-change",e.PlayBack="play-back",e))(D||{});class er{constructor(t=[],r){this.timeOffset=0,this.raf=null,this.actions=t,this.speed=r}addAction(t){const r=this.findActionIndex(t);this.actions.splice(r,0,t)}addActions(t){this.actions=this.actions.concat(t)}replaceActions(t){this.actions.length=0,this.actions.splice(0,0,...t)}start(){this.timeOffset=0;let t=performance.now();const{actions:r}=this,i=this;function n(){const s=performance.now();for(i.timeOffset+=(s-t)*i.speed,t=s;r.length;){const a=r[0];if(i.timeOffset>=a.delay)r.shift(),a.doAction();else break}(r.length>0||i.liveMode)&&(i.raf=requestAnimationFrame(n))}this.raf=requestAnimationFrame(n)}clear(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null),this.actions.length=0}setSpeed(t){this.speed=t}toggleLiveMode(t){this.liveMode=t}isActive(){return this.raf!==null}findActionIndex(t){let r=0,i=this.actions.length-1;for(;r<=i;){const n=Math.floor((r+i)/2);if(this.actions[n].delay<t.delay)r=n+1;else if(this.actions[n].delay>t.delay)i=n-1;else return n+1}return r}}function ge(e,t){if(e.type===M.IncrementalSnapshot&&e.data.source===C.MouseMove){const r=e.data.positions[0].timeOffset,i=e.timestamp+r;return e.delay=i-t,i-t}return e.delay=e.timestamp-t,e.delay}/*! *****************************************************************************
|
|
1
|
+
var rrwebReplay=function(he){"use strict";var A;(function(e){e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment"})(A||(A={}));function vt(e){return e.nodeType===e.ELEMENT_NODE}var xe=function(){function e(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}return e.prototype.getId=function(t){var r;if(!t)return-1;var i=(r=this.getMeta(t))===null||r===void 0?void 0:r.id;return i??-1},e.prototype.getNode=function(t){return this.idNodeMap.get(t)||null},e.prototype.getIds=function(){return Array.from(this.idNodeMap.keys())},e.prototype.getMeta=function(t){return this.nodeMetaMap.get(t)||null},e.prototype.removeNodeFromMap=function(t){var r=this,i=this.getId(t);this.idNodeMap.delete(i),t.childNodes&&t.childNodes.forEach(function(n){return r.removeNodeFromMap(n)})},e.prototype.has=function(t){return this.idNodeMap.has(t)},e.prototype.hasNode=function(t){return this.nodeMetaMap.has(t)},e.prototype.add=function(t,r){var i=r.id;this.idNodeMap.set(i,t),this.nodeMetaMap.set(t,r)},e.prototype.replace=function(t,r){this.idNodeMap.set(t,r)},e.prototype.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},e}();function Tt(){return new xe}var Re=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;function Nt(e,t){t===void 0&&(t={});var r=1,i=1;function n(g){var p=g.match(/\n/g);p&&(r+=p.length);var b=g.lastIndexOf(`
|
|
2
|
+
`);i=b===-1?i+g.length:g.length-b}function s(){var g={line:r,column:i};return function(p){return p.position=new a(g),T(),p}}var a=function(){function g(p){this.start=p,this.end={line:r,column:i},this.source=t.source}return g}();a.prototype.content=e;var c=[];function l(g){var p=new Error(t.source+":"+r+":"+i+": "+g);if(p.reason=g,p.filename=t.source,p.line=r,p.column=i,p.source=e,t.silent)c.push(p);else throw p}function o(){var g=h();return{type:"stylesheet",stylesheet:{source:t.source,rules:g,parsingErrors:c}}}function u(){return f(/^{\s*/)}function d(){return f(/^}/)}function h(){var g,p=[];for(T(),y(p);e.length&&e.charAt(0)!=="}"&&(g=I()||ie());)g!==!1&&(p.push(g),y(p));return p}function f(g){var p=g.exec(e);if(p){var b=p[0];return n(b),e=e.slice(b.length),p}}function T(){f(/^\s*/)}function y(g){g===void 0&&(g=[]);for(var p;p=w();)p!==!1&&g.push(p),p=w();return g}function w(){var g=s();if(!(e.charAt(0)!=="/"||e.charAt(1)!=="*")){for(var p=2;e.charAt(p)!==""&&(e.charAt(p)!=="*"||e.charAt(p+1)!=="/");)++p;if(p+=2,e.charAt(p-1)==="")return l("End of comment missing");var b=e.slice(2,p-2);return i+=2,n(b),e=e.slice(p),i+=2,g({type:"comment",comment:b})}}function m(){var g=f(/^([^{]+)/);if(g)return V(g[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g,"").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g,function(p){return p.replace(/,/g,"\u200C")}).split(/\s*(?![^(]*\)),\s*/).map(function(p){return p.replace(/\u200C/g,",")})}function v(){var g=s(),p=f(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);if(p){var b=V(p[0]);if(!f(/^:\s*/))return l("property missing ':'");var x=f(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/),P=g({type:"declaration",property:b.replace(Re,""),value:x?V(x[0]).replace(Re,""):""});return f(/^[;\s]*/),P}}function E(){var g=[];if(!u())return l("missing '{'");y(g);for(var p;p=v();)p!==!1&&(g.push(p),y(g)),p=v();return d()?g:l("missing '}'")}function R(){for(var g,p=[],b=s();g=f(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/);)p.push(g[1]),f(/^,\s*/);if(p.length)return b({type:"keyframe",values:p,declarations:E()})}function L(){var g=s(),p=f(/^@([-\w]+)?keyframes\s*/);if(p){var b=p[1];if(p=f(/^([-\w]+)\s*/),!p)return l("@keyframes missing name");var x=p[1];if(!u())return l("@keyframes missing '{'");for(var P,de=y();P=R();)de.push(P),de=de.concat(y());return d()?g({type:"keyframes",name:x,vendor:b,keyframes:de}):l("@keyframes missing '}'")}}function O(){var g=s(),p=f(/^@supports *([^{]+)/);if(p){var b=V(p[1]);if(!u())return l("@supports missing '{'");var x=y().concat(h());return d()?g({type:"supports",supports:b,rules:x}):l("@supports missing '}'")}}function $(){var g=s(),p=f(/^@host\s*/);if(p){if(!u())return l("@host missing '{'");var b=y().concat(h());return d()?g({type:"host",rules:b}):l("@host missing '}'")}}function j(){var g=s(),p=f(/^@media *([^{]+)/);if(p){var b=V(p[1]);if(!u())return l("@media missing '{'");var x=y().concat(h());return d()?g({type:"media",media:b,rules:x}):l("@media missing '}'")}}function _(){var g=s(),p=f(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);if(p)return g({type:"custom-media",name:V(p[1]),media:V(p[2])})}function te(){var g=s(),p=f(/^@page */);if(p){var b=m()||[];if(!u())return l("@page missing '{'");for(var x=y(),P;P=v();)x.push(P),x=x.concat(y());return d()?g({type:"page",selectors:b,declarations:x}):l("@page missing '}'")}}function H(){var g=s(),p=f(/^@([-\w]+)?document *([^{]+)/);if(p){var b=V(p[1]),x=V(p[2]);if(!u())return l("@document missing '{'");var P=y().concat(h());return d()?g({type:"document",document:x,vendor:b,rules:P}):l("@document missing '}'")}}function re(){var g=s(),p=f(/^@font-face\s*/);if(p){if(!u())return l("@font-face missing '{'");for(var b=y(),x;x=v();)b.push(x),b=b.concat(y());return d()?g({type:"font-face",declarations:b}):l("@font-face missing '}'")}}var ue=q("import"),Ce=q("charset"),Se=q("namespace");function q(g){var p=new RegExp("^@"+g+"\\s*([^;]+);");return function(){var b=s(),x=f(p);if(x){var P={type:g};return P[g]=x[1].trim(),b(P)}}}function I(){if(e[0]==="@")return L()||j()||_()||O()||ue()||Ce()||Se()||H()||te()||$()||re()}function ie(){var g=s(),p=m();return p?(y(),g({type:"rule",selectors:p,declarations:E()})):l("selector missing")}return me(o())}function V(e){return e?e.replace(/^\s+|\s+$/g,""):""}function me(e,t){for(var r=e&&typeof e.type=="string",i=r?e:t,n=0,s=Object.keys(e);n<s.length;n++){var a=s[n],c=e[a];Array.isArray(c)?c.forEach(function(l){me(l,i)}):c&&typeof c=="object"&&me(c,i)}return r&&Object.defineProperty(e,"parent",{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Ae={script:"noscript",altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",fedropshadow:"feDropShadow",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient"};function Et(e){var t=Ae[e.tagName]?Ae[e.tagName]:e.tagName;return t==="link"&&e.attributes._cssText&&(t="style"),t}function wt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ie=/([^\\]):hover/,bt=new RegExp(Ie.source,"g");function Oe(e,t){var r;if(!(!((r=window?.HIG_CONFIGURATION)===null||r===void 0)&&r.enableOnHoverClass))return e;var i=t?.stylesWithHoverClass.get(e);if(i)return i;var n=Nt(e,{silent:!0});if(!n.stylesheet)return e;var s=[];if(n.stylesheet.rules.forEach(function(l){"selectors"in l&&(l.selectors||[]).forEach(function(o){Ie.test(o)&&s.push(o)})}),s.length===0)return e;var a=new RegExp(s.filter(function(l,o){return s.indexOf(l)===o}).sort(function(l,o){return o.length-l.length}).map(function(l){return wt(l)}).join("|"),"g"),c=e.replace(a,function(l){var o=l.replace(bt,"$1.\\:hover");return l+", "+o});return t?.stylesWithHoverClass.set(e,c),c}function ke(){var e=new Map;return{stylesWithHoverClass:e}}function Dt(e,t){var r=t.doc,i=t.hackCss,n=t.cache;switch(e.type){case A.Document:return r.implementation.createDocument(null,"",null);case A.DocumentType:return r.implementation.createDocumentType(e.name||"html",e.publicId,e.systemId);case A.Element:var s=Et(e),a;e.isSVG?a=r.createElementNS("http://www.w3.org/2000/svg",s):a=r.createElement(s);var c=function(d){if(!e.attributes.hasOwnProperty(d))return"continue";var h=e.attributes[d];if(s==="option"&&d==="selected"&&h===!1)return"continue";if(h=typeof h=="boolean"||typeof h=="number"?"":h,d.startsWith("rr_")){if(s==="canvas"&&d==="rr_dataURL"){var f=document.createElement("img");f.src=h,f.onload=function(){var _=a.getContext("2d");_&&_.drawImage(f,0,0,f.width,f.height)}}else if(s==="img"&&d==="rr_dataURL"){var T=a;T.currentSrc.startsWith("data:")||(T.setAttribute("rrweb-original-src",e.attributes.src),T.src=h,T.setAttribute("rrweb-inline-src",h))}if(d==="rr_width")a.style.width=h;else if(d==="rr_height")a.style.height=h;else if(d==="rr_mediaCurrentTime")a.currentTime=e.attributes.rr_mediaCurrentTime;else if(d==="rr_mediaState")switch(h){case"played":a.play().catch(function(_){return console.warn("media playback error",_)});break;case"paused":a.pause();break}}else{var y=s==="textarea"&&d==="value",w=s==="style"&&d==="_cssText";if(w&&i&&(h=Oe(h,n),typeof h=="string")){for(var m=/url\(\"https:\/\/\S*(.eot|.woff2|.ttf|.woff)\S*\"\)/gm,v=void 0,E=[],R="https://replay-cors-proxy.highlightrun.workers.dev";(v=m.exec(h))!==null;)v.index===m.lastIndex&&m.lastIndex++,v.forEach(function(_,te){if(te===0){var H=_.slice(5,_.length-2);E.push({originalUrl:H,proxyUrl:H.replace(H,R+"?url="+H)})}});E.forEach(function(_){h=h.replace(_.originalUrl,_.proxyUrl)})}if(y||w){for(var L=r.createTextNode(h),O=0,$=Array.from(a.childNodes);O<$.length;O++){var j=$[O];j.nodeType===a.TEXT_NODE&&a.removeChild(j)}return a.appendChild(L),"continue"}try{if(e.isSVG&&d==="xlink:href")a.setAttributeNS("http://www.w3.org/1999/xlink",d,h);else if(d==="onload"||d==="onclick"||d.substring(0,7)==="onmouse")a.setAttribute("_"+d,h);else{if(s==="meta"&&e.attributes["http-equiv"]==="Content-Security-Policy"&&d==="content")return a.setAttribute("csp-content",h),"continue";s==="link"&&e.attributes.rel==="preload"&&e.attributes.as==="script"||s==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&e.attributes.href.endsWith(".js")||(s==="img"&&e.attributes.srcset&&e.attributes.rr_dataURL?a.setAttribute("rrweb-original-srcset",e.attributes.srcset):a.setAttribute(d,h))}}catch{}}};for(var l in e.attributes)c(l);if(s==="img"){var o=a;if(!o.currentSrc.startsWith("data:")){var u=o.getAttribute("rrweb-inline-src");u!=null&&u.startsWith("data:")&&(o.src=u)}}if(e.isShadowHost)if(!a.shadowRoot)a.attachShadow({mode:"open"});else for(;a.shadowRoot.firstChild;)a.shadowRoot.removeChild(a.shadowRoot.firstChild);return a;case A.Text:return r.createTextNode(e.isStyle&&i?Oe(e.textContent,n):e.textContent);case A.CDATA:return r.createCDATASection(e.textContent);case A.Comment:return r.createComment(e.textContent);default:return null}}function ne(e,t){var r=t.doc,i=t.mirror,n=t.skipChild,s=n===void 0?!1:n,a=t.hackCss,c=a===void 0?!0:a,l=t.afterAppend,o=t.cache,u=Dt(e,{doc:r,hackCss:c,cache:o});if(!u)return null;if(e.rootId&&console.assert(i.getNode(e.rootId)===r,"Target document should have the same root id."),e.type===A.Document&&(r.close(),r.open(),e.compatMode==="BackCompat"&&e.childNodes&&e.childNodes[0].type!==A.DocumentType&&(e.childNodes[0].type===A.Element&&"xmlns"in e.childNodes[0].attributes&&e.childNodes[0].attributes.xmlns==="http://www.w3.org/1999/xhtml"?r.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">'):r.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">')),u=r),i.add(u,e),(e.type===A.Document||e.type===A.Element)&&!s)for(var d=0,h=e.childNodes;d<h.length;d++){var f=h[d],T=ne(f,{doc:r,mirror:i,skipChild:!1,hackCss:c,afterAppend:l,cache:o});if(!T){console.warn("Failed to rebuild",f);continue}f.isShadow&&vt(u)&&u.shadowRoot?u.shadowRoot.appendChild(T):u.appendChild(T),l&&l(T)}return u}function Mt(e,t){function r(a){t(a)}for(var i=0,n=e.getIds();i<n.length;i++){var s=n[i];e.has(s)&&r(e.getNode(s))}}function Ct(e,t){var r=t.getMeta(e);if(r?.type===A.Element){var i=e;for(var n in r.attributes)if(r.attributes.hasOwnProperty(n)&&n.startsWith("rr_")){var s=r.attributes[n];n==="rr_scrollLeft"&&(i.scrollLeft=s),n==="rr_scrollTop"&&(i.scrollTop=s)}}}function St(e,t){var r=t.doc,i=t.onVisit,n=t.hackCss,s=n===void 0?!0:n,a=t.afterAppend,c=t.cache,l=t.mirror,o=l===void 0?new xe:l,u=ne(e,{doc:r,mirror:o,skipChild:!1,hackCss:s,afterAppend:a,cache:c});return Mt(o,function(d){i&&i(d),Ct(d,o)}),u}var N;(function(e){e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment"})(N||(N={}));var xt=function(){function e(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}return e.prototype.getId=function(t){var r;if(!t)return-1;var i=(r=this.getMeta(t))===null||r===void 0?void 0:r.id;return i??-1},e.prototype.getNode=function(t){return this.idNodeMap.get(t)||null},e.prototype.getIds=function(){return Array.from(this.idNodeMap.keys())},e.prototype.getMeta=function(t){return this.nodeMetaMap.get(t)||null},e.prototype.removeNodeFromMap=function(t){var r=this,i=this.getId(t);this.idNodeMap.delete(i),t.childNodes&&t.childNodes.forEach(function(n){return r.removeNodeFromMap(n)})},e.prototype.has=function(t){return this.idNodeMap.has(t)},e.prototype.hasNode=function(t){return this.nodeMetaMap.has(t)},e.prototype.add=function(t,r){var i=r.id;this.idNodeMap.set(i,t),this.nodeMetaMap.set(t,r)},e.prototype.replace=function(t,r){this.idNodeMap.set(t,r)},e.prototype.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},e}();function Rt(){return new xt}function At(e){const t={},r=/;(?![^(]*\))/g,i=/:(.+)/,n=/\/\*.*?\*\//g;return e.replace(n,"").split(r).forEach(function(s){if(s){const a=s.split(i);a.length>1&&(t[pe(a[0].trim())]=a[1].trim())}}),t}function _e(e){const t=[];for(const r in e){const i=e[r];if(typeof i!="string")continue;const n=_t(r);t.push(`${n}: ${i};`)}return t.join(" ")}const It=/-([a-z])/g,Ot=/^--[a-zA-Z0-9-]+$/,pe=e=>Ot.test(e)?e:e.replace(It,(t,r)=>r?r.toUpperCase():""),kt=/\B([A-Z])/g,_t=e=>e.replace(kt,"-$1").toLowerCase();class F{constructor(...t){this.childNodes=[],this.parentElement=null,this.parentNode=null,this.ELEMENT_NODE=C.ELEMENT_NODE,this.TEXT_NODE=C.TEXT_NODE}get firstChild(){return this.childNodes[0]||null}get lastChild(){return this.childNodes[this.childNodes.length-1]||null}get nextSibling(){const t=this.parentNode;if(!t)return null;const r=t.childNodes,i=r.indexOf(this);return r[i+1]||null}contains(t){if(t===this)return!0;for(const r of this.childNodes)if(r.contains(t))return!0;return!1}appendChild(t){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(t,r){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(t){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}function Lt(e){return class yt extends e{constructor(){super(...arguments),this.nodeType=C.DOCUMENT_NODE,this.nodeName="#document",this.compatMode="CSS1Compat",this.RRNodeType=N.Document,this.textContent=null}get documentElement(){return this.childNodes.find(r=>r.RRNodeType===N.Element&&r.tagName==="HTML")||null}get body(){var r;return((r=this.documentElement)===null||r===void 0?void 0:r.childNodes.find(i=>i.RRNodeType===N.Element&&i.tagName==="BODY"))||null}get head(){var r;return((r=this.documentElement)===null||r===void 0?void 0:r.childNodes.find(i=>i.RRNodeType===N.Element&&i.tagName==="HEAD"))||null}get implementation(){return this}get firstElementChild(){return this.documentElement}appendChild(r){const i=r.RRNodeType;if((i===N.Element||i===N.DocumentType)&&this.childNodes.some(n=>n.RRNodeType===i))throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${i===N.Element?"RRElement":"RRDoctype"} on RRDocument allowed.`);return r.parentElement=null,r.parentNode=this,this.childNodes.push(r),r}insertBefore(r,i){const n=r.RRNodeType;if((n===N.Element||n===N.DocumentType)&&this.childNodes.some(a=>a.RRNodeType===n))throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${n===N.Element?"RRElement":"RRDoctype"} on RRDocument allowed.`);if(i===null)return this.appendChild(r);const s=this.childNodes.indexOf(i);if(s==-1)throw new Error("Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.");return this.childNodes.splice(s,0,r),r.parentElement=null,r.parentNode=this,r}removeChild(r){const i=this.childNodes.indexOf(r);if(i===-1)throw new Error("Failed to execute 'removeChild' on 'RRDocument': The RRNode to be removed is not a child of this RRNode.");return this.childNodes.splice(i,1),r.parentElement=null,r.parentNode=null,r}open(){this.childNodes=[]}close(){}write(r){let i;if(r==='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">'?i="-//W3C//DTD XHTML 1.0 Transitional//EN":r==='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">'&&(i="-//W3C//DTD HTML 4.0 Transitional//EN"),i){const n=this.createDocumentType("html",i,"");this.open(),this.appendChild(n)}}createDocument(r,i,n){return new yt}createDocumentType(r,i,n){const s=new(Le(F))(r,i,n);return s.ownerDocument=this,s}createElement(r){const i=new(Pe(F))(r);return i.ownerDocument=this,i}createElementNS(r,i){return this.createElement(i)}createTextNode(r){const i=new(Fe(F))(r);return i.ownerDocument=this,i}createComment(r){const i=new(Ue(F))(r);return i.ownerDocument=this,i}createCDATASection(r){const i=new($e(F))(r);return i.ownerDocument=this,i}toString(){return"RRDocument"}}}function Le(e){return class extends e{constructor(t,r,i){super(),this.nodeType=C.DOCUMENT_TYPE_NODE,this.RRNodeType=N.DocumentType,this.textContent=null,this.name=t,this.publicId=r,this.systemId=i,this.nodeName=t}toString(){return"RRDocumentType"}}}function Pe(e){return class extends e{constructor(t){super(),this.nodeType=C.ELEMENT_NODE,this.RRNodeType=N.Element,this.attributes={},this.shadowRoot=null,this.tagName=t.toUpperCase(),this.nodeName=t.toUpperCase()}get textContent(){let t="";return this.childNodes.forEach(r=>t+=r.textContent),t}set textContent(t){this.childNodes=[this.ownerDocument.createTextNode(t)]}get classList(){return new Ft(this.attributes.class,t=>{this.attributes.class=t})}get id(){return this.attributes.id||""}get className(){return this.attributes.class||""}get style(){const t=this.attributes.style?At(this.attributes.style):{},r=/\B([A-Z])/g;return t.setProperty=(i,n,s)=>{if(r.test(i))return;const a=pe(i);n?t[a]=n:delete t[a],s==="important"&&(t[a]+=" !important"),this.attributes.style=_e(t)},t.removeProperty=i=>{if(r.test(i))return"";const n=pe(i),s=t[n]||"";return delete t[n],this.attributes.style=_e(t),s},t}getAttribute(t){return this.attributes[t]||null}setAttribute(t,r){this.attributes[t]=r}setAttributeNS(t,r,i){this.setAttribute(r,i)}removeAttribute(t){delete this.attributes[t]}appendChild(t){return this.childNodes.push(t),t.parentNode=this,t.parentElement=this,t}insertBefore(t,r){if(r===null)return this.appendChild(t);const i=this.childNodes.indexOf(r);if(i==-1)throw new Error("Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.");return this.childNodes.splice(i,0,t),t.parentElement=this,t.parentNode=this,t}removeChild(t){const r=this.childNodes.indexOf(t);if(r===-1)throw new Error("Failed to execute 'removeChild' on 'RRElement': The RRNode to be removed is not a child of this RRNode.");return this.childNodes.splice(r,1),t.parentElement=null,t.parentNode=null,t}attachShadow(t){const r=this.ownerDocument.createElement("SHADOWROOT");return this.shadowRoot=r,r}dispatchEvent(t){return!0}toString(){let t="";for(const r in this.attributes)t+=`${r}="${this.attributes[r]}" `;return`${this.tagName} ${t}`}}}function Pt(e){return class extends e{attachShadow(t){throw new Error("RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow")}play(){this.paused=!1}pause(){this.paused=!0}}}function Fe(e){return class extends e{constructor(t){super(),this.nodeType=C.TEXT_NODE,this.nodeName="#text",this.RRNodeType=N.Text,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRText text=${JSON.stringify(this.data)}`}}}function Ue(e){return class extends e{constructor(t){super(),this.nodeType=C.COMMENT_NODE,this.nodeName="#comment",this.RRNodeType=N.Comment,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRComment text=${JSON.stringify(this.data)}`}}}function $e(e){return class extends e{constructor(t){super(),this.nodeName="#cdata-section",this.nodeType=C.CDATA_SECTION_NODE,this.RRNodeType=N.CDATA,this.data=t}get textContent(){return this.data}set textContent(t){this.data=t}toString(){return`RRCDATASection data=${JSON.stringify(this.data)}`}}}class Ft{constructor(t,r){if(this.classes=[],this.add=(...i)=>{for(const n of i){const s=String(n);this.classes.indexOf(s)>=0||this.classes.push(s)}this.onChange&&this.onChange(this.classes.join(" "))},this.remove=(...i)=>{this.classes=this.classes.filter(n=>i.indexOf(n)===-1),this.onChange&&this.onChange(this.classes.join(" "))},t){const i=t.trim().split(/\s+/);this.classes.push(...i)}this.onChange=r}}var C;(function(e){e[e.PLACEHOLDER=0]="PLACEHOLDER",e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.ATTRIBUTE_NODE=2]="ATTRIBUTE_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.CDATA_SECTION_NODE=4]="CDATA_SECTION_NODE",e[e.ENTITY_REFERENCE_NODE=5]="ENTITY_REFERENCE_NODE",e[e.ENTITY_NODE=6]="ENTITY_NODE",e[e.PROCESSING_INSTRUCTION_NODE=7]="PROCESSING_INSTRUCTION_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE",e[e.DOCUMENT_NODE=9]="DOCUMENT_NODE",e[e.DOCUMENT_TYPE_NODE=10]="DOCUMENT_TYPE_NODE",e[e.DOCUMENT_FRAGMENT_NODE=11]="DOCUMENT_FRAGMENT_NODE"})(C||(C={}));const fe={svg:"http://www.w3.org/2000/svg","xlink:href":"http://www.w3.org/1999/xlink",xmlns:"http://www.w3.org/2000/xmlns/"};function B(e,t,r,i){const n=e.childNodes,s=t.childNodes;i=i||t.mirror||t.ownerDocument.mirror,(n.length>0||s.length>0)&&Be(Array.from(n),s,e,r,i);let a=null,c=null;switch(t.RRNodeType){case N.Document:{c=t.scrollData;break}case N.Element:{const l=e,o=t;switch(Ut(l,o,i),c=o.scrollData,a=o.inputData,o.tagName){case"AUDIO":case"VIDEO":{const u=e,d=o;d.paused!==void 0&&(d.paused?u.pause():u.play()),d.muted!==void 0&&(u.muted=d.muted),d.volume!==void 0&&(u.volume=d.volume),d.currentTime!==void 0&&(u.currentTime=d.currentTime);break}case"CANVAS":t.canvasMutations.forEach(u=>r.applyCanvas(u.event,u.mutation,e));break;case"STYLE":$t(l,t.rules);break}if(o.shadowRoot){l.shadowRoot||l.attachShadow({mode:"open"});const u=l.shadowRoot.childNodes,d=o.shadowRoot.childNodes;(u.length>0||d.length>0)&&Be(Array.from(u),d,l.shadowRoot,r,i)}break}case N.Text:case N.Comment:case N.CDATA:e.textContent!==t.data&&(e.textContent=t.data);break}if(c&&r.applyScroll(c,!0),a&&r.applyInput(a),t.nodeName==="IFRAME"){const l=e.contentDocument,o=t;if(l){const u=i.getMeta(o.contentDocument);u&&r.mirror.add(l,Object.assign({},u)),B(l,o.contentDocument,r,i)}}}function Ut(e,t,r){const i=e.attributes,n=t.attributes;for(const s in n){const a=n[s],c=r.getMeta(t);if(c&&"isSVG"in c&&c.isSVG&&fe[s])e.setAttributeNS(fe[s],s,a);else if(t.tagName==="CANVAS"&&s==="rr_dataURL"){const l=document.createElement("img");l.src=a,l.onload=()=>{const o=e.getContext("2d");o&&o.drawImage(l,0,0,l.width,l.height)}}else e.setAttribute(s,a)}for(const{name:s}of Array.from(i))s in n||e.removeAttribute(s);t.scrollLeft&&(e.scrollLeft=t.scrollLeft),t.scrollTop&&(e.scrollTop=t.scrollTop)}function Be(e,t,r,i,n){var s,a;let c=0,l=e.length-1,o=0,u=t.length-1,d=e[c],h=e[l],f=t[o],T=t[u],y,w;for(;c<=l&&o<=u;)if(d===void 0)d=e[++c];else if(h===void 0)h=e[--l];else if(i.mirror.getId(d)===n.getId(f))B(d,f,i,n),d=e[++c],f=t[++o];else if(i.mirror.getId(h)===n.getId(T))B(h,T,i,n),h=e[--l],T=t[--u];else if(i.mirror.getId(d)===n.getId(T))try{r.insertBefore(d,h.nextSibling),B(d,T,i,n),d=e[++c],T=t[--u]}catch(m){console.error(m,r,d,h)}else if(i.mirror.getId(h)===n.getId(f))try{r.insertBefore(h,d),B(h,f,i,n),h=e[--l],f=t[++o]}catch(m){console.error(m,r,h,d)}else{if(!y){y={};for(let m=c;m<=l;m++){const v=e[m];v&&i.mirror.hasNode(v)&&(y[i.mirror.getId(v)]=m)}}if(w=y[n.getId(f)],w){const m=e[w];try{r.insertBefore(m,d),B(m,f,i,n),e[w]=void 0}catch(v){console.error(v,r,m,d)}}else{const m=ge(f,i.mirror,n);((s=i.mirror.getMeta(r))===null||s===void 0?void 0:s.type)===N.Document&&((a=i.mirror.getMeta(m))===null||a===void 0?void 0:a.type)===N.Element&&r.documentElement&&(r.removeChild(r.documentElement),e[c]=void 0,d=void 0);try{r.insertBefore(m,d||null),B(m,f,i,n)}catch(v){console.error(v,r,m,d||null)}}f=t[++o]}if(c>l){const m=t[u+1];let v=null;for(m&&r.childNodes.forEach(E=>{i.mirror.getId(E)===n.getId(m)&&(v=E)});o<=u;++o){const E=ge(t[o],i.mirror,n);try{r.insertBefore(E,v),B(E,t[o],i,n)}catch(R){console.error(R,r,E,v)}}}else if(o>u)for(;c<=l;c++){const m=e[c];m&&(r.removeChild(m),i.mirror.removeNodeFromMap(m))}}function ge(e,t,r){let i=t.getNode(r.getId(e));const n=r.getMeta(e);if(i!==null)return i;switch(e.RRNodeType){case N.Document:i=new Document;break;case N.DocumentType:i=document.implementation.createDocumentType(e.name,e.publicId,e.systemId);break;case N.Element:{e.tagName.toLowerCase(),n&&"isSVG"in n&&n?.isSVG?i=document.createElementNS(fe.svg,e.tagName.toLowerCase()):i=document.createElement(e.tagName);break}case N.Text:i=document.createTextNode(e.data);break;case N.Comment:i=document.createComment(e.data);break;case N.CDATA:i=document.createCDATASection(e.data);break}return n&&t.add(i,Object.assign({},n)),i}function J(e,t){const r=e[t[0]];return t.length===1?r:J(r.cssRules[t[1]].cssRules,t.slice(2))}var U;(function(e){e[e.Insert=0]="Insert",e[e.Remove=1]="Remove",e[e.Snapshot=2]="Snapshot",e[e.SetProperty=3]="SetProperty",e[e.RemoveProperty=4]="RemoveProperty"})(U||(U={}));function Ve(e){const t=[...e],r=t.pop();return{positions:t,index:r}}function $t(e,t){const r=e.sheet;t.forEach(i=>{if(i.type===U.Insert)try{if(Array.isArray(i.index)){const{positions:n,index:s}=Ve(i.index);J(r.cssRules,n).insertRule(i.cssText,s)}else r.insertRule(i.cssText,i.index)}catch{}else if(i.type===U.Remove)try{if(Array.isArray(i.index)){const{positions:n,index:s}=Ve(i.index);J(r.cssRules,n).deleteRule(s||0)}else r.deleteRule(i.index)}catch{}else i.type===U.SetProperty?J(r.cssRules,i.index).style.setProperty(i.property,i.value,i.priority):i.type===U.RemoveProperty&&J(r.cssRules,i.index).style.removeProperty(i.property)})}class Y extends Lt(F){constructor(t){super(),this._unserializedId=-1,this.mirror=qt(),this.scrollData=null,t&&(this.mirror=t)}get unserializedId(){return this._unserializedId--}createDocument(t,r,i){return new Y}createDocumentType(t,r,i){const n=new Bt(t,r,i);return n.ownerDocument=this,n}createElement(t){const r=t.toUpperCase();let i;switch(r){case"AUDIO":case"VIDEO":i=new Vt(r);break;case"IFRAME":i=new Ht(r,this.mirror);break;case"CANVAS":i=new Wt(r);break;case"STYLE":i=new jt(r);break;default:i=new Z(r);break}return i.ownerDocument=this,i}createComment(t){const r=new Yt(t);return r.ownerDocument=this,r}createCDATASection(t){const r=new zt(t);return r.ownerDocument=this,r}createTextNode(t){const r=new Gt(t);return r.ownerDocument=this,r}destroyTree(){this.childNodes=[],this.mirror.reset()}open(){super.open(),this._unserializedId=-1}}const Bt=Le(F);class Z extends Pe(F){constructor(){super(...arguments),this.inputData=null,this.scrollData=null}}class Vt extends Pt(Z){}class Wt extends Z{constructor(){super(...arguments),this.canvasMutations=[]}getContext(){return null}}class jt extends Z{constructor(){super(...arguments),this.rules=[]}}class Ht extends Z{constructor(t,r){super(t),this.contentDocument=new Y,this.contentDocument.mirror=r}}const Gt=Fe(F),Yt=Ue(F),zt=$e(F);function Xt(e){return e instanceof HTMLFormElement?"FORM":e.tagName.toUpperCase()}function We(e,t,r,i){let n;switch(e.nodeType){case C.DOCUMENT_NODE:i&&i.nodeName==="IFRAME"?n=i.contentDocument:(n=t,n.compatMode=e.compatMode);break;case C.DOCUMENT_TYPE_NODE:const a=e;n=t.createDocumentType(a.name,a.publicId,a.systemId);break;case C.ELEMENT_NODE:const c=e,l=Xt(c);n=t.createElement(l);const o=n;for(const{name:u,value:d}of Array.from(c.attributes))o.attributes[u]=d;c.scrollLeft&&(o.scrollLeft=c.scrollLeft),c.scrollTop&&(o.scrollTop=c.scrollTop);break;case C.TEXT_NODE:n=t.createTextNode(e.textContent||"");break;case C.CDATA_SECTION_NODE:n=t.createCDATASection(e.data);break;case C.COMMENT_NODE:n=t.createComment(e.textContent||"");break;case C.DOCUMENT_FRAGMENT_NODE:n=i.attachShadow({mode:"open"});break;default:return null}let s=r.getMeta(e);return t instanceof Y&&(s||(s=je(n,t.unserializedId),r.add(e,s)),t.mirror.add(n,Object.assign({},s))),n}function Qt(e,t=Rt(),r=new Y){function i(n,s){const a=We(n,r,t,s);a!==null&&(s?.nodeName!=="IFRAME"&&n.nodeType!==C.DOCUMENT_FRAGMENT_NODE&&(s?.appendChild(a),a.parentNode=s,a.parentElement=s),n.nodeName==="IFRAME"?i(n.contentDocument,a):(n.nodeType===C.DOCUMENT_NODE||n.nodeType===C.ELEMENT_NODE||n.nodeType===C.DOCUMENT_FRAGMENT_NODE)&&(n.nodeType===C.ELEMENT_NODE&&n.shadowRoot&&i(n.shadowRoot,a),n.childNodes.forEach(c=>i(c,a))))}return i(e,null),r}function qt(){return new Jt}class Jt{constructor(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}getId(t){var r;if(!t)return-1;const i=(r=this.getMeta(t))===null||r===void 0?void 0:r.id;return i??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const r=this.getId(t);this.idNodeMap.delete(r),t.childNodes&&t.childNodes.forEach(i=>this.removeNodeFromMap(i))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,r){const i=r.id;this.idNodeMap.set(i,t),this.nodeMetaMap.set(t,r)}replace(t,r){this.idNodeMap.set(t,r)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function je(e,t){switch(e.RRNodeType){case N.Document:return{id:t,type:e.RRNodeType,childNodes:[]};case N.DocumentType:const r=e;return{id:t,type:e.RRNodeType,name:r.name,publicId:r.publicId,systemId:r.systemId};case N.Element:return{id:t,type:e.RRNodeType,tagName:e.tagName.toLowerCase(),attributes:{},childNodes:[]};case N.Text:return{id:t,type:e.RRNodeType,textContent:e.textContent||""};case N.Comment:return{id:t,type:e.RRNodeType,textContent:e.textContent||""};case N.CDATA:return{id:t,type:e.RRNodeType,textContent:""}}}function He(e){return e=e||Object.create(null),{on:function(r,i){(e[r]||(e[r]=[])).push(i)},off:function(r,i){e[r]&&e[r].splice(e[r].indexOf(i)>>>0,1)},emit:function(r,i){(e[r]||[]).slice().map(function(n){n(i)}),(e["*"]||[]).slice().map(function(n){n(r,i)})}}}var Zt=Object.freeze({__proto__:null,default:He});function Kt(e=window,t=document){if("scrollBehavior"in t.documentElement.style&&e.__forceSmoothScrollPolyfill__!==!0)return;const r=e.HTMLElement||e.Element,i=468,n={scroll:e.scroll||e.scrollTo,scrollBy:e.scrollBy,elementScroll:r.prototype.scroll||l,scrollIntoView:r.prototype.scrollIntoView},s=e.performance&&e.performance.now?e.performance.now.bind(e.performance):Date.now;function a(m){const v=["MSIE ","Trident/","Edge/"];return new RegExp(v.join("|")).test(m)}const c=a(e.navigator.userAgent)?1:0;function l(m,v){this.scrollLeft=m,this.scrollTop=v}function o(m){return .5*(1-Math.cos(Math.PI*m))}function u(m){if(m===null||typeof m!="object"||m.behavior===void 0||m.behavior==="auto"||m.behavior==="instant")return!0;if(typeof m=="object"&&m.behavior==="smooth")return!1;throw new TypeError("behavior member of ScrollOptions "+m.behavior+" is not a valid value for enumeration ScrollBehavior.")}function d(m,v){if(v==="Y")return m.clientHeight+c<m.scrollHeight;if(v==="X")return m.clientWidth+c<m.scrollWidth}function h(m,v){const E=e.getComputedStyle(m,null)["overflow"+v];return E==="auto"||E==="scroll"}function f(m){const v=d(m,"Y")&&h(m,"Y"),E=d(m,"X")&&h(m,"X");return v||E}function T(m){for(;m!==t.body&&f(m)===!1;)m=m.parentNode||m.host;return m}function y(m){const v=s();let E,R,L,O=(v-m.startTime)/i;O=O>1?1:O,E=o(O),R=m.startX+(m.x-m.startX)*E,L=m.startY+(m.y-m.startY)*E,m.method.call(m.scrollable,R,L),(R!==m.x||L!==m.y)&&e.requestAnimationFrame(y.bind(e,m))}function w(m,v,E){let R,L,O,$;const j=s();m===t.body?(R=e,L=e.scrollX||e.pageXOffset,O=e.scrollY||e.pageYOffset,$=n.scroll):(R=m,L=m.scrollLeft,O=m.scrollTop,$=l),y({scrollable:R,method:$,startTime:j,startX:L,startY:O,x:v,y:E})}e.scroll=e.scrollTo=function(){if(arguments[0]!==void 0){if(u(arguments[0])===!0){n.scroll.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:e.scrollY||e.pageYOffset);return}w.call(e,t.body,arguments[0].left!==void 0?~~arguments[0].left:e.scrollX||e.pageXOffset,arguments[0].top!==void 0?~~arguments[0].top:e.scrollY||e.pageYOffset)}},e.scrollBy=function(){if(arguments[0]!==void 0){if(u(arguments[0])){n.scrollBy.call(e,arguments[0].left!==void 0?arguments[0].left:typeof arguments[0]!="object"?arguments[0]:0,arguments[0].top!==void 0?arguments[0].top:arguments[1]!==void 0?arguments[1]:0);return}w.call(e,t.body,~~arguments[0].left+(e.scrollX||e.pageXOffset),~~arguments[0].top+(e.scrollY||e.pageYOffset))}},r.prototype.scroll=r.prototype.scrollTo=function(){if(arguments[0]===void 0)return;if(u(arguments[0])===!0){if(typeof arguments[0]=="number"&&arguments[1]===void 0)throw new SyntaxError("Value could not be converted");n.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left:typeof arguments[0]!="object"?~~arguments[0]:this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top:arguments[1]!==void 0?~~arguments[1]:this.scrollTop);return}const m=arguments[0].left,v=arguments[0].top;w.call(this,this,typeof m>"u"?this.scrollLeft:~~m,typeof v>"u"?this.scrollTop:~~v)},r.prototype.scrollBy=function(){if(arguments[0]!==void 0){if(u(arguments[0])===!0){n.elementScroll.call(this,arguments[0].left!==void 0?~~arguments[0].left+this.scrollLeft:~~arguments[0]+this.scrollLeft,arguments[0].top!==void 0?~~arguments[0].top+this.scrollTop:~~arguments[1]+this.scrollTop);return}this.scroll({left:~~arguments[0].left+this.scrollLeft,top:~~arguments[0].top+this.scrollTop,behavior:arguments[0].behavior})}},r.prototype.scrollIntoView=function(){if(u(arguments[0])===!0){n.scrollIntoView.call(this,arguments[0]===void 0?!0:arguments[0]);return}const m=T(this),v=m.getBoundingClientRect(),E=this.getBoundingClientRect();m!==t.body?(w.call(this,m,m.scrollLeft+E.left-v.left,m.scrollTop+E.top-v.top),e.getComputedStyle(m).position!=="fixed"&&e.scrollBy({left:v.left,top:v.top,behavior:"smooth"})):e.scrollBy({left:E.left,top:E.top,behavior:"smooth"})}}var M=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(M||{}),S=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e))(S||{}),k=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(k||{}),oe=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(oe||{}),ye=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e))(ye||{}),D=(e=>(e.Start="start",e.Pause="pause",e.Resume="resume",e.Resize="resize",e.Finish="finish",e.FullsnapshotRebuilded="fullsnapshot-rebuilded",e.LoadStylesheetStart="load-stylesheet-start",e.LoadStylesheetEnd="load-stylesheet-end",e.SkipStart="skip-start",e.SkipEnd="skip-end",e.MouseInteraction="mouse-interaction",e.EventCast="event-cast",e.CustomEvent="custom-event",e.Flush="flush",e.StateChange="state-change",e.PlayBack="play-back",e))(D||{});class er{constructor(t=[],r){this.timeOffset=0,this.raf=null,this.actions=t,this.speed=r}addAction(t){const r=this.findActionIndex(t);this.actions.splice(r,0,t)}addActions(t){this.actions=this.actions.concat(t)}replaceActions(t){this.actions.length=0,this.actions.splice(0,0,...t)}start(){this.timeOffset=0;let t=performance.now();const{actions:r}=this,i=this;function n(){const s=performance.now();for(i.timeOffset+=(s-t)*i.speed,t=s;r.length;){const a=r[0];if(i.timeOffset>=a.delay)r.shift(),a.doAction();else break}(r.length>0||i.liveMode)&&(i.raf=requestAnimationFrame(n))}this.raf=requestAnimationFrame(n)}clear(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null),this.actions.length=0}setSpeed(t){this.speed=t}toggleLiveMode(t){this.liveMode=t}isActive(){return this.raf!==null}findActionIndex(t){let r=0,i=this.actions.length-1;for(;r<=i;){const n=Math.floor((r+i)/2);if(this.actions[n].delay<t.delay)r=n+1;else if(this.actions[n].delay>t.delay)i=n-1;else return n+1}return r}}function ve(e,t){if(e.type===M.IncrementalSnapshot&&e.data.source===S.MouseMove){const r=e.data.positions[0].timeOffset,i=e.timestamp+r;return e.delay=i-t,i-t}return e.delay=e.timestamp-t,e.delay}/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
5
5
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -12,7 +12,7 @@ var rrwebReplay=function(ue){"use strict";var I;(function(e){e[e.Document=0]="Do
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function
|
|
15
|
+
***************************************************************************** */function Ge(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var i,n,s=r.call(e),a=[];try{for(;(t===void 0||t-- >0)&&!(i=s.next()).done;)a.push(i.value)}catch(c){n={error:c}}finally{try{i&&!i.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return a}var z;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(z||(z={}));var Ye={type:"xstate.init"};function Te(e){return e===void 0?[]:[].concat(e)}function G(e){return{type:"xstate.assign",assignment:e}}function ze(e,t){return typeof(e=typeof e=="string"&&t&&t[e]?t[e]:e)=="string"?{type:e}:typeof e=="function"?{type:e.name,exec:e}:e}function se(e){return function(t){return e===t}}function Xe(e){return typeof e=="string"?{type:e}:e}function Qe(e,t){return{value:e,context:t,actions:[],changed:!1,matches:se(e)}}function qe(e,t,r){var i=t,n=!1;return[e.filter(function(s){if(s.type==="xstate.assign"){n=!0;var a=Object.assign({},i);return typeof s.assignment=="function"?a=s.assignment(i,r):Object.keys(s.assignment).forEach(function(c){a[c]=typeof s.assignment[c]=="function"?s.assignment[c](i,r):s.assignment[c]}),i=a,!1}return!0}),i,n]}function Je(e,t){t===void 0&&(t={});var r=Ge(qe(Te(e.states[e.initial].entry).map(function(a){return ze(a,t.actions)}),e.context,Ye),2),i=r[0],n=r[1],s={config:e,_options:t,initialState:{value:e.initial,actions:i,context:n,matches:se(e.initial)},transition:function(a,c){var l,o,u=typeof a=="string"?{value:a,context:e.context}:a,d=u.value,h=u.context,f=Xe(c),T=e.states[d];if(T.on){var y=Te(T.on[f.type]);try{for(var w=function(I){var ie=typeof Symbol=="function"&&Symbol.iterator,g=ie&&I[ie],p=0;if(g)return g.call(I);if(I&&typeof I.length=="number")return{next:function(){return I&&p>=I.length&&(I=void 0),{value:I&&I[p++],done:!I}}};throw new TypeError(ie?"Object is not iterable.":"Symbol.iterator is not defined.")}(y),m=w.next();!m.done;m=w.next()){var v=m.value;if(v===void 0)return Qe(d,h);var E=typeof v=="string"?{target:v}:v,R=E.target,L=E.actions,O=L===void 0?[]:L,$=E.cond,j=$===void 0?function(){return!0}:$,_=R===void 0,te=R??d,H=e.states[te];if(j(h,f)){var re=Ge(qe((_?Te(O):[].concat(T.exit,O,H.entry).filter(function(I){return I})).map(function(I){return ze(I,s._options.actions)}),h,f),3),ue=re[0],Ce=re[1],Se=re[2],q=R??d;return{value:q,context:Ce,actions:ue,changed:R!==d||ue.length>0||Se,matches:se(q)}}}}catch(I){l={error:I}}finally{try{m&&!m.done&&(o=w.return)&&o.call(w)}finally{if(l)throw l.error}}}return Qe(d,h)}};return s}var Ze=function(e,t){return e.actions.forEach(function(r){var i=r.exec;return i&&i(e.context,t)})};function Ke(e){var t=e.initialState,r=z.NotStarted,i=new Set,n={_machine:e,send:function(s){r===z.Running&&(t=e.transition(t,s),Ze(t,Xe(s)),i.forEach(function(a){return a(t)}))},subscribe:function(s){return i.add(s),s(t),{unsubscribe:function(){return i.delete(s)}}},start:function(s){if(s){var a=typeof s=="object"?s:{context:e.config.context,value:s};t={value:a.value,actions:[],context:a.context,matches:se(a.value)}}return r=z.Running,Ze(t,Ye),n},stop:function(){return r=z.Stopped,i.clear(),n},get state(){return t},get status(){return r}};return n}var tr=Object.defineProperty,rr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,et=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,or=Object.prototype.propertyIsEnumerable,tt=(e,t,r)=>t in e?tr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ae=(e,t)=>{for(var r in t||(t={}))nr.call(t,r)&&tt(e,r,t[r]);if(et)for(var r of et(t))or.call(t,r)&&tt(e,r,t[r]);return e},ce=(e,t)=>rr(e,ir(t));function sr(e,t){for(let r=e.length-1;r>=0;r--){const i=e[r];if(i.type===M.Meta&&i.timestamp<=t)return e.slice(r)}return e}function ar(e,{getCastFn:t,applyEventsSynchronously:r,emitter:i}){const n=Je({id:"player",context:e,initial:"paused",states:{playing:{on:{PAUSE:{target:"paused",actions:["pause"]},CAST_EVENT:{target:"playing",actions:"castEvent"},END:{target:"paused",actions:["resetLastPlayedEvent","pause"]},ADD_EVENT:{target:"playing",actions:["addEvent"]},REPLACE_EVENTS:{target:"playing",actions:["replaceEvents"]}}},paused:{on:{PLAY:{target:"playing",actions:["recordTimeOffset","play"]},CAST_EVENT:{target:"paused",actions:"castEvent"},TO_LIVE:{target:"live",actions:["startLive"]},ADD_EVENT:{target:"paused",actions:["addEvent"]},REPLACE_EVENTS:{target:"paused",actions:["replaceEvents"]}}},live:{on:{ADD_EVENT:{target:"live",actions:["addEvent"]},CAST_EVENT:{target:"live",actions:["castEvent"]}}}}},{actions:{castEvent:G({lastPlayedEvent:(s,a)=>a.type==="CAST_EVENT"?a.payload.event:s.lastPlayedEvent}),recordTimeOffset:G((s,a)=>{let c=s.timeOffset;return"payload"in a&&"timeOffset"in a.payload&&(c=a.payload.timeOffset),ce(ae({},s),{timeOffset:c,baselineTime:s.events[0].timestamp+c})}),play(s){var a;const{timer:c,events:l,baselineTime:o,lastPlayedEvent:u}=s;c.clear();for(const y of l)ve(y,o);const d=sr(l,o);let h=u?.timestamp;u?.type===M.IncrementalSnapshot&&u.data.source===S.MouseMove&&(h=u.timestamp+((a=u.data.positions[0])==null?void 0:a.timeOffset)),o<(h||0)&&i.emit(D.PlayBack);const f=new Array,T=new Array;for(const y of d)if(!(h&&h<o&&(y.timestamp<=h||y===u)))if(y.timestamp<o)f.push(y);else{const w=t(y,!1);T.push({doAction:()=>{w()},delay:y.delay})}r(f),i.emit(D.Flush),c.addActions(T),c.start()},pause(s){s.timer.clear()},resetLastPlayedEvent:G(s=>ce(ae({},s),{lastPlayedEvent:null})),startLive:G({baselineTime:(s,a)=>(s.timer.toggleLiveMode(!0),s.timer.start(),a.type==="TO_LIVE"&&a.payload.baselineTime?a.payload.baselineTime:Date.now())}),replaceEvents:G((s,a)=>{const{events:c,timer:l,baselineTime:o}=s;if(a.type==="REPLACE_EVENTS"){const{events:u}=a.payload;c.length=0;const d=[];for(const h of u)if(ve(h,o),c.push(h),h.timestamp>=l.timeOffset+o){const f=t(h,!1);d.push({doAction:()=>{f()},delay:h.delay})}l.isActive()&&l.replaceActions(d)}return ce(ae({},s),{events:c})}),addEvent:G((s,a)=>{const{baselineTime:c,timer:l,events:o}=s;if(a.type==="ADD_EVENT"){const{event:u}=a.payload;ve(u,c);let d=o.length-1;if(!o[d]||o[d].timestamp<=u.timestamp)o.push(u);else{let T=-1,y=0;for(;y<=d;){const w=Math.floor((y+d)/2);o[w].timestamp<=u.timestamp?y=w+1:d=w-1}T===-1&&(T=y),o.splice(T,0,u)}const h=u.timestamp<c,f=t(u,h);h?f():l.isActive()&&l.addAction({doAction:()=>{f()},delay:u.delay})}return ce(ae({},s),{events:o})})}});return Ke(n)}function cr(e){const t=Je({id:"speed",context:e,initial:"normal",states:{normal:{on:{FAST_FORWARD:{target:"skipping",actions:["recordSpeed","setSpeed"]},SET_SPEED:{target:"normal",actions:["setSpeed"]}}},skipping:{on:{BACK_TO_NORMAL:{target:"normal",actions:["restoreSpeed"]},SET_SPEED:{target:"normal",actions:["setSpeed"]}}}}},{actions:{setSpeed:(r,i)=>{"payload"in i&&r.timer.setSpeed(i.payload.speed)},recordSpeed:G({normalSpeed:r=>r.timer.speed}),restoreSpeed:r=>{r.timer.setSpeed(r.normalSpeed)}}});return Ke(t)}const X=`Please stop import mirror directly. Instead of that,\r
|
|
16
16
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
17
|
-
or you can use record.mirror to access the mirror instance during recording.`;let rt={map:{},getId(){return console.error(z),-1},getNode(){return console.error(z),null},removeNodeFromMap(){console.error(z)},has(){return console.error(z),!1},reset(){console.error(z)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(rt=new Proxy(rt,{get(e,t,r){return t==="map"&&console.error(z),Reflect.get(e,t,r)}}));function lr(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=function(t){if(!(0 in arguments))throw new TypeError("1 argument is required");do if(this===t)return!0;while(t=t&&t.parentNode);return!1})}function ur(e){const t={},r=(n,s)=>{const a={value:n,parent:s,children:[]};return t[n.node.id]=a,a},i=[];for(const n of e){const{nextId:s,parentId:a}=n;if(s&&s in t){const l=t[s];if(l.parent){const u=l.parent.children.indexOf(l);l.parent.children.splice(u,0,r(n,l.parent))}else{const u=i.indexOf(l);i.splice(u,0,r(n,null))}continue}if(a in t){const l=t[a];l.children.push(r(n,l));continue}i.push(r(n,null))}return i}function it(e,t){t(e.value);for(let r=e.children.length-1;r>=0;r--)it(e.children[r],t)}function ve(e,t){return Boolean(e.nodeName==="IFRAME"&&t.getMeta(e))}function nt(e,t){var r,i;const n=(i=(r=e.ownerDocument)==null?void 0:r.defaultView)==null?void 0:i.frameElement;if(!n||n===t)return{x:0,y:0,relativeScale:1,absoluteScale:1};const s=n.getBoundingClientRect(),a=nt(n,t),l=s.height/n.clientHeight;return{x:s.x*a.relativeScale+a.x,y:s.y*a.relativeScale+a.y,relativeScale:l,absoluteScale:a.absoluteScale*l}}function ot(e){return Boolean(e?.shadowRoot)}function Z(e,t){const r=e[t[0]];return t.length===1?r:Z(r.cssRules[t[1]].cssRules,t.slice(2))}function st(e){const t=[...e],r=t.pop();return{positions:t,index:r}}function dr(e){const t=new Set,r=[];for(let i=e.length;i--;){const n=e[i];t.has(n.id)||(r.push(n),t.add(n.id))}return r}const hr=e=>[`.${e} { background: currentColor }`,"noscript { display: none !important; }",`.${e} { background: currentColor; border-radius: 5px; }`,`.${e}:hover::after {content: 'Redacted'; color: white; background: black; text-align: center; width: 100%; display: block;}`];for(var at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",K=typeof Uint8Array>"u"?[]:new Uint8Array(256),ae=0;ae<at.length;ae++)K[at.charCodeAt(ae)]=ae;var mr=function(e){var t=e.length*.75,r=e.length,i,n=0,s,a,l,u;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);var o=new ArrayBuffer(t),c=new Uint8Array(o);for(i=0;i<r;i+=4)s=K[e.charCodeAt(i)],a=K[e.charCodeAt(i+1)],l=K[e.charCodeAt(i+2)],u=K[e.charCodeAt(i+3)],c[n++]=s<<2|a>>4,c[n++]=(a&15)<<4|l>>2,c[n++]=(l&3)<<6|u&63;return o},pr=(e,t,r)=>new Promise((i,n)=>{var s=u=>{try{l(r.next(u))}catch(o){n(o)}},a=u=>{try{l(r.throw(u))}catch(o){n(o)}},l=u=>u.done?i(u.value):Promise.resolve(u.value).then(s,a);l((r=r.apply(e,t)).next())});const ct=new Map;function lt(e,t){let r=ct.get(e);return r||(r=new Map,ct.set(e,r)),r.has(t)||r.set(t,[]),r.get(t)}function V(e,t,r){return i=>pr(this,null,function*(){if(i&&typeof i=="object"&&"rr_type"in i)if(r&&(r.isUnchanged=!1),i.rr_type==="ImageBitmap"&&"args"in i){const n=yield V(e,t,r)(i.args);return yield createImageBitmap.apply(null,n)}else if("index"in i){if(r||t===null)return i;const{rr_type:n,index:s}=i;return lt(t,n)[s]}else if("args"in i){const{rr_type:n,args:s}=i,a=window[n];return new a(...yield Promise.all(s.map(V(e,t,r))))}else{if("base64"in i)return mr(i.base64);if("src"in i){const n=e.get(i.src);if(n)return n;{const s=new Image;return s.src=i.src,e.set(i.src,s),s}}else if("data"in i&&i.rr_type==="Blob"){const n=yield Promise.all(i.data.map(V(e,t,r)));return new Blob(n,{type:i.type})}}else if(Array.isArray(i))return yield Promise.all(i.map(V(e,t,r)));return i})}var fr=(e,t,r)=>new Promise((i,n)=>{var s=u=>{try{l(r.next(u))}catch(o){n(o)}},a=u=>{try{l(r.throw(u))}catch(o){n(o)}},l=u=>u.done?i(u.value):Promise.resolve(u.value).then(s,a);l((r=r.apply(e,t)).next())});function gr(e,t){try{return t===ie.WebGL?e.getContext("webgl")||e.getContext("experimental-webgl"):e.getContext("webgl2")}catch{return null}}const yr=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject"];function vr(e,t){if(!(t!=null&&t.constructor))return;const{name:r}=t.constructor;if(!yr.includes(r))return;const i=lt(e,r);i.includes(t)||i.push(t)}function Tr(e){return fr(this,arguments,function*({mutation:t,target:r,type:i,imageMap:n,errorHandler:s}){try{const a=gr(r,i);if(!a)return;if(t.setter){a[t.property]=t.args[0];return}const l=a[t.property],u=yield Promise.all(t.args.map(V(n,a))),o=l.apply(a,u);vr(a,o)}catch(a){s(t,a)}})}var Nr=(e,t,r)=>new Promise((i,n)=>{var s=u=>{try{l(r.next(u))}catch(o){n(o)}},a=u=>{try{l(r.throw(u))}catch(o){n(o)}},l=u=>u.done?i(u.value):Promise.resolve(u.value).then(s,a);l((r=r.apply(e,t)).next())});function Er(e){return Nr(this,arguments,function*({event:t,mutation:r,target:i,imageMap:n,errorHandler:s}){try{const a=i.getContext("2d");if(r.setter){a[r.property]=r.args[0];return}const l=a[r.property];if(r.property==="drawImage"&&typeof r.args[0]=="string"){const u=n.get(t);l.apply(a,r.args)}else{const u=yield Promise.all(r.args.map(V(n,a)));l.apply(a,u)}}catch(a){s(r,a)}})}var wr=(e,t,r)=>new Promise((i,n)=>{var s=u=>{try{l(r.next(u))}catch(o){n(o)}},a=u=>{try{l(r.throw(u))}catch(o){n(o)}},l=u=>u.done?i(u.value):Promise.resolve(u.value).then(s,a);l((r=r.apply(e,t)).next())});function ut(e){return wr(this,arguments,function*({event:t,mutation:r,target:i,imageMap:n,canvasEventMap:s,errorHandler:a}){try{const l=s.get(t)||r,u="commands"in l?l.commands:[l];if([ie.WebGL,ie.WebGL2].includes(r.type)){for(let o=0;o<u.length;o++){const c=u[o];yield Tr({mutation:c,type:r.type,target:i,imageMap:n,errorHandler:a})}return}for(let o=0;o<u.length;o++){const c=u[o];yield Er({event:t,mutation:c,target:i,imageMap:n,errorHandler:a})}}catch(l){a(r,l)}})}var br=Object.defineProperty,Dr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,dt=Object.getOwnPropertySymbols,xr=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable,ht=(e,t,r)=>t in e?br(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,X=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&ht(e,r,t[r]);if(dt)for(var r of dt(t))Cr.call(t,r)&&ht(e,r,t[r]);return e},Te=(e,t)=>Dr(e,Mr(t)),Ne=(e,t,r)=>new Promise((i,n)=>{var s=u=>{try{l(r.next(u))}catch(o){n(o)}},a=u=>{try{l(r.throw(u))}catch(o){n(o)}},l=u=>u.done?i(u.value):Promise.resolve(u.value).then(s,a);l((r=r.apply(e,t)).next())});const mt=10*1e3,pt=2*1e3,ft=1*1e3,gt=60*60*1e3,Sr=Ge||Zt,Ee="[replayer]",we={duration:500,lineCap:"round",lineWidth:3,strokeStyle:"red"};function be(e){return e.type==M.IncrementalSnapshot&&(e.data.source==C.TouchMove||e.data.source==C.MouseInteraction&&e.data.type==_.TouchStart)}class Rr{constructor(t,r){if(this.usingVirtualDom=!1,this.virtualDom=new H,this.mouseTail=null,this.tailPositions=[],this.emitter=Sr(),this.activityIntervals=[],this.legacy_missingNodeRetryMap={},this.cache=ke(),this.imageMap=new Map,this.canvasEventMap=new Map,this.mirror=Tt(),this.firstFullSnapshot=null,this.newDocumentQueue=[],this.mousePos=null,this.touchActive=null,!(r!=null&&r.liveMode)&&t.length<2)throw new Error("Replayer need at least 2 events.");const i={speed:1,maxSpeed:360,root:document.body,loadTimeout:0,skipInactive:!1,showWarning:!0,showDebug:!1,blockClass:"highlight-block",liveMode:!1,insertStyleRules:[],triggerFocus:!0,UNSAFE_replayCanvas:!1,pauseAnimation:!0,mouseTail:we,useVirtualDom:!0,inactiveThreshold:.02,inactiveSkipTime:pt};this.config=Object.assign({},i,r),this.handleResize=this.handleResize.bind(this),this.getCastFn=this.getCastFn.bind(this),this.applyEventsSynchronously=this.applyEventsSynchronously.bind(this),this.emitter.on(D.Resize,this.handleResize),this.setupDom(),this.emitter.on(D.Flush,()=>{if(this.usingVirtualDom){const l={mirror:this.mirror,applyCanvas:(u,o,c)=>{ut({event:u,mutation:o,target:c,imageMap:this.imageMap,canvasEventMap:this.canvasEventMap,errorHandler:this.warnCanvasMutationFailed.bind(this)})},applyInput:this.applyInput.bind(this),applyScroll:this.applyScroll.bind(this)};if(B(this.iframe.contentDocument,this.virtualDom,l,this.virtualDom.mirror),this.virtualDom.destroyTree(),this.usingVirtualDom=!1,Object.keys(this.legacy_missingNodeRetryMap).length)for(const u in this.legacy_missingNodeRetryMap)try{const o=this.legacy_missingNodeRetryMap[u],c=pe(o.node,this.mirror,this.virtualDom.mirror);B(c,o.node,l,this.virtualDom.mirror),o.node=c}catch(o){this.config.showWarning&&console.warn(o)}}this.mousePos&&this.moveAndHover(this.mousePos.x,this.mousePos.y,this.mousePos.id,!0,this.mousePos.debugData),this.mousePos=null}),this.emitter.on(D.PlayBack,()=>{this.firstFullSnapshot=null,this.mirror.reset()});const n=new er([],r?.speed||i.speed);this.service=ar({events:t.map(l=>r&&r.unpackFn?r.unpackFn(l):l).sort((l,u)=>l.timestamp-u.timestamp),timer:n,timeOffset:0,baselineTime:0,lastPlayedEvent:null},{getCastFn:this.getCastFn,applyEventsSynchronously:this.applyEventsSynchronously,emitter:this.emitter}),this.service.start(),this.service.subscribe(l=>{this.emitter.emit(D.StateChange,{player:l})}),this.speedService=cr({normalSpeed:-1,timer:n}),this.speedService.start(),this.speedService.subscribe(l=>{this.emitter.emit(D.StateChange,{speed:l})});const s=this.service.state.context.events.find(l=>l.type===M.Meta),a=this.service.state.context.events.find(l=>l.type===M.FullSnapshot);if(s){const{width:l,height:u}=s.data;setTimeout(()=>{this.emitter.emit(D.Resize,{width:l,height:u})},0)}a&&setTimeout(()=>{this.firstFullSnapshot||(this.firstFullSnapshot=a,this.rebuildFullSnapshot(a),this.iframe.contentWindow.scrollTo(a.data.initialOffset))},1),this.service.state.context.events.find(be)&&this.mouse.classList.add("touch-device")}get timer(){return this.service.state.context.timer}on(t,r){return this.emitter.on(t,r),this}off(t,r){return this.emitter.off(t,r),this}setConfig(t){Object.keys(t).forEach(r=>{this.config[r]=t[r]}),this.config.skipInactive||this.backToNormal(),typeof t.speed<"u"&&this.speedService.send({type:"SET_SPEED",payload:{speed:t.speed}}),typeof t.mouseTail<"u"&&(t.mouseTail===!1?this.mouseTail&&(this.mouseTail.style.display="none"):(this.mouseTail||(this.mouseTail=document.createElement("canvas"),this.mouseTail.width=Number.parseFloat(this.iframe.width),this.mouseTail.height=Number.parseFloat(this.iframe.height),this.mouseTail.classList.add("replayer-mouse-tail"),this.wrapper.insertBefore(this.mouseTail,this.iframe)),this.mouseTail.style.display="inherit"))}getActivityIntervals(){if(this.activityIntervals.length==0){const t=[],r=this.getMetaData(),i=[{timestamp:r.startTime},...this.service.state.context.events.filter(a=>this.isUserInteraction(a)),{timestamp:r.endTime}];for(let a=1;a<i.length;a++){const l=i[a-1],u=i[a];u.timestamp-l.timestamp>mt?t.push({startTime:l.timestamp,endTime:u.timestamp,duration:u.timestamp-l.timestamp,active:!1}):t.push({startTime:l.timestamp,endTime:u.timestamp,duration:u.timestamp-l.timestamp,active:!0})}const n=[];let s=t[0];for(let a=1;a<t.length;a++)t[a].active!=t[a-1].active&&(n.push({startTime:s.startTime,endTime:t[a-1].endTime,duration:t[a-1].endTime-s.startTime,active:t[a-1].active}),s=t[a]);s&&t.length>0&&n.push({startTime:s.startTime,endTime:t[t.length-1].endTime,duration:t[t.length-1].endTime-s.startTime,active:t[t.length-1].active}),s=n[0];for(let a=1;a<n.length;a++)(!n[a].active&&n[a].duration>this.config.inactiveThreshold*r.totalTime||!n[a-1].active&&n[a-1].duration>this.config.inactiveThreshold*r.totalTime)&&(this.activityIntervals.push({startTime:s.startTime,endTime:n[a-1].endTime,duration:n[a-1].endTime-s.startTime,active:n[a-1].active}),s=n[a]);s&&n.length>0&&this.activityIntervals.push({startTime:s.startTime,endTime:n[n.length-1].endTime,duration:n[n.length-1].endTime-s.startTime,active:n[n.length-1].active})}return this.activityIntervals}getMetaData(){const t=this.service.state.context.events[0],r=this.service.state.context.events[this.service.state.context.events.length-1];return{startTime:t.timestamp,endTime:r.timestamp,totalTime:r.timestamp-t.timestamp}}getCurrentTime(){return this.timer.timeOffset+this.getTimeOffset()}getTimeOffset(){const{baselineTime:t,events:r}=this.service.state.context;return t-r[0].timestamp}getMirror(){return this.mirror}play(t=0){var r,i;this.service.state.matches("paused")?this.service.send({type:"PLAY",payload:{timeOffset:t}}):(this.service.send({type:"PAUSE"}),this.service.send({type:"PLAY",payload:{timeOffset:t}})),(i=(r=this.iframe.contentDocument)==null?void 0:r.getElementsByTagName("html")[0])==null||i.classList.remove("rrweb-paused"),this.emitter.emit(D.Start),this.handleInactivity(this.getMetaData().startTime+t,!0)}pause(t){var r,i;t===void 0&&this.service.state.matches("playing")&&this.service.send({type:"PAUSE"}),typeof t=="number"&&(this.play(t),this.service.send({type:"PAUSE"})),(i=(r=this.iframe.contentDocument)==null?void 0:r.getElementsByTagName("html")[0])==null||i.classList.add("rrweb-paused"),this.emitter.emit(D.Pause)}resume(t=0){console.warn("The 'resume' will be departed in 1.0. Please use 'play' method which has the same interface."),this.play(t),this.emitter.emit(D.Resume)}startLive(t){this.service.send({type:"TO_LIVE",payload:{baselineTime:t}})}addEvent(t){const r=this.config.unpackFn?this.config.unpackFn(t):t;be(r)&&this.mouse.classList.add("touch-device"),Promise.resolve().then(()=>this.service.send({type:"ADD_EVENT",payload:{event:r}}))}replaceEvents(t){for(const r of t)if(be(r)){this.mouse.classList.add("touch-device");break}this.service.send({type:"REPLACE_EVENTS",payload:{events:t}})}enableInteract(){this.iframe.setAttribute("scrolling","auto"),this.iframe.style.pointerEvents="auto"}disableInteract(){this.iframe.setAttribute("scrolling","no"),this.iframe.style.pointerEvents="none"}resetCache(){this.cache=ke()}setupDom(){this.wrapper=document.createElement("div"),this.wrapper.classList.add("replayer-wrapper"),this.config.root.appendChild(this.wrapper),this.mouse=document.createElement("div"),this.mouse.classList.add("replayer-mouse"),this.wrapper.appendChild(this.mouse),this.config.mouseTail!==!1&&(this.mouseTail=document.createElement("canvas"),this.mouseTail.classList.add("replayer-mouse-tail"),this.mouseTail.style.display="inherit",this.wrapper.appendChild(this.mouseTail)),this.iframe=document.createElement("iframe");const t=["allow-same-origin"];this.config.UNSAFE_replayCanvas&&t.push("allow-scripts"),this.iframe.style.display="none",this.iframe.setAttribute("sandbox",t.join(" ")),this.disableInteract(),this.wrapper.appendChild(this.iframe),this.iframe.contentWindow&&this.iframe.contentDocument&&(Kt(this.iframe.contentWindow,this.iframe.contentDocument),lr(this.iframe.contentWindow))}handleResize(t){this.iframe.style.display="inherit";for(const r of[this.mouseTail,this.iframe])!r||(r.setAttribute("width",String(t.width)),r.setAttribute("height",String(t.height)))}applyEventsSynchronously(t){for(const r of t){switch(r.type){case M.DomContentLoaded:case M.Load:case M.Custom:continue;case M.FullSnapshot:case M.Meta:case M.Plugin:case M.IncrementalSnapshot:break}this.getCastFn(r,!0)()}this.touchActive===!0?this.mouse.classList.add("touch-active"):this.touchActive===!1&&this.mouse.classList.remove("touch-active"),this.touchActive=null}getCastFn(t,r=!1){let i;switch(t.type){case M.DomContentLoaded:case M.Load:break;case M.Custom:i=()=>{this.emitter.emit(D.CustomEvent,t)};break;case M.Meta:i=()=>this.emitter.emit(D.Resize,{width:t.data.width,height:t.data.height});break;case M.FullSnapshot:i=()=>{if(this.firstFullSnapshot){if(this.firstFullSnapshot===t){this.firstFullSnapshot=!0;return}}else this.firstFullSnapshot=!0;this.rebuildFullSnapshot(t,r),this.iframe.contentWindow.scrollTo(t.data.initialOffset)};break;case M.IncrementalSnapshot:i=()=>{if(this.applyIncremental(t,r),!r&&(this.handleInactivity(t.timestamp),t===this.nextUserInteractionEvent&&(this.nextUserInteractionEvent=null,this.backToNormal()),this.config.skipInactive&&!this.nextUserInteractionEvent)){for(const n of this.service.state.context.events)if(!(n.timestamp<=t.timestamp)&&this.isUserInteraction(n)){n.delay-t.delay>mt*this.speedService.state.context.timer.speed&&(this.nextUserInteractionEvent=n);break}if(this.nextUserInteractionEvent){const n=this.nextUserInteractionEvent.delay-t.delay,s={speed:Math.min(Math.round(n/pt),this.config.maxSpeed)};this.speedService.send({type:"FAST_FORWARD",payload:s}),this.emitter.emit(D.SkipStart,s)}}};break}return()=>{i&&i();for(const s of this.config.plugins||[])s.handler(t,r,{replayer:this});this.service.send({type:"CAST_EVENT",payload:{event:t}});const n=this.service.state.context.events.length-1;if(t===this.service.state.context.events[n]){const s=()=>{n<this.service.state.context.events.length-1||(this.backToNormal(),this.service.send("END"),this.emitter.emit(D.Finish))};t.type===M.IncrementalSnapshot&&t.data.source===C.MouseMove&&t.data.positions.length?setTimeout(()=>{s()},Math.max(0,-t.data.positions[0].timeOffset+50)):s()}this.emitter.emit(D.EventCast,t)}}handleInactivity(t,r){if((t===this.inactiveEndTimestamp||r)&&(this.inactiveEndTimestamp=null,this.backToNormal()),this.config.skipInactive&&!this.inactiveEndTimestamp){for(const i of this.getActivityIntervals())if(t>=i.startTime&&t<i.endTime&&!i.active){this.inactiveEndTimestamp=i.endTime;break}if(this.inactiveEndTimestamp){const i=this.inactiveEndTimestamp-t,n={speed:i/gt*this.config.inactiveSkipTime<ft?i/ft:Math.round(Math.max(i,gt)/this.config.inactiveSkipTime)};this.speedService.send({type:"FAST_FORWARD",payload:n}),this.emitter.emit(D.SkipStart,n)}}}rebuildFullSnapshot(t,r=!1){if(!this.iframe.contentDocument)return console.warn("Looks like your replayer has been destroyed.");Object.keys(this.legacy_missingNodeRetryMap).length&&console.warn("Found unresolved missing node map",this.legacy_missingNodeRetryMap),this.legacy_missingNodeRetryMap={};const i=[];Ct(t.data.node,{doc:this.iframe.contentDocument,afterAppend:a=>{this.collectIframeAndAttachDocument(i,a)},cache:this.cache,mirror:this.mirror});for(const{mutationInQueue:a,builtNode:l}of i)this.attachDocumentToIframe(a,l),this.newDocumentQueue=this.newDocumentQueue.filter(u=>u!==a);const{documentElement:n,head:s}=this.iframe.contentDocument;this.insertStyleRules(n,s),this.service.state.matches("playing")||this.iframe.contentDocument.getElementsByTagName("html")[0].classList.add("rrweb-paused"),this.emitter.emit(D.FullsnapshotRebuilded,t),r||this.waitForStylesheetLoad(),this.config.UNSAFE_replayCanvas&&this.preloadAllImages()}insertStyleRules(t,r){const i=hr(this.config.blockClass).concat(this.config.insertStyleRules);if(this.config.pauseAnimation&&i.push("html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }"),this.usingVirtualDom){const n=this.virtualDom.createElement("style");this.virtualDom.mirror.add(n,je(n,this.virtualDom.unserializedId)),t.insertBefore(n,r);for(let s=0;s<i.length;s++)n.rules.push({cssText:i[s],type:U.Insert,index:s})}else{const n=document.createElement("style");t.insertBefore(n,r);for(let s=0;s<i.length;s++)n.sheet.insertRule(i[s],s)}}attachDocumentToIframe(t,r){const i=this.usingVirtualDom?this.virtualDom.mirror:this.mirror,n=[];re(t.node,{doc:r.contentDocument,mirror:i,hackCss:!0,skipChild:!1,afterAppend:s=>{this.collectIframeAndAttachDocument(n,s);const a=i.getMeta(s);if(a?.type===I.Element&&a?.tagName.toUpperCase()==="HTML"){const{documentElement:l,head:u}=r.contentDocument;this.insertStyleRules(l,u)}},cache:this.cache});for(const{mutationInQueue:s,builtNode:a}of n)this.attachDocumentToIframe(s,a),this.newDocumentQueue=this.newDocumentQueue.filter(l=>l!==s)}collectIframeAndAttachDocument(t,r){if(ve(r,this.mirror)){const i=this.newDocumentQueue.find(n=>n.parentId===this.mirror.getId(r));i&&t.push({mutationInQueue:i,builtNode:r})}}waitForStylesheetLoad(){var t;const r=(t=this.iframe.contentDocument)==null?void 0:t.head;if(r){const i=new Set;let n,s=this.service.state;const a=()=>{s=this.service.state};this.emitter.on(D.Start,a),this.emitter.on(D.Pause,a);const l=()=>{this.emitter.off(D.Start,a),this.emitter.off(D.Pause,a)};r.querySelectorAll('link[rel="stylesheet"]').forEach(u=>{u.sheet||(i.add(u),u.addEventListener("load",()=>{i.delete(u),i.size===0&&n!==-1&&(s.matches("playing")&&this.play(this.getCurrentTime()),this.emitter.emit(D.LoadStylesheetEnd),n&&clearTimeout(n),l())}))}),i.size>0&&(this.service.send({type:"PAUSE"}),this.emitter.emit(D.LoadStylesheetStart),n=setTimeout(()=>{s.matches("playing")&&this.play(this.getCurrentTime()),n=-1,l()},this.config.loadTimeout))}}hasImageArg(t){for(const r of t)if(!(!r||typeof r!="object")){if("rr_type"in r&&"args"in r){if(this.hasImageArg(r.args))return!0}else if("rr_type"in r&&r.rr_type==="HTMLImageElement"||r instanceof Array&&this.hasImageArg(r))return!0}return!1}getImageArgs(t){const r=[];for(const i of t)!i||typeof i!="object"||("rr_type"in i&&"args"in i?r.push(...this.getImageArgs(i.args)):"rr_type"in i&&i.rr_type==="HTMLImageElement"?r.push(i.src):i instanceof Array&&r.push(...this.getImageArgs(i)));return r}preloadAllImages(){return Ne(this,null,function*(){this.service.state;const t=()=>{this.service.state};this.emitter.on(D.Start,t),this.emitter.on(D.Pause,t);const r=[];for(const i of this.service.state.context.events)i.type===M.IncrementalSnapshot&&i.data.source===C.CanvasMutation&&(r.push(this.deserializeAndPreloadCanvasEvents(i.data,i)),("commands"in i.data?i.data.commands:[i.data]).forEach(n=>{this.preloadImages(n,i)}));return Promise.all(r)})}preloadImages(t,r){if(t.property==="drawImage"&&typeof t.args[0]=="string"&&!this.imageMap.has(r)){const i=document.createElement("canvas"),n=i.getContext("2d"),s=n?.createImageData(i.width,i.height);s?.data,JSON.parse(t.args[0]),n?.putImageData(s,0,0)}}deserializeAndPreloadCanvasEvents(t,r){return Ne(this,null,function*(){if(!this.canvasEventMap.has(r)){const i={isUnchanged:!0};if("commands"in t){const n=yield Promise.all(t.commands.map(s=>Ne(this,null,function*(){const a=yield Promise.all(s.args.map(V(this.imageMap,null,i)));return Te(X({},s),{args:a})})));i.isUnchanged===!1&&this.canvasEventMap.set(r,Te(X({},t),{commands:n}))}else{const n=yield Promise.all(t.args.map(V(this.imageMap,null,i)));i.isUnchanged===!1&&this.canvasEventMap.set(r,Te(X({},t),{args:n}))}}})}applyIncremental(t,r){var i,n,s,a,l,u;const{data:o}=t;switch(o.source){case C.Mutation:{try{this.applyMutation(o,r)}catch(c){this.warn(`Exception in mutation ${c.message||c}`,o)}break}case C.Drag:case C.TouchMove:case C.MouseMove:if(r){const c=o.positions[o.positions.length-1];this.mousePos={x:c.x,y:c.y,id:c.id,debugData:o}}else o.positions.forEach(c=>{const d={doAction:()=>{this.moveAndHover(c.x,c.y,c.id,r,o)},delay:c.timeOffset+t.timestamp-this.service.state.context.baselineTime};this.timer.addAction(d)}),this.timer.addAction({doAction(){},delay:t.delay-((i=o.positions[0])==null?void 0:i.timeOffset)});break;case C.MouseInteraction:{if(o.id===-1||r)break;const c=new Event(_[o.type].toLowerCase()),d=this.mirror.getNode(o.id);if(!d)return this.debugNodeNotFound(o,o.id);this.emitter.emit(D.MouseInteraction,{type:o.type,target:d});const{triggerFocus:m}=this.config;switch(o.type){case _.Blur:"blur"in d&&d.blur();break;case _.Focus:m&&d.focus&&d.focus({preventScroll:!0});break;case _.Click:case _.TouchStart:case _.TouchEnd:r?(o.type===_.TouchStart?this.touchActive=!0:o.type===_.TouchEnd&&(this.touchActive=!1),this.mousePos={x:o.x,y:o.y,id:o.id,debugData:o}):(o.type===_.TouchStart&&(this.tailPositions.length=0),this.moveAndHover(o.x,o.y,o.id,r,o),o.type===_.Click?(this.mouse.classList.remove("active"),this.mouse.offsetWidth,this.mouse.classList.add("active")):o.type===_.TouchStart?(this.mouse.offsetWidth,this.mouse.classList.add("touch-active")):o.type===_.TouchEnd&&this.mouse.classList.remove("touch-active"));break;case _.TouchCancel:r?this.touchActive=!1:this.mouse.classList.remove("touch-active");break;default:d.dispatchEvent(c)}break}case C.Scroll:{if(o.id===-1)break;if(this.usingVirtualDom){const c=this.virtualDom.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);c.scrollData=o;break}this.applyScroll(o,r);break}case C.ViewportResize:this.emitter.emit(D.Resize,{width:o.width,height:o.height});break;case C.Input:{if(o.id===-1)break;if(this.usingVirtualDom){const c=this.virtualDom.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);c.inputData=o;break}this.applyInput(o);break}case C.MediaInteraction:{const c=this.usingVirtualDom?this.virtualDom.mirror.getNode(o.id):this.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);const d=c;try{o.currentTime&&(d.currentTime=o.currentTime),o.volume&&(d.volume=o.volume),o.muted&&(d.muted=o.muted),o.type===fe.Pause&&d.pause(),o.type===fe.Play&&d.play()}catch(m){this.config.showWarning&&console.warn(`Failed to replay media interactions: ${m.message||m}`)}break}case C.StyleSheetRule:{if(this.usingVirtualDom){const c=this.virtualDom.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);const d=c.rules;(n=o.adds)==null||n.forEach(({rule:m,index:f})=>d?.push({cssText:m,index:f,type:U.Insert})),(s=o.removes)==null||s.forEach(({index:m})=>d?.push({index:m,type:U.Remove}))}else{const c=this.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);const d=c.sheet;(a=o.adds)==null||a.forEach(({rule:m,index:f})=>{try{if(Array.isArray(f)){const{positions:T,index:g}=st(f);Z(d.cssRules,T).insertRule(m,g)}else{const T=f===void 0?void 0:Math.min(f,d.cssRules.length);d.insertRule(m,T)}}catch{}}),(l=o.removes)==null||l.forEach(({index:m})=>{try{if(Array.isArray(m)){const{positions:f,index:T}=st(m);Z(d.cssRules,f).deleteRule(T||0)}else d?.deleteRule(m)}catch{}})}break}case C.StyleDeclaration:{if(this.usingVirtualDom){const c=this.virtualDom.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);const d=c.rules;o.set&&d.push(X({type:U.SetProperty,index:o.index},o.set)),o.remove&&d.push(X({type:U.RemoveProperty,index:o.index},o.remove))}else{const c=this.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);const d=c.sheet;o.set&&Z(d.rules,o.index).style.setProperty(o.set.property,o.set.value,o.set.priority),o.remove&&Z(d.rules,o.index).style.removeProperty(o.remove.property)}break}case C.CanvasMutation:{if(!this.config.UNSAFE_replayCanvas)return;if(this.usingVirtualDom){const c=this.virtualDom.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);c.canvasMutations.push({event:t,mutation:o})}else{const c=this.mirror.getNode(o.id);if(!c)return this.debugNodeNotFound(o,o.id);ut({event:t,mutation:o,target:c,imageMap:this.imageMap,canvasEventMap:this.canvasEventMap,errorHandler:this.warnCanvasMutationFailed.bind(this)})}break}case C.Font:{try{const c=new FontFace(o.family,o.buffer?new Uint8Array(JSON.parse(o.fontSource)):o.fontSource,o.descriptors);(u=this.iframe.contentDocument)==null||u.fonts.add(c)}catch(c){this.config.showWarning&&console.warn(c)}break}}}applyMutation(t,r){if(this.config.useVirtualDom&&!this.usingVirtualDom&&r&&(this.usingVirtualDom=!0,Qt(this.iframe.contentDocument,this.mirror,this.virtualDom),Object.keys(this.legacy_missingNodeRetryMap).length))for(const o in this.legacy_missingNodeRetryMap)try{const c=this.legacy_missingNodeRetryMap[o],d=We(c.node,this.virtualDom,this.mirror);d&&(c.node=d)}catch(c){this.config.showWarning&&console.warn(c)}const i=this.usingVirtualDom?this.virtualDom.mirror:this.mirror;t.removes.forEach(o=>{var c;const d=i.getNode(o.id);if(!d)return t.removes.find(f=>f.id===o.parentId)?void 0:this.warnNodeNotFound(t,o.id);let m=i.getNode(o.parentId);if(!m)return this.warnNodeNotFound(t,o.parentId);if(o.isShadow&&ot(m)&&(m=m.shadowRoot),i.removeNodeFromMap(d),m)try{m.removeChild(d),this.usingVirtualDom&&d.nodeName==="#text"&&m.nodeName==="STYLE"&&((c=m.rules)==null?void 0:c.length)>0&&(m.rules=[])}catch(f){if(f instanceof DOMException)this.warn("parent could not remove child in mutation",m,d,t);else throw f}});const n=X({},this.legacy_missingNodeRetryMap),s=[],a=o=>{let c=null;return o.nextId&&(c=i.getNode(o.nextId)),o.nextId!==null&&o.nextId!==void 0&&o.nextId!==-1&&!c},l=o=>{var c;if(!this.iframe.contentDocument)return console.warn("Looks like your replayer has been destroyed.");let d=i.getNode(o.parentId);if(!d)return o.node.type===I.Document?this.newDocumentQueue.push(o):s.push(o);o.node.isShadow&&(ot(d)||d.attachShadow({mode:"open"}),d=d.shadowRoot);let m=null,f=null;if(o.previousId&&(m=i.getNode(o.previousId)),o.nextId&&(f=i.getNode(o.nextId)),a(o))return s.push(o);if(o.node.rootId&&!i.getNode(o.node.rootId))return;const T=o.node.rootId?i.getNode(o.node.rootId):this.usingVirtualDom?this.virtualDom:this.iframe.contentDocument;if(ve(d,i)){this.attachDocumentToIframe(o,d);return}const g=re(o.node,{doc:T,mirror:i,skipChild:!0,hackCss:!0,cache:this.cache});if(o.previousId===-1||o.nextId===-1){n[o.node.id]={node:g,mutation:o};return}const E=i.getMeta(d);if(E&&E.type===I.Element&&E.tagName==="textarea"&&o.node.type===I.Text){const h=Array.isArray(d.childNodes)?d.childNodes:Array.from(d.childNodes);for(const v of h)v.nodeType===d.TEXT_NODE&&d.removeChild(v)}if(m&&m.nextSibling&&m.nextSibling.parentNode)d.insertBefore(g,m.nextSibling);else if(f&&f.parentNode)d.contains(f)?d.insertBefore(g,f):d.insertBefore(g,null);else{if(d===T)for(;T.firstChild;)T.removeChild(T.firstChild);d.appendChild(g)}if(this.usingVirtualDom&&g.nodeName==="#text"&&d.nodeName==="STYLE"&&((c=d.rules)==null?void 0:c.length)>0&&(d.rules=[]),ve(g,this.mirror)){const h=this.mirror.getId(g),v=this.newDocumentQueue.find(w=>w.parentId===h);v&&(this.attachDocumentToIframe(v,g),this.newDocumentQueue=this.newDocumentQueue.filter(w=>w!==v))}(o.previousId||o.nextId)&&this.legacy_resolveMissingNode(n,d,g,o)};t.adds.forEach(o=>{l(o)});const u=Date.now();for(;s.length;){const o=ur(s);if(s.length=0,Date.now()-u>500){this.warn("Timeout in the loop, please check the resolve tree data:",o);break}for(const c of o)i.getNode(c.value.parentId)?it(c,d=>{l(d)}):this.debug("Drop resolve tree since there is no parent for the root node.",c)}Object.keys(n).length&&Object.assign(this.legacy_missingNodeRetryMap,n),dr(t.texts).forEach(o=>{var c;const d=i.getNode(o.id);if(!d)return t.removes.find(m=>m.id===o.id)?void 0:this.warnNodeNotFound(t,o.id);if(d.textContent=o.value,this.usingVirtualDom){const m=d.parentNode;((c=m?.rules)==null?void 0:c.length)>0&&(m.rules=[])}}),t.attributes.forEach(o=>{const c=i.getNode(o.id);if(!c)return t.removes.find(d=>d.id===o.id)?void 0:this.warnNodeNotFound(t,o.id);for(const d in o.attributes)if(typeof d=="string"){const m=o.attributes[d];if(m===null)c.removeAttribute(d);else if(typeof m=="string")try{c.setAttribute(d,m)}catch(f){this.config.showWarning&&console.warn("An error occurred may due to the checkout feature.",f)}else if(d==="style"){const f=m,T=c;for(const g in f)if(f[g]===!1)T.style.removeProperty(g);else if(f[g]instanceof Array){const E=f[g];T.style.setProperty(g,E[0],E[1])}else{const E=f[g];T.style.setProperty(g,E)}}}})}applyScroll(t,r){const i=this.mirror.getNode(t.id);if(!i)return this.debugNodeNotFound(t,t.id);const n=this.mirror.getMeta(i);if(i===this.iframe.contentDocument)this.iframe.contentWindow.scrollTo({top:t.y,left:t.x,behavior:r?"auto":"smooth"});else if(n?.type===I.Document)i.defaultView.scrollTo({top:t.y,left:t.x,behavior:r?"auto":"smooth"});else try{i.scrollTop=t.y,i.scrollLeft=t.x}catch{}}applyInput(t){const r=this.mirror.getNode(t.id);if(!r)return this.debugNodeNotFound(t,t.id);try{r.checked=t.isChecked,r.value=t.text}catch{}}legacy_resolveMissingNode(t,r,i,n){const{previousId:s,nextId:a}=n,l=s&&t[s],u=a&&t[a];if(l){const{node:o,mutation:c}=l;r.insertBefore(o,i),delete t[c.node.id],delete this.legacy_missingNodeRetryMap[c.node.id],(c.previousId||c.nextId)&&this.legacy_resolveMissingNode(t,r,o,c)}if(u){const{node:o,mutation:c}=u;r.insertBefore(o,i.nextSibling),delete t[c.node.id],delete this.legacy_missingNodeRetryMap[c.node.id],(c.previousId||c.nextId)&&this.legacy_resolveMissingNode(t,r,o,c)}}moveAndHover(t,r,i,n,s){const a=this.mirror.getNode(i);if(!a)return this.debugNodeNotFound(s,i);const l=nt(a,this.iframe),u=t*l.absoluteScale+l.x,o=r*l.absoluteScale+l.y;this.mouse.style.left=`${u}px`,this.mouse.style.top=`${o}px`,n||this.drawMouseTail({x:u,y:o}),this.hoverElements(a)}drawMouseTail(t){if(!this.mouseTail)return;const{lineCap:r,lineWidth:i,strokeStyle:n,duration:s}=this.config.mouseTail===!0?we:Object.assign({},we,this.config.mouseTail),a=()=>{if(!this.mouseTail)return;const l=this.mouseTail.getContext("2d");!l||!this.tailPositions.length||(l.clearRect(0,0,this.mouseTail.width,this.mouseTail.height),l.beginPath(),l.lineWidth=i,l.lineCap=r,l.strokeStyle=n,l.moveTo(this.tailPositions[0].x,this.tailPositions[0].y),this.tailPositions.forEach(u=>l.lineTo(u.x,u.y)),l.stroke())};this.tailPositions.push(t),a(),setTimeout(()=>{this.tailPositions=this.tailPositions.filter(l=>l!==t),a()},s/this.speedService.state.context.timer.speed)}hoverElements(t){var r;(r=this.iframe.contentDocument)==null||r.querySelectorAll(".\\:hover").forEach(n=>{n.classList.remove(":hover")});let i=t;for(;i;)i.classList&&i.classList.add(":hover"),i=i.parentElement}isUserInteraction(t){return t.type!==M.IncrementalSnapshot?!1:t.data.source>C.Mutation&&t.data.source<=C.Input}backToNormal(){this.nextUserInteractionEvent=null,!this.speedService.state.matches("normal")&&(this.speedService.send({type:"BACK_TO_NORMAL"}),this.emitter.emit(D.SkipEnd,{speed:this.speedService.state.context.normalSpeed}))}warnNodeNotFound(t,r){this.warn(`Node with id '${r}' not found. `,t)}warnCanvasMutationFailed(t,r){this.warn("Has error on canvas update",r,"canvas mutation:",t)}debugNodeNotFound(t,r){this.debug(Ee,`Node with id '${r}' not found. `,t)}warn(...t){!this.config.showWarning||console.warn(Ee,...t)}debug(...t){!this.config.showDebug||console.log(Ee,...t)}}return ue.Replayer=Rr,Object.defineProperty(ue,"__esModule",{value:!0}),ue}({});
|
|
17
|
+
or you can use record.mirror to access the mirror instance during recording.`;let rt={map:{},getId(){return console.error(X),-1},getNode(){return console.error(X),null},removeNodeFromMap(){console.error(X)},has(){return console.error(X),!1},reset(){console.error(X)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(rt=new Proxy(rt,{get(e,t,r){return t==="map"&&console.error(X),Reflect.get(e,t,r)}}));function lr(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=function(t){if(!(0 in arguments))throw new TypeError("1 argument is required");do if(this===t)return!0;while(t=t&&t.parentNode);return!1})}function ur(e){const t={},r=(n,s)=>{const a={value:n,parent:s,children:[]};return t[n.node.id]=a,a},i=[];for(const n of e){const{nextId:s,parentId:a}=n;if(s&&s in t){const c=t[s];if(c.parent){const l=c.parent.children.indexOf(c);c.parent.children.splice(l,0,r(n,c.parent))}else{const l=i.indexOf(c);i.splice(l,0,r(n,null))}continue}if(a in t){const c=t[a];c.children.push(r(n,c));continue}i.push(r(n,null))}return i}function it(e,t){t(e.value);for(let r=e.children.length-1;r>=0;r--)it(e.children[r],t)}function Ne(e,t){return Boolean(e.nodeName==="IFRAME"&&t.getMeta(e))}function nt(e,t){var r,i;const n=(i=(r=e.ownerDocument)==null?void 0:r.defaultView)==null?void 0:i.frameElement;if(!n||n===t)return{x:0,y:0,relativeScale:1,absoluteScale:1};const s=n.getBoundingClientRect(),a=nt(n,t),c=s.height/n.clientHeight;return{x:s.x*a.relativeScale+a.x,y:s.y*a.relativeScale+a.y,relativeScale:c,absoluteScale:a.absoluteScale*c}}function ot(e){return Boolean(e?.shadowRoot)}function K(e,t){const r=e[t[0]];return t.length===1?r:K(r.cssRules[t[1]].cssRules,t.slice(2))}function st(e){const t=[...e],r=t.pop();return{positions:t,index:r}}function dr(e){const t=new Set,r=[];for(let i=e.length;i--;){const n=e[i];t.has(n.id)||(r.push(n),t.add(n.id))}return r}const hr=e=>[`.${e} { background: currentColor }`,"noscript { display: none !important; }",`.${e} { background: currentColor; border-radius: 5px; }`,`.${e}:hover::after {content: 'Redacted'; color: white; background: black; text-align: center; width: 100%; display: block;}`];for(var at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ee=typeof Uint8Array>"u"?[]:new Uint8Array(256),le=0;le<at.length;le++)ee[at.charCodeAt(le)]=le;var mr=function(e){var t=e.length*.75,r=e.length,i,n=0,s,a,c,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);var o=new ArrayBuffer(t),u=new Uint8Array(o);for(i=0;i<r;i+=4)s=ee[e.charCodeAt(i)],a=ee[e.charCodeAt(i+1)],c=ee[e.charCodeAt(i+2)],l=ee[e.charCodeAt(i+3)],u[n++]=s<<2|a>>4,u[n++]=(a&15)<<4|c>>2,u[n++]=(c&3)<<6|l&63;return o},pr=(e,t,r)=>new Promise((i,n)=>{var s=l=>{try{c(r.next(l))}catch(o){n(o)}},a=l=>{try{c(r.throw(l))}catch(o){n(o)}},c=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);c((r=r.apply(e,t)).next())});const ct=new Map;function lt(e,t){let r=ct.get(e);return r||(r=new Map,ct.set(e,r)),r.has(t)||r.set(t,[]),r.get(t)}function W(e,t,r){return i=>pr(this,null,function*(){if(i&&typeof i=="object"&&"rr_type"in i)if(r&&(r.isUnchanged=!1),i.rr_type==="ImageBitmap"&&"args"in i){const n=yield W(e,t,r)(i.args);return yield createImageBitmap.apply(null,n)}else if("index"in i){if(r||t===null)return i;const{rr_type:n,index:s}=i;return lt(t,n)[s]}else if("args"in i){const{rr_type:n,args:s}=i,a=window[n];return new a(...yield Promise.all(s.map(W(e,t,r))))}else{if("base64"in i)return mr(i.base64);if("src"in i){const n=e.get(i.src);if(n)return n;{const s=new Image;return s.src=i.src,e.set(i.src,s),s}}else if("data"in i&&i.rr_type==="Blob"){const n=yield Promise.all(i.data.map(W(e,t,r)));return new Blob(n,{type:i.type})}}else if(Array.isArray(i))return yield Promise.all(i.map(W(e,t,r)));return i})}var fr=(e,t,r)=>new Promise((i,n)=>{var s=l=>{try{c(r.next(l))}catch(o){n(o)}},a=l=>{try{c(r.throw(l))}catch(o){n(o)}},c=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);c((r=r.apply(e,t)).next())});function gr(e,t){try{return t===oe.WebGL?e.getContext("webgl")||e.getContext("experimental-webgl"):e.getContext("webgl2")}catch{return null}}const yr=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject"];function vr(e,t){if(!(t!=null&&t.constructor))return;const{name:r}=t.constructor;if(!yr.includes(r))return;const i=lt(e,r);i.includes(t)||i.push(t)}function Tr(e){return fr(this,arguments,function*({mutation:t,target:r,type:i,imageMap:n,errorHandler:s}){try{const a=gr(r,i);if(!a)return;if(t.setter){a[t.property]=t.args[0];return}const c=a[t.property],l=yield Promise.all(t.args.map(W(n,a))),o=c.apply(a,l);vr(a,o)}catch(a){s(t,a)}})}var Nr=(e,t,r)=>new Promise((i,n)=>{var s=l=>{try{c(r.next(l))}catch(o){n(o)}},a=l=>{try{c(r.throw(l))}catch(o){n(o)}},c=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);c((r=r.apply(e,t)).next())});function Er(e){return Nr(this,arguments,function*({event:t,mutation:r,target:i,imageMap:n,errorHandler:s}){try{const a=i.getContext("2d");if(r.setter){a[r.property]=r.args[0];return}const c=a[r.property];if(r.property==="drawImage"&&typeof r.args[0]=="string"){const l=n.get(t);c.apply(a,r.args)}else{const l=yield Promise.all(r.args.map(W(n,a)));c.apply(a,l)}}catch(a){s(r,a)}})}var wr=(e,t,r)=>new Promise((i,n)=>{var s=l=>{try{c(r.next(l))}catch(o){n(o)}},a=l=>{try{c(r.throw(l))}catch(o){n(o)}},c=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);c((r=r.apply(e,t)).next())});function ut(e){return wr(this,arguments,function*({event:t,mutation:r,target:i,imageMap:n,canvasEventMap:s,errorHandler:a}){try{const c=s.get(t)||r,l="commands"in c?c.commands:[c];if([oe.WebGL,oe.WebGL2].includes(r.type)){for(let o=0;o<l.length;o++){const u=l[o];yield Tr({mutation:u,type:r.type,target:i,imageMap:n,errorHandler:a})}return}for(let o=0;o<l.length;o++){const u=l[o];yield Er({event:t,mutation:u,target:i,imageMap:n,errorHandler:a})}}catch(c){a(r,c)}})}var br=Object.defineProperty,Dr=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,dt=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,Sr=Object.prototype.propertyIsEnumerable,ht=(e,t,r)=>t in e?br(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Q=(e,t)=>{for(var r in t||(t={}))Cr.call(t,r)&&ht(e,r,t[r]);if(dt)for(var r of dt(t))Sr.call(t,r)&&ht(e,r,t[r]);return e},Ee=(e,t)=>Dr(e,Mr(t)),we=(e,t,r)=>new Promise((i,n)=>{var s=l=>{try{c(r.next(l))}catch(o){n(o)}},a=l=>{try{c(r.throw(l))}catch(o){n(o)}},c=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);c((r=r.apply(e,t)).next())});const mt=10*1e3,pt=2*1e3,ft=1*1e3,gt=60*60*1e3,xr=He||Zt,be="[replayer]",De={duration:500,lineCap:"round",lineWidth:3,strokeStyle:"red"};function Me(e){return e.type==M.IncrementalSnapshot&&(e.data.source==S.TouchMove||e.data.source==S.MouseInteraction&&e.data.type==k.TouchStart)}class Rr{constructor(t,r){if(this.usingVirtualDom=!1,this.virtualDom=new Y,this.mouseTail=null,this.tailPositions=[],this.emitter=xr(),this.activityIntervals=[],this.legacy_missingNodeRetryMap={},this.cache=ke(),this.imageMap=new Map,this.canvasEventMap=new Map,this.mirror=Tt(),this.firstFullSnapshot=null,this.newDocumentQueue=[],this.mousePos=null,this.touchActive=null,!(r!=null&&r.liveMode)&&t.length<2)throw new Error("Replayer need at least 2 events.");const i={speed:1,maxSpeed:360,root:document.body,loadTimeout:0,skipInactive:!1,showWarning:!0,showDebug:!1,blockClass:"highlight-block",liveMode:!1,insertStyleRules:[],triggerFocus:!0,UNSAFE_replayCanvas:!1,pauseAnimation:!0,mouseTail:De,useVirtualDom:!0,inactiveThreshold:.02,inactiveSkipTime:pt};this.config=Object.assign({},i,r),this.handleResize=this.handleResize.bind(this),this.getCastFn=this.getCastFn.bind(this),this.applyEventsSynchronously=this.applyEventsSynchronously.bind(this),this.emitter.on(D.Resize,this.handleResize),this.setupDom(),this.emitter.on(D.Flush,()=>{if(this.usingVirtualDom){const c={mirror:this.mirror,applyCanvas:(l,o,u)=>{ut({event:l,mutation:o,target:u,imageMap:this.imageMap,canvasEventMap:this.canvasEventMap,errorHandler:this.warnCanvasMutationFailed.bind(this)})},applyInput:this.applyInput.bind(this),applyScroll:this.applyScroll.bind(this)};if(B(this.iframe.contentDocument,this.virtualDom,c,this.virtualDom.mirror),this.virtualDom.destroyTree(),this.usingVirtualDom=!1,Object.keys(this.legacy_missingNodeRetryMap).length)for(const l in this.legacy_missingNodeRetryMap)try{const o=this.legacy_missingNodeRetryMap[l],u=ge(o.node,this.mirror,this.virtualDom.mirror);B(u,o.node,c,this.virtualDom.mirror),o.node=u}catch(o){this.config.showWarning&&console.warn(o)}}this.mousePos&&this.moveAndHover(this.mousePos.x,this.mousePos.y,this.mousePos.id,!0,this.mousePos.debugData),this.mousePos=null}),this.emitter.on(D.PlayBack,()=>{this.firstFullSnapshot=null,this.mirror.reset()});const n=new er([],r?.speed||i.speed);this.service=ar({events:t.map(c=>r&&r.unpackFn?r.unpackFn(c):c).sort((c,l)=>c.timestamp-l.timestamp),timer:n,timeOffset:0,baselineTime:0,lastPlayedEvent:null},{getCastFn:this.getCastFn,applyEventsSynchronously:this.applyEventsSynchronously,emitter:this.emitter}),this.service.start(),this.service.subscribe(c=>{this.emitter.emit(D.StateChange,{player:c})}),this.speedService=cr({normalSpeed:-1,timer:n}),this.speedService.start(),this.speedService.subscribe(c=>{this.emitter.emit(D.StateChange,{speed:c})});const s=this.service.state.context.events.find(c=>c.type===M.Meta),a=this.service.state.context.events.find(c=>c.type===M.FullSnapshot);if(s){const{width:c,height:l}=s.data;setTimeout(()=>{this.emitter.emit(D.Resize,{width:c,height:l})},0)}a&&setTimeout(()=>{this.firstFullSnapshot||(this.firstFullSnapshot=a,this.rebuildFullSnapshot(a),this.iframe.contentWindow.scrollTo(a.data.initialOffset))},1),this.service.state.context.events.find(Me)&&this.mouse.classList.add("touch-device")}get timer(){return this.service.state.context.timer}on(t,r){return this.emitter.on(t,r),this}off(t,r){return this.emitter.off(t,r),this}setConfig(t){Object.keys(t).forEach(r=>{this.config[r]=t[r]}),this.config.skipInactive||this.backToNormal(),typeof t.speed<"u"&&this.speedService.send({type:"SET_SPEED",payload:{speed:t.speed}}),typeof t.mouseTail<"u"&&(t.mouseTail===!1?this.mouseTail&&(this.mouseTail.style.display="none"):(this.mouseTail||(this.mouseTail=document.createElement("canvas"),this.mouseTail.width=Number.parseFloat(this.iframe.width),this.mouseTail.height=Number.parseFloat(this.iframe.height),this.mouseTail.classList.add("replayer-mouse-tail"),this.wrapper.insertBefore(this.mouseTail,this.iframe)),this.mouseTail.style.display="inherit"))}getActivityIntervals(){if(this.activityIntervals.length==0){const t=[],r=this.getMetaData(),i=[{timestamp:r.startTime},...this.service.state.context.events.filter(a=>this.isUserInteraction(a)),{timestamp:r.endTime}];for(let a=1;a<i.length;a++){const c=i[a-1],l=i[a];l.timestamp-c.timestamp>mt?t.push({startTime:c.timestamp,endTime:l.timestamp,duration:l.timestamp-c.timestamp,active:!1}):t.push({startTime:c.timestamp,endTime:l.timestamp,duration:l.timestamp-c.timestamp,active:!0})}const n=[];let s=t[0];for(let a=1;a<t.length;a++)t[a].active!=t[a-1].active&&(n.push({startTime:s.startTime,endTime:t[a-1].endTime,duration:t[a-1].endTime-s.startTime,active:t[a-1].active}),s=t[a]);s&&t.length>0&&n.push({startTime:s.startTime,endTime:t[t.length-1].endTime,duration:t[t.length-1].endTime-s.startTime,active:t[t.length-1].active}),s=n[0];for(let a=1;a<n.length;a++)(!n[a].active&&n[a].duration>this.config.inactiveThreshold*r.totalTime||!n[a-1].active&&n[a-1].duration>this.config.inactiveThreshold*r.totalTime)&&(this.activityIntervals.push({startTime:s.startTime,endTime:n[a-1].endTime,duration:n[a-1].endTime-s.startTime,active:n[a-1].active}),s=n[a]);s&&n.length>0&&this.activityIntervals.push({startTime:s.startTime,endTime:n[n.length-1].endTime,duration:n[n.length-1].endTime-s.startTime,active:n[n.length-1].active})}return this.activityIntervals}getMetaData(){const t=this.service.state.context.events[0],r=this.service.state.context.events[this.service.state.context.events.length-1];return{startTime:t.timestamp,endTime:r.timestamp,totalTime:r.timestamp-t.timestamp}}getCurrentTime(){return this.timer.timeOffset+this.getTimeOffset()}getTimeOffset(){const{baselineTime:t,events:r}=this.service.state.context;return t-r[0].timestamp}getMirror(){return this.mirror}play(t=0){var r,i;this.service.state.matches("paused")?this.service.send({type:"PLAY",payload:{timeOffset:t}}):(this.service.send({type:"PAUSE"}),this.service.send({type:"PLAY",payload:{timeOffset:t}})),(i=(r=this.iframe.contentDocument)==null?void 0:r.getElementsByTagName("html")[0])==null||i.classList.remove("rrweb-paused"),this.emitter.emit(D.Start),this.handleInactivity(this.getMetaData().startTime+t,!0)}pause(t){var r,i;t===void 0&&this.service.state.matches("playing")&&this.service.send({type:"PAUSE"}),typeof t=="number"&&(this.play(t),this.service.send({type:"PAUSE"})),(i=(r=this.iframe.contentDocument)==null?void 0:r.getElementsByTagName("html")[0])==null||i.classList.add("rrweb-paused"),this.emitter.emit(D.Pause)}resume(t=0){console.warn("The 'resume' will be departed in 1.0. Please use 'play' method which has the same interface."),this.play(t),this.emitter.emit(D.Resume)}startLive(t){this.service.send({type:"TO_LIVE",payload:{baselineTime:t}})}addEvent(t){const r=this.config.unpackFn?this.config.unpackFn(t):t;Me(r)&&this.mouse.classList.add("touch-device"),Promise.resolve().then(()=>this.service.send({type:"ADD_EVENT",payload:{event:r}}))}replaceEvents(t){for(const r of t)if(Me(r)){this.mouse.classList.add("touch-device");break}this.service.send({type:"REPLACE_EVENTS",payload:{events:t}})}enableInteract(){this.iframe.setAttribute("scrolling","auto"),this.iframe.style.pointerEvents="auto"}disableInteract(){this.iframe.setAttribute("scrolling","no"),this.iframe.style.pointerEvents="none"}resetCache(){this.cache=ke()}setupDom(){this.wrapper=document.createElement("div"),this.wrapper.classList.add("replayer-wrapper"),this.config.root.appendChild(this.wrapper),this.mouse=document.createElement("div"),this.mouse.classList.add("replayer-mouse"),this.wrapper.appendChild(this.mouse),this.config.mouseTail!==!1&&(this.mouseTail=document.createElement("canvas"),this.mouseTail.classList.add("replayer-mouse-tail"),this.mouseTail.style.display="inherit",this.wrapper.appendChild(this.mouseTail)),this.iframe=document.createElement("iframe");const t=["allow-same-origin"];this.config.UNSAFE_replayCanvas&&t.push("allow-scripts"),this.iframe.style.display="none",this.iframe.setAttribute("sandbox",t.join(" ")),this.disableInteract(),this.wrapper.appendChild(this.iframe),this.iframe.contentWindow&&this.iframe.contentDocument&&(Kt(this.iframe.contentWindow,this.iframe.contentDocument),lr(this.iframe.contentWindow))}handleResize(t){this.iframe.style.display="inherit";for(const r of[this.mouseTail,this.iframe])!r||(r.setAttribute("width",String(t.width)),r.setAttribute("height",String(t.height)))}applyEventsSynchronously(t){for(const r of t){switch(r.type){case M.DomContentLoaded:case M.Load:case M.Custom:continue;case M.FullSnapshot:case M.Meta:case M.Plugin:case M.IncrementalSnapshot:break}this.getCastFn(r,!0)()}this.touchActive===!0?this.mouse.classList.add("touch-active"):this.touchActive===!1&&this.mouse.classList.remove("touch-active"),this.touchActive=null}getCastFn(t,r=!1){let i;switch(t.type){case M.DomContentLoaded:case M.Load:break;case M.Custom:i=()=>{this.emitter.emit(D.CustomEvent,t)};break;case M.Meta:i=()=>this.emitter.emit(D.Resize,{width:t.data.width,height:t.data.height});break;case M.FullSnapshot:i=()=>{if(this.firstFullSnapshot){if(this.firstFullSnapshot===t){this.firstFullSnapshot=!0;return}}else this.firstFullSnapshot=!0;this.rebuildFullSnapshot(t,r),this.iframe.contentWindow.scrollTo(t.data.initialOffset)};break;case M.IncrementalSnapshot:i=()=>{if(this.applyIncremental(t,r),!r&&(this.handleInactivity(t.timestamp),t===this.nextUserInteractionEvent&&(this.nextUserInteractionEvent=null,this.backToNormal()),this.config.skipInactive&&!this.nextUserInteractionEvent)){for(const n of this.service.state.context.events)if(!(n.timestamp<=t.timestamp)&&this.isUserInteraction(n)){n.delay-t.delay>mt*this.speedService.state.context.timer.speed&&(this.nextUserInteractionEvent=n);break}if(this.nextUserInteractionEvent){const n=this.nextUserInteractionEvent.delay-t.delay,s={speed:Math.min(Math.round(n/pt),this.config.maxSpeed)};this.speedService.send({type:"FAST_FORWARD",payload:s}),this.emitter.emit(D.SkipStart,s)}}};break}return()=>{i&&i();for(const s of this.config.plugins||[])s.handler(t,r,{replayer:this});this.service.send({type:"CAST_EVENT",payload:{event:t}});const n=this.service.state.context.events.length-1;if(t===this.service.state.context.events[n]){const s=()=>{n<this.service.state.context.events.length-1||(this.backToNormal(),this.service.send("END"),this.emitter.emit(D.Finish))};t.type===M.IncrementalSnapshot&&t.data.source===S.MouseMove&&t.data.positions.length?setTimeout(()=>{s()},Math.max(0,-t.data.positions[0].timeOffset+50)):s()}this.emitter.emit(D.EventCast,t)}}handleInactivity(t,r){if((t===this.inactiveEndTimestamp||r)&&(this.inactiveEndTimestamp=null,this.backToNormal()),this.config.skipInactive&&!this.inactiveEndTimestamp){for(const i of this.getActivityIntervals())if(t>=i.startTime&&t<i.endTime&&!i.active){this.inactiveEndTimestamp=i.endTime;break}if(this.inactiveEndTimestamp){const i=this.inactiveEndTimestamp-t,n={speed:i/gt*this.config.inactiveSkipTime<ft?i/ft:Math.round(Math.max(i,gt)/this.config.inactiveSkipTime)};this.speedService.send({type:"FAST_FORWARD",payload:n}),this.emitter.emit(D.SkipStart,n)}}}rebuildFullSnapshot(t,r=!1){if(!this.iframe.contentDocument)return console.warn("Looks like your replayer has been destroyed.");Object.keys(this.legacy_missingNodeRetryMap).length&&console.warn("Found unresolved missing node map",this.legacy_missingNodeRetryMap),this.legacy_missingNodeRetryMap={};const i=[];St(t.data.node,{doc:this.iframe.contentDocument,afterAppend:a=>{this.collectIframeAndAttachDocument(i,a)},cache:this.cache,mirror:this.mirror});for(const{mutationInQueue:a,builtNode:c}of i)this.attachDocumentToIframe(a,c),this.newDocumentQueue=this.newDocumentQueue.filter(l=>l!==a);const{documentElement:n,head:s}=this.iframe.contentDocument;this.insertStyleRules(n,s),this.service.state.matches("playing")||this.iframe.contentDocument.getElementsByTagName("html")[0].classList.add("rrweb-paused"),this.emitter.emit(D.FullsnapshotRebuilded,t),r||this.waitForStylesheetLoad(),this.config.UNSAFE_replayCanvas&&this.preloadAllImages()}insertStyleRules(t,r){const i=hr(this.config.blockClass).concat(this.config.insertStyleRules);if(this.config.pauseAnimation&&i.push("html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }"),this.usingVirtualDom){const n=this.virtualDom.createElement("style");this.virtualDom.mirror.add(n,je(n,this.virtualDom.unserializedId)),t.insertBefore(n,r);for(let s=0;s<i.length;s++)n.rules.push({cssText:i[s],type:U.Insert,index:s})}else{const n=document.createElement("style");t.insertBefore(n,r);for(let s=0;s<i.length;s++)n.sheet.insertRule(i[s],s)}}attachDocumentToIframe(t,r){const i=this.usingVirtualDom?this.virtualDom.mirror:this.mirror,n=[];ne(t.node,{doc:r.contentDocument,mirror:i,hackCss:!0,skipChild:!1,afterAppend:s=>{this.collectIframeAndAttachDocument(n,s);const a=i.getMeta(s);if(a?.type===A.Element&&a?.tagName.toUpperCase()==="HTML"){const{documentElement:c,head:l}=r.contentDocument;this.insertStyleRules(c,l)}},cache:this.cache});for(const{mutationInQueue:s,builtNode:a}of n)this.attachDocumentToIframe(s,a),this.newDocumentQueue=this.newDocumentQueue.filter(c=>c!==s)}collectIframeAndAttachDocument(t,r){if(Ne(r,this.mirror)){const i=this.newDocumentQueue.find(n=>n.parentId===this.mirror.getId(r));i&&t.push({mutationInQueue:i,builtNode:r})}}waitForStylesheetLoad(){var t;const r=(t=this.iframe.contentDocument)==null?void 0:t.head;if(r){const i=new Set;let n,s=this.service.state;const a=()=>{s=this.service.state};this.emitter.on(D.Start,a),this.emitter.on(D.Pause,a);const c=()=>{this.emitter.off(D.Start,a),this.emitter.off(D.Pause,a)};r.querySelectorAll('link[rel="stylesheet"]').forEach(l=>{l.sheet||(i.add(l),l.addEventListener("load",()=>{i.delete(l),i.size===0&&n!==-1&&(s.matches("playing")&&this.play(this.getCurrentTime()),this.emitter.emit(D.LoadStylesheetEnd),n&&clearTimeout(n),c())}))}),i.size>0&&(this.service.send({type:"PAUSE"}),this.emitter.emit(D.LoadStylesheetStart),n=setTimeout(()=>{s.matches("playing")&&this.play(this.getCurrentTime()),n=-1,c()},this.config.loadTimeout))}}hasImageArg(t){for(const r of t)if(!(!r||typeof r!="object")){if("rr_type"in r&&"args"in r){if(this.hasImageArg(r.args))return!0}else if("rr_type"in r&&r.rr_type==="HTMLImageElement"||r instanceof Array&&this.hasImageArg(r))return!0}return!1}getImageArgs(t){const r=[];for(const i of t)!i||typeof i!="object"||("rr_type"in i&&"args"in i?r.push(...this.getImageArgs(i.args)):"rr_type"in i&&i.rr_type==="HTMLImageElement"?r.push(i.src):i instanceof Array&&r.push(...this.getImageArgs(i)));return r}preloadAllImages(){return we(this,null,function*(){this.service.state;const t=()=>{this.service.state};this.emitter.on(D.Start,t),this.emitter.on(D.Pause,t);const r=[];for(const i of this.service.state.context.events)i.type===M.IncrementalSnapshot&&i.data.source===S.CanvasMutation&&(r.push(this.deserializeAndPreloadCanvasEvents(i.data,i)),("commands"in i.data?i.data.commands:[i.data]).forEach(n=>{this.preloadImages(n,i)}));return Promise.all(r)})}preloadImages(t,r){if(t.property==="drawImage"&&typeof t.args[0]=="string"&&!this.imageMap.has(r)){const i=document.createElement("canvas"),n=i.getContext("2d"),s=n?.createImageData(i.width,i.height);s?.data,JSON.parse(t.args[0]),n?.putImageData(s,0,0)}}deserializeAndPreloadCanvasEvents(t,r){return we(this,null,function*(){if(!this.canvasEventMap.has(r)){const i={isUnchanged:!0};if("commands"in t){const n=yield Promise.all(t.commands.map(s=>we(this,null,function*(){const a=yield Promise.all(s.args.map(W(this.imageMap,null,i)));return Ee(Q({},s),{args:a})})));i.isUnchanged===!1&&this.canvasEventMap.set(r,Ee(Q({},t),{commands:n}))}else{const n=yield Promise.all(t.args.map(W(this.imageMap,null,i)));i.isUnchanged===!1&&this.canvasEventMap.set(r,Ee(Q({},t),{args:n}))}}})}applyIncremental(t,r){var i,n,s,a,c,l;const{data:o}=t;switch(o.source){case S.Mutation:{try{this.applyMutation(o,r)}catch(u){this.warn(`Exception in mutation ${u.message||u}`,o)}break}case S.Drag:case S.TouchMove:case S.MouseMove:if(r){const u=o.positions[o.positions.length-1];this.mousePos={x:u.x,y:u.y,id:u.id,debugData:o}}else o.positions.forEach(u=>{const d={doAction:()=>{this.moveAndHover(u.x,u.y,u.id,r,o)},delay:u.timeOffset+t.timestamp-this.service.state.context.baselineTime};this.timer.addAction(d)}),this.timer.addAction({doAction(){},delay:t.delay-((i=o.positions[0])==null?void 0:i.timeOffset)});break;case S.MouseInteraction:{if(o.id===-1||r)break;const u=new Event(k[o.type].toLowerCase()),d=this.mirror.getNode(o.id);if(!d)return this.debugNodeNotFound(o,o.id);this.emitter.emit(D.MouseInteraction,{type:o.type,target:d});const{triggerFocus:h}=this.config;switch(o.type){case k.Blur:"blur"in d&&d.blur();break;case k.Focus:h&&d.focus&&d.focus({preventScroll:!0});break;case k.Click:case k.TouchStart:case k.TouchEnd:r?(o.type===k.TouchStart?this.touchActive=!0:o.type===k.TouchEnd&&(this.touchActive=!1),this.mousePos={x:o.x,y:o.y,id:o.id,debugData:o}):(o.type===k.TouchStart&&(this.tailPositions.length=0),this.moveAndHover(o.x,o.y,o.id,r,o),o.type===k.Click?(this.mouse.classList.remove("active"),this.mouse.offsetWidth,this.mouse.classList.add("active")):o.type===k.TouchStart?(this.mouse.offsetWidth,this.mouse.classList.add("touch-active")):o.type===k.TouchEnd&&this.mouse.classList.remove("touch-active"));break;case k.TouchCancel:r?this.touchActive=!1:this.mouse.classList.remove("touch-active");break;default:d.dispatchEvent(u)}break}case S.Scroll:{if(o.id===-1)break;if(this.usingVirtualDom){const u=this.virtualDom.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);u.scrollData=o;break}this.applyScroll(o,r);break}case S.ViewportResize:this.emitter.emit(D.Resize,{width:o.width,height:o.height});break;case S.Input:{if(o.id===-1)break;if(this.usingVirtualDom){const u=this.virtualDom.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);u.inputData=o;break}this.applyInput(o);break}case S.MediaInteraction:{const u=this.usingVirtualDom?this.virtualDom.mirror.getNode(o.id):this.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);const d=u;try{o.currentTime&&(d.currentTime=o.currentTime),o.volume&&(d.volume=o.volume),o.muted&&(d.muted=o.muted),o.type===ye.Pause&&d.pause(),o.type===ye.Play&&d.play()}catch(h){this.config.showWarning&&console.warn(`Failed to replay media interactions: ${h.message||h}`)}break}case S.StyleSheetRule:{if(this.usingVirtualDom){const u=this.virtualDom.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);const d=u.rules;(n=o.adds)==null||n.forEach(({rule:h,index:f})=>d?.push({cssText:h,index:f,type:U.Insert})),(s=o.removes)==null||s.forEach(({index:h})=>d?.push({index:h,type:U.Remove}))}else{const u=this.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);const d=u.sheet;(a=o.adds)==null||a.forEach(({rule:h,index:f})=>{try{if(Array.isArray(f)){const{positions:T,index:y}=st(f);K(d.cssRules,T).insertRule(h,y)}else{const T=f===void 0?void 0:Math.min(f,d.cssRules.length);d.insertRule(h,T)}}catch{}}),(c=o.removes)==null||c.forEach(({index:h})=>{try{if(Array.isArray(h)){const{positions:f,index:T}=st(h);K(d.cssRules,f).deleteRule(T||0)}else d?.deleteRule(h)}catch{}})}break}case S.StyleDeclaration:{if(this.usingVirtualDom){const u=this.virtualDom.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);const d=u.rules;o.set&&d.push(Q({type:U.SetProperty,index:o.index},o.set)),o.remove&&d.push(Q({type:U.RemoveProperty,index:o.index},o.remove))}else{const u=this.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);const d=u.sheet;o.set&&K(d.rules,o.index).style.setProperty(o.set.property,o.set.value,o.set.priority),o.remove&&K(d.rules,o.index).style.removeProperty(o.remove.property)}break}case S.CanvasMutation:{if(!this.config.UNSAFE_replayCanvas)return;if(this.usingVirtualDom){const u=this.virtualDom.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);u.canvasMutations.push({event:t,mutation:o})}else{const u=this.mirror.getNode(o.id);if(!u)return this.debugNodeNotFound(o,o.id);ut({event:t,mutation:o,target:u,imageMap:this.imageMap,canvasEventMap:this.canvasEventMap,errorHandler:this.warnCanvasMutationFailed.bind(this)})}break}case S.Font:{try{const u=new FontFace(o.family,o.buffer?new Uint8Array(JSON.parse(o.fontSource)):o.fontSource,o.descriptors);(l=this.iframe.contentDocument)==null||l.fonts.add(u)}catch(u){this.config.showWarning&&console.warn(u)}break}}}applyMutation(t,r){if(this.config.useVirtualDom&&!this.usingVirtualDom&&r&&(this.usingVirtualDom=!0,Qt(this.iframe.contentDocument,this.mirror,this.virtualDom),Object.keys(this.legacy_missingNodeRetryMap).length))for(const o in this.legacy_missingNodeRetryMap)try{const u=this.legacy_missingNodeRetryMap[o],d=We(u.node,this.virtualDom,this.mirror);d&&(u.node=d)}catch(u){this.config.showWarning&&console.warn(u)}const i=this.usingVirtualDom?this.virtualDom.mirror:this.mirror;t.removes.forEach(o=>{var u;const d=i.getNode(o.id);if(!d)return t.removes.find(f=>f.id===o.parentId)?void 0:this.warnNodeNotFound(t,o.id);let h=i.getNode(o.parentId);if(!h)return this.warnNodeNotFound(t,o.parentId);if(o.isShadow&&ot(h)&&(h=h.shadowRoot),i.removeNodeFromMap(d),h)try{h.removeChild(d),this.usingVirtualDom&&d.nodeName==="#text"&&h.nodeName==="STYLE"&&((u=h.rules)==null?void 0:u.length)>0&&(h.rules=[])}catch(f){if(f instanceof DOMException)this.warn("parent could not remove child in mutation",h,d,t);else throw f}});const n=Q({},this.legacy_missingNodeRetryMap),s=[],a=o=>{let u=null;return o.nextId&&(u=i.getNode(o.nextId)),o.nextId!==null&&o.nextId!==void 0&&o.nextId!==-1&&!u},c=o=>{var u;if(!this.iframe.contentDocument)return console.warn("Looks like your replayer has been destroyed.");let d=i.getNode(o.parentId);if(!d)return o.node.type===A.Document?this.newDocumentQueue.push(o):s.push(o);o.node.isShadow&&(ot(d)||d.attachShadow({mode:"open"}),d=d.shadowRoot);let h=null,f=null;if(o.previousId&&(h=i.getNode(o.previousId)),o.nextId&&(f=i.getNode(o.nextId)),a(o))return s.push(o);if(o.node.rootId&&!i.getNode(o.node.rootId))return;const T=o.node.rootId?i.getNode(o.node.rootId):this.usingVirtualDom?this.virtualDom:this.iframe.contentDocument;if(Ne(d,i)){this.attachDocumentToIframe(o,d);return}const y=ne(o.node,{doc:T,mirror:i,skipChild:!0,hackCss:!0,cache:this.cache});if(o.previousId===-1||o.nextId===-1){n[o.node.id]={node:y,mutation:o};return}const w=i.getMeta(d);if(w&&w.type===A.Element&&w.tagName==="textarea"&&o.node.type===A.Text){const m=Array.isArray(d.childNodes)?d.childNodes:Array.from(d.childNodes);for(const v of m)v.nodeType===d.TEXT_NODE&&d.removeChild(v)}if(h&&h.nextSibling&&h.nextSibling.parentNode)d.insertBefore(y,h.nextSibling);else if(f&&f.parentNode)d.contains(f)?d.insertBefore(y,f):d.insertBefore(y,null);else{if(d===T)for(;T.firstChild;)T.removeChild(T.firstChild);d.appendChild(y)}if(this.usingVirtualDom&&y.nodeName==="#text"&&d.nodeName==="STYLE"&&((u=d.rules)==null?void 0:u.length)>0&&(d.rules=[]),Ne(y,this.mirror)){const m=this.mirror.getId(y),v=this.newDocumentQueue.find(E=>E.parentId===m);v&&(this.attachDocumentToIframe(v,y),this.newDocumentQueue=this.newDocumentQueue.filter(E=>E!==v))}(o.previousId||o.nextId)&&this.legacy_resolveMissingNode(n,d,y,o)};t.adds.forEach(o=>{c(o)});const l=Date.now();for(;s.length;){const o=ur(s);if(s.length=0,Date.now()-l>500){this.warn("Timeout in the loop, please check the resolve tree data:",o);break}for(const u of o)i.getNode(u.value.parentId)?it(u,d=>{c(d)}):this.debug("Drop resolve tree since there is no parent for the root node.",u)}Object.keys(n).length&&Object.assign(this.legacy_missingNodeRetryMap,n),dr(t.texts).forEach(o=>{var u;const d=i.getNode(o.id);if(!d)return t.removes.find(h=>h.id===o.id)?void 0:this.warnNodeNotFound(t,o.id);if(d.textContent=o.value,this.usingVirtualDom){const h=d.parentNode;((u=h?.rules)==null?void 0:u.length)>0&&(h.rules=[])}}),t.attributes.forEach(o=>{const u=i.getNode(o.id);if(!u)return t.removes.find(d=>d.id===o.id)?void 0:this.warnNodeNotFound(t,o.id);for(const d in o.attributes)if(typeof d=="string"){const h=o.attributes[d];if(h===null)u.removeAttribute(d);else if(typeof h=="string")try{u.setAttribute(d,h)}catch(f){this.config.showWarning&&console.warn("An error occurred may due to the checkout feature.",f)}else if(d==="style"){const f=h,T=u;for(const y in f)if(f[y]===!1)T.style.removeProperty(y);else if(f[y]instanceof Array){const w=f[y];T.style.setProperty(y,w[0],w[1])}else{const w=f[y];T.style.setProperty(y,w)}}}})}applyScroll(t,r){const i=this.mirror.getNode(t.id);if(!i)return this.debugNodeNotFound(t,t.id);const n=this.mirror.getMeta(i);if(i===this.iframe.contentDocument)this.iframe.contentWindow.scrollTo({top:t.y,left:t.x,behavior:r?"auto":"smooth"});else if(n?.type===A.Document)i.defaultView.scrollTo({top:t.y,left:t.x,behavior:r?"auto":"smooth"});else try{i.scrollTop=t.y,i.scrollLeft=t.x}catch{}}applyInput(t){const r=this.mirror.getNode(t.id);if(!r)return this.debugNodeNotFound(t,t.id);try{r.checked=t.isChecked,r.value=t.text}catch{}}legacy_resolveMissingNode(t,r,i,n){const{previousId:s,nextId:a}=n,c=s&&t[s],l=a&&t[a];if(c){const{node:o,mutation:u}=c;r.insertBefore(o,i),delete t[u.node.id],delete this.legacy_missingNodeRetryMap[u.node.id],(u.previousId||u.nextId)&&this.legacy_resolveMissingNode(t,r,o,u)}if(l){const{node:o,mutation:u}=l;r.insertBefore(o,i.nextSibling),delete t[u.node.id],delete this.legacy_missingNodeRetryMap[u.node.id],(u.previousId||u.nextId)&&this.legacy_resolveMissingNode(t,r,o,u)}}moveAndHover(t,r,i,n,s){const a=this.mirror.getNode(i);if(!a)return this.debugNodeNotFound(s,i);const c=nt(a,this.iframe),l=t*c.absoluteScale+c.x,o=r*c.absoluteScale+c.y;this.mouse.style.left=`${l}px`,this.mouse.style.top=`${o}px`,n||this.drawMouseTail({x:l,y:o}),this.hoverElements(a)}drawMouseTail(t){if(!this.mouseTail)return;const{lineCap:r,lineWidth:i,strokeStyle:n,duration:s}=this.config.mouseTail===!0?De:Object.assign({},De,this.config.mouseTail),a=()=>{if(!this.mouseTail)return;const c=this.mouseTail.getContext("2d");!c||!this.tailPositions.length||(c.clearRect(0,0,this.mouseTail.width,this.mouseTail.height),c.beginPath(),c.lineWidth=i,c.lineCap=r,c.strokeStyle=n,c.moveTo(this.tailPositions[0].x,this.tailPositions[0].y),this.tailPositions.forEach(l=>c.lineTo(l.x,l.y)),c.stroke())};this.tailPositions.push(t),a(),setTimeout(()=>{this.tailPositions=this.tailPositions.filter(c=>c!==t),a()},s/this.speedService.state.context.timer.speed)}hoverElements(t){var r;(r=this.iframe.contentDocument)==null||r.querySelectorAll(".\\:hover").forEach(n=>{n.classList.remove(":hover")});let i=t;for(;i;)i.classList&&i.classList.add(":hover"),i=i.parentElement}isUserInteraction(t){return t.type!==M.IncrementalSnapshot?!1:t.data.source>S.Mutation&&t.data.source<=S.Input}backToNormal(){this.nextUserInteractionEvent=null,!this.speedService.state.matches("normal")&&(this.speedService.send({type:"BACK_TO_NORMAL"}),this.emitter.emit(D.SkipEnd,{speed:this.speedService.state.context.normalSpeed}))}warnNodeNotFound(t,r){this.warn(`Node with id '${r}' not found. `,t)}warnCanvasMutationFailed(t,r){this.warn("Has error on canvas update",r,"canvas mutation:",t)}debugNodeNotFound(t,r){this.debug(be,`Node with id '${r}' not found. `,t)}warn(...t){!this.config.showWarning||console.warn(be,...t)}debug(...t){!this.config.showDebug||console.log(be,...t)}}return he.Replayer=Rr,Object.defineProperty(he,"__esModule",{value:!0}),he}({});
|
|
18
18
|
//# sourceMappingURL=rrweb-replay.min.js.map
|