@usero/sdk 1.1.2 → 1.1.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/react.cjs +71 -33
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +71 -33
- package/dist/react.js.map +1 -1
- package/dist/usero.iife.js +35 -35
- package/dist/usero.iife.js.map +1 -1
- package/dist/vanilla.cjs +71 -33
- package/dist/vanilla.cjs.map +1 -1
- package/dist/vanilla.js +71 -33
- package/dist/vanilla.js.map +1 -1
- package/package.json +1 -1
package/dist/usero.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Usero=(function(exports){'use strict';var
|
|
1
|
+
var Usero=(function(exports){'use strict';var Be={1:"\u{1F61E}",2:"\u{1F610}",3:"\u{1F60A}",4:"\u{1F929}"},ee={1:"Needs work",2:"It's okay",3:"Pretty good",4:"Amazing!"},Ne={1:"linear-gradient(135deg,#ff6b6b14,#ff6b6b1f)",2:"linear-gradient(135deg,#9ca3af0f,#9ca3af1a)",3:"linear-gradient(135deg,#3b82f614,#3b82f61f)",4:"linear-gradient(135deg,#f59e0b14,#f59e0b1f)"},K="https://usero.io",he={primary:"#2563eb",background:"#ffffff",text:"#374151",border:"#e5e7eb",shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)"},te={primary:"#2563eb",background:"#1f2937",text:"#f9fafb",border:"#374151",shadow:"0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)"};function ut(t={}){return {...he,...t}}function ft(t){return typeof t=="object"&&t!==null&&"error"in t}function pt(t){if(typeof t!="object"||t===null)return {success:false,error:"Invalid response"};let n=t,o=n.success===true,s=typeof n.error=="string"?n.error:void 0,l=n.screenshot,i;if(typeof l=="object"&&l!==null){let a=l;typeof a.fileName=="string"&&typeof a.url=="string"&&typeof a.fileSize=="number"&&typeof a.mimeType=="string"&&(i={fileName:a.fileName,url:a.url,fileSize:a.fileSize,mimeType:a.mimeType,width:typeof a.width=="number"?a.width:void 0,height:typeof a.height=="number"?a.height:void 0});}return {success:o,error:s,screenshot:i}}var ne=class{constructor(n=K){this.baseUrl=n.replace(/\/$/,"");}async submitFeedback(n){try{let o=await fetch(`${this.baseUrl}/api/feedback`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n),signal:AbortSignal.timeout(1e4)});if(!o.ok){let i=`HTTP ${o.status}: ${o.statusText}`;try{let a=await o.json();ft(a)&&typeof a.error=="string"&&(i=a.error);}catch{}throw new Error(i)}let s=await o.json(),l=typeof s=="object"&&s!==null&&"message"in s&&typeof s.message=="string"?s.message:"Feedback submitted successfully";return {success:!0,data:s,message:l}}catch(o){return {success:false,error:o instanceof Error?o.message:"An unexpected error occurred"}}}async uploadScreenshot(n,o){let s=new FormData;s.append("screenshot",n),s.append("clientId",o);let l=await fetch(`${this.baseUrl}/api/screenshots`,{method:"POST",body:s,signal:AbortSignal.timeout(3e4)}),i={success:false};try{let a=await l.json();i=pt(a);}catch{}if(!l.ok||!i.success||!i.screenshot){let a=i.error??`HTTP ${l.status}: ${l.statusText}`;throw new Error(a)}return i.screenshot}ping(){fetch(`${this.baseUrl}/api/ping`,{signal:AbortSignal.timeout(5e3)}).catch(()=>{});}};function gt(t){if(t.startsWith("#")||typeof document>"u")return t;let o=document.createElement("canvas").getContext("2d");return o?(o.fillStyle=t,o.fillStyle):t}function ye(t){let n=gt(t);if(!n.startsWith("#")||n.length<7)return n;let o=parseInt(n.slice(1,3),16),s=parseInt(n.slice(3,5),16),l=parseInt(n.slice(5,7),16),i=Math.max(0,o-60),a=Math.min(255,s+40),w=Math.min(255,l+20);return `#${[i,a,w].map(A=>A.toString(16).padStart(2,"0")).join("")}`}var xe="usero:anonymous-id",We="usero:session-replay:sdk-session-id",G=null,re=null,we=null,ve=null,oe=null;function Se(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();let t=new Uint8Array(16);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(t);else for(let o=0;o<t.length;o+=1)t[o]=Math.floor(Math.random()*256);let n="";for(let o of t)n+=o.toString(16).padStart(2,"0");return n}function mt(t){if(typeof window>"u")return null;try{return window.localStorage?.getItem(t)??null}catch{return null}}function _e(t,n){if(!(typeof window>"u"))try{window.localStorage?.setItem(t,n);}catch{}}function bt(t){if(typeof window>"u")return null;try{return window.sessionStorage?.getItem(t)??null}catch{return null}}function ht(t,n){if(!(typeof window>"u"))try{window.sessionStorage?.setItem(t,n);}catch{}}function ke(){if(G)return G;let t=mt(xe);if(t&&/^[a-z0-9-]{8,}$/i.test(t))return G=t,t;let n=Se();return _e(xe,n),G=n,n}function yt(){let t=Se();return G=t,_e(xe,t),oe=null,we=null,t}function je(){if(re)return re;let t=bt(We);if(t&&/^[a-z0-9-]{8,}$/i.test(t))return re=t,t;let n=Se();return ht(We,n),re=n,n}function qe(){return we}function Ke(t){ve===null&&(ve=t);}function Ge(){return ve}function xt(t,n){let o=n.traits??{},l=Object.keys(o).sort().map(i=>[i,o[i]??null]);return JSON.stringify([t,n.id,n.email??null,n.displayName??null,l])}async function Ve(t,n){let o=ke();we=n.id;let s=xt(o,n);if(s===oe)return false;let l=`${t.apiUrl.replace(/\/$/,"")}/api/identify`,i=JSON.stringify({clientId:t.clientId,anonymousId:o,externalUserId:n.id,email:n.email,displayName:n.displayName,traits:n.traits});if(typeof document<"u"&&document.visibilityState==="hidden"&&typeof navigator<"u"&&typeof navigator.sendBeacon=="function")try{let a=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(l,a))return oe=s,!0}catch{}try{let a=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0});if(!a.ok)return !0;try{let w=await a.json();w&&w.accepted===!0&&(oe=s);}catch{}return !0}catch{return false}}function Je(){yt();}function Ye(t){let n=`[usero:${t}]`;return {debug:(...o)=>{typeof console<"u"&&console.debug(n,...o);},info:(...o)=>{typeof console<"u"&&console.info(n,...o);},warn:(...o)=>{typeof console<"u"&&console.warn(n,...o);},error:(...o)=>{typeof console<"u"&&console.error(n,...o);}}}function Xe(t){let n=[],o=t.rating!=null,s=!!t.comment?.trim();return !o&&!s&&n.push("Add rating or comment"),o&&t.rating!==void 0&&![1,2,3,4].includes(t.rating)&&n.push("Invalid rating"),s&&t.comment!==void 0&&(t.comment.length>1e3&&n.push("Comment too long"),/<script[^>]*>.*?<\/script>/gi.test(t.comment)&&n.push("Invalid comment")),{isValid:n.length===0,errors:n}}var Qe=`
|
|
2
2
|
@keyframes spin {
|
|
3
3
|
0% { transform: rotate(0deg); }
|
|
4
4
|
100% { transform: rotate(360deg); }
|
|
@@ -423,52 +423,52 @@ var Usero=(function(exports){'use strict';var De={1:"\u{1F61E}",2:"\u{1F610}",3:
|
|
|
423
423
|
.fb-el { font-size: 11px !important; }
|
|
424
424
|
.fb-sub { padding: 12px 20px !important; font-size: 16px !important; }
|
|
425
425
|
}
|
|
426
|
-
`;function
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
426
|
+
`;function vt(){return typeof window>"u"||typeof window.matchMedia!="function"?te:window.matchMedia("(prefers-color-scheme: dark)").matches?te:window.matchMedia("(prefers-color-scheme: light)").matches?he:te}function Ee(t){let n=vt();return t?{...n,...t}:n}var Ze="feedback_user_email";function M(t){return t.replace(/[&<>"']/g,n=>{switch(n){case "&":return "&";case "<":return "<";case ">":return ">";case '"':return """;case "'":return "'";default:return n}})}function wt(t,n){let o=t;for(let s of n){if(!s||typeof s!="object")continue;let{metadata:l,...i}=s;o={...o,...i},l&&typeof l=="object"&&(o.metadata={...o.metadata??{},...l});}return o}function St(){if(typeof window>"u")return "";try{return window.localStorage.getItem(Ze)??""}catch{return ""}}function kt(t){try{window.localStorage.setItem(Ze,t);}catch{}}function _t(t){if(typeof document>"u")return {destroy:()=>{},open:()=>{},close:()=>{},update:()=>{},whenReady:()=>Promise.resolve(),identify:()=>{}};let{clientId:n,baseUrl:o}=t;if(!n||n.length<3){let e=new Error("Invalid config. Contact admin.");return t.onError?.(e),{destroy:()=>{},open:()=>{},close:()=>{},update:()=>{},whenReady:()=>Promise.resolve(),identify:()=>{}}}let s=t.position??"right",l=t.theme,i=Ee(l),a=t.title??"Share Feedback",w=t.placeholder??"Tell us what you think... (optional)",A=t.showEmailOption??true,E=t.showScreenshotOption??true,Ue=t.environment,ie=t.metadata,Te=t.onSubmit,se=t.onError,$e=t.onOpen,Ie=t.onClose,V=t.getUser,J=t.user,ae=new ne(o),et={apiUrl:o??K,clientId:n},Y=null,le,de,ce;function C(e){let r=e??null;if(r){if(r.id===Y&&r.traits===le&&r.email===de&&r.displayName===ce)return;Ve(et,r),Y=r.id,le=r.traits,de=r.email,ce=r.displayName;}else Y!==null&&(Je(),Y=null,le=void 0,de=void 0,ce=void 0);}function ue(){if(V)try{C(V()??null);}catch{}}t.user!==void 0?C(t.user):V&&ue();let X=t.plugins??[],fe=new Map,Q=new Map,pe=[];for(let e of X){let r={clientId:n,baseUrl:o??K,logger:Ye(e.name),getStore:()=>fe.get(e.name),setStore:u=>{fe.set(e.name,u);},resolveUser:()=>{W||(J!==void 0?C(J):ue());},getSdkSessionId:()=>je(),getAnonymousId:()=>ke(),getUserId:()=>qe(),getReplayStartMs:()=>Ge(),publishReplayStartMs:u=>Ke(u)};if(Q.set(e.name,r),e.onInit){let u=(async()=>{try{await e.onInit?.(r);}catch(k){r.logger.error("onInit threw",k);}})();pe.push(u);}}let tt=pe.length===0?Promise.resolve():Promise.all(pe).then(()=>{}),b=false,Z=false,D,U="",T=false,O=St(),v=false,h=null,f=[],S=false,y=null,F=3,nt=10*1024*1024,P=document.createElement("div");P.setAttribute("data-usero-widget",""),P.style.cssText="all: initial;",document.body.appendChild(P);let z=P.attachShadow({mode:"open"});function rt(){ue();}function Me(e){try{window.dispatchEvent(new CustomEvent("usero:shadow-update",{detail:{host:P,root:z,reason:e}}));}catch{}}Me("mount");let Fe=document.createElement("style");Fe.textContent=Qe,z.appendChild(Fe);let $=document.createElement("button"),H=document.createElement("div"),c=document.createElement("div");z.appendChild($),z.appendChild(H),z.appendChild(c);function ot(e){h=e,x();}function Pe(){b||(b=true,Z=true,D=void 0,U="",T=false,h=null,f=[],y=null,S=false,ae.ping(),rt(),$e?.(),x(),Me("panel-open"));}async function it(e){if(y=null,!e.type.startsWith("image/")){y="Image files only",R();return}if(e.size>nt){y="Max 10MB",R();return}if(f.length>=F){y=`Max ${F} screenshots`,R();return}S=true,ge(),R();try{let r=await ae.uploadScreenshot(e,n);f=[...f,r];}catch(r){y=r instanceof Error?r.message:"Upload failed";}finally{S=false,ge(),R();}}function Re(e){f=f.filter((r,u)=>u!==e),ge(),R();}function B(){b&&(b=false,Ie?.(),x());}function Le(){return S?'<span class="fb-ups"></span> Uploading...':"\u{1F4F7} Add screenshot"}function st(){let e=f.length>=F,r=S||e;return `
|
|
427
|
+
<input type="file" accept="image/*" data-role="screenshot-input" style="display:none;" aria-label="Choose screenshot" />
|
|
428
|
+
<button type="button" class="fb-upb ${r?"fb-upb--dis":""}" data-role="screenshot-pick" ${r?"disabled":""} style="border:1px solid ${i.border};color:${i.text};">
|
|
429
|
+
${Le()}
|
|
430
|
+
</button>
|
|
431
|
+
`}function Ae(){let e=f.length>=F,r=f.map((m,g)=>`
|
|
432
|
+
<div class="fb-sp">
|
|
433
|
+
<img src="${M(m.url)}" alt="Screenshot ${g+1}" class="fb-si" />
|
|
434
|
+
<button type="button" class="fb-sr" data-role="screenshot-remove" data-index="${g}" aria-label="Remove screenshot">\u2715</button>
|
|
432
435
|
</div>
|
|
433
|
-
`
|
|
434
|
-
|
|
435
|
-
<button type="button" class="fb-
|
|
436
|
-
|
|
436
|
+
`).join(""),u=y?`<div class="fb-upe">\u26A0 ${M(y)}</div>`:"",k=e?`<div class="fb-sl">Max ${F}</div>`:"";return y||f.length>0||e?`<div class="fb-up-extras">${u}${f.length>0?`<div class="fb-ss">${r}</div>`:""}${k}</div>`:""}function ge(){if(!E)return;let e=c.querySelector('button[data-role="screenshot-pick"]');if(!e)return;let r=f.length>=F,u=S||r;e.disabled=u,e.classList.toggle("fb-upb--dis",u),e.innerHTML=Le();}function R(){if(!E)return;let e=c.querySelector(".fb-up");e&&(e.innerHTML=Ae(),e.querySelectorAll('button[data-role="screenshot-remove"]').forEach(r=>{r.addEventListener("click",()=>{let u=Number(r.dataset.index);Number.isInteger(u)&&Re(u);});}));}async function Ce(){if(v)return;v=true,h=null,x();let e={rating:D,comment:U.trim()||void 0,userEmail:T?O:void 0,screenshots:f.length>0?f:void 0,metadata:{pageUrl:window.location.href,pageTitle:document.title||"Untitled Page",referrer:document.referrer||void 0,timestamp:Date.now()}},r={clientId:n,rating:e.rating,comment:e.comment,userEmail:e.userEmail,pageUrl:e.metadata.pageUrl,pageTitle:e.metadata.pageTitle,referrer:e.metadata.referrer,environment:Ue};f.length>0&&(r.screenshots=f),ie!==void 0&&(r.metadata=ie);let u=Xe(r);if(!u.isValid){v=false,ot({type:"error",text:u.errors.join(", ")});return}let k=r;if(X.length>0){let m=X.map(async _=>{if(!_.onFeedbackSubmit)return;let I=Q.get(_.name);if(I)try{return await _.onFeedbackSubmit(I,r)}catch(me){I.logger.error("onFeedbackSubmit threw",me);return}}),g=await Promise.all(m);k=wt(r,g);}try{let m=await ae.submitFeedback(k);if(m.success)T&&O&&kt(O),Te?.(e),D=void 0,U="",T=!1,f=[],y=null,h={type:"success",text:"Thank you!"};else {let g=m.error??"Error occurred. Try again.";se?.(new Error(g)),h={type:"error",text:g};}}catch(m){let g=m instanceof Error?m.message:"Error occurred. Try again.";se?.(new Error(g)),h={type:"error",text:g};}finally{v=false,x();}}function at(){$.className=`fb-btn fb-btn--${s} ${b?"fb-btn--open":""}`,$.setAttribute("aria-label","Open feedback"),$.type="button",$.style.background=`linear-gradient(135deg, ${i.primary}, ${ye(i.primary)})`,$.innerHTML=b?'<span style="font-size:20px;">\u2715</span>':"";}function lt(){H.className="fb-backdrop",H.style.display=b?"block":"none",H.setAttribute("aria-label","Close modal");}function dt(){c.className=`fb-pnl-base fb-pnl--${s} ${b?"fb-pnl--open":"fb-pnl--closed"}`,c.style.backgroundColor=i.background,s==="right"?(c.style.borderLeft=`1px solid ${i.border}`,c.style.borderRight=""):(c.style.borderRight=`1px solid ${i.border}`,c.style.borderLeft=""),c.setAttribute("role","dialog"),c.setAttribute("aria-modal","true"),c.setAttribute("aria-labelledby","usero-feedback-title");let e=1e3-U.length,r=e<50,u=[1,2,3,4].map(d=>{let p=D===d,ct=Ne[d];return `
|
|
437
|
+
<div class="${["fb-ec",p&&"fb-ec--sel"].filter(Boolean).join(" ")}" style="background:${ct}">
|
|
438
|
+
<button type="button" class="fb-eb" data-rating="${d}" role="radio" aria-checked="${p}" aria-label="${d}: ${ee[d]}" style="color:${i.text}">
|
|
439
|
+
<div class="fb-ei"><span role="img" aria-label="${ee[d]}">${Be[d]}</span></div>
|
|
440
|
+
<div class="fb-el" style="color:${i.text}">${ee[d]}</div>
|
|
437
441
|
</button>
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
<img src="${T(lt.url)}" alt="Screenshot ${ze+1}" class="fb-si" />
|
|
441
|
-
<button type="button" class="fb-sr" data-role="screenshot-remove" data-index="${ze}" aria-label="Remove screenshot">\u2715</button>
|
|
442
|
-
</div>
|
|
443
|
-
`).join(""),me=h?`<div class="fb-upe">\u26A0 ${T(h)}</div>`:"",Oe=l?`<div class="fb-sl">Max ${C}</div>`:"";return h||f.length>0||l?`<div class="fb-up-extras">${me}${f.length>0?`<div class="fb-ss">${u}</div>`:""}${Oe}</div>`:""})():"",W=P?`
|
|
442
|
+
</div>
|
|
443
|
+
`}).join(""),k=h?`<div class="fb-msg fb-msg--header ${h.type==="success"?"fb-msg--ok":"fb-msg--err"}">${h.type==="success"?"\u2713":"\u26A0"} ${M(h.text)}</div>`:"",m=E?st():"",g=E?Ae():"",_=A?`
|
|
444
444
|
<div class="fb-email">
|
|
445
|
-
<label class="fb-email-lbl" style="color:${
|
|
446
|
-
<input type="checkbox" class="fb-email-cb" data-role="share-email" ${
|
|
445
|
+
<label class="fb-email-lbl" style="color:${i.text}">
|
|
446
|
+
<input type="checkbox" class="fb-email-cb" data-role="share-email" ${T?"checked":""} aria-label="Share email" />
|
|
447
447
|
<span>Share my email</span>
|
|
448
448
|
</label>
|
|
449
|
-
${
|
|
449
|
+
${T?`<input type="email" class="fb-email-inp" data-role="email-input" value="${M(O)}" placeholder="your.email@example.com" aria-label="Email" maxlength="254" autocomplete="email" style="border:1px solid ${i.border};color:${i.text};background-color:${i.background};" />`:""}
|
|
450
450
|
</div>
|
|
451
|
-
`:"",
|
|
451
|
+
`:"",I=v,me=`background:linear-gradient(135deg, ${i.primary}, ${ye(i.primary)});color:#ffffff;${I?"opacity:0.6;cursor:not-allowed;":""}`;c.innerHTML=`
|
|
452
452
|
<div class="fb-cnt">
|
|
453
|
-
<div class="fb-hdr" style="border-bottom:1px solid ${
|
|
454
|
-
<h2 id="usero-feedback-title" class="fb-ttl" style="color:${
|
|
455
|
-
${
|
|
456
|
-
<button class="fb-close-btn" data-role="close" style="color:${
|
|
453
|
+
<div class="fb-hdr" style="border-bottom:1px solid ${i.border}">
|
|
454
|
+
<h2 id="usero-feedback-title" class="fb-ttl" style="color:${i.text}">${M(a)}</h2>
|
|
455
|
+
${k}
|
|
456
|
+
<button class="fb-close-btn" data-role="close" style="color:${i.text}" aria-label="Close" type="button">\u2715</button>
|
|
457
457
|
</div>
|
|
458
458
|
<form data-role="form">
|
|
459
|
-
<div class="fb-es" role="radiogroup" aria-label="Rate experience">${
|
|
460
|
-
<textarea class="fb-ta" data-role="comment" placeholder="${
|
|
459
|
+
<div class="fb-es" role="radiogroup" aria-label="Rate experience">${u}</div>
|
|
460
|
+
<textarea class="fb-ta" data-role="comment" placeholder="${M(w)}" aria-label="Comments" maxlength="1000" rows="2" style="border:1px solid ${i.border};color:${i.text};background-color:${i.background};">${M(U)}</textarea>
|
|
461
461
|
<div class="fb-toolrow">
|
|
462
|
-
${
|
|
463
|
-
<div class="fb-charcount${
|
|
462
|
+
${m}
|
|
463
|
+
<div class="fb-charcount${r?" fb-charcount--low":""}" data-role="charcount" style="color:${r?"#dc2626":i.text};opacity:${r?1:.6};">${e} chars remaining</div>
|
|
464
464
|
</div>
|
|
465
|
-
${
|
|
466
|
-
${
|
|
467
|
-
<button class="fb-sub ${
|
|
468
|
-
${
|
|
469
|
-
${
|
|
465
|
+
${E?`<div class="fb-up">${g}</div>`:""}
|
|
466
|
+
${_}
|
|
467
|
+
<button class="fb-sub ${I?"fb-sub--dis":""}" type="submit" aria-label="Submit" ${I?"disabled":""} style="${me}">
|
|
468
|
+
${v?'<span class="fb-spin"></span>':""}
|
|
469
|
+
${v?"Submitting...":"Send Feedback \u{1F680}"}
|
|
470
470
|
</button>
|
|
471
471
|
</form>
|
|
472
472
|
</div>
|
|
473
|
-
`,c.querySelector('form[data-role="form"]')?.addEventListener("submit",
|
|
473
|
+
`,c.querySelector('form[data-role="form"]')?.addEventListener("submit",d=>{d.preventDefault(),Ce();}),c.querySelector('button[data-role="close"]')?.addEventListener("click",B),c.querySelectorAll("button[data-rating]").forEach(d=>{d.addEventListener("click",()=>{let p=d.dataset.rating;(p==="1"||p==="2"||p==="3"||p==="4")&&(D=Number(p),Z=true,x());});});let j=c.querySelector('textarea[data-role="comment"]');j&&(Z&&(Z=false,requestAnimationFrame(()=>j.focus({preventScroll:true}))),j.addEventListener("input",()=>{if(j.value.length<=1e3){U=j.value;let d=c.querySelector('[data-role="charcount"]');if(d){let p=1e3-U.length;d.textContent=`${p} chars remaining`,d.style.color=p<50?"#dc2626":i.text,d.style.opacity=p<50?"1":"0.6";}}}));let He=c.querySelector('input[data-role="share-email"]');He?.addEventListener("change",()=>{T=He.checked,x();});let be=c.querySelector('input[data-role="email-input"]');be?.addEventListener("input",()=>{be.value.length<=254&&(O=be.value);});let q=c.querySelector('input[data-role="screenshot-input"]');c.querySelector('button[data-role="screenshot-pick"]')?.addEventListener("click",()=>{q?.click();}),q?.addEventListener("change",()=>{let d=q.files?.[0];d&&it(d).finally(()=>{q&&(q.value="");});}),c.querySelectorAll('button[data-role="screenshot-remove"]').forEach(d=>{d.addEventListener("click",()=>{let p=Number(d.dataset.index);Number.isInteger(p)&&Re(p);});});}function x(){at(),lt(),dt();}$.addEventListener("click",()=>{b?B():Pe();}),H.addEventListener("click",()=>{S||v||B();});let De=e=>{if(b){if(e.key==="Escape"){if(S||v)return;B();}e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),Ce());}};document.addEventListener("keydown",De);let L=null,N=null;function Oe(){L&&N&&L.removeEventListener("change",N),L=null,N=null;}function ze(){L||typeof window>"u"||typeof window.matchMedia!="function"||(L=window.matchMedia("(prefers-color-scheme: dark)"),N=()=>{l===void 0&&(i=Ee(void 0),x());},L.addEventListener("change",N));}l===void 0&&ze(),x();let W=false;return {destroy:()=>{if(!W){W=true,document.removeEventListener("keydown",De),Oe();for(let e of X){if(!e.onDestroy)continue;let r=Q.get(e.name);if(r)try{e.onDestroy(r);}catch(u){r.logger.error("onDestroy threw",u);}}fe.clear(),Q.clear(),P.remove();}},open:Pe,close:B,whenReady:()=>tt,identify:e=>{W||(J=e,C(e));},update:e=>{if(W)return;let r=false;e.position!==void 0&&e.position!==s&&(s=e.position,r=true),"theme"in e&&(l=e.theme,i=Ee(l),l===void 0?ze():Oe(),r=true),e.title!==void 0&&e.title!==a&&(a=e.title,r=true),e.placeholder!==void 0&&e.placeholder!==w&&(w=e.placeholder,r=true),e.showEmailOption!==void 0&&e.showEmailOption!==A&&(A=e.showEmailOption,r=true),e.showScreenshotOption!==void 0&&e.showScreenshotOption!==E&&(E=e.showScreenshotOption,r=true),"environment"in e&&(Ue=e.environment),"metadata"in e&&(ie=e.metadata),"onSubmit"in e&&(Te=e.onSubmit),"onError"in e&&(se=e.onError),"onOpen"in e&&($e=e.onOpen),"onClose"in e&&(Ie=e.onClose),"getUser"in e&&(V=e.getUser),"user"in e&&(J=e.user,C(e.user)),r&&x();}}}exports.DARK_THEME=te;exports.DEFAULT_THEME=he;exports.initUseroFeedbackWidget=_t;exports.mergePluginPatches=wt;exports.mergeTheme=ut;exports.resolveTheme=Ee;return exports;})({});//# sourceMappingURL=usero.iife.js.map
|
|
474
474
|
//# sourceMappingURL=usero.iife.js.map
|