jat-feedback 3.4.2 → 3.4.3
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/jat-feedback.js +2 -2
- package/dist/jat-feedback.mjs +8 -10
- package/package.json +1 -1
package/dist/jat-feedback.js
CHANGED
|
@@ -42,7 +42,7 @@ var _o=Object.defineProperty;var oo=Qe=>{throw TypeError(Qe)};var bo=(Qe,et,ct)=
|
|
|
42
42
|
`)} {
|
|
43
43
|
${W}
|
|
44
44
|
}
|
|
45
|
-
`}),b.appendChild(g.createTextNode(O))}m.timeEnd("clone node"),await(S==null?void 0:S(M)),x!==!1&&isElementNode(M)&&(m.time("embed web font"),await embedWebFont(M,h),m.timeEnd("embed web font")),m.time("embed node"),embedNode(M,h);const R=_.length;let C=0;const $=async()=>{for(;;){const O=_.pop();if(!O)break;try{await O}catch(F){h.log.warn("Failed to run task",F)}E==null||E(++C,R)}};E==null||E(C,R),await Promise.all([...Array.from({length:4})].map($)),m.timeEnd("embed node"),await(I==null?void 0:I(M));const N=createForeignObjectSvg(M,h);return y&&N.insertBefore(y,N.children[0]),b&&N.insertBefore(b,N.children[0]),k&&destroyContext(h),await(A==null?void 0:A(N)),N}function createForeignObjectSvg(d,p){const{width:h,height:g}=p,m=createSvg(h,g,d.ownerDocument),_=m.ownerDocument.createElementNS(m.namespaceURI,"foreignObject");return _.setAttributeNS(null,"x","0%"),_.setAttributeNS(null,"y","0%"),_.setAttributeNS(null,"width","100%"),_.setAttributeNS(null,"height","100%"),_.append(d),m.appendChild(_),m}async function domToCanvas(d,p){var b;const h=await orCreateContext(d,p),g=await domToForeignObjectSvg(h),m=svgToDataUrl(g,h.isEnable("removeControlCharacter"));h.autoDestruct||(h.svgStyleElement=createStyleElement(h.ownerDocument),h.svgDefsElement=(b=h.ownerDocument)==null?void 0:b.createElementNS(XMLNS,"defs"),h.svgStyles.clear());const _=createImage(m,g.ownerDocument);return await imageToCanvas(_,h)}const PLACEHOLDER="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";function canvasHasContent(d){const p=d.getContext("2d");if(!p)return!1;const{width:h,height:g}=d;if(h===0||g===0)return!1;const m=p.getImageData(0,0,h,g).data,_=h*g,b=Math.min(50,_),y=Math.max(1,Math.floor(_/b));for(let w=0;w<_;w+=y){const x=w*4;if(m[x+3]>10){const k=m[x],S=m[x+1],I=m[x+2];if(k>5||S>5||I>5)return!0}}return!1}function isFragmentUrl(d){if(typeof d=="string"&&d.startsWith("#"))return!0;try{const p=new URL(d,window.location.href);return!!(p.origin===window.location.origin&&p.hash||decodeURIComponent(p.pathname).startsWith("/#"))}catch{return!0}}function withFetchIntercept(d){const p=window.fetch;return window.fetch=function(h,g){const m=typeof h=="string"?h:h instanceof URL?h.toString():h.url;return isFragmentUrl(m)?Promise.resolve(new Response("",{status:200})):p.call(window,h,g)},d().finally(()=>{window.fetch=p})}const sharedOptions={fetch:{placeholderImage:PLACEHOLDER},features:{restoreScrollPosition:!0},filter:d=>{var p;return!(d instanceof HTMLElement&&(d.tagName==="JAT-FEEDBACK"||(p=d.id)!=null&&p.startsWith("jat-feedback-")))}};async function captureViewport(){return withFetchIntercept(async()=>{const d=await domToCanvas(document.documentElement,{...sharedOptions,width:window.innerWidth,height:window.innerHeight,style:{transform:`translate(-${window.scrollX}px, -${window.scrollY}px)`}});if(!canvasHasContent(d)){const p=await domToCanvas(document.body,{...sharedOptions,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(p))throw new Error("Screenshot produced a blank image");return p.toDataURL("image/jpeg",.8)}return d.toDataURL("image/jpeg",.8)})}async function captureViewportQuick(){return withFetchIntercept(async()=>{const d=await domToCanvas(document.documentElement,{...sharedOptions,scale:.5,width:window.innerWidth,height:window.innerHeight,style:{transform:`translate(-${window.scrollX}px, -${window.scrollY}px)`}});if(!canvasHasContent(d)){const p=await domToCanvas(document.body,{...sharedOptions,scale:.5,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(p))throw new Error("Screenshot produced a blank image");return p.toDataURL("image/jpeg",.6)}return d.toDataURL("image/jpeg",.6)})}var NodeType$2;(function(d){d[d.Document=0]="Document",d[d.DocumentType=1]="DocumentType",d[d.Element=2]="Element",d[d.Text=3]="Text",d[d.CDATA=4]="CDATA",d[d.Comment=5]="Comment"})(NodeType$2||(NodeType$2={}));function isElement(d){return d.nodeType===d.ELEMENT_NODE}function isShadowRoot(d){var p=d==null?void 0:d.host;return(p==null?void 0:p.shadowRoot)===d}function isNativeShadowDom(d){return Object.prototype.toString.call(d)==="[object ShadowRoot]"}function fixBrowserCompatibilityIssuesInCSS(d){return d.includes(" background-clip: text;")&&!d.includes(" -webkit-background-clip: text;")&&(d=d.replace(" background-clip: text;"," -webkit-background-clip: text; background-clip: text;")),d}function getCssRulesString(d){try{var p=d.rules||d.cssRules;return p?fixBrowserCompatibilityIssuesInCSS(Array.from(p).map(getCssRuleString).join("")):null}catch{return null}}function getCssRuleString(d){var p=d.cssText;if(isCSSImportRule(d))try{p=getCssRulesString(d.styleSheet)||p}catch{}return p}function isCSSImportRule(d){return"styleSheet"in d}var Mirror$2=(function(){function d(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}return d.prototype.getId=function(p){var h;if(!p)return-1;var g=(h=this.getMeta(p))===null||h===void 0?void 0:h.id;return g??-1},d.prototype.getNode=function(p){return this.idNodeMap.get(p)||null},d.prototype.getIds=function(){return Array.from(this.idNodeMap.keys())},d.prototype.getMeta=function(p){return this.nodeMetaMap.get(p)||null},d.prototype.removeNodeFromMap=function(p){var h=this,g=this.getId(p);this.idNodeMap.delete(g),p.childNodes&&p.childNodes.forEach(function(m){return h.removeNodeFromMap(m)})},d.prototype.has=function(p){return this.idNodeMap.has(p)},d.prototype.hasNode=function(p){return this.nodeMetaMap.has(p)},d.prototype.add=function(p,h){var g=h.id;this.idNodeMap.set(g,p),this.nodeMetaMap.set(p,h)},d.prototype.replace=function(p,h){var g=this.getNode(p);if(g){var m=this.nodeMetaMap.get(g);m&&this.nodeMetaMap.set(h,m)}this.idNodeMap.set(p,h)},d.prototype.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},d})();function createMirror$2(){return new Mirror$2}function maskInputValue(d){var p=d.maskInputOptions,h=d.tagName,g=d.type,m=d.value,_=d.maskInputFn,b=m||"";return(p[h.toLowerCase()]||p[g])&&(_?b=_(b):b="*".repeat(b.length)),b}var ORIGINAL_ATTRIBUTE_NAME="__rrweb_original__";function is2DCanvasBlank(d){var p=d.getContext("2d");if(!p)return!0;for(var h=50,g=0;g<d.width;g+=h)for(var m=0;m<d.height;m+=h){var _=p.getImageData,b=ORIGINAL_ATTRIBUTE_NAME in _?_[ORIGINAL_ATTRIBUTE_NAME]:_,y=new Uint32Array(b.call(p,g,m,Math.min(h,d.width-g),Math.min(h,d.height-m)).data.buffer);if(y.some(function(w){return w!==0}))return!1}return!0}var _id=1,tagNameRegex=new RegExp("[^a-z0-9-_:]"),IGNORED_NODE=-2;function genId(){return _id++}function getValidTagName$1(d){if(d instanceof HTMLFormElement)return"form";var p=d.tagName.toLowerCase().trim();return tagNameRegex.test(p)?"div":p}function stringifyStyleSheet(d){return d.cssRules?Array.from(d.cssRules).map(function(p){return p.cssText||""}).join(""):""}function extractOrigin(d){var p="";return d.indexOf("//")>-1?p=d.split("/").slice(0,3).join("/"):p=d.split("/")[0],p=p.split("?")[0],p}var canvasService,canvasCtx,URL_IN_CSS_REF=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,RELATIVE_PATH=/^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\\|\/\/|#).*/,DATA_URI=/^(data:)([^,]*),(.*)/i;function absoluteToStylesheet(d,p){return(d||"").replace(URL_IN_CSS_REF,function(h,g,m,_,b,y){var w=m||b||y,x=g||_||"";if(!w)return h;if(!RELATIVE_PATH.test(w)||DATA_URI.test(w))return"url(".concat(x).concat(w).concat(x,")");if(w[0]==="/")return"url(".concat(x).concat(extractOrigin(p)+w).concat(x,")");var E=p.split("/"),k=w.split("/");E.pop();for(var S=0,I=k;S<I.length;S++){var A=I[S];A!=="."&&(A===".."?E.pop():E.push(A))}return"url(".concat(x).concat(E.join("/")).concat(x,")")})}var SRCSET_NOT_SPACES=/^[^ \t\n\r\u000c]+/,SRCSET_COMMAS_OR_SPACES=/^[, \t\n\r\u000c]+/;function getAbsoluteSrcsetString(d,p){if(p.trim()==="")return p;var h=0;function g(x){var E,k=x.exec(p.substring(h));return k?(E=k[0],h+=E.length,E):""}for(var m=[];g(SRCSET_COMMAS_OR_SPACES),!(h>=p.length);){var _=g(SRCSET_NOT_SPACES);if(_.slice(-1)===",")_=absoluteToDoc(d,_.substring(0,_.length-1)),m.push(_);else{var b="";_=absoluteToDoc(d,_);for(var y=!1;;){var w=p.charAt(h);if(w===""){m.push((_+b).trim());break}else if(y)w===")"&&(y=!1);else if(w===","){h+=1,m.push((_+b).trim());break}else w==="("&&(y=!0);b+=w,h+=1}}}return m.join(", ")}function absoluteToDoc(d,p){if(!p||p.trim()==="")return p;var h=d.createElement("a");return h.href=p,h.href}function isSVGElement(d){return!!(d.tagName==="svg"||d.ownerSVGElement)}function getHref(){var d=document.createElement("a");return d.href="",d.href}function transformAttribute(d,p,h,g){return h==="src"||h==="href"&&g&&!(p==="use"&&g[0]==="#")||h==="xlink:href"&&g&&g[0]!=="#"||h==="background"&&g&&(p==="table"||p==="td"||p==="th")?absoluteToDoc(d,g):h==="srcset"&&g?getAbsoluteSrcsetString(d,g):h==="style"&&g?absoluteToStylesheet(g,getHref()):p==="object"&&h==="data"&&g?absoluteToDoc(d,g):g}function _isBlockedElement(d,p,h){if(typeof p=="string"){if(d.classList.contains(p))return!0}else for(var g=d.classList.length;g--;){var m=d.classList[g];if(p.test(m))return!0}return h?d.matches(h):!1}function classMatchesRegex(d,p,h){if(!d)return!1;if(d.nodeType!==d.ELEMENT_NODE)return h?classMatchesRegex(d.parentNode,p,h):!1;for(var g=d.classList.length;g--;){var m=d.classList[g];if(p.test(m))return!0}return h?classMatchesRegex(d.parentNode,p,h):!1}function needMaskingText(d,p,h){var g=d.nodeType===d.ELEMENT_NODE?d:d.parentElement;if(g===null)return!1;if(typeof p=="string"){if(g.classList.contains(p)||g.closest(".".concat(p)))return!0}else if(classMatchesRegex(g,p,!0))return!0;return!!(h&&(g.matches(h)||g.closest(h)))}function onceIframeLoaded(d,p,h){var g=d.contentWindow;if(g){var m=!1,_;try{_=g.document.readyState}catch{return}if(_!=="complete"){var b=setTimeout(function(){m||(p(),m=!0)},h);d.addEventListener("load",function(){clearTimeout(b),m=!0,p()});return}var y="about:blank";if(g.location.href!==y||d.src===y||d.src==="")return setTimeout(p,0),d.addEventListener("load",p);d.addEventListener("load",p)}}function onceStylesheetLoaded(d,p,h){var g=!1,m;try{m=d.sheet}catch{return}if(!m){var _=setTimeout(function(){g||(p(),g=!0)},h);d.addEventListener("load",function(){clearTimeout(_),g=!0,p()})}}function serializeNode(d,p){var h=p.doc,g=p.mirror,m=p.blockClass,_=p.blockSelector,b=p.maskTextClass,y=p.maskTextSelector,w=p.inlineStylesheet,x=p.maskInputOptions,E=x===void 0?{}:x,k=p.maskTextFn,S=p.maskInputFn,I=p.dataURLOptions,A=I===void 0?{}:I,M=p.inlineImages,R=p.recordCanvas,C=p.keepIframeSrcFn,$=p.newlyAddedElement,N=$===void 0?!1:$,O=getRootId(h,g);switch(d.nodeType){case d.DOCUMENT_NODE:return d.compatMode!=="CSS1Compat"?{type:NodeType$2.Document,childNodes:[],compatMode:d.compatMode}:{type:NodeType$2.Document,childNodes:[]};case d.DOCUMENT_TYPE_NODE:return{type:NodeType$2.DocumentType,name:d.name,publicId:d.publicId,systemId:d.systemId,rootId:O};case d.ELEMENT_NODE:return serializeElementNode(d,{doc:h,blockClass:m,blockSelector:_,inlineStylesheet:w,maskInputOptions:E,maskInputFn:S,dataURLOptions:A,inlineImages:M,recordCanvas:R,keepIframeSrcFn:C,newlyAddedElement:N,rootId:O});case d.TEXT_NODE:return serializeTextNode(d,{maskTextClass:b,maskTextSelector:y,maskTextFn:k,rootId:O});case d.CDATA_SECTION_NODE:return{type:NodeType$2.CDATA,textContent:"",rootId:O};case d.COMMENT_NODE:return{type:NodeType$2.Comment,textContent:d.textContent||"",rootId:O};default:return!1}}function getRootId(d,p){if(p.hasNode(d)){var h=p.getId(d);return h===1?void 0:h}}function serializeTextNode(d,p){var h,g=p.maskTextClass,m=p.maskTextSelector,_=p.maskTextFn,b=p.rootId,y=d.parentNode&&d.parentNode.tagName,w=d.textContent,x=y==="STYLE"?!0:void 0,E=y==="SCRIPT"?!0:void 0;if(x&&w){try{d.nextSibling||d.previousSibling||!((h=d.parentNode.sheet)===null||h===void 0)&&h.cssRules&&(w=stringifyStyleSheet(d.parentNode.sheet))}catch(k){console.warn("Cannot get CSS styles from text's parentNode. Error: ".concat(k),d)}w=absoluteToStylesheet(w,getHref())}return E&&(w="SCRIPT_PLACEHOLDER"),!x&&!E&&w&&needMaskingText(d,g,m)&&(w=_?_(w):w.replace(/[\S]/g,"*")),{type:NodeType$2.Text,textContent:w||"",isStyle:x,rootId:b}}function serializeElementNode(d,p){for(var h=p.doc,g=p.blockClass,m=p.blockSelector,_=p.inlineStylesheet,b=p.maskInputOptions,y=b===void 0?{}:b,w=p.maskInputFn,x=p.dataURLOptions,E=x===void 0?{}:x,k=p.inlineImages,S=p.recordCanvas,I=p.keepIframeSrcFn,A=p.newlyAddedElement,M=A===void 0?!1:A,R=p.rootId,C=_isBlockedElement(d,g,m),$=getValidTagName$1(d),N={},O=d.attributes.length,F=0;F<O;F++){var W=d.attributes[F];N[W.name]=transformAttribute(h,$,W.name,W.value)}if($==="link"&&_){var V=Array.from(h.styleSheets).find(function(z){return z.href===d.href}),q=null;V&&(q=getCssRulesString(V)),q&&(delete N.rel,delete N.href,N._cssText=absoluteToStylesheet(q,V.href))}if($==="style"&&d.sheet&&!(d.innerText||d.textContent||"").trim().length){var q=getCssRulesString(d.sheet);q&&(N._cssText=absoluteToStylesheet(q,getHref()))}if($==="input"||$==="textarea"||$==="select"){var pe=d.value,te=d.checked;N.type!=="radio"&&N.type!=="checkbox"&&N.type!=="submit"&&N.type!=="button"&&pe?N.value=maskInputValue({type:N.type,tagName:$,value:pe,maskInputOptions:y,maskInputFn:w}):te&&(N.checked=te)}if($==="option"&&(d.selected&&!y.select?N.selected=!0:delete N.selected),$==="canvas"&&S){if(d.__context==="2d")is2DCanvasBlank(d)||(N.rr_dataURL=d.toDataURL(E.type,E.quality));else if(!("__context"in d)){var ae=d.toDataURL(E.type,E.quality),ie=document.createElement("canvas");ie.width=d.width,ie.height=d.height;var ke=ie.toDataURL(E.type,E.quality);ae!==ke&&(N.rr_dataURL=ae)}}if($==="img"&&k){canvasService||(canvasService=h.createElement("canvas"),canvasCtx=canvasService.getContext("2d"));var ce=d,Se=ce.crossOrigin;ce.crossOrigin="anonymous";var we=function(){try{canvasService.width=ce.naturalWidth,canvasService.height=ce.naturalHeight,canvasCtx.drawImage(ce,0,0),N.rr_dataURL=canvasService.toDataURL(E.type,E.quality)}catch(z){console.warn("Cannot inline img src=".concat(ce.currentSrc,"! Error: ").concat(z))}Se?N.crossOrigin=Se:ce.removeAttribute("crossorigin")};ce.complete&&ce.naturalWidth!==0?we():ce.onload=we}if(($==="audio"||$==="video")&&(N.rr_mediaState=d.paused?"paused":"played",N.rr_mediaCurrentTime=d.currentTime),M||(d.scrollLeft&&(N.rr_scrollLeft=d.scrollLeft),d.scrollTop&&(N.rr_scrollTop=d.scrollTop)),C){var oe=d.getBoundingClientRect(),ve=oe.width,T=oe.height;N={class:N.class,rr_width:"".concat(ve,"px"),rr_height:"".concat(T,"px")}}return $==="iframe"&&!I(N.src)&&(d.contentDocument||(N.rr_src=N.src),delete N.src),{type:NodeType$2.Element,tagName:$,attributes:N,childNodes:[],isSVG:isSVGElement(d)||void 0,needBlock:C,rootId:R}}function lowerIfExists(d){return d===void 0?"":d.toLowerCase()}function slimDOMExcluded(d,p){if(p.comment&&d.type===NodeType$2.Comment)return!0;if(d.type===NodeType$2.Element){if(p.script&&(d.tagName==="script"||d.tagName==="link"&&d.attributes.rel==="preload"&&d.attributes.as==="script"||d.tagName==="link"&&d.attributes.rel==="prefetch"&&typeof d.attributes.href=="string"&&d.attributes.href.endsWith(".js")))return!0;if(p.headFavicon&&(d.tagName==="link"&&d.attributes.rel==="shortcut icon"||d.tagName==="meta"&&(lowerIfExists(d.attributes.name).match(/^msapplication-tile(image|color)$/)||lowerIfExists(d.attributes.name)==="application-name"||lowerIfExists(d.attributes.rel)==="icon"||lowerIfExists(d.attributes.rel)==="apple-touch-icon"||lowerIfExists(d.attributes.rel)==="shortcut icon")))return!0;if(d.tagName==="meta"){if(p.headMetaDescKeywords&&lowerIfExists(d.attributes.name).match(/^description|keywords$/))return!0;if(p.headMetaSocial&&(lowerIfExists(d.attributes.property).match(/^(og|twitter|fb):/)||lowerIfExists(d.attributes.name).match(/^(og|twitter):/)||lowerIfExists(d.attributes.name)==="pinterest"))return!0;if(p.headMetaRobots&&(lowerIfExists(d.attributes.name)==="robots"||lowerIfExists(d.attributes.name)==="googlebot"||lowerIfExists(d.attributes.name)==="bingbot"))return!0;if(p.headMetaHttpEquiv&&d.attributes["http-equiv"]!==void 0)return!0;if(p.headMetaAuthorship&&(lowerIfExists(d.attributes.name)==="author"||lowerIfExists(d.attributes.name)==="generator"||lowerIfExists(d.attributes.name)==="framework"||lowerIfExists(d.attributes.name)==="publisher"||lowerIfExists(d.attributes.name)==="progid"||lowerIfExists(d.attributes.property).match(/^article:/)||lowerIfExists(d.attributes.property).match(/^product:/)))return!0;if(p.headMetaVerification&&(lowerIfExists(d.attributes.name)==="google-site-verification"||lowerIfExists(d.attributes.name)==="yandex-verification"||lowerIfExists(d.attributes.name)==="csrf-token"||lowerIfExists(d.attributes.name)==="p:domain_verify"||lowerIfExists(d.attributes.name)==="verify-v1"||lowerIfExists(d.attributes.name)==="verification"||lowerIfExists(d.attributes.name)==="shopify-checkout-api-token"))return!0}}return!1}function serializeNodeWithId(d,p){var h=p.doc,g=p.mirror,m=p.blockClass,_=p.blockSelector,b=p.maskTextClass,y=p.maskTextSelector,w=p.skipChild,x=w===void 0?!1:w,E=p.inlineStylesheet,k=E===void 0?!0:E,S=p.maskInputOptions,I=S===void 0?{}:S,A=p.maskTextFn,M=p.maskInputFn,R=p.slimDOMOptions,C=p.dataURLOptions,$=C===void 0?{}:C,N=p.inlineImages,O=N===void 0?!1:N,F=p.recordCanvas,W=F===void 0?!1:F,V=p.onSerialize,q=p.onIframeLoad,pe=p.iframeLoadTimeout,te=pe===void 0?5e3:pe,ae=p.onStylesheetLoad,ie=p.stylesheetLoadTimeout,ke=ie===void 0?5e3:ie,ce=p.keepIframeSrcFn,Se=ce===void 0?function(){return!1}:ce,we=p.newlyAddedElement,oe=we===void 0?!1:we,ve=p.preserveWhiteSpace,T=ve===void 0?!0:ve,z=serializeNode(d,{doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,dataURLOptions:$,inlineImages:O,recordCanvas:W,keepIframeSrcFn:Se,newlyAddedElement:oe});if(!z)return console.warn(d,"not serialized"),null;var D;g.hasNode(d)?D=g.getId(d):slimDOMExcluded(z,R)||!T&&z.type===NodeType$2.Text&&!z.isStyle&&!z.textContent.replace(/^\s+|\s+$/gm,"").length?D=IGNORED_NODE:D=genId();var Z=Object.assign(z,{id:D});if(g.add(d,Z),D===IGNORED_NODE)return null;V&&V(d);var G=!x;if(Z.type===NodeType$2.Element){G=G&&!Z.needBlock,delete Z.needBlock;var se=d.shadowRoot;se&&isNativeShadowDom(se)&&(Z.isShadowHost=!0)}if((Z.type===NodeType$2.Document||Z.type===NodeType$2.Element)&&G){R.headWhitespace&&Z.type===NodeType$2.Element&&Z.tagName==="head"&&(T=!1);for(var be={doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:x,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se},B=0,J=Array.from(d.childNodes);B<J.length;B++){var de=J[B],re=serializeNodeWithId(de,be);re&&Z.childNodes.push(re)}if(isElement(d)&&d.shadowRoot)for(var me=0,j=Array.from(d.shadowRoot.childNodes);me<j.length;me++){var de=j[me],re=serializeNodeWithId(de,be);re&&(isNativeShadowDom(d.shadowRoot)&&(re.isShadow=!0),Z.childNodes.push(re))}}return d.parentNode&&isShadowRoot(d.parentNode)&&isNativeShadowDom(d.parentNode)&&(Z.isShadow=!0),Z.type===NodeType$2.Element&&Z.tagName==="iframe"&&onceIframeLoaded(d,function(){var K=d.contentDocument;if(K&&q){var he=serializeNodeWithId(K,{doc:K,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:!1,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se});he&&q(d,he)}},te),Z.type===NodeType$2.Element&&Z.tagName==="link"&&Z.attributes.rel==="stylesheet"&&onceStylesheetLoaded(d,function(){if(ae){var K=serializeNodeWithId(d,{doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:!1,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se});K&&ae(d,K)}},ke),Z}function snapshot(d,p){var h=p||{},g=h.mirror,m=g===void 0?new Mirror$2:g,_=h.blockClass,b=_===void 0?"rr-block":_,y=h.blockSelector,w=y===void 0?null:y,x=h.maskTextClass,E=x===void 0?"rr-mask":x,k=h.maskTextSelector,S=k===void 0?null:k,I=h.inlineStylesheet,A=I===void 0?!0:I,M=h.inlineImages,R=M===void 0?!1:M,C=h.recordCanvas,$=C===void 0?!1:C,N=h.maskAllInputs,O=N===void 0?!1:N,F=h.maskTextFn,W=h.maskInputFn,V=h.slimDOM,q=V===void 0?!1:V,pe=h.dataURLOptions,te=h.preserveWhiteSpace,ae=h.onSerialize,ie=h.onIframeLoad,ke=h.iframeLoadTimeout,ce=h.onStylesheetLoad,Se=h.stylesheetLoadTimeout,we=h.keepIframeSrcFn,oe=we===void 0?function(){return!1}:we,ve=O===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:O===!1?{password:!0}:O,T=q===!0||q==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:q==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:q===!1?{}:q;return serializeNodeWithId(d,{doc:d,mirror:m,blockClass:b,blockSelector:w,maskTextClass:E,maskTextSelector:S,skipChild:!1,inlineStylesheet:A,maskInputOptions:ve,maskTextFn:F,maskInputFn:W,slimDOMOptions:T,dataURLOptions:pe,inlineImages:R,recordCanvas:$,preserveWhiteSpace:te,onSerialize:ae,onIframeLoad:ie,iframeLoadTimeout:ke,onStylesheetLoad:ce,stylesheetLoadTimeout:Se,keepIframeSrcFn:oe,newlyAddedElement:!1})}var commentre=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;function parse$1(d,p){p===void 0&&(p={});var h=1,g=1;function m(T){var z=T.match(/\n/g);z&&(h+=z.length);var D=T.lastIndexOf(`
|
|
45
|
+
`}),b.appendChild(g.createTextNode(O))}m.timeEnd("clone node"),await(S==null?void 0:S(M)),x!==!1&&isElementNode(M)&&(m.time("embed web font"),await embedWebFont(M,h),m.timeEnd("embed web font")),m.time("embed node"),embedNode(M,h);const R=_.length;let C=0;const $=async()=>{for(;;){const O=_.pop();if(!O)break;try{await O}catch(F){h.log.warn("Failed to run task",F)}E==null||E(++C,R)}};E==null||E(C,R),await Promise.all([...Array.from({length:4})].map($)),m.timeEnd("embed node"),await(I==null?void 0:I(M));const N=createForeignObjectSvg(M,h);return y&&N.insertBefore(y,N.children[0]),b&&N.insertBefore(b,N.children[0]),k&&destroyContext(h),await(A==null?void 0:A(N)),N}function createForeignObjectSvg(d,p){const{width:h,height:g}=p,m=createSvg(h,g,d.ownerDocument),_=m.ownerDocument.createElementNS(m.namespaceURI,"foreignObject");return _.setAttributeNS(null,"x","0%"),_.setAttributeNS(null,"y","0%"),_.setAttributeNS(null,"width","100%"),_.setAttributeNS(null,"height","100%"),_.append(d),m.appendChild(_),m}async function domToCanvas(d,p){var b;const h=await orCreateContext(d,p),g=await domToForeignObjectSvg(h),m=svgToDataUrl(g,h.isEnable("removeControlCharacter"));h.autoDestruct||(h.svgStyleElement=createStyleElement(h.ownerDocument),h.svgDefsElement=(b=h.ownerDocument)==null?void 0:b.createElementNS(XMLNS,"defs"),h.svgStyles.clear());const _=createImage(m,g.ownerDocument);return await imageToCanvas(_,h)}const PLACEHOLDER="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";function canvasHasContent(d){const p=d.getContext("2d");if(!p)return!1;const{width:h,height:g}=d;if(h===0||g===0)return!1;const m=p.getImageData(0,0,h,g).data,_=h*g,b=Math.min(50,_),y=Math.max(1,Math.floor(_/b));for(let w=0;w<_;w+=y){const x=w*4;if(m[x+3]>10){const k=m[x],S=m[x+1],I=m[x+2];if(k>5||S>5||I>5)return!0}}return!1}function isFragmentUrl(d){if(typeof d=="string"&&d.startsWith("#"))return!0;try{const p=new URL(d,window.location.href);return!!(p.origin===window.location.origin&&p.hash||decodeURIComponent(p.pathname).startsWith("/#"))}catch{return!0}}function withFetchIntercept(d){const p=window.fetch;return window.fetch=function(h,g){const m=typeof h=="string"?h:h instanceof URL?h.toString():h.url;return isFragmentUrl(m)?Promise.resolve(new Response("",{status:200})):p.call(window,h,g)},d().finally(()=>{window.fetch=p})}const sharedOptions={fetch:{placeholderImage:PLACEHOLDER},features:{restoreScrollPosition:!0},filter:d=>{var p;if(d instanceof HTMLElement){const h=((p=d.getAttribute)==null?void 0:p.call(d,"id"))??"";if(d.tagName==="JAT-FEEDBACK"||h.startsWith("jat-feedback-"))return!1}return!0}};async function captureViewport(){return withFetchIntercept(async()=>{const d=await domToCanvas(document.documentElement,{...sharedOptions,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(d)){const p=await domToCanvas(document.body,{...sharedOptions,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(p))throw new Error("Screenshot produced a blank image");return p.toDataURL("image/jpeg",.8)}return d.toDataURL("image/jpeg",.8)})}async function captureViewportQuick(){return withFetchIntercept(async()=>{const d=await domToCanvas(document.documentElement,{...sharedOptions,scale:.5,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(d)){const p=await domToCanvas(document.body,{...sharedOptions,scale:.5,width:window.innerWidth,height:window.innerHeight});if(!canvasHasContent(p))throw new Error("Screenshot produced a blank image");return p.toDataURL("image/jpeg",.6)}return d.toDataURL("image/jpeg",.6)})}var NodeType$2;(function(d){d[d.Document=0]="Document",d[d.DocumentType=1]="DocumentType",d[d.Element=2]="Element",d[d.Text=3]="Text",d[d.CDATA=4]="CDATA",d[d.Comment=5]="Comment"})(NodeType$2||(NodeType$2={}));function isElement(d){return d.nodeType===d.ELEMENT_NODE}function isShadowRoot(d){var p=d==null?void 0:d.host;return(p==null?void 0:p.shadowRoot)===d}function isNativeShadowDom(d){return Object.prototype.toString.call(d)==="[object ShadowRoot]"}function fixBrowserCompatibilityIssuesInCSS(d){return d.includes(" background-clip: text;")&&!d.includes(" -webkit-background-clip: text;")&&(d=d.replace(" background-clip: text;"," -webkit-background-clip: text; background-clip: text;")),d}function getCssRulesString(d){try{var p=d.rules||d.cssRules;return p?fixBrowserCompatibilityIssuesInCSS(Array.from(p).map(getCssRuleString).join("")):null}catch{return null}}function getCssRuleString(d){var p=d.cssText;if(isCSSImportRule(d))try{p=getCssRulesString(d.styleSheet)||p}catch{}return p}function isCSSImportRule(d){return"styleSheet"in d}var Mirror$2=(function(){function d(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}return d.prototype.getId=function(p){var h;if(!p)return-1;var g=(h=this.getMeta(p))===null||h===void 0?void 0:h.id;return g??-1},d.prototype.getNode=function(p){return this.idNodeMap.get(p)||null},d.prototype.getIds=function(){return Array.from(this.idNodeMap.keys())},d.prototype.getMeta=function(p){return this.nodeMetaMap.get(p)||null},d.prototype.removeNodeFromMap=function(p){var h=this,g=this.getId(p);this.idNodeMap.delete(g),p.childNodes&&p.childNodes.forEach(function(m){return h.removeNodeFromMap(m)})},d.prototype.has=function(p){return this.idNodeMap.has(p)},d.prototype.hasNode=function(p){return this.nodeMetaMap.has(p)},d.prototype.add=function(p,h){var g=h.id;this.idNodeMap.set(g,p),this.nodeMetaMap.set(p,h)},d.prototype.replace=function(p,h){var g=this.getNode(p);if(g){var m=this.nodeMetaMap.get(g);m&&this.nodeMetaMap.set(h,m)}this.idNodeMap.set(p,h)},d.prototype.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},d})();function createMirror$2(){return new Mirror$2}function maskInputValue(d){var p=d.maskInputOptions,h=d.tagName,g=d.type,m=d.value,_=d.maskInputFn,b=m||"";return(p[h.toLowerCase()]||p[g])&&(_?b=_(b):b="*".repeat(b.length)),b}var ORIGINAL_ATTRIBUTE_NAME="__rrweb_original__";function is2DCanvasBlank(d){var p=d.getContext("2d");if(!p)return!0;for(var h=50,g=0;g<d.width;g+=h)for(var m=0;m<d.height;m+=h){var _=p.getImageData,b=ORIGINAL_ATTRIBUTE_NAME in _?_[ORIGINAL_ATTRIBUTE_NAME]:_,y=new Uint32Array(b.call(p,g,m,Math.min(h,d.width-g),Math.min(h,d.height-m)).data.buffer);if(y.some(function(w){return w!==0}))return!1}return!0}var _id=1,tagNameRegex=new RegExp("[^a-z0-9-_:]"),IGNORED_NODE=-2;function genId(){return _id++}function getValidTagName$1(d){if(d instanceof HTMLFormElement)return"form";var p=d.tagName.toLowerCase().trim();return tagNameRegex.test(p)?"div":p}function stringifyStyleSheet(d){return d.cssRules?Array.from(d.cssRules).map(function(p){return p.cssText||""}).join(""):""}function extractOrigin(d){var p="";return d.indexOf("//")>-1?p=d.split("/").slice(0,3).join("/"):p=d.split("/")[0],p=p.split("?")[0],p}var canvasService,canvasCtx,URL_IN_CSS_REF=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,RELATIVE_PATH=/^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\\|\/\/|#).*/,DATA_URI=/^(data:)([^,]*),(.*)/i;function absoluteToStylesheet(d,p){return(d||"").replace(URL_IN_CSS_REF,function(h,g,m,_,b,y){var w=m||b||y,x=g||_||"";if(!w)return h;if(!RELATIVE_PATH.test(w)||DATA_URI.test(w))return"url(".concat(x).concat(w).concat(x,")");if(w[0]==="/")return"url(".concat(x).concat(extractOrigin(p)+w).concat(x,")");var E=p.split("/"),k=w.split("/");E.pop();for(var S=0,I=k;S<I.length;S++){var A=I[S];A!=="."&&(A===".."?E.pop():E.push(A))}return"url(".concat(x).concat(E.join("/")).concat(x,")")})}var SRCSET_NOT_SPACES=/^[^ \t\n\r\u000c]+/,SRCSET_COMMAS_OR_SPACES=/^[, \t\n\r\u000c]+/;function getAbsoluteSrcsetString(d,p){if(p.trim()==="")return p;var h=0;function g(x){var E,k=x.exec(p.substring(h));return k?(E=k[0],h+=E.length,E):""}for(var m=[];g(SRCSET_COMMAS_OR_SPACES),!(h>=p.length);){var _=g(SRCSET_NOT_SPACES);if(_.slice(-1)===",")_=absoluteToDoc(d,_.substring(0,_.length-1)),m.push(_);else{var b="";_=absoluteToDoc(d,_);for(var y=!1;;){var w=p.charAt(h);if(w===""){m.push((_+b).trim());break}else if(y)w===")"&&(y=!1);else if(w===","){h+=1,m.push((_+b).trim());break}else w==="("&&(y=!0);b+=w,h+=1}}}return m.join(", ")}function absoluteToDoc(d,p){if(!p||p.trim()==="")return p;var h=d.createElement("a");return h.href=p,h.href}function isSVGElement(d){return!!(d.tagName==="svg"||d.ownerSVGElement)}function getHref(){var d=document.createElement("a");return d.href="",d.href}function transformAttribute(d,p,h,g){return h==="src"||h==="href"&&g&&!(p==="use"&&g[0]==="#")||h==="xlink:href"&&g&&g[0]!=="#"||h==="background"&&g&&(p==="table"||p==="td"||p==="th")?absoluteToDoc(d,g):h==="srcset"&&g?getAbsoluteSrcsetString(d,g):h==="style"&&g?absoluteToStylesheet(g,getHref()):p==="object"&&h==="data"&&g?absoluteToDoc(d,g):g}function _isBlockedElement(d,p,h){if(typeof p=="string"){if(d.classList.contains(p))return!0}else for(var g=d.classList.length;g--;){var m=d.classList[g];if(p.test(m))return!0}return h?d.matches(h):!1}function classMatchesRegex(d,p,h){if(!d)return!1;if(d.nodeType!==d.ELEMENT_NODE)return h?classMatchesRegex(d.parentNode,p,h):!1;for(var g=d.classList.length;g--;){var m=d.classList[g];if(p.test(m))return!0}return h?classMatchesRegex(d.parentNode,p,h):!1}function needMaskingText(d,p,h){var g=d.nodeType===d.ELEMENT_NODE?d:d.parentElement;if(g===null)return!1;if(typeof p=="string"){if(g.classList.contains(p)||g.closest(".".concat(p)))return!0}else if(classMatchesRegex(g,p,!0))return!0;return!!(h&&(g.matches(h)||g.closest(h)))}function onceIframeLoaded(d,p,h){var g=d.contentWindow;if(g){var m=!1,_;try{_=g.document.readyState}catch{return}if(_!=="complete"){var b=setTimeout(function(){m||(p(),m=!0)},h);d.addEventListener("load",function(){clearTimeout(b),m=!0,p()});return}var y="about:blank";if(g.location.href!==y||d.src===y||d.src==="")return setTimeout(p,0),d.addEventListener("load",p);d.addEventListener("load",p)}}function onceStylesheetLoaded(d,p,h){var g=!1,m;try{m=d.sheet}catch{return}if(!m){var _=setTimeout(function(){g||(p(),g=!0)},h);d.addEventListener("load",function(){clearTimeout(_),g=!0,p()})}}function serializeNode(d,p){var h=p.doc,g=p.mirror,m=p.blockClass,_=p.blockSelector,b=p.maskTextClass,y=p.maskTextSelector,w=p.inlineStylesheet,x=p.maskInputOptions,E=x===void 0?{}:x,k=p.maskTextFn,S=p.maskInputFn,I=p.dataURLOptions,A=I===void 0?{}:I,M=p.inlineImages,R=p.recordCanvas,C=p.keepIframeSrcFn,$=p.newlyAddedElement,N=$===void 0?!1:$,O=getRootId(h,g);switch(d.nodeType){case d.DOCUMENT_NODE:return d.compatMode!=="CSS1Compat"?{type:NodeType$2.Document,childNodes:[],compatMode:d.compatMode}:{type:NodeType$2.Document,childNodes:[]};case d.DOCUMENT_TYPE_NODE:return{type:NodeType$2.DocumentType,name:d.name,publicId:d.publicId,systemId:d.systemId,rootId:O};case d.ELEMENT_NODE:return serializeElementNode(d,{doc:h,blockClass:m,blockSelector:_,inlineStylesheet:w,maskInputOptions:E,maskInputFn:S,dataURLOptions:A,inlineImages:M,recordCanvas:R,keepIframeSrcFn:C,newlyAddedElement:N,rootId:O});case d.TEXT_NODE:return serializeTextNode(d,{maskTextClass:b,maskTextSelector:y,maskTextFn:k,rootId:O});case d.CDATA_SECTION_NODE:return{type:NodeType$2.CDATA,textContent:"",rootId:O};case d.COMMENT_NODE:return{type:NodeType$2.Comment,textContent:d.textContent||"",rootId:O};default:return!1}}function getRootId(d,p){if(p.hasNode(d)){var h=p.getId(d);return h===1?void 0:h}}function serializeTextNode(d,p){var h,g=p.maskTextClass,m=p.maskTextSelector,_=p.maskTextFn,b=p.rootId,y=d.parentNode&&d.parentNode.tagName,w=d.textContent,x=y==="STYLE"?!0:void 0,E=y==="SCRIPT"?!0:void 0;if(x&&w){try{d.nextSibling||d.previousSibling||!((h=d.parentNode.sheet)===null||h===void 0)&&h.cssRules&&(w=stringifyStyleSheet(d.parentNode.sheet))}catch(k){console.warn("Cannot get CSS styles from text's parentNode. Error: ".concat(k),d)}w=absoluteToStylesheet(w,getHref())}return E&&(w="SCRIPT_PLACEHOLDER"),!x&&!E&&w&&needMaskingText(d,g,m)&&(w=_?_(w):w.replace(/[\S]/g,"*")),{type:NodeType$2.Text,textContent:w||"",isStyle:x,rootId:b}}function serializeElementNode(d,p){for(var h=p.doc,g=p.blockClass,m=p.blockSelector,_=p.inlineStylesheet,b=p.maskInputOptions,y=b===void 0?{}:b,w=p.maskInputFn,x=p.dataURLOptions,E=x===void 0?{}:x,k=p.inlineImages,S=p.recordCanvas,I=p.keepIframeSrcFn,A=p.newlyAddedElement,M=A===void 0?!1:A,R=p.rootId,C=_isBlockedElement(d,g,m),$=getValidTagName$1(d),N={},O=d.attributes.length,F=0;F<O;F++){var W=d.attributes[F];N[W.name]=transformAttribute(h,$,W.name,W.value)}if($==="link"&&_){var V=Array.from(h.styleSheets).find(function(z){return z.href===d.href}),q=null;V&&(q=getCssRulesString(V)),q&&(delete N.rel,delete N.href,N._cssText=absoluteToStylesheet(q,V.href))}if($==="style"&&d.sheet&&!(d.innerText||d.textContent||"").trim().length){var q=getCssRulesString(d.sheet);q&&(N._cssText=absoluteToStylesheet(q,getHref()))}if($==="input"||$==="textarea"||$==="select"){var pe=d.value,te=d.checked;N.type!=="radio"&&N.type!=="checkbox"&&N.type!=="submit"&&N.type!=="button"&&pe?N.value=maskInputValue({type:N.type,tagName:$,value:pe,maskInputOptions:y,maskInputFn:w}):te&&(N.checked=te)}if($==="option"&&(d.selected&&!y.select?N.selected=!0:delete N.selected),$==="canvas"&&S){if(d.__context==="2d")is2DCanvasBlank(d)||(N.rr_dataURL=d.toDataURL(E.type,E.quality));else if(!("__context"in d)){var ae=d.toDataURL(E.type,E.quality),ie=document.createElement("canvas");ie.width=d.width,ie.height=d.height;var ke=ie.toDataURL(E.type,E.quality);ae!==ke&&(N.rr_dataURL=ae)}}if($==="img"&&k){canvasService||(canvasService=h.createElement("canvas"),canvasCtx=canvasService.getContext("2d"));var ce=d,Se=ce.crossOrigin;ce.crossOrigin="anonymous";var we=function(){try{canvasService.width=ce.naturalWidth,canvasService.height=ce.naturalHeight,canvasCtx.drawImage(ce,0,0),N.rr_dataURL=canvasService.toDataURL(E.type,E.quality)}catch(z){console.warn("Cannot inline img src=".concat(ce.currentSrc,"! Error: ").concat(z))}Se?N.crossOrigin=Se:ce.removeAttribute("crossorigin")};ce.complete&&ce.naturalWidth!==0?we():ce.onload=we}if(($==="audio"||$==="video")&&(N.rr_mediaState=d.paused?"paused":"played",N.rr_mediaCurrentTime=d.currentTime),M||(d.scrollLeft&&(N.rr_scrollLeft=d.scrollLeft),d.scrollTop&&(N.rr_scrollTop=d.scrollTop)),C){var oe=d.getBoundingClientRect(),ve=oe.width,T=oe.height;N={class:N.class,rr_width:"".concat(ve,"px"),rr_height:"".concat(T,"px")}}return $==="iframe"&&!I(N.src)&&(d.contentDocument||(N.rr_src=N.src),delete N.src),{type:NodeType$2.Element,tagName:$,attributes:N,childNodes:[],isSVG:isSVGElement(d)||void 0,needBlock:C,rootId:R}}function lowerIfExists(d){return d===void 0?"":d.toLowerCase()}function slimDOMExcluded(d,p){if(p.comment&&d.type===NodeType$2.Comment)return!0;if(d.type===NodeType$2.Element){if(p.script&&(d.tagName==="script"||d.tagName==="link"&&d.attributes.rel==="preload"&&d.attributes.as==="script"||d.tagName==="link"&&d.attributes.rel==="prefetch"&&typeof d.attributes.href=="string"&&d.attributes.href.endsWith(".js")))return!0;if(p.headFavicon&&(d.tagName==="link"&&d.attributes.rel==="shortcut icon"||d.tagName==="meta"&&(lowerIfExists(d.attributes.name).match(/^msapplication-tile(image|color)$/)||lowerIfExists(d.attributes.name)==="application-name"||lowerIfExists(d.attributes.rel)==="icon"||lowerIfExists(d.attributes.rel)==="apple-touch-icon"||lowerIfExists(d.attributes.rel)==="shortcut icon")))return!0;if(d.tagName==="meta"){if(p.headMetaDescKeywords&&lowerIfExists(d.attributes.name).match(/^description|keywords$/))return!0;if(p.headMetaSocial&&(lowerIfExists(d.attributes.property).match(/^(og|twitter|fb):/)||lowerIfExists(d.attributes.name).match(/^(og|twitter):/)||lowerIfExists(d.attributes.name)==="pinterest"))return!0;if(p.headMetaRobots&&(lowerIfExists(d.attributes.name)==="robots"||lowerIfExists(d.attributes.name)==="googlebot"||lowerIfExists(d.attributes.name)==="bingbot"))return!0;if(p.headMetaHttpEquiv&&d.attributes["http-equiv"]!==void 0)return!0;if(p.headMetaAuthorship&&(lowerIfExists(d.attributes.name)==="author"||lowerIfExists(d.attributes.name)==="generator"||lowerIfExists(d.attributes.name)==="framework"||lowerIfExists(d.attributes.name)==="publisher"||lowerIfExists(d.attributes.name)==="progid"||lowerIfExists(d.attributes.property).match(/^article:/)||lowerIfExists(d.attributes.property).match(/^product:/)))return!0;if(p.headMetaVerification&&(lowerIfExists(d.attributes.name)==="google-site-verification"||lowerIfExists(d.attributes.name)==="yandex-verification"||lowerIfExists(d.attributes.name)==="csrf-token"||lowerIfExists(d.attributes.name)==="p:domain_verify"||lowerIfExists(d.attributes.name)==="verify-v1"||lowerIfExists(d.attributes.name)==="verification"||lowerIfExists(d.attributes.name)==="shopify-checkout-api-token"))return!0}}return!1}function serializeNodeWithId(d,p){var h=p.doc,g=p.mirror,m=p.blockClass,_=p.blockSelector,b=p.maskTextClass,y=p.maskTextSelector,w=p.skipChild,x=w===void 0?!1:w,E=p.inlineStylesheet,k=E===void 0?!0:E,S=p.maskInputOptions,I=S===void 0?{}:S,A=p.maskTextFn,M=p.maskInputFn,R=p.slimDOMOptions,C=p.dataURLOptions,$=C===void 0?{}:C,N=p.inlineImages,O=N===void 0?!1:N,F=p.recordCanvas,W=F===void 0?!1:F,V=p.onSerialize,q=p.onIframeLoad,pe=p.iframeLoadTimeout,te=pe===void 0?5e3:pe,ae=p.onStylesheetLoad,ie=p.stylesheetLoadTimeout,ke=ie===void 0?5e3:ie,ce=p.keepIframeSrcFn,Se=ce===void 0?function(){return!1}:ce,we=p.newlyAddedElement,oe=we===void 0?!1:we,ve=p.preserveWhiteSpace,T=ve===void 0?!0:ve,z=serializeNode(d,{doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,dataURLOptions:$,inlineImages:O,recordCanvas:W,keepIframeSrcFn:Se,newlyAddedElement:oe});if(!z)return console.warn(d,"not serialized"),null;var D;g.hasNode(d)?D=g.getId(d):slimDOMExcluded(z,R)||!T&&z.type===NodeType$2.Text&&!z.isStyle&&!z.textContent.replace(/^\s+|\s+$/gm,"").length?D=IGNORED_NODE:D=genId();var Z=Object.assign(z,{id:D});if(g.add(d,Z),D===IGNORED_NODE)return null;V&&V(d);var G=!x;if(Z.type===NodeType$2.Element){G=G&&!Z.needBlock,delete Z.needBlock;var se=d.shadowRoot;se&&isNativeShadowDom(se)&&(Z.isShadowHost=!0)}if((Z.type===NodeType$2.Document||Z.type===NodeType$2.Element)&&G){R.headWhitespace&&Z.type===NodeType$2.Element&&Z.tagName==="head"&&(T=!1);for(var be={doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:x,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se},B=0,J=Array.from(d.childNodes);B<J.length;B++){var de=J[B],re=serializeNodeWithId(de,be);re&&Z.childNodes.push(re)}if(isElement(d)&&d.shadowRoot)for(var me=0,j=Array.from(d.shadowRoot.childNodes);me<j.length;me++){var de=j[me],re=serializeNodeWithId(de,be);re&&(isNativeShadowDom(d.shadowRoot)&&(re.isShadow=!0),Z.childNodes.push(re))}}return d.parentNode&&isShadowRoot(d.parentNode)&&isNativeShadowDom(d.parentNode)&&(Z.isShadow=!0),Z.type===NodeType$2.Element&&Z.tagName==="iframe"&&onceIframeLoaded(d,function(){var K=d.contentDocument;if(K&&q){var he=serializeNodeWithId(K,{doc:K,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:!1,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se});he&&q(d,he)}},te),Z.type===NodeType$2.Element&&Z.tagName==="link"&&Z.attributes.rel==="stylesheet"&&onceStylesheetLoaded(d,function(){if(ae){var K=serializeNodeWithId(d,{doc:h,mirror:g,blockClass:m,blockSelector:_,maskTextClass:b,maskTextSelector:y,skipChild:!1,inlineStylesheet:k,maskInputOptions:I,maskTextFn:A,maskInputFn:M,slimDOMOptions:R,dataURLOptions:$,inlineImages:O,recordCanvas:W,preserveWhiteSpace:T,onSerialize:V,onIframeLoad:q,iframeLoadTimeout:te,onStylesheetLoad:ae,stylesheetLoadTimeout:ke,keepIframeSrcFn:Se});K&&ae(d,K)}},ke),Z}function snapshot(d,p){var h=p||{},g=h.mirror,m=g===void 0?new Mirror$2:g,_=h.blockClass,b=_===void 0?"rr-block":_,y=h.blockSelector,w=y===void 0?null:y,x=h.maskTextClass,E=x===void 0?"rr-mask":x,k=h.maskTextSelector,S=k===void 0?null:k,I=h.inlineStylesheet,A=I===void 0?!0:I,M=h.inlineImages,R=M===void 0?!1:M,C=h.recordCanvas,$=C===void 0?!1:C,N=h.maskAllInputs,O=N===void 0?!1:N,F=h.maskTextFn,W=h.maskInputFn,V=h.slimDOM,q=V===void 0?!1:V,pe=h.dataURLOptions,te=h.preserveWhiteSpace,ae=h.onSerialize,ie=h.onIframeLoad,ke=h.iframeLoadTimeout,ce=h.onStylesheetLoad,Se=h.stylesheetLoadTimeout,we=h.keepIframeSrcFn,oe=we===void 0?function(){return!1}:we,ve=O===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:O===!1?{password:!0}:O,T=q===!0||q==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:q==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:q===!1?{}:q;return serializeNodeWithId(d,{doc:d,mirror:m,blockClass:b,blockSelector:w,maskTextClass:E,maskTextSelector:S,skipChild:!1,inlineStylesheet:A,maskInputOptions:ve,maskTextFn:F,maskInputFn:W,slimDOMOptions:T,dataURLOptions:pe,inlineImages:R,recordCanvas:$,preserveWhiteSpace:te,onSerialize:ae,onIframeLoad:ie,iframeLoadTimeout:ke,onStylesheetLoad:ce,stylesheetLoadTimeout:Se,keepIframeSrcFn:oe,newlyAddedElement:!1})}var commentre=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;function parse$1(d,p){p===void 0&&(p={});var h=1,g=1;function m(T){var z=T.match(/\n/g);z&&(h+=z.length);var D=T.lastIndexOf(`
|
|
46
46
|
`);g=D===-1?g+T.length:T.length-D}function _(){var T={line:h,column:g};return function(z){return z.position=new b(T),A(),z}}var b=(function(){function T(z){this.start=z,this.end={line:h,column:g},this.source=p.source}return T})();b.prototype.content=d;var y=[];function w(T){var z=new Error("".concat(p.source||"",":").concat(h,":").concat(g,": ").concat(T));if(z.reason=T,z.filename=p.source,z.line=h,z.column=g,z.source=d,p.silent)y.push(z);else throw z}function x(){var T=S();return{type:"stylesheet",stylesheet:{source:p.source,rules:T,parsingErrors:y}}}function E(){return I(/^{\s*/)}function k(){return I(/^}/)}function S(){var T,z=[];for(A(),M(z);d.length&&d.charAt(0)!=="}"&&(T=oe()||ve());)T!==!1&&(z.push(T),M(z));return z}function I(T){var z=T.exec(d);if(z){var D=z[0];return m(D),d=d.slice(D.length),z}}function A(){I(/^\s*/)}function M(T){T===void 0&&(T=[]);for(var z;z=R();)z!==!1&&T.push(z),z=R();return T}function R(){var T=_();if(!(d.charAt(0)!=="/"||d.charAt(1)!=="*")){for(var z=2;d.charAt(z)!==""&&(d.charAt(z)!=="*"||d.charAt(z+1)!=="/");)++z;if(z+=2,d.charAt(z-1)==="")return w("End of comment missing");var D=d.slice(2,z-2);return g+=2,m(D),d=d.slice(z),g+=2,T({type:"comment",comment:D})}}function C(){var T=I(/^([^{]+)/);if(T)return trim(T[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g,"").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g,function(z){return z.replace(/,/g,"")}).split(/\s*(?![^(]*\)),\s*/).map(function(z){return z.replace(/\u200C/g,",")})}function $(){var T=_(),z=I(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);if(z){var D=trim(z[0]);if(!I(/^:\s*/))return w("property missing ':'");var Z=I(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/),G=T({type:"declaration",property:D.replace(commentre,""),value:Z?trim(Z[0]).replace(commentre,""):""});return I(/^[;\s]*/),G}}function N(){var T=[];if(!E())return w("missing '{'");M(T);for(var z;z=$();)z!==!1&&(T.push(z),M(T)),z=$();return k()?T:w("missing '}'")}function O(){for(var T,z=[],D=_();T=I(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/);)z.push(T[1]),I(/^,\s*/);if(z.length)return D({type:"keyframe",values:z,declarations:N()})}function F(){var T=_(),z=I(/^@([-\w]+)?keyframes\s*/);if(z){var D=z[1];if(z=I(/^([-\w]+)\s*/),!z)return w("@keyframes missing name");var Z=z[1];if(!E())return w("@keyframes missing '{'");for(var G,se=M();G=O();)se.push(G),se=se.concat(M());return k()?T({type:"keyframes",name:Z,vendor:D,keyframes:se}):w("@keyframes missing '}'")}}function W(){var T=_(),z=I(/^@supports *([^{]+)/);if(z){var D=trim(z[1]);if(!E())return w("@supports missing '{'");var Z=M().concat(S());return k()?T({type:"supports",supports:D,rules:Z}):w("@supports missing '}'")}}function V(){var T=_(),z=I(/^@host\s*/);if(z){if(!E())return w("@host missing '{'");var D=M().concat(S());return k()?T({type:"host",rules:D}):w("@host missing '}'")}}function q(){var T=_(),z=I(/^@media *([^{]+)/);if(z){var D=trim(z[1]);if(!E())return w("@media missing '{'");var Z=M().concat(S());return k()?T({type:"media",media:D,rules:Z}):w("@media missing '}'")}}function pe(){var T=_(),z=I(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);if(z)return T({type:"custom-media",name:trim(z[1]),media:trim(z[2])})}function te(){var T=_(),z=I(/^@page */);if(z){var D=C()||[];if(!E())return w("@page missing '{'");for(var Z=M(),G;G=$();)Z.push(G),Z=Z.concat(M());return k()?T({type:"page",selectors:D,declarations:Z}):w("@page missing '}'")}}function ae(){var T=_(),z=I(/^@([-\w]+)?document *([^{]+)/);if(z){var D=trim(z[1]),Z=trim(z[2]);if(!E())return w("@document missing '{'");var G=M().concat(S());return k()?T({type:"document",document:Z,vendor:D,rules:G}):w("@document missing '}'")}}function ie(){var T=_(),z=I(/^@font-face\s*/);if(z){if(!E())return w("@font-face missing '{'");for(var D=M(),Z;Z=$();)D.push(Z),D=D.concat(M());return k()?T({type:"font-face",declarations:D}):w("@font-face missing '}'")}}var ke=we("import"),ce=we("charset"),Se=we("namespace");function we(T){var z=new RegExp("^@"+T+"\\s*([^;]+);");return function(){var D=_(),Z=I(z);if(Z){var G={type:T};return G[T]=Z[1].trim(),D(G)}}}function oe(){if(d[0]==="@")return F()||q()||pe()||W()||ke()||ce()||Se()||ae()||te()||V()||ie()}function ve(){var T=_(),z=C();return z?(M(),T({type:"rule",selectors:z,declarations:N()})):w("selector missing")}return addParent(x())}function trim(d){return d?d.replace(/^\s+|\s+$/g,""):""}function addParent(d,p){for(var h=d&&typeof d.type=="string",g=h?d:p,m=0,_=Object.keys(d);m<_.length;m++){var b=_[m],y=d[b];Array.isArray(y)?y.forEach(function(w){addParent(w,g)}):y&&typeof y=="object"&&addParent(y,g)}return h&&Object.defineProperty(d,"parent",{configurable:!0,writable:!0,enumerable:!1,value:p||null}),d}var tagMap={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 getTagName(d){var p=tagMap[d.tagName]?tagMap[d.tagName]:d.tagName;return p==="link"&&d.attributes._cssText&&(p="style"),p}function escapeRegExp(d){return d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var HOVER_SELECTOR=/([^\\]):hover/,HOVER_SELECTOR_GLOBAL=new RegExp(HOVER_SELECTOR.source,"g");function addHoverClass(d,p){var h=p==null?void 0:p.stylesWithHoverClass.get(d);if(h)return h;var g=parse$1(d,{silent:!0});if(!g.stylesheet)return d;var m=[];if(g.stylesheet.rules.forEach(function(y){"selectors"in y&&(y.selectors||[]).forEach(function(w){HOVER_SELECTOR.test(w)&&m.push(w)})}),m.length===0)return d;var _=new RegExp(m.filter(function(y,w){return m.indexOf(y)===w}).sort(function(y,w){return w.length-y.length}).map(function(y){return escapeRegExp(y)}).join("|"),"g"),b=d.replace(_,function(y){var w=y.replace(HOVER_SELECTOR_GLOBAL,"$1.\\:hover");return"".concat(y,", ").concat(w)});return p==null||p.stylesWithHoverClass.set(d,b),b}function createCache(){var d=new Map;return{stylesWithHoverClass:d}}function buildNode(d,p){var h=p.doc,g=p.hackCss,m=p.cache;switch(d.type){case NodeType$2.Document:return h.implementation.createDocument(null,"",null);case NodeType$2.DocumentType:return h.implementation.createDocumentType(d.name||"html",d.publicId,d.systemId);case NodeType$2.Element:{var _=getTagName(d),b;d.isSVG?b=h.createElementNS("http://www.w3.org/2000/svg",_):b=h.createElement(_);var y={};for(var w in d.attributes)if(Object.prototype.hasOwnProperty.call(d.attributes,w)){var x=d.attributes[w];if(!(_==="option"&&w==="selected"&&x===!1)){if(x===!0&&(x=""),w.startsWith("rr_")){y[w]=x;continue}var E=_==="textarea"&&w==="value",k=_==="style"&&w==="_cssText";if(k&&g&&typeof x=="string"&&(x=addHoverClass(x,m)),(E||k)&&typeof x=="string"){for(var S=h.createTextNode(x),I=0,A=Array.from(b.childNodes);I<A.length;I++){var M=A[I];M.nodeType===b.TEXT_NODE&&b.removeChild(M)}b.appendChild(S);continue}try{if(d.isSVG&&w==="xlink:href")b.setAttributeNS("http://www.w3.org/1999/xlink",w,x.toString());else if(w==="onload"||w==="onclick"||w.substring(0,7)==="onmouse")b.setAttribute("_"+w,x.toString());else if(_==="meta"&&d.attributes["http-equiv"]==="Content-Security-Policy"&&w==="content"){b.setAttribute("csp-content",x.toString());continue}else _==="link"&&d.attributes.rel==="preload"&&d.attributes.as==="script"||_==="link"&&d.attributes.rel==="prefetch"&&typeof d.attributes.href=="string"&&d.attributes.href.endsWith(".js")||(_==="img"&&d.attributes.srcset&&d.attributes.rr_dataURL?b.setAttribute("rrweb-original-srcset",d.attributes.srcset):b.setAttribute(w,x.toString()))}catch{}}}var R=function($){var N=y[$];if(_==="canvas"&&$==="rr_dataURL"){var O=document.createElement("img");O.onload=function(){var W=b.getContext("2d");W&&W.drawImage(O,0,0,O.width,O.height)},O.src=N.toString(),b.RRNodeType&&(b.rr_dataURL=N.toString())}else if(_==="img"&&$==="rr_dataURL"){var F=b;F.currentSrc.startsWith("data:")||(F.setAttribute("rrweb-original-src",d.attributes.src),F.src=N.toString())}if($==="rr_width")b.style.width=N.toString();else if($==="rr_height")b.style.height=N.toString();else if($==="rr_mediaCurrentTime"&&typeof N=="number")b.currentTime=N;else if($==="rr_mediaState")switch(N){case"played":b.play().catch(function(W){return console.warn("media playback error",W)});break;case"paused":b.pause();break}};for(var C in y)R(C);if(d.isShadowHost)if(!b.shadowRoot)b.attachShadow({mode:"open"});else for(;b.shadowRoot.firstChild;)b.shadowRoot.removeChild(b.shadowRoot.firstChild);return b}case NodeType$2.Text:return h.createTextNode(d.isStyle&&g?addHoverClass(d.textContent,m):d.textContent);case NodeType$2.CDATA:return h.createCDATASection(d.textContent);case NodeType$2.Comment:return h.createComment(d.textContent);default:return null}}function buildNodeWithSN(d,p){var h=p.doc,g=p.mirror,m=p.skipChild,_=m===void 0?!1:m,b=p.hackCss,y=b===void 0?!0:b,w=p.afterAppend,x=p.cache,E=buildNode(d,{doc:h,hackCss:y,cache:x});if(!E)return null;if(d.rootId&&g.getNode(d.rootId)!==h&&g.replace(d.rootId,h),d.type===NodeType$2.Document&&(h.close(),h.open(),d.compatMode==="BackCompat"&&d.childNodes&&d.childNodes[0].type!==NodeType$2.DocumentType&&(d.childNodes[0].type===NodeType$2.Element&&"xmlns"in d.childNodes[0].attributes&&d.childNodes[0].attributes.xmlns==="http://www.w3.org/1999/xhtml"?h.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">'):h.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "">')),E=h),g.add(E,d),(d.type===NodeType$2.Document||d.type===NodeType$2.Element)&&!_)for(var k=0,S=d.childNodes;k<S.length;k++){var I=S[k],A=buildNodeWithSN(I,{doc:h,mirror:g,skipChild:!1,hackCss:y,afterAppend:w,cache:x});if(!A){console.warn("Failed to rebuild",I);continue}I.isShadow&&isElement(E)&&E.shadowRoot?E.shadowRoot.appendChild(A):E.appendChild(A),w&&w(A,I.id)}return E}function visit(d,p){function h(b){p(b)}for(var g=0,m=d.getIds();g<m.length;g++){var _=m[g];d.has(_)&&h(d.getNode(_))}}function handleScroll(d,p){var h=p.getMeta(d);if((h==null?void 0:h.type)===NodeType$2.Element){var g=d;for(var m in h.attributes)if(Object.prototype.hasOwnProperty.call(h.attributes,m)&&m.startsWith("rr_")){var _=h.attributes[m];m==="rr_scrollLeft"&&(g.scrollLeft=_),m==="rr_scrollTop"&&(g.scrollTop=_)}}}function rebuild(d,p){var h=p.doc,g=p.onVisit,m=p.hackCss,_=m===void 0?!0:m,b=p.afterAppend,y=p.cache,w=p.mirror,x=w===void 0?new Mirror$2:w,E=buildNodeWithSN(d,{doc:h,mirror:x,skipChild:!1,hackCss:_,afterAppend:b,cache:y});return visit(x,function(k){g&&g(k),handleScroll(k,x)}),E}function on(d,p,h=document){const g={capture:!0,passive:!0};return h.addEventListener(d,p,g),()=>h.removeEventListener(d,p,g)}const DEPARTED_MIRROR_ACCESS_WARNING=`Please stop import mirror directly. Instead of that,\r
|
|
47
47
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
48
48
|
or you can use record.mirror to access the mirror instance during recording.`;let _mirror={map:{},getId(){return console.error(DEPARTED_MIRROR_ACCESS_WARNING),-1},getNode(){return console.error(DEPARTED_MIRROR_ACCESS_WARNING),null},removeNodeFromMap(){console.error(DEPARTED_MIRROR_ACCESS_WARNING)},has(){return console.error(DEPARTED_MIRROR_ACCESS_WARNING),!1},reset(){console.error(DEPARTED_MIRROR_ACCESS_WARNING)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(_mirror=new Proxy(_mirror,{get(d,p,h){return p==="map"&&console.error(DEPARTED_MIRROR_ACCESS_WARNING),Reflect.get(d,p,h)}}));function throttle(d,p,h={}){let g=null,m=0;return function(..._){const b=Date.now();!m&&h.leading===!1&&(m=b);const y=p-(b-m),w=this;y<=0||y>p?(g&&(clearTimeout(g),g=null),m=b,d.apply(w,_)):!g&&h.trailing!==!1&&(g=setTimeout(()=>{m=h.leading===!1?0:Date.now(),g=null,d.apply(w,_)},y))}}function hookSetter(d,p,h,g,m=window){const _=m.Object.getOwnPropertyDescriptor(d,p);return m.Object.defineProperty(d,p,g?h:{set(b){setTimeout(()=>{h.set.call(this,b)},0),_&&_.set&&_.set.call(this,b)}}),()=>hookSetter(d,p,_||{},!0)}function patch(d,p,h){try{if(!(p in d))return()=>{};const g=d[p],m=h(g);return typeof m=="function"&&(m.prototype=m.prototype||{},Object.defineProperties(m,{__rrweb_original__:{enumerable:!1,value:g}})),d[p]=m,()=>{d[p]=g}}catch{return()=>{}}}function getWindowHeight(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function getWindowWidth(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function isBlocked(d,p,h,g){if(!d)return!1;const m=d.nodeType===d.ELEMENT_NODE?d:d.parentElement;if(!m)return!1;if(typeof p=="string"){if(m.classList.contains(p)||g&&m.closest("."+p)!==null)return!0}else if(classMatchesRegex(m,p,g))return!0;return!!(h&&(d.matches(h)||g&&m.closest(h)!==null))}function isSerialized(d,p){return p.getId(d)!==-1}function isIgnored(d,p){return p.getId(d)===IGNORED_NODE}function isAncestorRemoved(d,p){if(isShadowRoot(d))return!1;const h=p.getId(d);return p.has(h)?d.parentNode&&d.parentNode.nodeType===d.DOCUMENT_NODE?!1:d.parentNode?isAncestorRemoved(d.parentNode,p):!0:!0}function isTouchEvent(d){return!!d.changedTouches}function polyfill$1(d=window){"NodeList"in d&&!d.NodeList.prototype.forEach&&(d.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in d&&!d.DOMTokenList.prototype.forEach&&(d.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=(...p)=>{let h=p[0];if(!(0 in p))throw new TypeError("1 argument is required");do if(this===h)return!0;while(h=h&&h.parentNode);return!1})}function queueToResolveTrees(d){const p={},h=(m,_)=>{const b={value:m,parent:_,children:[]};return p[m.node.id]=b,b},g=[];for(const m of d){const{nextId:_,parentId:b}=m;if(_&&_ in p){const y=p[_];if(y.parent){const w=y.parent.children.indexOf(y);y.parent.children.splice(w,0,h(m,y.parent))}else{const w=g.indexOf(y);g.splice(w,0,h(m,null))}continue}if(b in p){const y=p[b];y.children.push(h(m,y));continue}g.push(h(m,null))}return g}function iterateResolveTree(d,p){p(d.value);for(let h=d.children.length-1;h>=0;h--)iterateResolveTree(d.children[h],p)}function isSerializedIframe(d,p){return!!(d.nodeName==="IFRAME"&&p.getMeta(d))}function isSerializedStylesheet(d,p){return!!(d.nodeName==="LINK"&&d.nodeType===d.ELEMENT_NODE&&d.getAttribute&&d.getAttribute("rel")==="stylesheet"&&p.getMeta(d))}function getBaseDimension(d,p){var h,g;const m=(g=(h=d.ownerDocument)===null||h===void 0?void 0:h.defaultView)===null||g===void 0?void 0:g.frameElement;if(!m||m===p)return{x:0,y:0,relativeScale:1,absoluteScale:1};const _=m.getBoundingClientRect(),b=getBaseDimension(m,p),y=_.height/m.clientHeight;return{x:_.x*b.relativeScale+b.x,y:_.y*b.relativeScale+b.y,relativeScale:y,absoluteScale:b.absoluteScale*y}}function hasShadowRoot(d){return!!(d!=null&&d.shadowRoot)}function getNestedRule(d,p){const h=d[p[0]];return p.length===1?h:getNestedRule(h.cssRules[p[1]].cssRules,p.slice(2))}function getPositionsAndIndex(d){const p=[...d],h=p.pop();return{positions:p,index:h}}function uniqueTextMutations(d){const p=new Set,h=[];for(let g=d.length;g--;){const m=d[g];p.has(m.id)||(h.push(m),p.add(m.id))}return h}class StyleSheetMirror{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(p){var h;return(h=this.styleIDMap.get(p))!==null&&h!==void 0?h:-1}has(p){return this.styleIDMap.has(p)}add(p,h){if(this.has(p))return this.getId(p);let g;return h===void 0?g=this.id++:g=h,this.styleIDMap.set(p,g),this.idStyleMap.set(g,p),g}getStyle(p){return this.idStyleMap.get(p)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}var EventType=(d=>(d[d.DomContentLoaded=0]="DomContentLoaded",d[d.Load=1]="Load",d[d.FullSnapshot=2]="FullSnapshot",d[d.IncrementalSnapshot=3]="IncrementalSnapshot",d[d.Meta=4]="Meta",d[d.Custom=5]="Custom",d[d.Plugin=6]="Plugin",d))(EventType||{}),IncrementalSource=(d=>(d[d.Mutation=0]="Mutation",d[d.MouseMove=1]="MouseMove",d[d.MouseInteraction=2]="MouseInteraction",d[d.Scroll=3]="Scroll",d[d.ViewportResize=4]="ViewportResize",d[d.Input=5]="Input",d[d.TouchMove=6]="TouchMove",d[d.MediaInteraction=7]="MediaInteraction",d[d.StyleSheetRule=8]="StyleSheetRule",d[d.CanvasMutation=9]="CanvasMutation",d[d.Font=10]="Font",d[d.Log=11]="Log",d[d.Drag=12]="Drag",d[d.StyleDeclaration=13]="StyleDeclaration",d[d.Selection=14]="Selection",d[d.AdoptedStyleSheet=15]="AdoptedStyleSheet",d))(IncrementalSource||{}),MouseInteractions=(d=>(d[d.MouseUp=0]="MouseUp",d[d.MouseDown=1]="MouseDown",d[d.Click=2]="Click",d[d.ContextMenu=3]="ContextMenu",d[d.DblClick=4]="DblClick",d[d.Focus=5]="Focus",d[d.Blur=6]="Blur",d[d.TouchStart=7]="TouchStart",d[d.TouchMove_Departed=8]="TouchMove_Departed",d[d.TouchEnd=9]="TouchEnd",d[d.TouchCancel=10]="TouchCancel",d))(MouseInteractions||{}),CanvasContext=(d=>(d[d["2D"]=0]="2D",d[d.WebGL=1]="WebGL",d[d.WebGL2=2]="WebGL2",d))(CanvasContext||{}),ReplayerEvents=(d=>(d.Start="start",d.Pause="pause",d.Resume="resume",d.Resize="resize",d.Finish="finish",d.FullsnapshotRebuilded="fullsnapshot-rebuilded",d.LoadStylesheetStart="load-stylesheet-start",d.LoadStylesheetEnd="load-stylesheet-end",d.SkipStart="skip-start",d.SkipEnd="skip-end",d.MouseInteraction="mouse-interaction",d.EventCast="event-cast",d.CustomEvent="custom-event",d.Flush="flush",d.StateChange="state-change",d.PlayBack="play-back",d.Destroy="destroy",d))(ReplayerEvents||{});function isNodeInLinkedList(d){return"__ln"in d}class DoubleLinkedList{constructor(){this.length=0,this.head=null}get(p){if(p>=this.length)throw new Error("Position outside of list range");let h=this.head;for(let g=0;g<p;g++)h=(h==null?void 0:h.next)||null;return h}addNode(p){const h={value:p,previous:null,next:null};if(p.__ln=h,p.previousSibling&&isNodeInLinkedList(p.previousSibling)){const g=p.previousSibling.__ln.next;h.next=g,h.previous=p.previousSibling.__ln,p.previousSibling.__ln.next=h,g&&(g.previous=h)}else if(p.nextSibling&&isNodeInLinkedList(p.nextSibling)&&p.nextSibling.__ln.previous){const g=p.nextSibling.__ln.previous;h.previous=g,h.next=p.nextSibling.__ln,p.nextSibling.__ln.previous=h,g&&(g.next=h)}else this.head&&(this.head.previous=h),h.next=this.head,this.head=h;this.length++}removeNode(p){const h=p.__ln;this.head&&(h.previous?(h.previous.next=h.next,h.next&&(h.next.previous=h.previous)):(this.head=h.next,this.head&&(this.head.previous=null)),p.__ln&&delete p.__ln,this.length--)}}const moveKey=(d,p)=>`${d}@${p}`;class MutationBuffer{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=p=>{p.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const p=[],h=new DoubleLinkedList,g=y=>{let w=y,x=IGNORED_NODE;for(;x===IGNORED_NODE;)w=w&&w.nextSibling,x=w&&this.mirror.getId(w);return x},m=y=>{var w,x,E,k;let S=null;((x=(w=y.getRootNode)===null||w===void 0?void 0:w.call(y))===null||x===void 0?void 0:x.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&y.getRootNode().host&&(S=y.getRootNode().host);let I=S;for(;((k=(E=I==null?void 0:I.getRootNode)===null||E===void 0?void 0:E.call(I))===null||k===void 0?void 0:k.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&I.getRootNode().host;)I=I.getRootNode().host;const A=!this.doc.contains(y)&&(!I||!this.doc.contains(I));if(!y.parentNode||A)return;const M=isShadowRoot(y.parentNode)?this.mirror.getId(S):this.mirror.getId(y.parentNode),R=g(y);if(M===-1||R===-1)return h.addNode(y);const C=serializeNodeWithId(y,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:$=>{isSerializedIframe($,this.mirror)&&this.iframeManager.addIframe($),isSerializedStylesheet($,this.mirror)&&this.stylesheetManager.trackLinkElement($),hasShadowRoot(y)&&this.shadowDomManager.addShadowRoot(y.shadowRoot,this.doc)},onIframeLoad:($,N)=>{this.iframeManager.attachIframe($,N),this.shadowDomManager.observeAttachShadow($)},onStylesheetLoad:($,N)=>{this.stylesheetManager.attachLinkElement($,N)}});C&&p.push({parentId:M,nextId:R,node:C})};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const y of Array.from(this.movedSet.values()))isParentRemoved(this.removes,y,this.mirror)&&!this.movedSet.has(y.parentNode)||m(y);for(const y of Array.from(this.addedSet.values()))!isAncestorInSet(this.droppedSet,y)&&!isParentRemoved(this.removes,y,this.mirror)||isAncestorInSet(this.movedSet,y)?m(y):this.droppedSet.add(y);let _=null;for(;h.length;){let y=null;if(_){const w=this.mirror.getId(_.value.parentNode),x=g(_.value);w!==-1&&x!==-1&&(y=_)}if(!y)for(let w=h.length-1;w>=0;w--){const x=h.get(w);if(x){const E=this.mirror.getId(x.value.parentNode);if(g(x.value)===-1)continue;if(E!==-1){y=x;break}else{const S=x.value;if(S.parentNode&&S.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const I=S.parentNode.host;if(this.mirror.getId(I)!==-1){y=x;break}}}}}if(!y){for(;h.head;)h.removeNode(h.head.value);break}_=y.previous,h.removeNode(y.value),m(y.value)}const b={texts:this.texts.map(y=>({id:this.mirror.getId(y.node),value:y.value})).filter(y=>this.mirror.has(y.id)),attributes:this.attributes.map(y=>({id:this.mirror.getId(y.node),attributes:y.attributes})).filter(y=>this.mirror.has(y.id)),removes:this.removes,adds:p};!b.texts.length&&!b.attributes.length&&!b.removes.length&&!b.adds.length||(this.texts=[],this.attributes=[],this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.movedMap={},this.mutationCb(b))},this.processMutation=p=>{if(!isIgnored(p.target,this.mirror))switch(p.type){case"characterData":{const h=p.target.textContent;!isBlocked(p.target,this.blockClass,this.blockSelector,!1)&&h!==p.oldValue&&this.texts.push({value:needMaskingText(p.target,this.maskTextClass,this.maskTextSelector)&&h?this.maskTextFn?this.maskTextFn(h):h.replace(/[\S]/g,"*"):h,node:p.target});break}case"attributes":{const h=p.target;let g=p.target.getAttribute(p.attributeName);if(p.attributeName==="value"&&(g=maskInputValue({maskInputOptions:this.maskInputOptions,tagName:p.target.tagName,type:p.target.getAttribute("type"),value:g,maskInputFn:this.maskInputFn})),isBlocked(p.target,this.blockClass,this.blockSelector,!1)||g===p.oldValue)return;let m=this.attributes.find(_=>_.node===p.target);if(h.tagName==="IFRAME"&&p.attributeName==="src"&&!this.keepIframeSrcFn(g))if(!h.contentDocument)p.attributeName="rr_src";else return;if(m||(m={node:p.target,attributes:{}},this.attributes.push(m)),p.attributeName==="style"){const _=this.doc.createElement("span");p.oldValue&&_.setAttribute("style",p.oldValue),(m.attributes.style===void 0||m.attributes.style===null)&&(m.attributes.style={});const b=m.attributes.style;for(const y of Array.from(h.style)){const w=h.style.getPropertyValue(y),x=h.style.getPropertyPriority(y);(w!==_.style.getPropertyValue(y)||x!==_.style.getPropertyPriority(y))&&(x===""?b[y]=w:b[y]=[w,x])}for(const y of Array.from(_.style))h.style.getPropertyValue(y)===""&&(b[y]=!1)}else m.attributes[p.attributeName]=transformAttribute(this.doc,h.tagName,p.attributeName,g);break}case"childList":{if(isBlocked(p.target,this.blockClass,this.blockSelector,!0))return;p.addedNodes.forEach(h=>this.genAdds(h,p.target)),p.removedNodes.forEach(h=>{const g=this.mirror.getId(h),m=isShadowRoot(p.target)?this.mirror.getId(p.target.host):this.mirror.getId(p.target);isBlocked(p.target,this.blockClass,this.blockSelector,!1)||isIgnored(h,this.mirror)||!isSerialized(h,this.mirror)||(this.addedSet.has(h)?(deepDelete(this.addedSet,h),this.droppedSet.add(h)):this.addedSet.has(p.target)&&g===-1||isAncestorRemoved(p.target,this.mirror)||(this.movedSet.has(h)&&this.movedMap[moveKey(g,m)]?deepDelete(this.movedSet,h):this.removes.push({parentId:m,id:g,isShadow:isShadowRoot(p.target)&&isNativeShadowDom(p.target)?!0:void 0})),this.mapRemoves.push(h))});break}}},this.genAdds=(p,h)=>{if(this.mirror.hasNode(p)){if(isIgnored(p,this.mirror))return;this.movedSet.add(p);let g=null;h&&this.mirror.hasNode(h)&&(g=this.mirror.getId(h)),g&&g!==-1&&(this.movedMap[moveKey(this.mirror.getId(p),g)]=!0)}else this.addedSet.add(p),this.droppedSet.delete(p);isBlocked(p,this.blockClass,this.blockSelector,!1)||p.childNodes.forEach(g=>this.genAdds(g))}}init(p){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager"].forEach(h=>{this[h]=p[h]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function deepDelete(d,p){d.delete(p),p.childNodes.forEach(h=>deepDelete(d,h))}function isParentRemoved(d,p,h){return d.length===0?!1:_isParentRemoved(d,p,h)}function _isParentRemoved(d,p,h){const{parentNode:g}=p;if(!g)return!1;const m=h.getId(g);return d.some(_=>_.id===m)?!0:_isParentRemoved(d,g,h)}function isAncestorInSet(d,p){return d.size===0?!1:_isAncestorInSet(d,p)}function _isAncestorInSet(d,p){const{parentNode:h}=p;return h?d.has(h)?!0:_isAncestorInSet(d,h):!1}const mutationBuffers=[],isCSSGroupingRuleSupported=typeof CSSGroupingRule<"u",isCSSMediaRuleSupported=typeof CSSMediaRule<"u",isCSSSupportsRuleSupported=typeof CSSSupportsRule<"u",isCSSConditionRuleSupported=typeof CSSConditionRule<"u";function getEventTarget(d){try{if("composedPath"in d){const p=d.composedPath();if(p.length)return p[0]}else if("path"in d&&d.path.length)return d.path[0];return d.target}catch{return d.target}}function initMutationObserver(d,p){var h,g;const m=new MutationBuffer;mutationBuffers.push(m),m.init(d);let _=window.MutationObserver||window.__rrMutationObserver;const b=(g=(h=window==null?void 0:window.Zone)===null||h===void 0?void 0:h.__symbol__)===null||g===void 0?void 0:g.call(h,"MutationObserver");b&&window[b]&&(_=window[b]);const y=new _(m.processMutations.bind(m));return y.observe(p,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),y}function initMoveObserver({mousemoveCb:d,sampling:p,doc:h,mirror:g}){if(p.mousemove===!1)return()=>{};const m=typeof p.mousemove=="number"?p.mousemove:50,_=typeof p.mousemoveCallback=="number"?p.mousemoveCallback:500;let b=[],y;const w=throttle(k=>{const S=Date.now()-y;d(b.map(I=>(I.timeOffset-=S,I)),k),b=[],y=null},_),x=throttle(k=>{const S=getEventTarget(k),{clientX:I,clientY:A}=isTouchEvent(k)?k.changedTouches[0]:k;y||(y=Date.now()),b.push({x:I,y:A,id:g.getId(S),timeOffset:Date.now()-y}),w(typeof DragEvent<"u"&&k instanceof DragEvent?IncrementalSource.Drag:k instanceof MouseEvent?IncrementalSource.MouseMove:IncrementalSource.TouchMove)},m,{trailing:!1}),E=[on("mousemove",x,h),on("touchmove",x,h),on("drag",x,h)];return()=>{E.forEach(k=>k())}}function initMouseInteractionObserver({mouseInteractionCb:d,doc:p,mirror:h,blockClass:g,blockSelector:m,sampling:_}){if(_.mouseInteraction===!1)return()=>{};const b=_.mouseInteraction===!0||_.mouseInteraction===void 0?{}:_.mouseInteraction,y=[],w=x=>E=>{const k=getEventTarget(E);if(isBlocked(k,g,m,!0))return;const S=isTouchEvent(E)?E.changedTouches[0]:E;if(!S)return;const I=h.getId(k),{clientX:A,clientY:M}=S;d({type:MouseInteractions[x],id:I,x:A,y:M})};return Object.keys(MouseInteractions).filter(x=>Number.isNaN(Number(x))&&!x.endsWith("_Departed")&&b[x]!==!1).forEach(x=>{const E=x.toLowerCase(),k=w(x);y.push(on(E,k,p))}),()=>{y.forEach(x=>x())}}function initScrollObserver({scrollCb:d,doc:p,mirror:h,blockClass:g,blockSelector:m,sampling:_}){const b=throttle(y=>{const w=getEventTarget(y);if(!w||isBlocked(w,g,m,!0))return;const x=h.getId(w);if(w===p){const E=p.scrollingElement||p.documentElement;d({id:x,x:E.scrollLeft,y:E.scrollTop})}else d({id:x,x:w.scrollLeft,y:w.scrollTop})},_.scroll||100);return on("scroll",b,p)}function initViewportResizeObserver({viewportResizeCb:d}){let p=-1,h=-1;const g=throttle(()=>{const m=getWindowHeight(),_=getWindowWidth();(p!==m||h!==_)&&(d({width:Number(_),height:Number(m)}),p=m,h=_)},200);return on("resize",g,window)}function wrapEventWithUserTriggeredFlag(d,p){const h=Object.assign({},d);return p||delete h.userTriggered,h}const INPUT_TAGS=["INPUT","TEXTAREA","SELECT"],lastInputValueMap=new WeakMap;function initInputObserver({inputCb:d,doc:p,mirror:h,blockClass:g,blockSelector:m,ignoreClass:_,maskInputOptions:b,maskInputFn:y,sampling:w,userTriggeredOnInput:x}){function E(C){let $=getEventTarget(C);const N=C.isTrusted;if($&&$.tagName==="OPTION"&&($=$.parentElement),!$||!$.tagName||INPUT_TAGS.indexOf($.tagName)<0||isBlocked($,g,m,!0))return;const O=$.type;if($.classList.contains(_))return;let F=$.value,W=!1;O==="radio"||O==="checkbox"?W=$.checked:(b[$.tagName.toLowerCase()]||b[O])&&(F=maskInputValue({maskInputOptions:b,tagName:$.tagName,type:O,value:F,maskInputFn:y})),k($,wrapEventWithUserTriggeredFlag({text:F,isChecked:W,userTriggered:N},x));const V=$.name;O==="radio"&&V&&W&&p.querySelectorAll(`input[type="radio"][name="${V}"]`).forEach(q=>{q!==$&&k(q,wrapEventWithUserTriggeredFlag({text:q.value,isChecked:!W,userTriggered:!1},x))})}function k(C,$){const N=lastInputValueMap.get(C);if(!N||N.text!==$.text||N.isChecked!==$.isChecked){lastInputValueMap.set(C,$);const O=h.getId(C);d(Object.assign(Object.assign({},$),{id:O}))}}const I=(w.input==="last"?["change"]:["input","change"]).map(C=>on(C,E,p)),A=p.defaultView;if(!A)return()=>{I.forEach(C=>C())};const M=A.Object.getOwnPropertyDescriptor(A.HTMLInputElement.prototype,"value"),R=[[A.HTMLInputElement.prototype,"value"],[A.HTMLInputElement.prototype,"checked"],[A.HTMLSelectElement.prototype,"value"],[A.HTMLTextAreaElement.prototype,"value"],[A.HTMLSelectElement.prototype,"selectedIndex"],[A.HTMLOptionElement.prototype,"selected"]];return M&&M.set&&I.push(...R.map(C=>hookSetter(C[0],C[1],{set(){E({target:this})}},!1,A))),()=>{I.forEach(C=>C())}}function getNestedCSSRulePositions(d){const p=[];function h(g,m){if(isCSSGroupingRuleSupported&&g.parentRule instanceof CSSGroupingRule||isCSSMediaRuleSupported&&g.parentRule instanceof CSSMediaRule||isCSSSupportsRuleSupported&&g.parentRule instanceof CSSSupportsRule||isCSSConditionRuleSupported&&g.parentRule instanceof CSSConditionRule){const b=Array.from(g.parentRule.cssRules).indexOf(g);m.unshift(b)}else if(g.parentStyleSheet){const b=Array.from(g.parentStyleSheet.cssRules).indexOf(g);m.unshift(b)}return m}return h(d,p)}function getIdAndStyleId(d,p,h){let g,m;return d?(d.ownerNode?g=p.getId(d.ownerNode):m=h.getId(d),{styleId:m,id:g}):{}}function initStyleSheetObserver({styleSheetRuleCb:d,mirror:p,stylesheetManager:h},{win:g}){const m=g.CSSStyleSheet.prototype.insertRule;g.CSSStyleSheet.prototype.insertRule=function(E,k){const{id:S,styleId:I}=getIdAndStyleId(this,p,h.styleMirror);return(S&&S!==-1||I&&I!==-1)&&d({id:S,styleId:I,adds:[{rule:E,index:k}]}),m.apply(this,[E,k])};const _=g.CSSStyleSheet.prototype.deleteRule;g.CSSStyleSheet.prototype.deleteRule=function(E){const{id:k,styleId:S}=getIdAndStyleId(this,p,h.styleMirror);return(k&&k!==-1||S&&S!==-1)&&d({id:k,styleId:S,removes:[{index:E}]}),_.apply(this,[E])};let b;g.CSSStyleSheet.prototype.replace&&(b=g.CSSStyleSheet.prototype.replace,g.CSSStyleSheet.prototype.replace=function(E){const{id:k,styleId:S}=getIdAndStyleId(this,p,h.styleMirror);return(k&&k!==-1||S&&S!==-1)&&d({id:k,styleId:S,replace:E}),b.apply(this,[E])});let y;g.CSSStyleSheet.prototype.replaceSync&&(y=g.CSSStyleSheet.prototype.replaceSync,g.CSSStyleSheet.prototype.replaceSync=function(E){const{id:k,styleId:S}=getIdAndStyleId(this,p,h.styleMirror);return(k&&k!==-1||S&&S!==-1)&&d({id:k,styleId:S,replaceSync:E}),y.apply(this,[E])});const w={};isCSSGroupingRuleSupported?w.CSSGroupingRule=g.CSSGroupingRule:(isCSSMediaRuleSupported&&(w.CSSMediaRule=g.CSSMediaRule),isCSSConditionRuleSupported&&(w.CSSConditionRule=g.CSSConditionRule),isCSSSupportsRuleSupported&&(w.CSSSupportsRule=g.CSSSupportsRule));const x={};return Object.entries(w).forEach(([E,k])=>{x[E]={insertRule:k.prototype.insertRule,deleteRule:k.prototype.deleteRule},k.prototype.insertRule=function(S,I){const{id:A,styleId:M}=getIdAndStyleId(this.parentStyleSheet,p,h.styleMirror);return(A&&A!==-1||M&&M!==-1)&&d({id:A,styleId:M,adds:[{rule:S,index:[...getNestedCSSRulePositions(this),I||0]}]}),x[E].insertRule.apply(this,[S,I])},k.prototype.deleteRule=function(S){const{id:I,styleId:A}=getIdAndStyleId(this.parentStyleSheet,p,h.styleMirror);return(I&&I!==-1||A&&A!==-1)&&d({id:I,styleId:A,removes:[{index:[...getNestedCSSRulePositions(this),S]}]}),x[E].deleteRule.apply(this,[S])}}),()=>{g.CSSStyleSheet.prototype.insertRule=m,g.CSSStyleSheet.prototype.deleteRule=_,b&&(g.CSSStyleSheet.prototype.replace=b),y&&(g.CSSStyleSheet.prototype.replaceSync=y),Object.entries(w).forEach(([E,k])=>{k.prototype.insertRule=x[E].insertRule,k.prototype.deleteRule=x[E].deleteRule})}}function initAdoptedStyleSheetObserver({mirror:d,stylesheetManager:p},h){var g,m,_;let b=null;h.nodeName==="#document"?b=d.getId(h):b=d.getId(h.host);const y=h.nodeName==="#document"?(g=h.defaultView)===null||g===void 0?void 0:g.Document:(_=(m=h.ownerDocument)===null||m===void 0?void 0:m.defaultView)===null||_===void 0?void 0:_.ShadowRoot,w=Object.getOwnPropertyDescriptor(y==null?void 0:y.prototype,"adoptedStyleSheets");return b===null||b===-1||!y||!w?()=>{}:(Object.defineProperty(h,"adoptedStyleSheets",{configurable:w.configurable,enumerable:w.enumerable,get(){var x;return(x=w.get)===null||x===void 0?void 0:x.call(this)},set(x){var E;const k=(E=w.set)===null||E===void 0?void 0:E.call(this,x);if(b!==null&&b!==-1)try{p.adoptStyleSheets(x,b)}catch{}return k}}),()=>{Object.defineProperty(h,"adoptedStyleSheets",{configurable:w.configurable,enumerable:w.enumerable,get:w.get,set:w.set})})}function initStyleDeclarationObserver({styleDeclarationCb:d,mirror:p,ignoreCSSAttributes:h,stylesheetManager:g},{win:m}){const _=m.CSSStyleDeclaration.prototype.setProperty;m.CSSStyleDeclaration.prototype.setProperty=function(y,w,x){var E;if(h.has(y))return _.apply(this,[y,w,x]);const{id:k,styleId:S}=getIdAndStyleId((E=this.parentRule)===null||E===void 0?void 0:E.parentStyleSheet,p,g.styleMirror);return(k&&k!==-1||S&&S!==-1)&&d({id:k,styleId:S,set:{property:y,value:w,priority:x},index:getNestedCSSRulePositions(this.parentRule)}),_.apply(this,[y,w,x])};const b=m.CSSStyleDeclaration.prototype.removeProperty;return m.CSSStyleDeclaration.prototype.removeProperty=function(y){var w;if(h.has(y))return b.apply(this,[y]);const{id:x,styleId:E}=getIdAndStyleId((w=this.parentRule)===null||w===void 0?void 0:w.parentStyleSheet,p,g.styleMirror);return(x&&x!==-1||E&&E!==-1)&&d({id:x,styleId:E,remove:{property:y},index:getNestedCSSRulePositions(this.parentRule)}),b.apply(this,[y])},()=>{m.CSSStyleDeclaration.prototype.setProperty=_,m.CSSStyleDeclaration.prototype.removeProperty=b}}function initMediaInteractionObserver({mediaInteractionCb:d,blockClass:p,blockSelector:h,mirror:g,sampling:m}){const _=y=>throttle(w=>{const x=getEventTarget(w);if(!x||isBlocked(x,p,h,!0))return;const{currentTime:E,volume:k,muted:S,playbackRate:I}=x;d({type:y,id:g.getId(x),currentTime:E,volume:k,muted:S,playbackRate:I})},m.media||500),b=[on("play",_(0)),on("pause",_(1)),on("seeked",_(2)),on("volumechange",_(3)),on("ratechange",_(4))];return()=>{b.forEach(y=>y())}}function initFontObserver({fontCb:d,doc:p}){const h=p.defaultView;if(!h)return()=>{};const g=[],m=new WeakMap,_=h.FontFace;h.FontFace=function(w,x,E){const k=new _(w,x,E);return m.set(k,{family:w,buffer:typeof x!="string",descriptors:E,fontSource:typeof x=="string"?x:JSON.stringify(Array.from(new Uint8Array(x)))}),k};const b=patch(p.fonts,"add",function(y){return function(w){return setTimeout(()=>{const x=m.get(w);x&&(d(x),m.delete(w))},0),y.apply(this,[w])}});return g.push(()=>{h.FontFace=_}),g.push(b),()=>{g.forEach(y=>y())}}function initSelectionObserver(d){const{doc:p,mirror:h,blockClass:g,blockSelector:m,selectionCb:_}=d;let b=!0;const y=()=>{const w=p.getSelection();if(!w||b&&(w!=null&&w.isCollapsed))return;b=w.isCollapsed||!1;const x=[],E=w.rangeCount||0;for(let k=0;k<E;k++){const S=w.getRangeAt(k),{startContainer:I,startOffset:A,endContainer:M,endOffset:R}=S;isBlocked(I,g,m,!0)||isBlocked(M,g,m,!0)||x.push({start:h.getId(I),startOffset:A,end:h.getId(M),endOffset:R})}_({ranges:x})};return y(),on("selectionchange",y)}function mergeHooks(d,p){const{mutationCb:h,mousemoveCb:g,mouseInteractionCb:m,scrollCb:_,viewportResizeCb:b,inputCb:y,mediaInteractionCb:w,styleSheetRuleCb:x,styleDeclarationCb:E,canvasMutationCb:k,fontCb:S,selectionCb:I}=d;d.mutationCb=(...A)=>{p.mutation&&p.mutation(...A),h(...A)},d.mousemoveCb=(...A)=>{p.mousemove&&p.mousemove(...A),g(...A)},d.mouseInteractionCb=(...A)=>{p.mouseInteraction&&p.mouseInteraction(...A),m(...A)},d.scrollCb=(...A)=>{p.scroll&&p.scroll(...A),_(...A)},d.viewportResizeCb=(...A)=>{p.viewportResize&&p.viewportResize(...A),b(...A)},d.inputCb=(...A)=>{p.input&&p.input(...A),y(...A)},d.mediaInteractionCb=(...A)=>{p.mediaInteaction&&p.mediaInteaction(...A),w(...A)},d.styleSheetRuleCb=(...A)=>{p.styleSheetRule&&p.styleSheetRule(...A),x(...A)},d.styleDeclarationCb=(...A)=>{p.styleDeclaration&&p.styleDeclaration(...A),E(...A)},d.canvasMutationCb=(...A)=>{p.canvasMutation&&p.canvasMutation(...A),k(...A)},d.fontCb=(...A)=>{p.font&&p.font(...A),S(...A)},d.selectionCb=(...A)=>{p.selection&&p.selection(...A),I(...A)}}function initObservers(d,p={}){const h=d.doc.defaultView;if(!h)return()=>{};mergeHooks(d,p);const g=initMutationObserver(d,d.doc),m=initMoveObserver(d),_=initMouseInteractionObserver(d),b=initScrollObserver(d),y=initViewportResizeObserver(d),w=initInputObserver(d),x=initMediaInteractionObserver(d),E=initStyleSheetObserver(d,{win:h}),k=initAdoptedStyleSheetObserver(d,d.doc),S=initStyleDeclarationObserver(d,{win:h}),I=d.collectFonts?initFontObserver(d):()=>{},A=initSelectionObserver(d),M=[];for(const R of d.plugins)M.push(R.observer(R.callback,h,R.options));return()=>{mutationBuffers.forEach(R=>R.reset()),g.disconnect(),m(),_(),b(),y(),w(),x(),E(),k(),S(),I(),A(),M.forEach(R=>R())}}class CrossOriginIframeMirror{constructor(p){this.generateIdFn=p,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(p,h,g,m){const _=g||this.getIdToRemoteIdMap(p),b=m||this.getRemoteIdToIdMap(p);let y=_.get(h);return y||(y=this.generateIdFn(),_.set(h,y),b.set(y,h)),y}getIds(p,h){const g=this.getIdToRemoteIdMap(p),m=this.getRemoteIdToIdMap(p);return h.map(_=>this.getId(p,_,g,m))}getRemoteId(p,h,g){const m=g||this.getRemoteIdToIdMap(p);if(typeof h!="number")return h;const _=m.get(h);return _||-1}getRemoteIds(p,h){const g=this.getRemoteIdToIdMap(p);return h.map(m=>this.getRemoteId(p,m,g))}reset(p){if(!p){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(p),this.iframeRemoteIdToIdMap.delete(p)}getIdToRemoteIdMap(p){let h=this.iframeIdToRemoteIdMap.get(p);return h||(h=new Map,this.iframeIdToRemoteIdMap.set(p,h)),h}getRemoteIdToIdMap(p){let h=this.iframeRemoteIdToIdMap.get(p);return h||(h=new Map,this.iframeRemoteIdToIdMap.set(p,h)),h}}class IframeManager{constructor(p){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new CrossOriginIframeMirror(genId),this.mutationCb=p.mutationCb,this.wrappedEmit=p.wrappedEmit,this.stylesheetManager=p.stylesheetManager,this.recordCrossOriginIframes=p.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=p.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(p){this.iframes.set(p,!0),p.contentWindow&&this.crossOriginIframeMap.set(p.contentWindow,p)}addLoadListener(p){this.loadListener=p}attachIframe(p,h){var g;this.mutationCb({adds:[{parentId:this.mirror.getId(p),nextId:null,node:h}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),(g=this.loadListener)===null||g===void 0||g.call(this,p),p.contentDocument&&p.contentDocument.adoptedStyleSheets&&p.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(p.contentDocument.adoptedStyleSheets,this.mirror.getId(p.contentDocument))}handleMessage(p){if(p.data.type==="rrweb"){if(!p.source)return;const g=this.crossOriginIframeMap.get(p.source);if(!g)return;const m=this.transformCrossOriginEvent(g,p.data.event);m&&this.wrappedEmit(m,p.data.isCheckout)}}transformCrossOriginEvent(p,h){var g;switch(h.type){case EventType.FullSnapshot:return this.crossOriginIframeMirror.reset(p),this.crossOriginIframeStyleMirror.reset(p),this.replaceIdOnNode(h.data.node,p),{timestamp:h.timestamp,type:EventType.IncrementalSnapshot,data:{source:IncrementalSource.Mutation,adds:[{parentId:this.mirror.getId(p),nextId:null,node:h.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}};case EventType.Meta:case EventType.Load:case EventType.DomContentLoaded:return!1;case EventType.Plugin:return h;case EventType.Custom:return this.replaceIds(h.data.payload,p,["id","parentId","previousId","nextId"]),h;case EventType.IncrementalSnapshot:switch(h.data.source){case IncrementalSource.Mutation:return h.data.adds.forEach(m=>{this.replaceIds(m,p,["parentId","nextId","previousId"]),this.replaceIdOnNode(m.node,p)}),h.data.removes.forEach(m=>{this.replaceIds(m,p,["parentId","id"])}),h.data.attributes.forEach(m=>{this.replaceIds(m,p,["id"])}),h.data.texts.forEach(m=>{this.replaceIds(m,p,["id"])}),h;case IncrementalSource.Drag:case IncrementalSource.TouchMove:case IncrementalSource.MouseMove:return h.data.positions.forEach(m=>{this.replaceIds(m,p,["id"])}),h;case IncrementalSource.ViewportResize:return!1;case IncrementalSource.MediaInteraction:case IncrementalSource.MouseInteraction:case IncrementalSource.Scroll:case IncrementalSource.CanvasMutation:case IncrementalSource.Input:return this.replaceIds(h.data,p,["id"]),h;case IncrementalSource.StyleSheetRule:case IncrementalSource.StyleDeclaration:return this.replaceIds(h.data,p,["id"]),this.replaceStyleIds(h.data,p,["styleId"]),h;case IncrementalSource.Font:return h;case IncrementalSource.Selection:return h.data.ranges.forEach(m=>{this.replaceIds(m,p,["start","end"])}),h;case IncrementalSource.AdoptedStyleSheet:return this.replaceIds(h.data,p,["id"]),this.replaceStyleIds(h.data,p,["styleIds"]),(g=h.data.styles)===null||g===void 0||g.forEach(m=>{this.replaceStyleIds(m,p,["styleId"])}),h}}}replace(p,h,g,m){for(const _ of m)!Array.isArray(h[_])&&typeof h[_]!="number"||(Array.isArray(h[_])?h[_]=p.getIds(g,h[_]):h[_]=p.getId(g,h[_]));return h}replaceIds(p,h,g){return this.replace(this.crossOriginIframeMirror,p,h,g)}replaceStyleIds(p,h,g){return this.replace(this.crossOriginIframeStyleMirror,p,h,g)}replaceIdOnNode(p,h){this.replaceIds(p,h,["id"]),"childNodes"in p&&p.childNodes.forEach(g=>{this.replaceIdOnNode(g,h)})}}class ShadowDomManager{constructor(p){this.shadowDoms=new WeakSet,this.restorePatches=[],this.mutationCb=p.mutationCb,this.scrollCb=p.scrollCb,this.bypassOptions=p.bypassOptions,this.mirror=p.mirror;const h=this;this.restorePatches.push(patch(Element.prototype,"attachShadow",function(g){return function(m){const _=g.call(this,m);return this.shadowRoot&&h.addShadowRoot(this.shadowRoot,this.ownerDocument),_}}))}addShadowRoot(p,h){isNativeShadowDom(p)&&(this.shadowDoms.has(p)||(this.shadowDoms.add(p),initMutationObserver(Object.assign(Object.assign({},this.bypassOptions),{doc:h,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),p),initScrollObserver(Object.assign(Object.assign({},this.bypassOptions),{scrollCb:this.scrollCb,doc:p,mirror:this.mirror})),setTimeout(()=>{p.adoptedStyleSheets&&p.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(p.adoptedStyleSheets,this.mirror.getId(p.host)),initAdoptedStyleSheetObserver({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},p)},0)))}observeAttachShadow(p){if(p.contentWindow){const h=this;this.restorePatches.push(patch(p.contentWindow.HTMLElement.prototype,"attachShadow",function(g){return function(m){const _=g.call(this,m);return this.shadowRoot&&h.addShadowRoot(this.shadowRoot,p.contentDocument),_}}))}}reset(){this.restorePatches.forEach(p=>p()),this.shadowDoms=new WeakSet}}/*! *****************************************************************************
|
|
@@ -443,7 +443,7 @@ Parameters: ${m}`,inputSchema:record(string(),any()),async execute(_){try{const
|
|
|
443
443
|
@keyframes svelte-nv4d5v-voice-spin { to { transform: rotate(360deg); } }.voice-spinner.svelte-nv4d5v {width:16px;height:16px;border:2px solid #374151;border-top-color:#60a5fa;border-radius:50%;
|
|
444
444
|
animation: svelte-nv4d5v-voice-spin 0.7s linear infinite;flex-shrink:0;}.voice-status-text.svelte-nv4d5v {font-size:12px;color:#9ca3af;margin:0;}.voice-done.svelte-nv4d5v {color:#22c55e;}.voice-done-text.svelte-nv4d5v {color:#22c55e !important;font-weight:500;}.voice-error-icon.svelte-nv4d5v {width:36px;height:36px;border-radius:50%;background:#991b1b;color:white;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;}.voice-error-text.svelte-nv4d5v {color:#f87171 !important;}.voice-reset.svelte-nv4d5v {font-size:12px;color:#60a5fa;background:transparent;border:none;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0;}.voice-footer.svelte-nv4d5v {font-size:11px;color:#4b5563;margin:0;line-height:1.5;}.voice-footer.svelte-nv4d5v strong:where(.svelte-nv4d5v) {color:#6b7280;}
|
|
445
445
|
|
|
446
|
-
/* Voice confirmation UI */.voice-confirm.svelte-nv4d5v {display:flex;flex-direction:column;gap:0.75rem;width:100%;text-align:left;}.voice-confirm-hint.svelte-nv4d5v {font-size:12px;color:#9ca3af;margin:0;line-height:1.4;}.voice-confirm-field.svelte-nv4d5v {display:flex;flex-direction:column;gap:0.25rem;}.voice-confirm-label.svelte-nv4d5v {font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.04em;}.voice-confirm-input.svelte-nv4d5v {width:100%;background:#1f2937;border:1px solid #374151;border-radius:6px;color:#e5e7eb;font-size:13px;font-family:inherit;padding:0.5rem 0.625rem;box-sizing:border-box;outline:none;transition:border-color 0.15s;}.voice-confirm-input.svelte-nv4d5v:focus {border-color:#4b6cf7;}.voice-confirm-textarea.svelte-nv4d5v {width:100%;background:#1f2937;border:1px solid #374151;border-radius:6px;color:#e5e7eb;font-size:13px;font-family:inherit;padding:0.5rem 0.625rem;box-sizing:border-box;resize:vertical;outline:none;transition:border-color 0.15s;min-height:80px;}.voice-confirm-textarea.svelte-nv4d5v:focus {border-color:#4b6cf7;}.voice-confirm-actions.svelte-nv4d5v {display:flex;align-items:center;justify-content:space-between;margin-top:0.25rem;}.voice-btn-submit.svelte-nv4d5v {background:#1d4ed8;color:white;padding:0.5rem 1.125rem;font-size:13px;}.voice-btn-submit.svelte-nv4d5v:hover:not(:disabled) {background:#2563eb;}.voice-btn-submit.svelte-nv4d5v:disabled {opacity:0.45;cursor:not-allowed;}.voice-task-nav.svelte-nv4d5v {display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;}.voice-task-dots.svelte-nv4d5v {display:flex;gap:5px;align-items:center;}.voice-task-dot.svelte-nv4d5v {width:7px;height:7px;border-radius:50%;background:#374151;transition:background 0.2s;}.voice-task-dot-active.svelte-nv4d5v {background:#1d4ed8;width:8px;height:8px;}.voice-task-counter.svelte-nv4d5v {font-size:11px;color:#6b7280;font-weight:500;letter-spacing:0.02em;}.voice-btn-skip.svelte-nv4d5v {background:transparent;color:#6b7280;border:1px solid #374151;padding:0.5rem 0.875rem;font-size:13px;}.voice-btn-skip.svelte-nv4d5v:hover {color:#9ca3af;border-color:#4b5563;}`};function FeedbackPanel(d,p){push(p,!0),append_styles(d,$$css$1);const h="3.4.2";let g=prop(p,"endpoint",7),m=prop(p,"project",7),_=prop(p,"isOpen",7,!1),b=prop(p,"userId",7,""),y=prop(p,"userEmail",7,""),w=prop(p,"userName",7,""),x=prop(p,"userRole",7,""),E=prop(p,"orgId",7,""),k=prop(p,"orgName",7,""),S=prop(p,"onclose",7),I=prop(p,"ongrip",7),A=prop(p,"agentProxy",7,""),M=prop(p,"agentModel",7,""),R=prop(p,"agentContext",7,""),C=prop(p,"registeredTools",23,()=>[]),$=prop(p,"supabaseUrl",7,""),N=prop(p,"supabaseAnonKey",7,""),O=state("new"),F=state(!1),W=state(!1),V=state(!1),q=state(proxy([]));function pe(){if(get(V)){const P=stopRecording();set(q,P,!0),set(V,!1),yt(`Session recorded (${P.length} events)`,"success")}else startRecording(),set(q,[],!0),set(V,!0),yt("Recording session...","info")}let te=state("idle"),ae=state(""),ie=state(null),ke=[],ce=state(null),Se=state(""),we=state(""),oe=state(proxy([])),ve=state(0),T=null,z=null,D=null;function Z(){if(T&&(clearTimeout(T),T=null),z){try{z.close()}catch{}z=null}D&&(clearInterval(D),D=null)}function G(P){Z(),set(oe,P.filter(X=>X.title||X.description),!0),get(oe).length===0&&set(oe,[{title:"",description:""}],!0),set(ve,0),set(Se,get(oe)[0].title||"",!0),set(we,get(oe)[0].description||"",!0),set(te,"confirming"),set(ae,"")}function se(P="Transcription failed. Try again."){Z(),set(te,"error"),set(ae,P,!0)}function be(){set(oe,get(oe).map((P,X)=>X===get(ve)?{title:get(Se),description:get(we)}:P),!0),get(ve)<get(oe).length-1?(update(ve),set(Se,get(oe)[get(ve)].title||"",!0),set(we,get(oe)[get(ve)].description||"",!0),set(te,"confirming")):(set(te,"submitted"),set(ae,""),setTimeout(()=>{set(O,"requests"),We()},1500))}function B(){get(ve)<get(oe).length-1?(update(ve),set(Se,get(oe)[get(ve)].title||"",!0),set(we,get(oe)[get(ve)].description||"",!0)):le()}function J(P){const Ie=$().replace(/\/$/,"").replace(/^https/,"wss").replace(/^http/,"ws")+`/realtime/v1/websocket?apikey=${N()}&vsn=1.0.0`;let ue,xe=null,Oe=1;function Ve(){return String(Oe++)}try{ue=new WebSocket(Ie)}catch{de(P);return}z=ue,ue.onopen=()=>{const gt=Ve();ue.send(JSON.stringify({topic:"realtime:*",event:"phx_join",payload:{config:{broadcast:{self:!1},presence:{key:""},postgres_changes:[{event:"UPDATE",schema:"public",table:"project_tasks",filter:`id=eq.${P}`}]},access_token:N()},ref:gt,join_ref:gt})),xe=setInterval(()=>{ue.readyState===WebSocket.OPEN&&ue.send(JSON.stringify({topic:"phoenix",event:"heartbeat",payload:{},ref:Ve()}))},3e4)},ue.onmessage=async gt=>{var bn;let xt;try{xt=JSON.parse(gt.data)}catch{return}if(xt.event==="postgres_changes"&&((bn=xt.payload)!=null&&bn.data)){const{type:Yt,record:Be}=xt.payload.data;if(Yt==="UPDATE"&&Be)if(Be.status==="open")xe&&clearInterval(xe),G([{title:Be.title||"",description:Be.description||""}]);else if(Be.status==="voice_split"){xe&&clearInterval(xe);try{const Ke=JSON.parse(Be.description||"{}").taskIds||[];if(Ke.length>0){const pt=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=in.(${Ke.join(",")})&select=id,title,description&order=created_at`,Zt=await fetch(pt,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});if(Zt.ok){const In=await Zt.json();G(In.map(Qn=>({title:Qn.title||"",description:Qn.description||""})));return}}}catch{}G([{title:Be.title||"",description:""}])}else Be.status==="failed"&&(xe&&clearInterval(xe),se("Transcription failed. Try again."))}},ue.onerror=()=>{xe&&clearInterval(xe),z=null,de(P)},ue.onclose=()=>{xe&&clearInterval(xe)}}function de(P){D||(D=setInterval(async()=>{try{let X=null,Ie="",ue="",xe=[];if($()&&N()){const Oe=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=eq.${P}&select=id,status,title,description`,Ve=await fetch(Oe,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});if(Ve.ok){const gt=await Ve.json();if(Array.isArray(gt)&>.length>0&&(X=gt[0].status,Ie=gt[0].title||"",ue=gt[0].description||"",X==="voice_split"))try{const xt=JSON.parse(ue||"{}").taskIds||[];if(xt.length>0){const bn=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=in.(${xt.join(",")})&select=id,title,description&order=created_at`,Yt=await fetch(bn,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});Yt.ok&&(xe=(await Yt.json()).map(Ke=>({title:Ke.title||"",description:Ke.description||""})))}}catch{}}}else{const Oe=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice?id=${encodeURIComponent(P)}`);if(Oe.ok){const Ve=await Oe.json();X=Ve.status,Array.isArray(Ve.tasks)&&Ve.tasks.length>0?xe=Ve.tasks:(Ie=Ve.title||"",ue=Ve.description||"")}}if(X==="open"||X==="voice_split"){clearInterval(D),D=null;const Oe=xe.length>0?xe:[{title:Ie,description:ue}];G(Oe)}else X==="failed"&&(clearInterval(D),D=null,se("Transcription failed. Try again."))}catch{}},3e3))}function re(P){T=setTimeout(()=>{Z(),set(te,"error"),set(ae,"Transcription timed out (30s). Try again.")},3e4),$()&&N()?J(P):de(P)}async function me(){var P;try{const X=await navigator.mediaDevices.getUserMedia({audio:!0}),Ie=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":"audio/ogg",ue=new MediaRecorder(X,{mimeType:Ie});ke=[],ue.ondataavailable=xe=>{xe.data.size>0&&ke.push(xe.data)},ue.onstop=()=>{X.getTracks().forEach(xe=>xe.stop()),K(new Blob(ke,{type:Ie}),Ie)},ue.start(500),set(ie,ue,!0),set(te,"recording"),set(ae,"")}catch(X){set(te,"error"),set(ae,(P=X.message)!=null&&P.includes("Permission")?"Microphone permission denied":"Could not start recording",!0)}}function j(){get(ie)&&get(ie).state!=="inactive"&&get(ie).stop(),set(ie,null),set(te,"uploading"),set(ae,"")}async function K(P,X){set(te,"uploading");try{const Ie=X.includes("webm")?"webm":X.includes("ogg")?"ogg":"audio",ue=new FormData;ue.append("audio",P,`voice-note.${Ie}`),m()&&ue.append("project",m()),b()&&ue.append("user_id",b());const xe=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice`,{method:"POST",body:ue});if(xe.ok){const Ve=(await xe.json()).id;if(!Ve)throw new Error("No task ID returned from server");set(ce,Ve,!0),set(te,"transcribing"),set(ae,""),re(Ve)}else{const Oe=await xe.json().catch(()=>({}));throw new Error(Oe.error||Oe.message||`Upload failed (${xe.status})`)}}catch(Ie){set(te,"error"),set(ae,Ie.message||"Failed to upload recording",!0)}finally{ke=[]}}async function he(){if(get(ce)){set(te,"uploading"),set(ae,"");try{if($()&&N()){const P=await fetch(`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=eq.${get(ce)}`,{method:"PATCH",headers:{apikey:N(),Authorization:`Bearer ${N()}`,"Content-Type":"application/json",Prefer:"return=minimal"},body:JSON.stringify({title:get(Se),description:get(we),status:"submitted"})});if(!P.ok)throw new Error(`HTTP ${P.status}`)}else{const P=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice?id=${encodeURIComponent(get(ce))}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:get(Se),description:get(we),status:"submitted"})});if(!P.ok){const X=await P.json().catch(()=>({}));throw new Error(X.error||`HTTP ${P.status}`)}}be()}catch(P){set(te,"confirming"),set(ae,P.message||"Failed to submit. Please try again.",!0)}}}function le(){Z(),get(ie)&&get(ie).state!=="inactive"&&get(ie).stop(),set(ie,null),set(te,"idle"),set(ae,""),ke=[],set(ce,null),set(Se,""),set(we,""),set(oe,[],!0),set(ve,0)}let Ae=state(proxy([])),Fe=state("idle"),Ce=state(0),Ge=state(!1),Ee=state(null);function H(){return get(Ee)||set(Ee,new AgentBridge({proxyUrl:A(),model:M()||void 0,maxSteps:20,appContext:R()||void 0,endpoint:g(),project:m(),registeredTools:C(),onMessagesChange:P=>{set(Ae,P,!0)},onStateChange:(P,X)=>{set(Fe,P,!0),set(Ce,X,!0)}}),!0),get(Ee)}function L(){var P;(P=get(Ee))==null||P.invalidateNotesCache()}user_effect(()=>{get(O)==="agent"&&!get(F)&&set(F,!0)}),user_effect(()=>{get(O)==="notes"&&!get(W)&&set(W,!0)});function Y(P){H().execute(P)}function Q(){var P;(P=get(Ee))==null||P.stop()}function ge(P){var X;(X=get(Ee))==null||X.approve(P)}function ee(P){var X;(X=get(Ee))==null||X.skip(P)}function fe(P){set(Ge,P,!0),get(Ee)&&(get(Ee).autoApprove=P)}onDestroy(()=>{var P;(P=get(Ee))==null||P.dispose(),Z(),get(ie)&&get(ie).state!=="inactive"&&get(ie).stop()});let ye=state(proxy([])),Ze=state(!1),Te=state(""),Pe=user_derived(()=>get(ye).filter(P=>P.status==="completed").length);async function We(){set(Ze,!0),set(Te,"");const P=await fetchReports(g());set(ye,P.reports,!0),P.error&&set(Te,P.error,!0),set(Ze,!1)}user_effect(()=>{g()&&We()});let ne=state(""),tt=state(""),kt=state("bug"),He=state("medium"),Ne=state(proxy([])),it=state(proxy([])),ut=state(proxy([])),pn=state(proxy([])),Ue=state(proxy([])),qe=state(void 0);const $t=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml"];function En(){var P;(P=get(qe))==null||P.click()}async function hn(P){const X=P.target,Ie=X.files;if(!(!Ie||Ie.length===0)){for(const ue of Ie)try{const xe=await $r(ue);$t.includes(ue.type)?(set(Ne,[...get(Ne),xe],!0),yt(`Image added: ${ue.name}`,"success")):(set(it,[...get(it),{name:ue.name,type:ue.type||"application/octet-stream",data:xe,size:ue.size}],!0),yt(`File attached: ${ue.name}`,"success"))}catch{yt(`Failed to read: ${ue.name}`,"error")}X.value=""}}function $r(P){return new Promise((X,Ie)=>{const ue=new FileReader;ue.onload=()=>X(ue.result),ue.onerror=()=>Ie(ue.error),ue.readAsDataURL(P)})}function On(P){set(it,get(it).filter((X,Ie)=>Ie!==P),!0)}function kn(P){return P<1024?`${P}B`:P<1024*1024?`${(P/1024).toFixed(1)}KB`:`${(P/(1024*1024)).toFixed(1)}MB`}let bt=state(!1),gn=state(!1),vn=state(!1),Hn=state(null),qn=state(!1),Dt=state(null),Sn=state(""),Yn=state(void 0),vr=!1;user_effect(()=>{_()&&!vr&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{var P;(P=get(Yn))==null||P.focus()})}),get(O)==="new"&&setTimeout(()=>{captureViewportQuick().then(P=>{get(Ne).length===0?set(Ne,[P],!0):set(Ne,[P,...get(Ne).slice(1)],!0)}).catch(()=>{})},300)),vr=_()});let ir=state(""),mr=state("success"),ar=state(!1);function yt(P,X){set(ir,P,!0),set(mr,X,!0),set(ar,!0),setTimeout(()=>{set(ar,!1)},3e3)}async function _r(){set(gn,!0);try{const P=await captureViewport();set(Sn,P,!0),set(Dt,get(Ne).length,!0)}catch(P){console.error("[jat-feedback] Screenshot failed:",P),yt("Screenshot failed: "+(P instanceof Error?P.message:"unknown error"),"error")}finally{set(gn,!1)}}function br(P){set(Ne,get(Ne).filter((X,Ie)=>Ie!==P),!0)}function lr(P){set(Sn,get(Ne)[P],!0),set(Dt,P,!0)}function Mr(P){get(Dt)!==null&&(get(Dt)>=get(Ne).length?(set(Ne,[...get(Ne),P],!0),yt(`Screenshot captured (${get(Ne).length})`,"success")):(set(Ne,get(Ne).map((X,Ie)=>Ie===get(Dt)?P:X),!0),yt("Screenshot updated","success"))),set(Dt,null),set(Sn,"")}function zr(){get(Dt)!==null&&get(Dt)>=get(Ne).length&&(set(Ne,[...get(Ne),get(Sn)],!0),yt(`Screenshot captured (${get(Ne).length})`,"success")),set(Dt,null),set(Sn,"")}function Or(){set(vn,!0),startElementPicker(P=>{set(ut,[...get(ut),P],!0),set(vn,!1),yt(`Element captured: <${P.tagName.toLowerCase()}>`,"success")})}function yr(){set(pn,getCapturedLogs(),!0),set(Ue,getCapturedRequests(),!0)}async function Dr(P){if(P.preventDefault(),!get(ne).trim())return;set(bt,!0),yr();const X={};if((b()||y()||w()||x())&&(X.reporter={},b()&&(X.reporter.userId=b()),y()&&(X.reporter.email=y()),w()&&(X.reporter.name=w()),x()&&(X.reporter.role=x())),(E()||k())&&(X.organization={},E()&&(X.organization.id=E()),k()&&(X.organization.name=k())),get(V)){const xe=stopRecording();set(q,xe,!0),set(V,!1)}let Ie;if(get(q).length>0){const xe=crypto.randomUUID(),Oe=await uploadRecording(g(),get(q),xe);Oe.ok&&Oe.recording_url&&(Ie=Oe.recording_url)}const ue={title:get(ne).trim(),description:get(tt).trim(),type:get(kt),priority:get(He),project:m()||"",page_url:window.location.href,user_agent:navigator.userAgent,console_logs:get(pn).length>0?get(pn):null,network_requests:get(Ue).length>0?get(Ue):null,selected_elements:get(ut).length>0?get(ut):null,recording_events:null,screenshots:get(Ne).length>0?get(Ne):null,attachments:get(it).length>0?get(it):null,metadata:Object.keys(X).length>0?X:null,recording_url:Ie||null};try{const xe=await submitReport(g(),ue);if(xe.ok){if(ue.recording_url){const Oe={recording_url:ue.recording_url,console_logs:ue.console_logs,network_requests:ue.network_requests};H().setReportContext(Oe)}set(Hn,xe.id,!0),set(qn,!!ue.recording_url),yt(`Report submitted (${xe.id})`,"success"),Me(),setTimeout(()=>{We(),set(O,"requests")},1200)}else enqueue(g(),ue),yt("Queued for retry (endpoint unreachable)","error")}catch{enqueue(g(),ue),yt("Queued for retry (endpoint unreachable)","error")}finally{set(bt,!1)}}function Me(){set(ne,""),set(tt,""),set(kt,"bug"),set(He,"medium"),set(Ne,[],!0),set(it,[],!0),set(ut,[],!0),set(pn,[],!0),set(Ue,[],!0),set(q,[],!0),get(V)&&(stopRecording(),set(V,!1))}user_effect(()=>{yr()});function Le(P){P.stopPropagation()}const nt=[{value:"bug",label:"Bug"},{value:"enhancement",label:"Enhancement"},{value:"other",label:"Other"}],wt=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"critical",label:"Critical"}];function It(){return get(Ne).length+get(it).length+get(ut).length}var ft={get endpoint(){return g()},set endpoint(P){g(P),flushSync()},get project(){return m()},set project(P){m(P),flushSync()},get isOpen(){return _()},set isOpen(P=!1){_(P),flushSync()},get userId(){return b()},set userId(P=""){b(P),flushSync()},get userEmail(){return y()},set userEmail(P=""){y(P),flushSync()},get userName(){return w()},set userName(P=""){w(P),flushSync()},get userRole(){return x()},set userRole(P=""){x(P),flushSync()},get orgId(){return E()},set orgId(P=""){E(P),flushSync()},get orgName(){return k()},set orgName(P=""){k(P),flushSync()},get onclose(){return S()},set onclose(P){S(P),flushSync()},get ongrip(){return I()},set ongrip(P){I(P),flushSync()},get agentProxy(){return A()},set agentProxy(P=""){A(P),flushSync()},get agentModel(){return M()},set agentModel(P=""){M(P),flushSync()},get agentContext(){return R()},set agentContext(P=""){R(P),flushSync()},get registeredTools(){return C()},set registeredTools(P=[]){C(P),flushSync()},get supabaseUrl(){return $()},set supabaseUrl(P=""){$(P),flushSync()},get supabaseAnonKey(){return N()},set supabaseAnonKey(P=""){N(P),flushSync()}},ot=root$1(),je=first_child(ot),ht=child(je),Ye=child(ht);{var Tt=P=>{var X=root_1$1();delegated("mousedown",X,function(...Ie){var ue;(ue=I())==null||ue.apply(this,Ie)}),append(P,X)};if_block(Ye,P=>{I()&&P(Tt)})}var Ut=sibling(Ye,2),Xe=child(Ut);let mn;var jt=sibling(Xe,2);let Cn;var _n=sibling(child(jt),2);{var Kn=P=>{var X=root_2$1(),Ie=child(X,!0);reset(X),template_effect(()=>set_text(Ie,get(Pe))),append(P,X)};if_block(_n,P=>{get(Pe)>0&&P(Kn)})}reset(jt);var Lt=sibling(jt,2);{var Xn=P=>{var X=root_3();let Ie;template_effect(()=>Ie=set_class(X,1,"tab svelte-nv4d5v",null,Ie,{active:get(O)==="agent"})),delegated("click",X,()=>{set(O,"agent"),set(F,!0)}),append(P,X)};if_block(Lt,P=>{A()&&P(Xn)})}var Dn=sibling(Lt,2);let Ln;var Jn=sibling(Dn,2);let at;reset(Ut);var St=sibling(Ut,2);reset(ht);var Wt=sibling(ht,2);{var Vt=P=>{var X=root_4(),Ie=child(X),ue=sibling(child(Ie),2);remove_input_defaults(ue),bind_this(ue,_e=>set(Yn,_e),()=>get(Yn)),reset(Ie);var xe=sibling(Ie,2),Oe=sibling(child(xe),2);remove_textarea_child(Oe),reset(xe);var Ve=sibling(xe,2),gt=child(Ve),xt=sibling(child(gt),2);each(xt,21,()=>nt,index,(_e,$e)=>{var rt=root_5(),lt=child(rt,!0);reset(rt);var st={};template_effect(()=>{set_text(lt,get($e).label),st!==(st=get($e).value)&&(rt.value=(rt.__value=get($e).value)??"")}),append(_e,rt)}),reset(xt),reset(gt);var bn=sibling(gt,2),Yt=sibling(child(bn),2);each(Yt,21,()=>wt,index,(_e,$e)=>{var rt=root_6(),lt=child(rt,!0);reset(rt);var st={};template_effect(()=>{set_text(lt,get($e).label),st!==(st=get($e).value)&&(rt.value=(rt.__value=get($e).value)??"")}),append(_e,rt)}),reset(Yt),reset(bn),reset(Ve);var Be=sibling(Ve,2),Ke=child(Be),pt=child(Ke),Zt=child(pt);{var In=_e=>{var $e=root_7();next(),append(_e,$e)},Qn=_e=>{var $e=root_8(),rt=sibling(first_child($e),2);{var lt=st=>{var vt=root_9(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(Ne).length)),append(st,vt)};if_block(rt,st=>{get(Ne).length>0&&st(lt)})}append(_e,$e)};if_block(Zt,_e=>{get(gn)?_e(In):_e(Qn,!1)})}reset(pt);var yn=sibling(pt,2),wr=sibling(child(yn),2);{var cr=_e=>{var $e=text("Click an element...");append(_e,$e)},xr=_e=>{var $e=root_11(),rt=sibling(first_child($e));{var lt=st=>{var vt=root_12(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(ut).length)),append(st,vt)};if_block(rt,st=>{get(ut).length>0&&st(lt)})}append(_e,$e)};if_block(wr,_e=>{get(vn)?_e(cr):_e(xr,!1)})}reset(yn);var wn=sibling(yn,2);let dr;var Er=child(wn);{var Lr=_e=>{var $e=root_13();next(),append(_e,$e)},er=_e=>{var $e=root_14(),rt=sibling(first_child($e),2);{var lt=st=>{var vt=root_15(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(q).length)),append(st,vt)};if_block(rt,st=>{get(q).length>0&&st(lt)})}append(_e,$e)};if_block(Er,_e=>{get(V)?_e(Lr):_e(er,!1)})}reset(wn);var Pn=sibling(wn,2),Fr=sibling(child(Pn),2);{var Pr=_e=>{var $e=root_16(),rt=child($e,!0);reset($e),template_effect(()=>set_text(rt,get(it).length)),append(_e,$e)};if_block(Fr,_e=>{get(it).length>0&&_e(Pr)})}reset(Pn);var Je=sibling(Pn,2);bind_this(Je,_e=>set(qe,_e),()=>get(qe)),reset(Ke);var Et=sibling(Ke,2);ScreenshotPreview(Et,{get screenshots(){return get(Ne)},get capturing(){return get(gn)},oncapture:_r,onremove:br,onedit:lr}),reset(Be);var Tn=sibling(Be,2);{var kr=_e=>{var $e=root_17();each($e,21,()=>get(it),index,(rt,lt,st)=>{var vt=root_18(),Mt=child(vt),Wr=child(Mt);{var ur=Kt=>{var pr=root_19();append(Kt,pr)},Vr=user_derived(()=>get(lt).type.includes("pdf")),Gr=Kt=>{var pr=root_20();append(Kt,pr)},Zn=user_derived(()=>get(lt).type.includes("markdown")||get(lt).name.endsWith(".md")),fr=Kt=>{var pr=root_21();append(Kt,pr)};if_block(Wr,Kt=>{get(Vr)?Kt(ur):get(Zn)?Kt(Gr,1):Kt(fr,!1)})}reset(Mt);var Hr=sibling(Mt,2),go=child(Hr,!0);reset(Hr);var qr=sibling(Hr,2),vo=child(qr,!0);reset(qr);var mo=sibling(qr,2);reset(vt),template_effect(Kt=>{set_text(go,get(lt).name),set_text(vo,Kt)},[()=>kn(get(lt).size)]),delegated("click",mo,()=>On(st)),append(rt,vt)}),reset($e),append(_e,$e)};if_block(Tn,_e=>{get(it).length>0&&_e(kr)})}var Sr=sibling(Tn,2);{var Zr=_e=>{var $e=root_22();each($e,21,()=>get(ut),index,(rt,lt,st)=>{var vt=root_23(),Mt=child(vt),Wr=child(Mt);reset(Mt);var ur=sibling(Mt,2),Vr=child(ur,!0);reset(ur);var Gr=sibling(ur,2);reset(vt),template_effect((Zn,fr)=>{set_text(Wr,`<${Zn??""}>`),set_text(Vr,fr)},[()=>get(lt).tagName.toLowerCase(),()=>{var Zn;return((Zn=get(lt).textContent)==null?void 0:Zn.substring(0,40))||get(lt).selector}]),delegated("click",Gr,()=>{set(ut,get(ut).filter((Zn,fr)=>fr!==st),!0)}),append(rt,vt)}),reset($e),append(_e,$e)};if_block(Sr,_e=>{get(ut).length>0&&_e(Zr)})}var Br=sibling(Sr,2);ConsoleLogList(Br,{get logs(){return get(pn)}});var Cr=sibling(Br,2);{var Ir=_e=>{var $e=root_24(),rt=child($e);reset($e),template_effect((lt,st)=>set_text(rt,`${lt??""} attachment${st??""} will be included`),[It,()=>It()>1?"s":""]),append(_e,$e)},co=user_derived(()=>It()>0);if_block(Cr,_e=>{get(co)&&_e(Ir)})}var ro=sibling(Cr,2),Ur=child(ro),uo=child(Ur);reset(Ur);var jr=sibling(Ur,2),Tr=sibling(jr,2),fo=child(Tr);{var po=_e=>{var $e=root_25();next(),append(_e,$e)},ho=_e=>{var $e=text("Submit");append(_e,$e)};if_block(fo,_e=>{get(bt)?_e(po):_e(ho,!1)})}reset(Tr),reset(ro),reset(X),template_effect(_e=>{ue.disabled=get(bt),Oe.disabled=get(bt),xt.disabled=get(bt),Yt.disabled=get(bt),pt.disabled=get(gn),yn.disabled=get(vn),dr=set_class(wn,1,"tool-btn svelte-nv4d5v",null,dr,{"recording-active":get(V)}),wn.disabled=get(bt),Pn.disabled=get(bt),set_text(uo,`v${h}`),jr.disabled=get(bt),Tr.disabled=_e,set_attribute(Tr,"title",get(V)?"Stop recording first, or click Submit to auto-stop":"")},[()=>get(bt)||!get(ne).trim()]),event("submit",X,Dr),bind_value(ue,()=>get(ne),_e=>set(ne,_e)),bind_value(Oe,()=>get(tt),_e=>set(tt,_e)),bind_select_value(xt,()=>get(kt),_e=>set(kt,_e)),bind_select_value(Yt,()=>get(He),_e=>set(He,_e)),delegated("click",pt,_r),delegated("click",yn,Or),delegated("click",wn,pe),delegated("click",Pn,En),delegated("change",Je,hn),delegated("click",jr,function(..._e){var $e;($e=S())==null||$e.apply(this,_e)}),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(Wt,P=>{get(O)==="new"&&P(Vt)})}var nn=sibling(Wt,2);{var Gt=P=>{var X=root_27(),Ie=child(X);{var ue=Oe=>{var Ve=root_28(),gt=sibling(child(Ve),4),xt=sibling(gt,2);reset(Ve),template_effect(()=>set_attribute(gt,"href",`${g()??""}/feedback/replay?id=${get(Hn)??""}`)),delegated("click",xt,()=>{set(Hn,null),set(qn,!1)}),append(Oe,Ve)};if_block(Ie,Oe=>{get(Hn)&&get(qn)&&Oe(ue)})}var xe=sibling(Ie,2);RequestList(xe,{get endpoint(){return g()},get loading(){return get(Ze)},get error(){return get(Te)},onreload:We,get reports(){return get(ye)},set reports(Oe){set(ye,Oe,!0)}}),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(nn,P=>{get(O)==="requests"&&P(Gt)})}var Ht=sibling(nn,2);{var Fn=P=>{var X=root_29(),Ie=child(X);{let ue=user_derived(()=>{var xe;return((xe=get(Ee))==null?void 0:xe.getMaxSteps())??20});AgentPanel(Ie,{get messages(){return get(Ae)},get agentState(){return get(Fe)},get currentStep(){return get(Ce)},get maxSteps(){return get(ue)},get autoApprove(){return get(Ge)},onsend:Y,onstop:Q,onapprove:ge,onskip:ee,onautoapprovechange:fe})}reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(Ht,P=>{get(O)==="agent"&&get(F)&&P(Fn)})}var mt=sibling(Ht,2);{var At=P=>{var X=root_30(),Ie=child(X);NotesPanel(Ie,{get endpoint(){return g()},get project(){return m()},onnoteschanged:L}),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(mt,P=>{get(O)==="notes"&&get(W)&&P(At)})}var rn=sibling(mt,2);{var Ft=P=>{var X=root_31(),Ie=child(X),ue=child(Ie);{var xe=Be=>{var Ke=root_32(),pt=sibling(first_child(Ke),2),Zt=child(pt);reset(pt),next(2),delegated("click",Zt,me),append(Be,Ke)},Oe=Be=>{var Ke=root_33(),pt=sibling(first_child(Ke),2),Zt=child(pt);next(2),reset(pt),delegated("click",Zt,j),append(Be,Ke)},Ve=Be=>{var Ke=root_34();append(Be,Ke)},gt=Be=>{var Ke=root_35();next(2),append(Be,Ke)},xt=Be=>{var Ke=root_36(),pt=child(Ke);{var Zt=Je=>{var Et=root_37(),Tn=child(Et);each(Tn,21,()=>get(oe),index,(Zr,Br,Cr)=>{var Ir=root_38();template_effect(()=>set_class(Ir,1,`voice-task-dot ${Cr===get(ve)?"voice-task-dot-active":""}`,"svelte-nv4d5v")),append(Zr,Ir)}),reset(Tn);var kr=sibling(Tn,2),Sr=child(kr);reset(kr),reset(Et),template_effect(()=>set_text(Sr,`Task ${get(ve)+1} of ${get(oe).length??""}`)),append(Je,Et)};if_block(pt,Je=>{get(oe).length>1&&Je(Zt)})}var In=sibling(pt,4);{var Qn=Je=>{var Et=root_39(),Tn=child(Et,!0);reset(Et),template_effect(()=>set_text(Tn,get(ae))),append(Je,Et)};if_block(In,Je=>{get(ae)&&Je(Qn)})}var yn=sibling(In,2),wr=sibling(child(yn),2);remove_input_defaults(wr),reset(yn);var cr=sibling(yn,2),xr=sibling(child(cr),2);remove_textarea_child(xr),reset(cr);var wn=sibling(cr,2),dr=child(wn),Er=sibling(dr,2);{var Lr=Je=>{var Et=root_40();delegated("click",Et,B),append(Je,Et)};if_block(Er,Je=>{get(oe).length>1&&Je(Lr)})}var er=sibling(Er,2),Pn=child(er);{var Fr=Je=>{var Et=text("Submit & next →");append(Je,Et)},Pr=Je=>{var Et=text("Submit as feedback");append(Je,Et)};if_block(Pn,Je=>{get(oe).length>1&&get(ve)<get(oe).length-1?Je(Fr):Je(Pr,!1)})}reset(er),reset(wn),reset(Ke),template_effect(Je=>er.disabled=Je,[()=>!get(Se).trim()]),bind_value(wr,()=>get(Se),Je=>set(Se,Je)),bind_value(xr,()=>get(we),Je=>set(we,Je)),delegated("click",dr,le),delegated("click",er,he),append(Be,Ke)},bn=Be=>{var Ke=root_43();next(2),append(Be,Ke)},Yt=Be=>{var Ke=root_44(),pt=sibling(first_child(Ke),2),Zt=child(pt,!0);reset(pt);var In=sibling(pt,2);template_effect(()=>set_text(Zt,get(ae))),delegated("click",In,le),append(Be,Ke)};if_block(ue,Be=>{get(te)==="idle"?Be(xe):get(te)==="recording"?Be(Oe,1):get(te)==="uploading"?Be(Ve,2):get(te)==="transcribing"?Be(gt,3):get(te)==="confirming"?Be(xt,4):get(te)==="submitted"?Be(bn,5):get(te)==="error"&&Be(Yt,6)})}reset(Ie),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(rn,P=>{get(O)==="voice"&&P(Ft)})}var Pt=sibling(rn,2);StatusToast(Pt,{get message(){return get(ir)},get type(){return get(mr)},get visible(){return get(ar)}}),reset(je);var qt=sibling(je,2);{var sn=P=>{AnnotationEditor(P,{get imageDataUrl(){return get(Sn)},onsave:Mr,oncancel:zr})};if_block(qt,P=>{get(Dt)!==null&&P(sn)})}return template_effect(()=>{mn=set_class(Xe,1,"tab svelte-nv4d5v",null,mn,{active:get(O)==="new"}),Cn=set_class(jt,1,"tab svelte-nv4d5v",null,Cn,{active:get(O)==="requests"}),Ln=set_class(Dn,1,"tab svelte-nv4d5v",null,Ln,{active:get(O)==="notes"}),at=set_class(Jn,1,"tab svelte-nv4d5v",null,at,{active:get(O)==="voice"})}),delegated("keydown",je,Le),delegated("keyup",je,Le),event("keypress",je,Le),delegated("click",Xe,()=>set(O,"new")),delegated("click",jt,()=>set(O,"requests")),delegated("click",Dn,()=>{set(O,"notes"),set(W,!0)}),delegated("click",Jn,()=>set(O,"voice")),delegated("click",St,function(...P){var X;(X=S())==null||X.apply(this,P)}),append(d,ot),pop(ft)}delegate(["keydown","keyup","mousedown","click","change"]),create_custom_element(FeedbackPanel,{endpoint:{},project:{},isOpen:{},userId:{},userEmail:{},userName:{},userRole:{},orgId:{},orgName:{},onclose:{},ongrip:{},agentProxy:{},agentModel:{},agentContext:{},registeredTools:{},supabaseUrl:{},supabaseAnonKey:{}},[],[],{mode:"open"});var root_1=from_html("<div><!></div>"),root_2=from_html('<div class="jat-feedback-panel svelte-qpyrvv"><div class="no-endpoint svelte-qpyrvv"><p class="svelte-qpyrvv">No endpoint configured.</p> <p class="svelte-qpyrvv">Add the <code class="svelte-qpyrvv">endpoint</code> attribute:</p> <code class="example svelte-qpyrvv"><jat-feedback endpoint="http://localhost:3333"></code></div></div>'),root=from_html('<div class="jat-feedback-root svelte-qpyrvv" data-page-agent-not-interactive=""><!> <!></div>');const $$css={hash:"svelte-qpyrvv",code:`.jat-feedback-root.svelte-qpyrvv {position:fixed;z-index:2147483647;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;}.jat-feedback-panel.svelte-qpyrvv {position:absolute;
|
|
446
|
+
/* Voice confirmation UI */.voice-confirm.svelte-nv4d5v {display:flex;flex-direction:column;gap:0.75rem;width:100%;text-align:left;}.voice-confirm-hint.svelte-nv4d5v {font-size:12px;color:#9ca3af;margin:0;line-height:1.4;}.voice-confirm-field.svelte-nv4d5v {display:flex;flex-direction:column;gap:0.25rem;}.voice-confirm-label.svelte-nv4d5v {font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.04em;}.voice-confirm-input.svelte-nv4d5v {width:100%;background:#1f2937;border:1px solid #374151;border-radius:6px;color:#e5e7eb;font-size:13px;font-family:inherit;padding:0.5rem 0.625rem;box-sizing:border-box;outline:none;transition:border-color 0.15s;}.voice-confirm-input.svelte-nv4d5v:focus {border-color:#4b6cf7;}.voice-confirm-textarea.svelte-nv4d5v {width:100%;background:#1f2937;border:1px solid #374151;border-radius:6px;color:#e5e7eb;font-size:13px;font-family:inherit;padding:0.5rem 0.625rem;box-sizing:border-box;resize:vertical;outline:none;transition:border-color 0.15s;min-height:80px;}.voice-confirm-textarea.svelte-nv4d5v:focus {border-color:#4b6cf7;}.voice-confirm-actions.svelte-nv4d5v {display:flex;align-items:center;justify-content:space-between;margin-top:0.25rem;}.voice-btn-submit.svelte-nv4d5v {background:#1d4ed8;color:white;padding:0.5rem 1.125rem;font-size:13px;}.voice-btn-submit.svelte-nv4d5v:hover:not(:disabled) {background:#2563eb;}.voice-btn-submit.svelte-nv4d5v:disabled {opacity:0.45;cursor:not-allowed;}.voice-task-nav.svelte-nv4d5v {display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;}.voice-task-dots.svelte-nv4d5v {display:flex;gap:5px;align-items:center;}.voice-task-dot.svelte-nv4d5v {width:7px;height:7px;border-radius:50%;background:#374151;transition:background 0.2s;}.voice-task-dot-active.svelte-nv4d5v {background:#1d4ed8;width:8px;height:8px;}.voice-task-counter.svelte-nv4d5v {font-size:11px;color:#6b7280;font-weight:500;letter-spacing:0.02em;}.voice-btn-skip.svelte-nv4d5v {background:transparent;color:#6b7280;border:1px solid #374151;padding:0.5rem 0.875rem;font-size:13px;}.voice-btn-skip.svelte-nv4d5v:hover {color:#9ca3af;border-color:#4b5563;}`};function FeedbackPanel(d,p){push(p,!0),append_styles(d,$$css$1);const h="3.4.3";let g=prop(p,"endpoint",7),m=prop(p,"project",7),_=prop(p,"isOpen",7,!1),b=prop(p,"userId",7,""),y=prop(p,"userEmail",7,""),w=prop(p,"userName",7,""),x=prop(p,"userRole",7,""),E=prop(p,"orgId",7,""),k=prop(p,"orgName",7,""),S=prop(p,"onclose",7),I=prop(p,"ongrip",7),A=prop(p,"agentProxy",7,""),M=prop(p,"agentModel",7,""),R=prop(p,"agentContext",7,""),C=prop(p,"registeredTools",23,()=>[]),$=prop(p,"supabaseUrl",7,""),N=prop(p,"supabaseAnonKey",7,""),O=state("new"),F=state(!1),W=state(!1),V=state(!1),q=state(proxy([]));function pe(){if(get(V)){const P=stopRecording();set(q,P,!0),set(V,!1),yt(`Session recorded (${P.length} events)`,"success")}else startRecording(),set(q,[],!0),set(V,!0),yt("Recording session...","info")}let te=state("idle"),ae=state(""),ie=state(null),ke=[],ce=state(null),Se=state(""),we=state(""),oe=state(proxy([])),ve=state(0),T=null,z=null,D=null;function Z(){if(T&&(clearTimeout(T),T=null),z){try{z.close()}catch{}z=null}D&&(clearInterval(D),D=null)}function G(P){Z(),set(oe,P.filter(X=>X.title||X.description),!0),get(oe).length===0&&set(oe,[{title:"",description:""}],!0),set(ve,0),set(Se,get(oe)[0].title||"",!0),set(we,get(oe)[0].description||"",!0),set(te,"confirming"),set(ae,"")}function se(P="Transcription failed. Try again."){Z(),set(te,"error"),set(ae,P,!0)}function be(){set(oe,get(oe).map((P,X)=>X===get(ve)?{title:get(Se),description:get(we)}:P),!0),get(ve)<get(oe).length-1?(update(ve),set(Se,get(oe)[get(ve)].title||"",!0),set(we,get(oe)[get(ve)].description||"",!0),set(te,"confirming")):(set(te,"submitted"),set(ae,""),setTimeout(()=>{set(O,"requests"),We()},1500))}function B(){get(ve)<get(oe).length-1?(update(ve),set(Se,get(oe)[get(ve)].title||"",!0),set(we,get(oe)[get(ve)].description||"",!0)):le()}function J(P){const Ie=$().replace(/\/$/,"").replace(/^https/,"wss").replace(/^http/,"ws")+`/realtime/v1/websocket?apikey=${N()}&vsn=1.0.0`;let ue,xe=null,Oe=1;function Ve(){return String(Oe++)}try{ue=new WebSocket(Ie)}catch{de(P);return}z=ue,ue.onopen=()=>{const gt=Ve();ue.send(JSON.stringify({topic:"realtime:*",event:"phx_join",payload:{config:{broadcast:{self:!1},presence:{key:""},postgres_changes:[{event:"UPDATE",schema:"public",table:"project_tasks",filter:`id=eq.${P}`}]},access_token:N()},ref:gt,join_ref:gt})),xe=setInterval(()=>{ue.readyState===WebSocket.OPEN&&ue.send(JSON.stringify({topic:"phoenix",event:"heartbeat",payload:{},ref:Ve()}))},3e4)},ue.onmessage=async gt=>{var bn;let xt;try{xt=JSON.parse(gt.data)}catch{return}if(xt.event==="postgres_changes"&&((bn=xt.payload)!=null&&bn.data)){const{type:Yt,record:Be}=xt.payload.data;if(Yt==="UPDATE"&&Be)if(Be.status==="open")xe&&clearInterval(xe),G([{title:Be.title||"",description:Be.description||""}]);else if(Be.status==="voice_split"){xe&&clearInterval(xe);try{const Ke=JSON.parse(Be.description||"{}").taskIds||[];if(Ke.length>0){const pt=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=in.(${Ke.join(",")})&select=id,title,description&order=created_at`,Zt=await fetch(pt,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});if(Zt.ok){const In=await Zt.json();G(In.map(Qn=>({title:Qn.title||"",description:Qn.description||""})));return}}}catch{}G([{title:Be.title||"",description:""}])}else Be.status==="failed"&&(xe&&clearInterval(xe),se("Transcription failed. Try again."))}},ue.onerror=()=>{xe&&clearInterval(xe),z=null,de(P)},ue.onclose=()=>{xe&&clearInterval(xe)}}function de(P){D||(D=setInterval(async()=>{try{let X=null,Ie="",ue="",xe=[];if($()&&N()){const Oe=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=eq.${P}&select=id,status,title,description`,Ve=await fetch(Oe,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});if(Ve.ok){const gt=await Ve.json();if(Array.isArray(gt)&>.length>0&&(X=gt[0].status,Ie=gt[0].title||"",ue=gt[0].description||"",X==="voice_split"))try{const xt=JSON.parse(ue||"{}").taskIds||[];if(xt.length>0){const bn=`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=in.(${xt.join(",")})&select=id,title,description&order=created_at`,Yt=await fetch(bn,{headers:{apikey:N(),Authorization:`Bearer ${N()}`}});Yt.ok&&(xe=(await Yt.json()).map(Ke=>({title:Ke.title||"",description:Ke.description||""})))}}catch{}}}else{const Oe=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice?id=${encodeURIComponent(P)}`);if(Oe.ok){const Ve=await Oe.json();X=Ve.status,Array.isArray(Ve.tasks)&&Ve.tasks.length>0?xe=Ve.tasks:(Ie=Ve.title||"",ue=Ve.description||"")}}if(X==="open"||X==="voice_split"){clearInterval(D),D=null;const Oe=xe.length>0?xe:[{title:Ie,description:ue}];G(Oe)}else X==="failed"&&(clearInterval(D),D=null,se("Transcription failed. Try again."))}catch{}},3e3))}function re(P){T=setTimeout(()=>{Z(),set(te,"error"),set(ae,"Transcription timed out (30s). Try again.")},3e4),$()&&N()?J(P):de(P)}async function me(){var P;try{const X=await navigator.mediaDevices.getUserMedia({audio:!0}),Ie=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":"audio/ogg",ue=new MediaRecorder(X,{mimeType:Ie});ke=[],ue.ondataavailable=xe=>{xe.data.size>0&&ke.push(xe.data)},ue.onstop=()=>{X.getTracks().forEach(xe=>xe.stop()),K(new Blob(ke,{type:Ie}),Ie)},ue.start(500),set(ie,ue,!0),set(te,"recording"),set(ae,"")}catch(X){set(te,"error"),set(ae,(P=X.message)!=null&&P.includes("Permission")?"Microphone permission denied":"Could not start recording",!0)}}function j(){get(ie)&&get(ie).state!=="inactive"&&get(ie).stop(),set(ie,null),set(te,"uploading"),set(ae,"")}async function K(P,X){set(te,"uploading");try{const Ie=X.includes("webm")?"webm":X.includes("ogg")?"ogg":"audio",ue=new FormData;ue.append("audio",P,`voice-note.${Ie}`),m()&&ue.append("project",m()),b()&&ue.append("user_id",b());const xe=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice`,{method:"POST",body:ue});if(xe.ok){const Ve=(await xe.json()).id;if(!Ve)throw new Error("No task ID returned from server");set(ce,Ve,!0),set(te,"transcribing"),set(ae,""),re(Ve)}else{const Oe=await xe.json().catch(()=>({}));throw new Error(Oe.error||Oe.message||`Upload failed (${xe.status})`)}}catch(Ie){set(te,"error"),set(ae,Ie.message||"Failed to upload recording",!0)}finally{ke=[]}}async function he(){if(get(ce)){set(te,"uploading"),set(ae,"");try{if($()&&N()){const P=await fetch(`${$().replace(/\/$/,"")}/rest/v1/project_tasks?id=eq.${get(ce)}`,{method:"PATCH",headers:{apikey:N(),Authorization:`Bearer ${N()}`,"Content-Type":"application/json",Prefer:"return=minimal"},body:JSON.stringify({title:get(Se),description:get(we),status:"submitted"})});if(!P.ok)throw new Error(`HTTP ${P.status}`)}else{const P=await fetch(`${g().replace(/\/$/,"")}/api/tasks/voice?id=${encodeURIComponent(get(ce))}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:get(Se),description:get(we),status:"submitted"})});if(!P.ok){const X=await P.json().catch(()=>({}));throw new Error(X.error||`HTTP ${P.status}`)}}be()}catch(P){set(te,"confirming"),set(ae,P.message||"Failed to submit. Please try again.",!0)}}}function le(){Z(),get(ie)&&get(ie).state!=="inactive"&&get(ie).stop(),set(ie,null),set(te,"idle"),set(ae,""),ke=[],set(ce,null),set(Se,""),set(we,""),set(oe,[],!0),set(ve,0)}let Ae=state(proxy([])),Fe=state("idle"),Ce=state(0),Ge=state(!1),Ee=state(null);function H(){return get(Ee)||set(Ee,new AgentBridge({proxyUrl:A(),model:M()||void 0,maxSteps:20,appContext:R()||void 0,endpoint:g(),project:m(),registeredTools:C(),onMessagesChange:P=>{set(Ae,P,!0)},onStateChange:(P,X)=>{set(Fe,P,!0),set(Ce,X,!0)}}),!0),get(Ee)}function L(){var P;(P=get(Ee))==null||P.invalidateNotesCache()}user_effect(()=>{get(O)==="agent"&&!get(F)&&set(F,!0)}),user_effect(()=>{get(O)==="notes"&&!get(W)&&set(W,!0)});function Y(P){H().execute(P)}function Q(){var P;(P=get(Ee))==null||P.stop()}function ge(P){var X;(X=get(Ee))==null||X.approve(P)}function ee(P){var X;(X=get(Ee))==null||X.skip(P)}function fe(P){set(Ge,P,!0),get(Ee)&&(get(Ee).autoApprove=P)}onDestroy(()=>{var P;(P=get(Ee))==null||P.dispose(),Z(),get(ie)&&get(ie).state!=="inactive"&&get(ie).stop()});let ye=state(proxy([])),Ze=state(!1),Te=state(""),Pe=user_derived(()=>get(ye).filter(P=>P.status==="completed").length);async function We(){set(Ze,!0),set(Te,"");const P=await fetchReports(g());set(ye,P.reports,!0),P.error&&set(Te,P.error,!0),set(Ze,!1)}user_effect(()=>{g()&&We()});let ne=state(""),tt=state(""),kt=state("bug"),He=state("medium"),Ne=state(proxy([])),it=state(proxy([])),ut=state(proxy([])),pn=state(proxy([])),Ue=state(proxy([])),qe=state(void 0);const $t=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml"];function En(){var P;(P=get(qe))==null||P.click()}async function hn(P){const X=P.target,Ie=X.files;if(!(!Ie||Ie.length===0)){for(const ue of Ie)try{const xe=await $r(ue);$t.includes(ue.type)?(set(Ne,[...get(Ne),xe],!0),yt(`Image added: ${ue.name}`,"success")):(set(it,[...get(it),{name:ue.name,type:ue.type||"application/octet-stream",data:xe,size:ue.size}],!0),yt(`File attached: ${ue.name}`,"success"))}catch{yt(`Failed to read: ${ue.name}`,"error")}X.value=""}}function $r(P){return new Promise((X,Ie)=>{const ue=new FileReader;ue.onload=()=>X(ue.result),ue.onerror=()=>Ie(ue.error),ue.readAsDataURL(P)})}function On(P){set(it,get(it).filter((X,Ie)=>Ie!==P),!0)}function kn(P){return P<1024?`${P}B`:P<1024*1024?`${(P/1024).toFixed(1)}KB`:`${(P/(1024*1024)).toFixed(1)}MB`}let bt=state(!1),gn=state(!1),vn=state(!1),Hn=state(null),qn=state(!1),Dt=state(null),Sn=state(""),Yn=state(void 0),vr=!1;user_effect(()=>{_()&&!vr&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{var P;(P=get(Yn))==null||P.focus()})}),get(O)==="new"&&setTimeout(()=>{captureViewportQuick().then(P=>{get(Ne).length===0?set(Ne,[P],!0):set(Ne,[P,...get(Ne).slice(1)],!0)}).catch(()=>{})},300)),vr=_()});let ir=state(""),mr=state("success"),ar=state(!1);function yt(P,X){set(ir,P,!0),set(mr,X,!0),set(ar,!0),setTimeout(()=>{set(ar,!1)},3e3)}async function _r(){set(gn,!0);try{const P=await captureViewport();set(Sn,P,!0),set(Dt,get(Ne).length,!0)}catch(P){console.error("[jat-feedback] Screenshot failed:",P),yt("Screenshot failed: "+(P instanceof Error?P.message:"unknown error"),"error")}finally{set(gn,!1)}}function br(P){set(Ne,get(Ne).filter((X,Ie)=>Ie!==P),!0)}function lr(P){set(Sn,get(Ne)[P],!0),set(Dt,P,!0)}function Mr(P){get(Dt)!==null&&(get(Dt)>=get(Ne).length?(set(Ne,[...get(Ne),P],!0),yt(`Screenshot captured (${get(Ne).length})`,"success")):(set(Ne,get(Ne).map((X,Ie)=>Ie===get(Dt)?P:X),!0),yt("Screenshot updated","success"))),set(Dt,null),set(Sn,"")}function zr(){get(Dt)!==null&&get(Dt)>=get(Ne).length&&(set(Ne,[...get(Ne),get(Sn)],!0),yt(`Screenshot captured (${get(Ne).length})`,"success")),set(Dt,null),set(Sn,"")}function Or(){set(vn,!0),startElementPicker(P=>{set(ut,[...get(ut),P],!0),set(vn,!1),yt(`Element captured: <${P.tagName.toLowerCase()}>`,"success")})}function yr(){set(pn,getCapturedLogs(),!0),set(Ue,getCapturedRequests(),!0)}async function Dr(P){if(P.preventDefault(),!get(ne).trim())return;set(bt,!0),yr();const X={};if((b()||y()||w()||x())&&(X.reporter={},b()&&(X.reporter.userId=b()),y()&&(X.reporter.email=y()),w()&&(X.reporter.name=w()),x()&&(X.reporter.role=x())),(E()||k())&&(X.organization={},E()&&(X.organization.id=E()),k()&&(X.organization.name=k())),get(V)){const xe=stopRecording();set(q,xe,!0),set(V,!1)}let Ie;if(get(q).length>0){const xe=crypto.randomUUID(),Oe=await uploadRecording(g(),get(q),xe);Oe.ok&&Oe.recording_url&&(Ie=Oe.recording_url)}const ue={title:get(ne).trim(),description:get(tt).trim(),type:get(kt),priority:get(He),project:m()||"",page_url:window.location.href,user_agent:navigator.userAgent,console_logs:get(pn).length>0?get(pn):null,network_requests:get(Ue).length>0?get(Ue):null,selected_elements:get(ut).length>0?get(ut):null,recording_events:null,screenshots:get(Ne).length>0?get(Ne):null,attachments:get(it).length>0?get(it):null,metadata:Object.keys(X).length>0?X:null,recording_url:Ie||null};try{const xe=await submitReport(g(),ue);if(xe.ok){if(ue.recording_url){const Oe={recording_url:ue.recording_url,console_logs:ue.console_logs,network_requests:ue.network_requests};H().setReportContext(Oe)}set(Hn,xe.id,!0),set(qn,!!ue.recording_url),yt(`Report submitted (${xe.id})`,"success"),Me(),setTimeout(()=>{We(),set(O,"requests")},1200)}else enqueue(g(),ue),yt("Queued for retry (endpoint unreachable)","error")}catch{enqueue(g(),ue),yt("Queued for retry (endpoint unreachable)","error")}finally{set(bt,!1)}}function Me(){set(ne,""),set(tt,""),set(kt,"bug"),set(He,"medium"),set(Ne,[],!0),set(it,[],!0),set(ut,[],!0),set(pn,[],!0),set(Ue,[],!0),set(q,[],!0),get(V)&&(stopRecording(),set(V,!1))}user_effect(()=>{yr()});function Le(P){P.stopPropagation()}const nt=[{value:"bug",label:"Bug"},{value:"enhancement",label:"Enhancement"},{value:"other",label:"Other"}],wt=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"critical",label:"Critical"}];function It(){return get(Ne).length+get(it).length+get(ut).length}var ft={get endpoint(){return g()},set endpoint(P){g(P),flushSync()},get project(){return m()},set project(P){m(P),flushSync()},get isOpen(){return _()},set isOpen(P=!1){_(P),flushSync()},get userId(){return b()},set userId(P=""){b(P),flushSync()},get userEmail(){return y()},set userEmail(P=""){y(P),flushSync()},get userName(){return w()},set userName(P=""){w(P),flushSync()},get userRole(){return x()},set userRole(P=""){x(P),flushSync()},get orgId(){return E()},set orgId(P=""){E(P),flushSync()},get orgName(){return k()},set orgName(P=""){k(P),flushSync()},get onclose(){return S()},set onclose(P){S(P),flushSync()},get ongrip(){return I()},set ongrip(P){I(P),flushSync()},get agentProxy(){return A()},set agentProxy(P=""){A(P),flushSync()},get agentModel(){return M()},set agentModel(P=""){M(P),flushSync()},get agentContext(){return R()},set agentContext(P=""){R(P),flushSync()},get registeredTools(){return C()},set registeredTools(P=[]){C(P),flushSync()},get supabaseUrl(){return $()},set supabaseUrl(P=""){$(P),flushSync()},get supabaseAnonKey(){return N()},set supabaseAnonKey(P=""){N(P),flushSync()}},ot=root$1(),je=first_child(ot),ht=child(je),Ye=child(ht);{var Tt=P=>{var X=root_1$1();delegated("mousedown",X,function(...Ie){var ue;(ue=I())==null||ue.apply(this,Ie)}),append(P,X)};if_block(Ye,P=>{I()&&P(Tt)})}var Ut=sibling(Ye,2),Xe=child(Ut);let mn;var jt=sibling(Xe,2);let Cn;var _n=sibling(child(jt),2);{var Kn=P=>{var X=root_2$1(),Ie=child(X,!0);reset(X),template_effect(()=>set_text(Ie,get(Pe))),append(P,X)};if_block(_n,P=>{get(Pe)>0&&P(Kn)})}reset(jt);var Lt=sibling(jt,2);{var Xn=P=>{var X=root_3();let Ie;template_effect(()=>Ie=set_class(X,1,"tab svelte-nv4d5v",null,Ie,{active:get(O)==="agent"})),delegated("click",X,()=>{set(O,"agent"),set(F,!0)}),append(P,X)};if_block(Lt,P=>{A()&&P(Xn)})}var Dn=sibling(Lt,2);let Ln;var Jn=sibling(Dn,2);let at;reset(Ut);var St=sibling(Ut,2);reset(ht);var Wt=sibling(ht,2);{var Vt=P=>{var X=root_4(),Ie=child(X),ue=sibling(child(Ie),2);remove_input_defaults(ue),bind_this(ue,_e=>set(Yn,_e),()=>get(Yn)),reset(Ie);var xe=sibling(Ie,2),Oe=sibling(child(xe),2);remove_textarea_child(Oe),reset(xe);var Ve=sibling(xe,2),gt=child(Ve),xt=sibling(child(gt),2);each(xt,21,()=>nt,index,(_e,$e)=>{var rt=root_5(),lt=child(rt,!0);reset(rt);var st={};template_effect(()=>{set_text(lt,get($e).label),st!==(st=get($e).value)&&(rt.value=(rt.__value=get($e).value)??"")}),append(_e,rt)}),reset(xt),reset(gt);var bn=sibling(gt,2),Yt=sibling(child(bn),2);each(Yt,21,()=>wt,index,(_e,$e)=>{var rt=root_6(),lt=child(rt,!0);reset(rt);var st={};template_effect(()=>{set_text(lt,get($e).label),st!==(st=get($e).value)&&(rt.value=(rt.__value=get($e).value)??"")}),append(_e,rt)}),reset(Yt),reset(bn),reset(Ve);var Be=sibling(Ve,2),Ke=child(Be),pt=child(Ke),Zt=child(pt);{var In=_e=>{var $e=root_7();next(),append(_e,$e)},Qn=_e=>{var $e=root_8(),rt=sibling(first_child($e),2);{var lt=st=>{var vt=root_9(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(Ne).length)),append(st,vt)};if_block(rt,st=>{get(Ne).length>0&&st(lt)})}append(_e,$e)};if_block(Zt,_e=>{get(gn)?_e(In):_e(Qn,!1)})}reset(pt);var yn=sibling(pt,2),wr=sibling(child(yn),2);{var cr=_e=>{var $e=text("Click an element...");append(_e,$e)},xr=_e=>{var $e=root_11(),rt=sibling(first_child($e));{var lt=st=>{var vt=root_12(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(ut).length)),append(st,vt)};if_block(rt,st=>{get(ut).length>0&&st(lt)})}append(_e,$e)};if_block(wr,_e=>{get(vn)?_e(cr):_e(xr,!1)})}reset(yn);var wn=sibling(yn,2);let dr;var Er=child(wn);{var Lr=_e=>{var $e=root_13();next(),append(_e,$e)},er=_e=>{var $e=root_14(),rt=sibling(first_child($e),2);{var lt=st=>{var vt=root_15(),Mt=child(vt,!0);reset(vt),template_effect(()=>set_text(Mt,get(q).length)),append(st,vt)};if_block(rt,st=>{get(q).length>0&&st(lt)})}append(_e,$e)};if_block(Er,_e=>{get(V)?_e(Lr):_e(er,!1)})}reset(wn);var Pn=sibling(wn,2),Fr=sibling(child(Pn),2);{var Pr=_e=>{var $e=root_16(),rt=child($e,!0);reset($e),template_effect(()=>set_text(rt,get(it).length)),append(_e,$e)};if_block(Fr,_e=>{get(it).length>0&&_e(Pr)})}reset(Pn);var Je=sibling(Pn,2);bind_this(Je,_e=>set(qe,_e),()=>get(qe)),reset(Ke);var Et=sibling(Ke,2);ScreenshotPreview(Et,{get screenshots(){return get(Ne)},get capturing(){return get(gn)},oncapture:_r,onremove:br,onedit:lr}),reset(Be);var Tn=sibling(Be,2);{var kr=_e=>{var $e=root_17();each($e,21,()=>get(it),index,(rt,lt,st)=>{var vt=root_18(),Mt=child(vt),Wr=child(Mt);{var ur=Kt=>{var pr=root_19();append(Kt,pr)},Vr=user_derived(()=>get(lt).type.includes("pdf")),Gr=Kt=>{var pr=root_20();append(Kt,pr)},Zn=user_derived(()=>get(lt).type.includes("markdown")||get(lt).name.endsWith(".md")),fr=Kt=>{var pr=root_21();append(Kt,pr)};if_block(Wr,Kt=>{get(Vr)?Kt(ur):get(Zn)?Kt(Gr,1):Kt(fr,!1)})}reset(Mt);var Hr=sibling(Mt,2),go=child(Hr,!0);reset(Hr);var qr=sibling(Hr,2),vo=child(qr,!0);reset(qr);var mo=sibling(qr,2);reset(vt),template_effect(Kt=>{set_text(go,get(lt).name),set_text(vo,Kt)},[()=>kn(get(lt).size)]),delegated("click",mo,()=>On(st)),append(rt,vt)}),reset($e),append(_e,$e)};if_block(Tn,_e=>{get(it).length>0&&_e(kr)})}var Sr=sibling(Tn,2);{var Zr=_e=>{var $e=root_22();each($e,21,()=>get(ut),index,(rt,lt,st)=>{var vt=root_23(),Mt=child(vt),Wr=child(Mt);reset(Mt);var ur=sibling(Mt,2),Vr=child(ur,!0);reset(ur);var Gr=sibling(ur,2);reset(vt),template_effect((Zn,fr)=>{set_text(Wr,`<${Zn??""}>`),set_text(Vr,fr)},[()=>get(lt).tagName.toLowerCase(),()=>{var Zn;return((Zn=get(lt).textContent)==null?void 0:Zn.substring(0,40))||get(lt).selector}]),delegated("click",Gr,()=>{set(ut,get(ut).filter((Zn,fr)=>fr!==st),!0)}),append(rt,vt)}),reset($e),append(_e,$e)};if_block(Sr,_e=>{get(ut).length>0&&_e(Zr)})}var Br=sibling(Sr,2);ConsoleLogList(Br,{get logs(){return get(pn)}});var Cr=sibling(Br,2);{var Ir=_e=>{var $e=root_24(),rt=child($e);reset($e),template_effect((lt,st)=>set_text(rt,`${lt??""} attachment${st??""} will be included`),[It,()=>It()>1?"s":""]),append(_e,$e)},co=user_derived(()=>It()>0);if_block(Cr,_e=>{get(co)&&_e(Ir)})}var ro=sibling(Cr,2),Ur=child(ro),uo=child(Ur);reset(Ur);var jr=sibling(Ur,2),Tr=sibling(jr,2),fo=child(Tr);{var po=_e=>{var $e=root_25();next(),append(_e,$e)},ho=_e=>{var $e=text("Submit");append(_e,$e)};if_block(fo,_e=>{get(bt)?_e(po):_e(ho,!1)})}reset(Tr),reset(ro),reset(X),template_effect(_e=>{ue.disabled=get(bt),Oe.disabled=get(bt),xt.disabled=get(bt),Yt.disabled=get(bt),pt.disabled=get(gn),yn.disabled=get(vn),dr=set_class(wn,1,"tool-btn svelte-nv4d5v",null,dr,{"recording-active":get(V)}),wn.disabled=get(bt),Pn.disabled=get(bt),set_text(uo,`v${h}`),jr.disabled=get(bt),Tr.disabled=_e,set_attribute(Tr,"title",get(V)?"Stop recording first, or click Submit to auto-stop":"")},[()=>get(bt)||!get(ne).trim()]),event("submit",X,Dr),bind_value(ue,()=>get(ne),_e=>set(ne,_e)),bind_value(Oe,()=>get(tt),_e=>set(tt,_e)),bind_select_value(xt,()=>get(kt),_e=>set(kt,_e)),bind_select_value(Yt,()=>get(He),_e=>set(He,_e)),delegated("click",pt,_r),delegated("click",yn,Or),delegated("click",wn,pe),delegated("click",Pn,En),delegated("change",Je,hn),delegated("click",jr,function(..._e){var $e;($e=S())==null||$e.apply(this,_e)}),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(Wt,P=>{get(O)==="new"&&P(Vt)})}var nn=sibling(Wt,2);{var Gt=P=>{var X=root_27(),Ie=child(X);{var ue=Oe=>{var Ve=root_28(),gt=sibling(child(Ve),4),xt=sibling(gt,2);reset(Ve),template_effect(()=>set_attribute(gt,"href",`${g()??""}/feedback/replay?id=${get(Hn)??""}`)),delegated("click",xt,()=>{set(Hn,null),set(qn,!1)}),append(Oe,Ve)};if_block(Ie,Oe=>{get(Hn)&&get(qn)&&Oe(ue)})}var xe=sibling(Ie,2);RequestList(xe,{get endpoint(){return g()},get loading(){return get(Ze)},get error(){return get(Te)},onreload:We,get reports(){return get(ye)},set reports(Oe){set(ye,Oe,!0)}}),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(nn,P=>{get(O)==="requests"&&P(Gt)})}var Ht=sibling(nn,2);{var Fn=P=>{var X=root_29(),Ie=child(X);{let ue=user_derived(()=>{var xe;return((xe=get(Ee))==null?void 0:xe.getMaxSteps())??20});AgentPanel(Ie,{get messages(){return get(Ae)},get agentState(){return get(Fe)},get currentStep(){return get(Ce)},get maxSteps(){return get(ue)},get autoApprove(){return get(Ge)},onsend:Y,onstop:Q,onapprove:ge,onskip:ee,onautoapprovechange:fe})}reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(Ht,P=>{get(O)==="agent"&&get(F)&&P(Fn)})}var mt=sibling(Ht,2);{var At=P=>{var X=root_30(),Ie=child(X);NotesPanel(Ie,{get endpoint(){return g()},get project(){return m()},onnoteschanged:L}),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(mt,P=>{get(O)==="notes"&&get(W)&&P(At)})}var rn=sibling(mt,2);{var Ft=P=>{var X=root_31(),Ie=child(X),ue=child(Ie);{var xe=Be=>{var Ke=root_32(),pt=sibling(first_child(Ke),2),Zt=child(pt);reset(pt),next(2),delegated("click",Zt,me),append(Be,Ke)},Oe=Be=>{var Ke=root_33(),pt=sibling(first_child(Ke),2),Zt=child(pt);next(2),reset(pt),delegated("click",Zt,j),append(Be,Ke)},Ve=Be=>{var Ke=root_34();append(Be,Ke)},gt=Be=>{var Ke=root_35();next(2),append(Be,Ke)},xt=Be=>{var Ke=root_36(),pt=child(Ke);{var Zt=Je=>{var Et=root_37(),Tn=child(Et);each(Tn,21,()=>get(oe),index,(Zr,Br,Cr)=>{var Ir=root_38();template_effect(()=>set_class(Ir,1,`voice-task-dot ${Cr===get(ve)?"voice-task-dot-active":""}`,"svelte-nv4d5v")),append(Zr,Ir)}),reset(Tn);var kr=sibling(Tn,2),Sr=child(kr);reset(kr),reset(Et),template_effect(()=>set_text(Sr,`Task ${get(ve)+1} of ${get(oe).length??""}`)),append(Je,Et)};if_block(pt,Je=>{get(oe).length>1&&Je(Zt)})}var In=sibling(pt,4);{var Qn=Je=>{var Et=root_39(),Tn=child(Et,!0);reset(Et),template_effect(()=>set_text(Tn,get(ae))),append(Je,Et)};if_block(In,Je=>{get(ae)&&Je(Qn)})}var yn=sibling(In,2),wr=sibling(child(yn),2);remove_input_defaults(wr),reset(yn);var cr=sibling(yn,2),xr=sibling(child(cr),2);remove_textarea_child(xr),reset(cr);var wn=sibling(cr,2),dr=child(wn),Er=sibling(dr,2);{var Lr=Je=>{var Et=root_40();delegated("click",Et,B),append(Je,Et)};if_block(Er,Je=>{get(oe).length>1&&Je(Lr)})}var er=sibling(Er,2),Pn=child(er);{var Fr=Je=>{var Et=text("Submit & next →");append(Je,Et)},Pr=Je=>{var Et=text("Submit as feedback");append(Je,Et)};if_block(Pn,Je=>{get(oe).length>1&&get(ve)<get(oe).length-1?Je(Fr):Je(Pr,!1)})}reset(er),reset(wn),reset(Ke),template_effect(Je=>er.disabled=Je,[()=>!get(Se).trim()]),bind_value(wr,()=>get(Se),Je=>set(Se,Je)),bind_value(xr,()=>get(we),Je=>set(we,Je)),delegated("click",dr,le),delegated("click",er,he),append(Be,Ke)},bn=Be=>{var Ke=root_43();next(2),append(Be,Ke)},Yt=Be=>{var Ke=root_44(),pt=sibling(first_child(Ke),2),Zt=child(pt,!0);reset(pt);var In=sibling(pt,2);template_effect(()=>set_text(Zt,get(ae))),delegated("click",In,le),append(Be,Ke)};if_block(ue,Be=>{get(te)==="idle"?Be(xe):get(te)==="recording"?Be(Oe,1):get(te)==="uploading"?Be(Ve,2):get(te)==="transcribing"?Be(gt,3):get(te)==="confirming"?Be(xt,4):get(te)==="submitted"?Be(bn,5):get(te)==="error"&&Be(Yt,6)})}reset(Ie),reset(X),transition(3,X,()=>slide,()=>({duration:200})),append(P,X)};if_block(rn,P=>{get(O)==="voice"&&P(Ft)})}var Pt=sibling(rn,2);StatusToast(Pt,{get message(){return get(ir)},get type(){return get(mr)},get visible(){return get(ar)}}),reset(je);var qt=sibling(je,2);{var sn=P=>{AnnotationEditor(P,{get imageDataUrl(){return get(Sn)},onsave:Mr,oncancel:zr})};if_block(qt,P=>{get(Dt)!==null&&P(sn)})}return template_effect(()=>{mn=set_class(Xe,1,"tab svelte-nv4d5v",null,mn,{active:get(O)==="new"}),Cn=set_class(jt,1,"tab svelte-nv4d5v",null,Cn,{active:get(O)==="requests"}),Ln=set_class(Dn,1,"tab svelte-nv4d5v",null,Ln,{active:get(O)==="notes"}),at=set_class(Jn,1,"tab svelte-nv4d5v",null,at,{active:get(O)==="voice"})}),delegated("keydown",je,Le),delegated("keyup",je,Le),event("keypress",je,Le),delegated("click",Xe,()=>set(O,"new")),delegated("click",jt,()=>set(O,"requests")),delegated("click",Dn,()=>{set(O,"notes"),set(W,!0)}),delegated("click",Jn,()=>set(O,"voice")),delegated("click",St,function(...P){var X;(X=S())==null||X.apply(this,P)}),append(d,ot),pop(ft)}delegate(["keydown","keyup","mousedown","click","change"]),create_custom_element(FeedbackPanel,{endpoint:{},project:{},isOpen:{},userId:{},userEmail:{},userName:{},userRole:{},orgId:{},orgName:{},onclose:{},ongrip:{},agentProxy:{},agentModel:{},agentContext:{},registeredTools:{},supabaseUrl:{},supabaseAnonKey:{}},[],[],{mode:"open"});var root_1=from_html("<div><!></div>"),root_2=from_html('<div class="jat-feedback-panel svelte-qpyrvv"><div class="no-endpoint svelte-qpyrvv"><p class="svelte-qpyrvv">No endpoint configured.</p> <p class="svelte-qpyrvv">Add the <code class="svelte-qpyrvv">endpoint</code> attribute:</p> <code class="example svelte-qpyrvv"><jat-feedback endpoint="http://localhost:3333"></code></div></div>'),root=from_html('<div class="jat-feedback-root svelte-qpyrvv" data-page-agent-not-interactive=""><!> <!></div>');const $$css={hash:"svelte-qpyrvv",code:`.jat-feedback-root.svelte-qpyrvv {position:fixed;z-index:2147483647;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;}.jat-feedback-panel.svelte-qpyrvv {position:absolute;
|
|
447
447
|
animation: svelte-qpyrvv-panel-in 0.2s ease;}.jat-feedback-panel.hidden.svelte-qpyrvv {display:none;}.jat-feedback-panel.dragging.svelte-qpyrvv {pointer-events:none;opacity:0.9;}.no-endpoint.svelte-qpyrvv {width:320px;background:#111827;border:1px solid #374151;border-radius:12px;padding:20px;color:#d1d5db;font-size:13px;box-shadow:0 20px 60px rgba(0,0,0,0.4);}.no-endpoint.svelte-qpyrvv p:where(.svelte-qpyrvv) {margin:0 0 8px;}.no-endpoint.svelte-qpyrvv code:where(.svelte-qpyrvv) {font-family:'SF Mono', 'Fira Code', monospace;font-size:11px;color:#93c5fd;}.no-endpoint.svelte-qpyrvv code.example:where(.svelte-qpyrvv) {display:block;background:#1f2937;padding:8px 10px;border-radius:4px;margin-top:4px;}
|
|
448
448
|
@keyframes svelte-qpyrvv-panel-in {
|
|
449
449
|
from { opacity: 0; transform: translateY(8px) scale(0.96); }
|
package/dist/jat-feedback.mjs
CHANGED
|
@@ -4962,7 +4962,11 @@ const sharedOptions = {
|
|
|
4962
4962
|
},
|
|
4963
4963
|
filter: (d) => {
|
|
4964
4964
|
var p;
|
|
4965
|
-
|
|
4965
|
+
if (d instanceof HTMLElement) {
|
|
4966
|
+
const h = ((p = d.getAttribute) == null ? void 0 : p.call(d, "id")) ?? "";
|
|
4967
|
+
if (d.tagName === "JAT-FEEDBACK" || h.startsWith("jat-feedback-")) return !1;
|
|
4968
|
+
}
|
|
4969
|
+
return !0;
|
|
4966
4970
|
}
|
|
4967
4971
|
};
|
|
4968
4972
|
async function captureViewport() {
|
|
@@ -4970,10 +4974,7 @@ async function captureViewport() {
|
|
|
4970
4974
|
const d = await domToCanvas(document.documentElement, {
|
|
4971
4975
|
...sharedOptions,
|
|
4972
4976
|
width: window.innerWidth,
|
|
4973
|
-
height: window.innerHeight
|
|
4974
|
-
style: {
|
|
4975
|
-
transform: `translate(-${window.scrollX}px, -${window.scrollY}px)`
|
|
4976
|
-
}
|
|
4977
|
+
height: window.innerHeight
|
|
4977
4978
|
});
|
|
4978
4979
|
if (!canvasHasContent(d)) {
|
|
4979
4980
|
const p = await domToCanvas(document.body, {
|
|
@@ -4994,10 +4995,7 @@ async function captureViewportQuick() {
|
|
|
4994
4995
|
...sharedOptions,
|
|
4995
4996
|
scale: 0.5,
|
|
4996
4997
|
width: window.innerWidth,
|
|
4997
|
-
height: window.innerHeight
|
|
4998
|
-
style: {
|
|
4999
|
-
transform: `translate(-${window.scrollX}px, -${window.scrollY}px)`
|
|
5000
|
-
}
|
|
4998
|
+
height: window.innerHeight
|
|
5001
4999
|
});
|
|
5002
5000
|
if (!canvasHasContent(d)) {
|
|
5003
5001
|
const p = await domToCanvas(document.body, {
|
|
@@ -18322,7 +18320,7 @@ const $$css$1 = {
|
|
|
18322
18320
|
};
|
|
18323
18321
|
function FeedbackPanel(d, p) {
|
|
18324
18322
|
push(p, !0), append_styles(d, $$css$1);
|
|
18325
|
-
const h = "3.4.
|
|
18323
|
+
const h = "3.4.3";
|
|
18326
18324
|
let g = prop(p, "endpoint", 7), m = prop(p, "project", 7), _ = prop(p, "isOpen", 7, !1), b = prop(p, "userId", 7, ""), y = prop(p, "userEmail", 7, ""), w = prop(p, "userName", 7, ""), x = prop(p, "userRole", 7, ""), E = prop(p, "orgId", 7, ""), k = prop(p, "orgName", 7, ""), S = prop(p, "onclose", 7), I = prop(p, "ongrip", 7), A = prop(p, "agentProxy", 7, ""), M = prop(p, "agentModel", 7, ""), R = prop(p, "agentContext", 7, ""), C = prop(p, "registeredTools", 23, () => []), $ = prop(p, "supabaseUrl", 7, ""), N = prop(p, "supabaseAnonKey", 7, ""), O = /* @__PURE__ */ state("new"), F = /* @__PURE__ */ state(!1), W = /* @__PURE__ */ state(!1), V = /* @__PURE__ */ state(!1), q = /* @__PURE__ */ state(proxy([]));
|
|
18327
18325
|
function pe() {
|
|
18328
18326
|
if (get(V)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jat-feedback",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.3",
|
|
4
4
|
"description": "Embeddable feedback widget for bug reports and feature requests. Captures screenshots, console logs, and user context as a web component.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/jat-feedback.js",
|