@mhosaic/feedback 0.18.0 → 0.18.1

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/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createFeedback
3
- } from "./chunk-4QQI5ZYD.mjs";
3
+ } from "./chunk-5FVEQYA5.mjs";
4
4
  import "./chunk-4QOIFIT5.mjs";
5
5
  import "./chunk-FGA63IEZ.mjs";
6
6
  export {
package/dist/react.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createFeedback
3
- } from "./chunk-4QQI5ZYD.mjs";
3
+ } from "./chunk-5FVEQYA5.mjs";
4
4
  import {
5
5
  withErrorTracking
6
6
  } from "./chunk-QJ562NTG.mjs";
@@ -1,4 +1,4 @@
1
- "use strict";var MhosaicFeedback=(()=>{var se=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var Kt=Object.getOwnPropertyNames;var Ht=Object.prototype.hasOwnProperty;var Nt=(e,t,r)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ut=(e,t)=>{for(var r in t)se(e,r,{get:t[r],enumerable:!0})},jt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Kt(t))!Ht.call(e,a)&&a!==r&&se(e,a,{get:()=>t[a],enumerable:!(n=Wt(t,a))||n.enumerable});return e};var Ot=e=>jt(se({},"__esModule",{value:!0}),e);var Se=(e,t,r)=>Nt(e,typeof t!="symbol"?t+"":t,r);var go={};Ut(go,{createFeedback:()=>ho});var Vt=["description","feedback_type","severity","env","page_url","user_agent","capture_method"];function qt(e){let t;try{t=new URL(e)}catch(r){throw new Error(`[mhosaic-feedback] \`endpoint\` is not a valid URL: ${e}`)}if(t.protocol!=="https:"&&!(t.protocol==="http:"&&(t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]")))throw new Error(`[mhosaic-feedback] \`endpoint\` must use https:// (got ${t.protocol}//${t.hostname}). http:// is only allowed for localhost in dev.`)}function Ke(e){var x,_;let t=((x=e.endpoint)!=null?x:"").replace(/\/+$/,"");if(!t)throw new Error('[mhosaic-feedback] `endpoint` is required (e.g. "https://feedback.example.com").');qt(t);let r=(_=e.fetch)!=null?_:globalThis.fetch;async function n(y){var B,T,F;let p=y;if(e.beforeSend&&(p=await e.beforeSend(y)),p===!1)throw new Error("Submission cancelled by beforeSend");let u=new FormData;for(let P of Vt)u.append(P,String(p[P]));u.append("technical_context",JSON.stringify(p.technical_context)),p.screenshot&&u.append("screenshot",p.screenshot,"screenshot.png"),p.synthetic&&u.append("synthetic","true"),(B=p.user)!=null&&B.id&&u.append("user",JSON.stringify(p.user)),p.widget_version&&u.append("widget_version",p.widget_version);let m={Authorization:`Bearer ${e.apiKey}`};p.synthetic&&(m["X-Mhosaic-Capture-Source"]="error-tracking");let w=(T=e.getSignedIdentity)==null?void 0:T.call(e);w&&w.userHash&&w.exp&&((F=p.user)!=null&&F.id)&&(m["X-Mhosaic-User"]=String(p.user.id),m["X-Mhosaic-User-Hmac"]=w.userHash,m["X-Mhosaic-User-Exp"]=String(w.exp),w.email&&(m["X-Mhosaic-User-Email"]=w.email));let C=await r(`${t}/api/feedback/v1/reports/`,{method:"POST",headers:m,body:u});if(!C.ok){let P=await C.text().catch(()=>"");throw new Error(`Feedback submit failed: ${C.status} ${P}`)}return C.json()}function a(y){var m;let p={Authorization:`Bearer ${e.apiKey}`,"X-Mhosaic-User":y},u=(m=e.getSignedIdentity)==null?void 0:m.call(e);return u&&u.userHash&&u.exp&&(p["X-Mhosaic-User-Hmac"]=u.userHash,p["X-Mhosaic-User-Exp"]=String(u.exp),u.email&&(p["X-Mhosaic-User-Email"]=u.email)),p}async function i(y){let p=await r(`${t}/api/feedback/v1/reports/widget/mine/`,{method:"GET",headers:a(y)});if(p.status===404)return[];if(!p.ok){let u=await p.text().catch(()=>"");throw new Error(`listMine failed: ${p.status} ${u}`)}return p.json()}async function s(y){let p=await r(`${t}/api/feedback/v1/reports/widget/changelog/`,{method:"GET",headers:a(y)});if(p.status===404)return[];if(!p.ok){let u=await p.text().catch(()=>"");throw new Error(`listChangelog failed: ${p.status} ${u}`)}return p.json()}async function l(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/${y}/`,{method:"GET",headers:a(p)});if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`getReport failed: ${u.status} ${m}`)}return u.json()}async function f(y,p,u,m){let w=await r(`${t}/api/feedback/v1/reports/widget/${y}/comments/`,{method:"POST",headers:{...a(p),"Content-Type":"application/json"},body:JSON.stringify({body:u,...m!==void 0&&{client_nonce:m}})});if(!w.ok){let C=await w.text().catch(()=>"");throw new Error(`addComment failed: ${w.status} ${C}`)}return w.json()}async function c(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/${y}/`,{method:"PATCH",headers:{...a(p),"Content-Type":"application/json"},body:JSON.stringify({status:"closed"})});if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`closeAsResolved failed: ${u.status} ${m}`)}return u.json()}function h(y){var m,w,C;if(!y)return"";let p=new URLSearchParams;(m=y.status)==null||m.forEach(B=>p.append("status",B)),(w=y.type)==null||w.forEach(B=>p.append("type",B)),(C=y.severity)==null||C.forEach(B=>p.append("severity",B)),y.q&&p.set("q",y.q),y.mine&&p.set("mine","1"),y.page&&y.page>1&&p.set("page",String(y.page));let u=p.toString();return u?`?${u}`:""}async function d(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/board/${h(p)}`,{method:"GET",headers:a(y)});if(u.status===404)return{count:0,next:null,previous:null,results:[]};if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`listBoard failed: ${u.status} ${m}`)}return u.json()}async function g(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/board/kpis/${h(p)}`,{method:"GET",headers:a(y)});if(u.status===404)return{total:0,by_status:{},resolution_rate:0,scope:"mine"};if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`fetchBoardKpis failed: ${u.status} ${m}`)}return u.json()}async function b(y){let p=await r(`${t}/api/feedback/v1/widget/visibility/`,{method:"POST",headers:{...a(y),"Content-Type":"application/json"},body:JSON.stringify({external_id:y})});if(!p.ok)throw new Error(`checkVisibility failed: ${p.status}`);return!!(await p.json()).show}return{submitReport:n,checkVisibility:b,listMine:i,listChangelog:s,getReport:l,addComment:f,closeAsResolved:c,listBoard:d,fetchBoardKpis:g}}var Gt=/token|key|password|secret|auth|session|sig|credential|bearer|cookie/i,Xt=[/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,/^(?:sk|pk)_proj_[A-Za-z0-9_-]{16,}$/,/^gh[pousr]_[A-Za-z0-9]{30,}$/,/^(?:sk|pk|rk|whsec)_(?:live|test)_[A-Za-z0-9]{16,}$/,/^AKIA[0-9A-Z]{12,}$/,/^xox[abprso]-[A-Za-z0-9-]{12,}$/,/^[a-f0-9]{40,}$/i,/^[A-Za-z0-9_-]{40,}$/];function Zt(e){return Xt.some(t=>t.test(e))}function Y(e){try{let t=/^https?:\/\//i.test(e),r=e.startsWith("/");if(!t&&!r)return e;let n=typeof window!="undefined"?window.location.origin:"http://localhost",a=new URL(e,n),i=new URLSearchParams;return a.searchParams.forEach((s,l)=>{Gt.test(l)||Zt(s)?i.set(l,"[redacted]"):i.set(l,s)}),a.search=i.toString(),a.hash=a.hash?"#[redacted]":"",a.toString()}catch(t){return e}}var Yt=[/\b(?:sk|pk)_proj_[A-Za-z0-9_*-]+/g,/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,/\bBearer\s+[A-Za-z0-9._~+/=-]{16,}\b/g,/\bAuthorization\s*[:=]\s*["']?[A-Za-z0-9._~+/=-]{16,}["']?/gi,/\bgh[pousr]_[A-Za-z0-9]{30,}\b/g,/\b(?:sk|pk|rk|whsec)_(?:live|test)_[A-Za-z0-9]{16,}\b/g,/\bAKIA[0-9A-Z]{12,}\b/g,/\bxox[abprso]-[A-Za-z0-9-]{12,}\b/g,/\bAIza[0-9A-Za-z_-]{35}\b/g,/\bsk-(?:proj-|svcacct-)?[A-Za-z0-9_-]{20,}\b/g,/\bsk-ant-(?:api03-)?[A-Za-z0-9_-]{40,}\b/g,/\bAC[a-f0-9]{32}\b/g,/\bSK[a-f0-9]{32}\b/g];function j(e){let t=e;for(let r of Yt)t=t.replace(r,"[redacted-token]");return t}function He(){var l;let e=navigator,t=(l=e.connection)==null?void 0:l.effectiveType,r=e.deviceMemory,n=document.referrer||void 0,a=n!==void 0?Y(n):void 0,i=Y(window.location.pathname+window.location.search),s;try{let f=new URL(i,window.location.origin);s=f.pathname+f.search}catch(f){s=window.location.pathname}return{viewport:{w:window.innerWidth,h:window.innerHeight,dpr:window.devicePixelRatio||1},screen:{w:window.screen.width,h:window.screen.height},platform:e.platform,language:e.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,timezoneOffset:new Date().getTimezoneOffset(),...t!==void 0&&{connection:t},online:e.onLine,...r!==void 0&&{deviceMemory:r},hardwareConcurrency:e.hardwareConcurrency,...a!==void 0&&{referrer:a},title:j(document.title||"").slice(0,200),pathname:s}}function Jt(e){if(e==null)return String(e);if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e instanceof Error)return`${e.name}: ${e.message}`;if(e instanceof Element)return`<${e.tagName.toLowerCase()}>`;try{return JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)}catch(t){try{return String(e)}catch(r){return"[unserializable]"}}}function Ne(e){let t=["log","info","warn","error","debug"],r={};for(let n of t){let a=console[n];typeof a=="function"&&(r[n]=a,console[n]=function(...s){try{let l=s.map(Jt).join(" "),f=j(l).slice(0,2e3),c={level:n,message:f,ts:Date.now()};if(n==="error"){let h=new Error().stack;h&&(c.stack=h.split(`
1
+ "use strict";var MhosaicFeedback=(()=>{var se=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var Kt=Object.getOwnPropertyNames;var Ht=Object.prototype.hasOwnProperty;var Nt=(e,t,r)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ut=(e,t)=>{for(var r in t)se(e,r,{get:t[r],enumerable:!0})},jt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Kt(t))!Ht.call(e,a)&&a!==r&&se(e,a,{get:()=>t[a],enumerable:!(n=Wt(t,a))||n.enumerable});return e};var Ot=e=>jt(se({},"__esModule",{value:!0}),e);var Se=(e,t,r)=>Nt(e,typeof t!="symbol"?t+"":t,r);var go={};Ut(go,{createFeedback:()=>ho});var Vt=["description","feedback_type","severity","env","page_url","user_agent","capture_method"];function qt(e){let t;try{t=new URL(e)}catch(r){throw new Error(`[mhosaic-feedback] \`endpoint\` is not a valid URL: ${e}`)}if(t.protocol!=="https:"&&!(t.protocol==="http:"&&(t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]")))throw new Error(`[mhosaic-feedback] \`endpoint\` must use https:// (got ${t.protocol}//${t.hostname}). http:// is only allowed for localhost in dev.`)}function Ke(e){var x,_;let t=((x=e.endpoint)!=null?x:"").replace(/\/+$/,"");if(!t)throw new Error('[mhosaic-feedback] `endpoint` is required (e.g. "https://feedback.example.com").');qt(t);let r=(_=e.fetch)!=null?_:globalThis.fetch;async function n(y){var B,T,F;let p=y;if(e.beforeSend&&(p=await e.beforeSend(y)),p===!1)throw new Error("Submission cancelled by beforeSend");let u=new FormData;for(let P of Vt)u.append(P,String(p[P]));u.append("technical_context",JSON.stringify(p.technical_context)),p.screenshot&&u.append("screenshot",p.screenshot,"screenshot.png"),p.synthetic&&u.append("synthetic","true"),(B=p.user)!=null&&B.id&&u.append("user",JSON.stringify(p.user)),p.widget_version&&u.append("widget_version",p.widget_version);let m={Authorization:`Bearer ${e.apiKey}`};p.synthetic&&(m["X-Mhosaic-Capture-Source"]="error-tracking");let w=(T=e.getSignedIdentity)==null?void 0:T.call(e);w&&w.userHash&&w.exp&&((F=p.user)!=null&&F.id)&&(m["X-Mhosaic-User"]=String(p.user.id),m["X-Mhosaic-User-Hmac"]=w.userHash,m["X-Mhosaic-User-Exp"]=String(w.exp),w.email&&(m["X-Mhosaic-User-Email"]=w.email));let C=await r(`${t}/api/feedback/v1/reports/`,{method:"POST",headers:m,body:u});if(!C.ok){let P=await C.text().catch(()=>"");throw new Error(`Feedback submit failed: ${C.status} ${P}`)}return C.json()}function a(y){var m;let p={Authorization:`Bearer ${e.apiKey}`,"X-Mhosaic-User":y},u=(m=e.getSignedIdentity)==null?void 0:m.call(e);return u&&u.userHash&&u.exp&&(p["X-Mhosaic-User-Hmac"]=u.userHash,p["X-Mhosaic-User-Exp"]=String(u.exp),u.email&&(p["X-Mhosaic-User-Email"]=u.email)),p}async function i(y){let p=await r(`${t}/api/feedback/v1/reports/widget/mine/`,{method:"GET",headers:a(y)});if(p.status===404)return[];if(!p.ok){let u=await p.text().catch(()=>"");throw new Error(`listMine failed: ${p.status} ${u}`)}return p.json()}async function s(y){let p=await r(`${t}/api/feedback/v1/reports/widget/changelog/`,{method:"GET",headers:a(y)});if(p.status===404)return[];if(!p.ok){let u=await p.text().catch(()=>"");throw new Error(`listChangelog failed: ${p.status} ${u}`)}return p.json()}async function l(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/${y}/`,{method:"GET",headers:a(p)});if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`getReport failed: ${u.status} ${m}`)}return u.json()}async function f(y,p,u,m){let w=await r(`${t}/api/feedback/v1/reports/widget/${y}/comments/`,{method:"POST",headers:{...a(p),"Content-Type":"application/json"},body:JSON.stringify({body:u,...m!==void 0&&{client_nonce:m}})});if(!w.ok){let C=await w.text().catch(()=>"");throw new Error(`addComment failed: ${w.status} ${C}`)}return w.json()}async function c(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/${y}/`,{method:"PATCH",headers:{...a(p),"Content-Type":"application/json"},body:JSON.stringify({status:"closed"})});if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`closeAsResolved failed: ${u.status} ${m}`)}return u.json()}function h(y){var m,w,C;if(!y)return"";let p=new URLSearchParams;(m=y.status)==null||m.forEach(B=>p.append("status",B)),(w=y.type)==null||w.forEach(B=>p.append("type",B)),(C=y.severity)==null||C.forEach(B=>p.append("severity",B)),y.q&&p.set("q",y.q),y.mine&&p.set("mine","1"),y.page&&y.page>1&&p.set("page",String(y.page));let u=p.toString();return u?`?${u}`:""}async function d(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/board/${h(p)}`,{method:"GET",headers:a(y)});if(u.status===404)return{count:0,next:null,previous:null,results:[]};if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`listBoard failed: ${u.status} ${m}`)}return u.json()}async function g(y,p){let u=await r(`${t}/api/feedback/v1/reports/widget/board/kpis/${h(p)}`,{method:"GET",headers:a(y)});if(u.status===404)return{total:0,by_status:{},resolution_rate:0,scope:"mine"};if(!u.ok){let m=await u.text().catch(()=>"");throw new Error(`fetchBoardKpis failed: ${u.status} ${m}`)}return u.json()}async function b(y,p){let u=await r(`${t}/api/feedback/v1/widget/visibility/`,{method:"POST",headers:{...a(y),"Content-Type":"application/json"},body:JSON.stringify({external_id:y,...p?{email:p}:{}})});if(!u.ok)throw new Error(`checkVisibility failed: ${u.status}`);return!!(await u.json()).show}return{submitReport:n,checkVisibility:b,listMine:i,listChangelog:s,getReport:l,addComment:f,closeAsResolved:c,listBoard:d,fetchBoardKpis:g}}var Gt=/token|key|password|secret|auth|session|sig|credential|bearer|cookie/i,Xt=[/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,/^(?:sk|pk)_proj_[A-Za-z0-9_-]{16,}$/,/^gh[pousr]_[A-Za-z0-9]{30,}$/,/^(?:sk|pk|rk|whsec)_(?:live|test)_[A-Za-z0-9]{16,}$/,/^AKIA[0-9A-Z]{12,}$/,/^xox[abprso]-[A-Za-z0-9-]{12,}$/,/^[a-f0-9]{40,}$/i,/^[A-Za-z0-9_-]{40,}$/];function Zt(e){return Xt.some(t=>t.test(e))}function Y(e){try{let t=/^https?:\/\//i.test(e),r=e.startsWith("/");if(!t&&!r)return e;let n=typeof window!="undefined"?window.location.origin:"http://localhost",a=new URL(e,n),i=new URLSearchParams;return a.searchParams.forEach((s,l)=>{Gt.test(l)||Zt(s)?i.set(l,"[redacted]"):i.set(l,s)}),a.search=i.toString(),a.hash=a.hash?"#[redacted]":"",a.toString()}catch(t){return e}}var Yt=[/\b(?:sk|pk)_proj_[A-Za-z0-9_*-]+/g,/\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,/\bBearer\s+[A-Za-z0-9._~+/=-]{16,}\b/g,/\bAuthorization\s*[:=]\s*["']?[A-Za-z0-9._~+/=-]{16,}["']?/gi,/\bgh[pousr]_[A-Za-z0-9]{30,}\b/g,/\b(?:sk|pk|rk|whsec)_(?:live|test)_[A-Za-z0-9]{16,}\b/g,/\bAKIA[0-9A-Z]{12,}\b/g,/\bxox[abprso]-[A-Za-z0-9-]{12,}\b/g,/\bAIza[0-9A-Za-z_-]{35}\b/g,/\bsk-(?:proj-|svcacct-)?[A-Za-z0-9_-]{20,}\b/g,/\bsk-ant-(?:api03-)?[A-Za-z0-9_-]{40,}\b/g,/\bAC[a-f0-9]{32}\b/g,/\bSK[a-f0-9]{32}\b/g];function j(e){let t=e;for(let r of Yt)t=t.replace(r,"[redacted-token]");return t}function He(){var l;let e=navigator,t=(l=e.connection)==null?void 0:l.effectiveType,r=e.deviceMemory,n=document.referrer||void 0,a=n!==void 0?Y(n):void 0,i=Y(window.location.pathname+window.location.search),s;try{let f=new URL(i,window.location.origin);s=f.pathname+f.search}catch(f){s=window.location.pathname}return{viewport:{w:window.innerWidth,h:window.innerHeight,dpr:window.devicePixelRatio||1},screen:{w:window.screen.width,h:window.screen.height},platform:e.platform,language:e.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,timezoneOffset:new Date().getTimezoneOffset(),...t!==void 0&&{connection:t},online:e.onLine,...r!==void 0&&{deviceMemory:r},hardwareConcurrency:e.hardwareConcurrency,...a!==void 0&&{referrer:a},title:j(document.title||"").slice(0,200),pathname:s}}function Jt(e){if(e==null)return String(e);if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e instanceof Error)return`${e.name}: ${e.message}`;if(e instanceof Element)return`<${e.tagName.toLowerCase()}>`;try{return JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)}catch(t){try{return String(e)}catch(r){return"[unserializable]"}}}function Ne(e){let t=["log","info","warn","error","debug"],r={};for(let n of t){let a=console[n];typeof a=="function"&&(r[n]=a,console[n]=function(...s){try{let l=s.map(Jt).join(" "),f=j(l).slice(0,2e3),c={level:n,message:f,ts:Date.now()};if(n==="error"){let h=new Error().stack;h&&(c.stack=h.split(`
2
2
  `).slice(2,8).join(`
3
3
  `))}e.push(c)}catch(l){}a.apply(console,s)})}return()=>{for(let[n,a]of Object.entries(r))console[n]=a}}function Ue(e,t){if(typeof window=="undefined"||typeof window.fetch!="function")return()=>{};let r=window.fetch.bind(window);return window.fetch=async function(a,i){let s=performance.now(),l=typeof a=="string"?a:a instanceof URL?a.toString():a.url,f=((i==null?void 0:i.method)||(a instanceof Request?a.method:"GET")).toUpperCase();try{let c=await r(a,i);return e.push({url:t(l),method:f,status:c.status,durationMs:Math.round(performance.now()-s),ts:Date.now()}),c}catch(c){let h=c instanceof Error?c.message:String(c);throw e.push({url:t(l),method:f,status:0,durationMs:Math.round(performance.now()-s),ts:Date.now(),error:j(h)}),c}},()=>{window.fetch=r}}function je(e,t){if(typeof window=="undefined"||typeof window.XMLHttpRequest!="function")return()=>{};let r=window.XMLHttpRequest,n=r.prototype.open,a=r.prototype.send;return r.prototype.open=function(s,l){return this.__mfb={method:s.toUpperCase(),url:typeof l=="string"?l:l.toString(),start:performance.now()},n.apply(this,arguments)},r.prototype.send=function(s){return this.addEventListener("loadend",()=>{try{let l=this.__mfb;if(!l)return;e.push({url:t(l.url),method:l.method,status:this.status,durationMs:Math.round(performance.now()-l.start),ts:Date.now()})}catch(l){}}),a.call(this,s!=null?s:null)},()=>{r.prototype.open=n,r.prototype.send=a}}function Oe(e){if(typeof window=="undefined")return()=>{};let t=n=>{let a=n.error instanceof Error?n.error.stack:void 0,i=a!==void 0?j(a):void 0;e.push({message:j(n.message||"Unknown error"),...i!==void 0&&{stack:i},ts:Date.now(),source:"window.error"})},r=n=>{let a=n.reason,i=a instanceof Error?a.message:typeof a=="string"?a:(()=>{try{return JSON.stringify(a)}catch(f){return String(a)}})(),s=a instanceof Error?a.stack:void 0,l=s!==void 0?j(s):void 0;e.push({message:j(i),...l!==void 0&&{stack:l},ts:Date.now(),source:"unhandledrejection"})};return window.addEventListener("error",t),window.addEventListener("unhandledrejection",r),()=>{window.removeEventListener("error",t),window.removeEventListener("unhandledrejection",r)}}function Ve(e=1e3){let t=[],r=[],n=null;if(typeof PerformanceObserver!="undefined")try{n=new PerformanceObserver(a=>{for(let i of a.getEntries())if(i.entryType==="longtask")for(t.push({duration:i.duration,startTime:i.startTime});t.length>20;)t.shift();else if(i.entryType==="resource"){let s=i;if(s.duration>e)for(r.push({name:Y(s.name),duration:s.duration,initiatorType:s.initiatorType});r.length>20;)r.shift()}}),n.observe({entryTypes:["longtask","resource"]})}catch(a){}return{snapshot(){let a=typeof performance!="undefined"?performance.getEntriesByType("navigation")[0]:void 0,i=a?{type:a.type,duration:a.duration}:void 0;return{...i!==void 0&&{navigation:i},longTasks:t.slice(),slowResources:r.slice()}},dispose(){n==null||n.disconnect()}}}var ee=class{constructor(t){Se(this,"max",t);Se(this,"items",[])}push(t){for(this.items.push(t);this.items.length>this.max;)this.items.shift()}snapshot(){return this.items.slice()}clear(){this.items.length=0}};function qe(e={}){var b;let{maxConsole:t=50,maxNetwork:r=50,maxErrors:n=20}=e,a=(b=e.sanitizeUrl)!=null?b:Y,i=new ee(t),s=new ee(r),l=new ee(n),f=Ne(i),c=Ue(s,a),h=je(s,a),d=Oe(l),g=Ve();return{snapshot(){return{consoleLogs:i.snapshot(),networkRequests:s.snapshot(),errors:l.snapshot(),device:He(),capturedAt:Date.now()}},clear(){i.clear(),s.clear(),l.clear()},dispose(){f(),c(),h(),d(),g.dispose()}}}var Qt={"fab.label":"Send feedback","form.title":"Send feedback","form.description.label":"What happened?","form.description.placeholder":"Describe the issue or idea in one or two sentences.","form.type.label":"Type","form.severity.label":"Severity","form.submit":"Send","form.cancel":"Cancel","form.close":"Close","form.submitting":"Sending\u2026","form.success":"Thanks \u2014 your feedback was sent.","form.error":"Could not send. Please try again.","form.description.required":"Please describe the issue before sending.","form.screenshot.label":"Screenshot","form.screenshot.cta_click":"Click","form.screenshot.cta_rest":"drop, or paste an image","form.screenshot.formats":"PNG, JPEG or WebP \u2014 up to 10 MB","form.screenshot.remove":"Remove screenshot","form.screenshot.annotate":"Annotate","form.screenshot.error_type":"Unsupported file type. Use PNG, JPEG or WebP.","form.screenshot.error_size":"File too large (max {max} MB).","form.context.label":"Page","type.bug":"Bug","type.feature":"Feature request","type.question":"Question","type.praise":"Praise","type.typo":"Typo","severity.blocker":"Blocker","severity.high":"High","severity.medium":"Medium","severity.low":"Low","annotator.title":"Annotate screenshot","annotator.tool.rectangle":"Rectangle","annotator.tool.arrow":"Arrow","annotator.tool.freehand":"Freehand","annotator.tool.text":"Text","annotator.tool.highlight":"Highlight","annotator.tool.blur":"Blur (hide sensitive data)","annotator.text_prompt":"Enter text:","annotator.color_picker":"Custom color","annotator.undo":"Undo","annotator.redo":"Redo","annotator.clear":"Clear all","annotator.count_suffix":"annotations","annotator.loading":"Loading\u2026","annotator.apply":"Apply","annotator.applying":"Applying\u2026","tab.send":"Send","tab.mine":"My reports","tab.changelog":"This week","tab.board":"Board","board.kpi.total":"Total","board.kpi.new":"New","board.kpi.in_progress":"In progress","board.kpi.awaiting_validation":"Awaiting validation","board.kpi.closed":"Closed","board.kpi.rejected":"Rejected","board.kpi.resolution_rate":"Resolution rate","board.filter.status":"Status","board.filter.type":"Type","board.filter.severity":"Severity","board.filter.search.placeholder":"Search\u2026","board.filter.mine":"Mine only","board.filter.clear":"Clear filters","board.list.empty.title":"Nothing here yet","board.list.empty.description":"When reports land, they\u2019ll show up here.","board.list.loading":"Loading\u2026","board.list.error":"Couldn\u2019t load reports. Try again.","board.list.you":"you","board.list.count":"{n} of {total}","board.detail.empty":"Pick a report on the left to see its full thread.","board.detail.by":"By","board.detail.confirm_resolution":"Confirm resolution","board.detail.status_history":"History","board.scope.project":"Project reports","board.scope.mine":"Your reports","board.back":"Back","changelog.empty.title":"Nothing resolved yet","changelog.empty.body":"Once a report you sent is fixed it will appear here, grouped by week.","changelog.week_of":"Week of {date}","changelog.resolved_one":"{count} resolved","changelog.resolved_many":"{count} resolved","mine.empty.title":"No reports yet","mine.empty.body":"Once you send feedback you can follow the thread here.","mine.refresh":"Refresh","mine.loading":"Loading\u2026","mine.error":"Could not load your reports.","mine.replies_one":"1 reply","mine.replies_many":"{count} replies","mine.filter.empty":"No reports match this filter.","kpi.new":"New","kpi.in_progress":"In progress","kpi.awaiting_validation":"Awaiting you","kpi.resolution_rate":"Resolution rate","detail.back":"Back","detail.thread":"Conversation","detail.no_replies":"No replies yet \u2014 we\u2019ll let you know when an operator responds.","detail.compose_placeholder":"Add a follow-up reply\u2026","detail.compose_send":"Reply","detail.compose_sending":"Sending\u2026","detail.close_cta":"Mark as resolved","detail.close_busy":"Marking\u2026","detail.teammate_notice":"Viewing a teammate\u2019s report \u2014 replies are private to the submitter.","detail.load_failed.title":"Report not available","detail.load_failed.body":"It may have been deleted, or you no longer have access to it.","detail.load_failed.cta":"Back","detail.send_failed":"Couldn\u2019t send your reply. Try again.","detail.close_failed":"Couldn\u2019t mark as resolved. Try again.","detail.history":"Status history","detail.context.submitted_at":"Submitted","detail.context.page":"Page","detail.context.capture.manual":"Manual capture","detail.context.capture.html2canvas":"Auto capture","detail.context.capture.display_media":"Screen share","detail.context.capture.none":"No screenshot","detail.author.staff":"Operator","detail.author.mcp":"Mhosaic Team","detail.author.system":"System","detail.tech.title":"What we received","detail.tech.errors_one":"error","detail.tech.errors_many":"errors","detail.tech.device":"Device","detail.tech.device.viewport":"Viewport","detail.tech.device.platform":"Platform","detail.tech.device.language":"Language","detail.tech.device.timezone":"Timezone","detail.tech.device.connection":"Connection","detail.tech.errors":"Runtime errors","detail.tech.console":"Console (last 20)","detail.tech.network":"Network (last 15)","status.new":"New","status.in_progress":"In progress","status.awaiting_validation":"Awaiting your validation","status.closed":"Closed","status.rejected":"Rejected","status.duplicate":"Duplicate","status.wontfix":"Won\u2019t fix"},er={"fab.label":"Envoyer un commentaire","form.title":"Envoyer un commentaire","form.description.label":"Qu\u2019est-il arriv\xE9 ?","form.description.placeholder":"D\xE9crivez le probl\xE8me ou l\u2019id\xE9e en une ou deux phrases.","form.type.label":"Type","form.severity.label":"S\xE9v\xE9rit\xE9","form.submit":"Envoyer","form.cancel":"Annuler","form.close":"Fermer","form.submitting":"Envoi\u2026","form.success":"Merci \u2014 votre commentaire a \xE9t\xE9 envoy\xE9.","form.error":"\xC9chec d\u2019envoi. Veuillez r\xE9essayer.","form.description.required":"D\xE9crivez le probl\xE8me avant d\u2019envoyer.","form.screenshot.label":"Capture d\u2019\xE9cran","form.screenshot.cta_click":"Cliquez","form.screenshot.cta_rest":"d\xE9posez ou collez une image","form.screenshot.formats":"PNG, JPEG ou WebP \u2014 jusqu\u2019\xE0 10 Mo","form.screenshot.remove":"Retirer la capture","form.screenshot.annotate":"Annoter","form.screenshot.error_type":"Format non support\xE9. Utilisez PNG, JPEG ou WebP.","form.screenshot.error_size":"Fichier trop volumineux (max {max} Mo).","form.context.label":"Page","type.bug":"Bogue","type.feature":"Suggestion","type.question":"Question","type.praise":"Compliment","type.typo":"Coquille","severity.blocker":"Bloquant","severity.high":"\xC9lev\xE9e","severity.medium":"Moyenne","severity.low":"Faible","annotator.title":"Annoter la capture","annotator.tool.rectangle":"Rectangle","annotator.tool.arrow":"Fl\xE8che","annotator.tool.freehand":"Dessin libre","annotator.tool.text":"Texte","annotator.tool.highlight":"Surligner","annotator.tool.blur":"Flouter (donn\xE9es sensibles)","annotator.text_prompt":"Entrez le texte :","annotator.color_picker":"Couleur personnalis\xE9e","annotator.undo":"Annuler","annotator.redo":"Refaire","annotator.clear":"Tout effacer","annotator.count_suffix":"annotations","annotator.loading":"Chargement\u2026","annotator.apply":"Appliquer","annotator.applying":"Application\u2026","tab.send":"Envoyer","tab.mine":"Mes rapports","tab.changelog":"Cette semaine","tab.board":"Tableau","board.kpi.total":"Total","board.kpi.new":"Nouveau","board.kpi.in_progress":"En cours","board.kpi.awaiting_validation":"\xC0 valider","board.kpi.closed":"Ferm\xE9","board.kpi.rejected":"Refus\xE9","board.kpi.resolution_rate":"Taux de r\xE9solution","board.filter.status":"Statut","board.filter.type":"Type","board.filter.severity":"S\xE9v\xE9rit\xE9","board.filter.search.placeholder":"Rechercher\u2026","board.filter.mine":"Les miens","board.filter.clear":"Effacer les filtres","board.list.empty.title":"Rien \xE0 voir ici","board.list.empty.description":"Les rapports appara\xEEtront ici d\xE8s qu\u2019ils arrivent.","board.list.loading":"Chargement\u2026","board.list.error":"Impossible de charger les rapports. R\xE9essayez.","board.list.you":"vous","board.list.count":"{n} sur {total}","board.detail.empty":"S\xE9lectionnez un rapport \xE0 gauche pour voir le fil complet.","board.detail.by":"Par","board.detail.confirm_resolution":"Confirmer la r\xE9solution","board.detail.status_history":"Historique","board.scope.project":"Rapports du projet","board.scope.mine":"Vos rapports","board.back":"Retour","changelog.empty.title":"Rien de r\xE9solu pour l\u2019instant","changelog.empty.body":"Quand un rapport que vous avez envoy\xE9 est corrig\xE9, il appara\xEEtra ici, regroup\xE9 par semaine.","changelog.week_of":"Semaine du {date}","changelog.resolved_one":"{count} r\xE9solu","changelog.resolved_many":"{count} r\xE9solus","mine.empty.title":"Aucun rapport","mine.empty.body":"Apr\xE8s votre premier envoi vous pourrez suivre la conversation ici.","mine.refresh":"Actualiser","mine.loading":"Chargement\u2026","mine.error":"Impossible de charger vos rapports.","mine.replies_one":"1 r\xE9ponse","mine.replies_many":"{count} r\xE9ponses","mine.filter.empty":"Aucun rapport ne correspond \xE0 ce filtre.","kpi.new":"Nouveau","kpi.in_progress":"En cours","kpi.awaiting_validation":"\xC0 valider","kpi.resolution_rate":"Taux de r\xE9solution","detail.back":"Retour","detail.thread":"Conversation","detail.no_replies":"Pas encore de r\xE9ponse \u2014 vous serez notifi\xE9 d\xE8s qu\u2019un op\xE9rateur r\xE9pondra.","detail.compose_placeholder":"Ajouter une r\xE9ponse\u2026","detail.compose_send":"R\xE9pondre","detail.compose_sending":"Envoi\u2026","detail.close_cta":"Marquer comme r\xE9solu","detail.close_busy":"Validation\u2026","detail.teammate_notice":"Vous consultez le rapport d\u2019un co\xE9quipier \u2014 les r\xE9ponses sont priv\xE9es au soumetteur.","detail.load_failed.title":"Rapport indisponible","detail.load_failed.body":"Il a peut-\xEAtre \xE9t\xE9 supprim\xE9, ou vous n\u2019y avez plus acc\xE8s.","detail.load_failed.cta":"Retour","detail.send_failed":"Impossible d\u2019envoyer votre r\xE9ponse. R\xE9essayez.","detail.close_failed":"Impossible de marquer comme r\xE9solu. R\xE9essayez.","detail.history":"Historique du statut","detail.context.submitted_at":"Envoy\xE9","detail.context.page":"Page","detail.context.capture.manual":"Capture manuelle","detail.context.capture.html2canvas":"Capture automatique","detail.context.capture.display_media":"Partage d\u2019\xE9cran","detail.context.capture.none":"Sans capture","detail.author.staff":"Op\xE9rateur","detail.author.mcp":"\xC9quipe Mhosaic","detail.author.system":"Syst\xE8me","detail.tech.title":"Ce que nous avons re\xE7u","detail.tech.errors_one":"erreur","detail.tech.errors_many":"erreurs","detail.tech.device":"Appareil","detail.tech.device.viewport":"Fen\xEAtre","detail.tech.device.platform":"Plateforme","detail.tech.device.language":"Langue","detail.tech.device.timezone":"Fuseau horaire","detail.tech.device.connection":"Connexion","detail.tech.errors":"Erreurs d\u2019ex\xE9cution","detail.tech.console":"Console (20 derniers)","detail.tech.network":"R\xE9seau (15 derniers)","status.new":"Nouveau","status.in_progress":"En cours","status.awaiting_validation":"En attente de validation","status.closed":"Ferm\xE9","status.rejected":"Rejet\xE9","status.duplicate":"Doublon","status.wontfix":"Non corrig\xE9"},tr={fr:er};function rr(e){var r;if(!e)return null;let t=e.toLowerCase().split(/[-_]/)[0];return(r=tr[t])!=null?r:null}function Ge(e,t={}){var n;let r=(n=rr(t.locale))!=null?n:{};return{...Qt,...r,...e}}var be,z,Qe,or,X,Xe,et,tt,Re,ce,ae,rt,Te,Ce,Ee,nr,ue={},fe=[],ar=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,he=Array.isArray;function G(e,t){for(var r in t)e[r]=t[r];return e}function Pe(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ze(e,t,r){var n,a,i,s={};for(i in t)i=="key"?n=t[i]:i=="ref"?a=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?be.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return de(e,s,n,a,null)}function de(e,t,r,n,a){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a==null?++Qe:a,__i:-1,__u:0};return a==null&&z.vnode!=null&&z.vnode(i),i}function U(e){return e.children}function pe(e,t){this.props=e,this.context=t}function te(e,t){if(t==null)return e.__?te(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?te(e):null}function ir(e){if(e.__P&&e.__d){var t=e.__v,r=t.__e,n=[],a=[],i=G({},t);i.__v=t.__v+1,z.vnode&&z.vnode(i),Ae(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[r]:null,n,r==null?te(t):r,!!(32&t.__u),a),i.__v=t.__v,i.__.__k[i.__i]=i,it(n,i,a),t.__e=t.__=null,i.__e!=r&&ot(i)}}function ot(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),ot(e)}function Ze(e){(!e.__d&&(e.__d=!0)&&X.push(e)&&!me.__r++||Xe!=z.debounceRendering)&&((Xe=z.debounceRendering)||et)(me)}function me(){try{for(var e,t=1;X.length;)X.length>t&&X.sort(tt),e=X.shift(),t=X.length,ir(e)}finally{X.length=me.__r=0}}function nt(e,t,r,n,a,i,s,l,f,c,h){var d,g,b,x,_,y,p,u=n&&n.__k||fe,m=t.length;for(f=sr(r,t,u,f,m),d=0;d<m;d++)(b=r.__k[d])!=null&&(g=b.__i!=-1&&u[b.__i]||ue,b.__i=d,y=Ae(e,b,g,a,i,s,l,f,c,h),x=b.__e,b.ref&&g.ref!=b.ref&&(g.ref&&Be(g.ref,null,b),h.push(b.ref,b.__c||x,b)),_==null&&x!=null&&(_=x),(p=!!(4&b.__u))||g.__k===b.__k?(f=at(b,f,e,p),p&&g.__e&&(g.__e=null)):typeof b.type=="function"&&y!==void 0?f=y:x&&(f=x.nextSibling),b.__u&=-7);return r.__e=_,f}function sr(e,t,r,n,a){var i,s,l,f,c,h=r.length,d=h,g=0;for(e.__k=new Array(a),i=0;i<a;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[i]=de(null,s,null,null,null):he(s)?s=e.__k[i]=de(U,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[i]=de(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[i]=s,f=i+g,s.__=e,s.__b=e.__b+1,l=null,(c=s.__i=lr(s,r,f,d))!=-1&&(d--,(l=r[c])&&(l.__u|=2)),l==null||l.__v==null?(c==-1&&(a>h?g--:a<h&&g++),typeof s.type!="function"&&(s.__u|=4)):c!=f&&(c==f-1?g--:c==f+1?g++:(c>f?g--:g++,s.__u|=4))):e.__k[i]=null;if(d)for(i=0;i<h;i++)(l=r[i])!=null&&(2&l.__u)==0&&(l.__e==n&&(n=te(l)),lt(l,l));return n}function at(e,t,r,n){var a,i;if(typeof e.type=="function"){for(a=e.__k,i=0;a&&i<a.length;i++)a[i]&&(a[i].__=e,t=at(a[i],t,r,n));return t}e.__e!=t&&(n&&(t&&e.type&&!t.parentNode&&(t=te(e)),r.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function lr(e,t,r,n){var a,i,s,l=e.key,f=e.type,c=t[r],h=c!=null&&(2&c.__u)==0;if(c===null&&l==null||h&&l==c.key&&f==c.type)return r;if(n>(h?1:0)){for(a=r-1,i=r+1;a>=0||i<t.length;)if((c=t[s=a>=0?a--:i++])!=null&&(2&c.__u)==0&&l==c.key&&f==c.type)return s}return-1}function Ye(e,t,r){t[0]=="-"?e.setProperty(t,r==null?"":r):e[t]=r==null?"":typeof r!="number"||ar.test(t)?r:r+"px"}function le(e,t,r,n,a){var i,s;e:if(t=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||Ye(e.style,t,"");if(r)for(t in r)n&&r[t]==n[t]||Ye(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(rt,"$1")),s=t.toLowerCase(),t=s in e||t=="onFocusOut"||t=="onFocusIn"?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=r,r?n?r[ae]=n[ae]:(r[ae]=Te,e.addEventListener(t,i?Ee:Ce,i)):e.removeEventListener(t,i?Ee:Ce,i);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r==null?"":r;break e}catch(l){}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function Je(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t[ce]==null)t[ce]=Te++;else if(t[ce]<r[ae])return;return r(z.event?z.event(t):t)}}}function Ae(e,t,r,n,a,i,s,l,f,c){var h,d,g,b,x,_,y,p,u,m,w,C,B,T,F,P=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(f=!!(32&r.__u),i=[l=t.__e=r.__e]),(h=z.__b)&&h(t);e:if(typeof P=="function")try{if(p=t.props,u=P.prototype&&P.prototype.render,m=(h=P.contextType)&&n[h.__c],w=h?m?m.props.value:h.__:n,r.__c?y=(d=t.__c=r.__c).__=d.__E:(u?t.__c=d=new P(p,w):(t.__c=d=new pe(p,w),d.constructor=P,d.render=dr),m&&m.sub(d),d.state||(d.state={}),d.__n=n,g=d.__d=!0,d.__h=[],d._sb=[]),u&&d.__s==null&&(d.__s=d.state),u&&P.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=G({},d.__s)),G(d.__s,P.getDerivedStateFromProps(p,d.__s))),b=d.props,x=d.state,d.__v=t,g)u&&P.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),u&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(u&&P.getDerivedStateFromProps==null&&p!==b&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(p,w),t.__v==r.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(p,d.__s,w)===!1){t.__v!=r.__v&&(d.props=p,d.state=d.__s,d.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(W){W&&(W.__=t)}),fe.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&s.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(p,d.__s,w),u&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(b,x,_)})}if(d.context=w,d.props=p,d.__P=e,d.__e=!1,C=z.__r,B=0,u)d.state=d.__s,d.__d=!1,C&&C(t),h=d.render(d.props,d.state,d.context),fe.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,C&&C(t),h=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++B<25);d.state=d.__s,d.getChildContext!=null&&(n=G(G({},n),d.getChildContext())),u&&!g&&d.getSnapshotBeforeUpdate!=null&&(_=d.getSnapshotBeforeUpdate(b,x)),T=h!=null&&h.type===U&&h.key==null?st(h.props.children):h,l=nt(e,he(T)?T:[T],t,r,n,a,i,s,l,f,c),d.base=t.__e,t.__u&=-161,d.__h.length&&s.push(d),y&&(d.__E=d.__=null)}catch(W){if(t.__v=null,f||i!=null)if(W.then){for(t.__u|=f?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;i[i.indexOf(l)]=null,t.__e=l}else{for(F=i.length;F--;)Pe(i[F]);Me(t)}else t.__e=r.__e,t.__k=r.__k,W.then||Me(t);z.__e(W,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):l=t.__e=cr(r.__e,t,r,n,a,i,s,f,c);return(h=z.diffed)&&h(t),128&t.__u?void 0:l}function Me(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Me))}function it(e,t,r){for(var n=0;n<r.length;n++)Be(r[n],r[++n],r[++n]);z.__c&&z.__c(t,e),e.some(function(a){try{e=a.__h,a.__h=[],e.some(function(i){i.call(a)})}catch(i){z.__e(i,a.__v)}})}function st(e){return typeof e!="object"||e==null||e.__b>0?e:he(e)?e.map(st):G({},e)}function cr(e,t,r,n,a,i,s,l,f){var c,h,d,g,b,x,_,y=r.props||ue,p=t.props,u=t.type;if(u=="svg"?a="http://www.w3.org/2000/svg":u=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),i!=null){for(c=0;c<i.length;c++)if((b=i[c])&&"setAttribute"in b==!!u&&(u?b.localName==u:b.nodeType==3)){e=b,i[c]=null;break}}if(e==null){if(u==null)return document.createTextNode(p);e=document.createElementNS(a,u,p.is&&p),l&&(z.__m&&z.__m(t,i),l=!1),i=null}if(u==null)y===p||l&&e.data==p||(e.data=p);else{if(i=i&&be.call(e.childNodes),!l&&i!=null)for(y={},c=0;c<e.attributes.length;c++)y[(b=e.attributes[c]).name]=b.value;for(c in y)b=y[c],c=="dangerouslySetInnerHTML"?d=b:c=="children"||c in p||c=="value"&&"defaultValue"in p||c=="checked"&&"defaultChecked"in p||le(e,c,null,b,a);for(c in p)b=p[c],c=="children"?g=b:c=="dangerouslySetInnerHTML"?h=b:c=="value"?x=b:c=="checked"?_=b:l&&typeof b!="function"||y[c]===b||le(e,c,b,y[c],a);if(h)l||d&&(h.__html==d.__html||h.__html==e.innerHTML)||(e.innerHTML=h.__html),t.__k=[];else if(d&&(e.innerHTML=""),nt(t.type=="template"?e.content:e,he(g)?g:[g],t,r,n,u=="foreignObject"?"http://www.w3.org/1999/xhtml":a,i,s,i?i[0]:r.__k&&te(r,0),l,f),i!=null)for(c=i.length;c--;)Pe(i[c]);l||(c="value",u=="progress"&&x==null?e.removeAttribute("value"):x!=null&&(x!==e[c]||u=="progress"&&!x||u=="option"&&x!=y[c])&&le(e,c,x,y[c],a),c="checked",_!=null&&_!=e[c]&&le(e,c,_,y[c],a))}return e}function Be(e,t,r){try{if(typeof e=="function"){var n=typeof e.__u=="function";n&&e.__u(),n&&t==null||(e.__u=e(t))}else e.current=t}catch(a){z.__e(a,r)}}function lt(e,t,r){var n,a;if(z.unmount&&z.unmount(e),(n=e.ref)&&(n.current&&n.current!=e.__e||Be(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){z.__e(i,t)}n.base=n.__P=null}if(n=e.__k)for(a=0;a<n.length;a++)n[a]&&lt(n[a],t,r||typeof e.type!="function");r||Pe(e.__e),e.__c=e.__=e.__e=void 0}function dr(e,t,r){return this.constructor(e,r)}function Fe(e,t,r){var n,a,i,s;t==document&&(t=document.documentElement),z.__&&z.__(e,t),a=(n=typeof r=="function")?null:r&&r.__k||t.__k,i=[],s=[],Ae(t,e=(!n&&r||t).__k=ze(U,null,[e]),a||ue,ue,t.namespaceURI,!n&&r?[r]:a?null:t.firstChild?be.call(t.childNodes):null,i,!n&&r?r:a?a.__e:t.firstChild,n,s),it(i,e,s)}be=fe.slice,z={__e:function(e,t,r,n){for(var a,i,s;t=t.__;)if((a=t.__c)&&!a.__)try{if((i=a.constructor)&&i.getDerivedStateFromError!=null&&(a.setState(i.getDerivedStateFromError(e)),s=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(e,n||{}),s=a.__d),s)return a.__E=a}catch(l){e=l}throw e}},Qe=0,or=function(e){return e!=null&&e.constructor===void 0},pe.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=G({},this.state),typeof e=="function"&&(e=e(G({},r),this.props)),e&&G(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ze(this))},pe.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ze(this))},pe.prototype.render=U,X=[],et=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,tt=function(e,t){return e.__v.__b-t.__v.__b},me.__r=0,Re=Math.random().toString(8),ce="__d"+Re,ae="__a"+Re,rt=/(PointerCapture)$|Capture$/i,Te=0,Ce=Je(!1),Ee=Je(!0),nr=0;var re,L,Le,ct,ie=0,gt=[],$=z,dt=$.__b,pt=$.__r,ut=$.diffed,ft=$.__c,mt=$.unmount,bt=$.__;function ve(e,t){$.__h&&$.__h(L,e,ie||t),ie=0;var r=L.__H||(L.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function R(e){return ie=1,pr(yt,e)}function pr(e,t,r){var n=ve(re++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):yt(void 0,t),function(l){var f=n.__N?n.__N[0]:n.__[0],c=n.t(f,l);f!==c&&(n.__N=[c,n.__[1]],n.__c.setState({}))}],n.__c=L,!L.__f)){var a=function(l,f,c){if(!n.__c.__H)return!0;var h=n.__c.__H.__.filter(function(g){return g.__c});if(h.every(function(g){return!g.__N}))return!i||i.call(this,l,f,c);var d=n.__c.props!==l;return h.some(function(g){if(g.__N){var b=g.__[0];g.__=g.__N,g.__N=void 0,b!==g.__[0]&&(d=!0)}}),i&&i.call(this,l,f,c)||d};L.__f=!0;var i=L.shouldComponentUpdate,s=L.componentWillUpdate;L.componentWillUpdate=function(l,f,c){if(this.__e){var h=i;i=void 0,a(l,f,c),i=h}s&&s.call(this,l,f,c)},L.shouldComponentUpdate=a}return n.__N||n.__}function D(e,t){var r=ve(re++,3);!$.__s&&De(r.__H,t)&&(r.__=e,r.u=t,L.__H.__h.push(r))}function $e(e,t){var r=ve(re++,4);!$.__s&&De(r.__H,t)&&(r.__=e,r.u=t,L.__h.push(r))}function K(e){return ie=5,J(function(){return{current:e}},[])}function J(e,t){var r=ve(re++,7);return De(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function vt(e,t){return ie=8,J(function(){return e},t)}function ur(){for(var e;e=gt.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ge),t.__h.some(Ie),t.__h=[]}catch(r){t.__h=[],$.__e(r,e.__v)}}}$.__b=function(e){L=null,dt&&dt(e)},$.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),bt&&bt(e,t)},$.__r=function(e){pt&&pt(e),re=0;var t=(L=e.__c).__H;t&&(Le===L?(t.__h=[],L.__h=[],t.__.some(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.some(ge),t.__h.some(Ie),t.__h=[],re=0)),Le=L},$.diffed=function(e){ut&&ut(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(gt.push(t)!==1&&ct===$.requestAnimationFrame||((ct=$.requestAnimationFrame)||fr)(ur)),t.__H.__.some(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Le=L=null},$.__c=function(e,t){t.some(function(r){try{r.__h.some(ge),r.__h=r.__h.filter(function(n){return!n.__||Ie(n)})}catch(n){t.some(function(a){a.__h&&(a.__h=[])}),t=[],$.__e(n,r.__v)}}),ft&&ft(e,t)},$.unmount=function(e){mt&&mt(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.some(function(n){try{ge(n)}catch(a){t=a}}),r.__H=void 0,t&&$.__e(t,r.__v))};var ht=typeof requestAnimationFrame=="function";function fr(e){var t,r=function(){clearTimeout(n),ht&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,35);ht&&(t=requestAnimationFrame(r))}function ge(e){var t=L,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),L=t}function Ie(e){var t=L;e.__c=e.__(),L=t}function De(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function yt(e,t){return typeof t=="function"?t(e):t}var mr=0;function o(e,t,r,n,a,i){t||(t={});var s,l,f=t;if("ref"in f)for(l in f={},t)l=="ref"?s=t[l]:f[l]=t[l];var c={type:e,props:f,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--mr,__i:-1,__u:0,__source:a,__self:i};if(typeof e=="function"&&(s=e.defaultProps))for(l in s)f[l]===void 0&&(f[l]=s[l]);return z.vnode&&z.vnode(c),c}function _t({comment:e,strings:t}){let r=e.is_mine,n=!r&&e.author_source==="mcp",a=!r&&e.author_source==="system",i=n?"mcp":a?"system":"staff",s=i==="mcp"?"detail.author.mcp":i==="system"?"detail.author.system":"detail.author.staff",l=e.author_label||t[s];return o("div",{class:`comment-bubble ${r?"is-mine":"is-other"}`,children:[!r&&l&&o("div",{class:`comment-author comment-author--${i}`,children:l}),o("div",{class:"comment-body",children:e.body}),o("div",{class:"comment-time",children:br(e.created_at)})]})}function br(e){try{return new Date(e).toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}catch(t){return e}}var hr=["image/png","image/jpeg","image/webp"];function xt(e){return hr.includes(e.type)?e.size>10485760?{kind:"size",maxMb:10485760/(1024*1024)}:null:{kind:"type"}}function oe(e,t=80){if(e.length<=t)return e;let r=Math.floor((t-1)/2),n=t-1-r;return`${e.slice(0,r)}\u2026${e.slice(e.length-n)}`}function We(e){if(!e)return;let t;try{t=new URL(e)}catch(r){return}if(t.protocol==="https:"||t.protocol==="http:"&&(t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]"))return t.toString()}var gr=3e4;function ye({api:e,externalId:t,reportId:r,strings:n,onBack:a,canModerate:i=!0,variant:s="modal"}){var F,P,W;let[l,f]=R(null),[c,h]=R(null),[d,g]=R(""),[b,x]=R(!1),[_,y]=R(!1),p=K(!0),u=async()=>{try{let A=await e.getReport(r,t);if(!p.current)return;f(A),h(null)}catch(A){if(typeof console!="undefined"&&console.warn("[mhosaic] getReport:",A),!p.current)return;h("load_failed")}};D(()=>{p.current=!0,u();let A=setInterval(()=>{u()},gr);return()=>{p.current=!1,clearInterval(A)}},[r,t]);let m=async()=>{if(!(!d.trim()||b)){x(!0);try{let A=`${r}:${Date.now()}`,O=await e.addComment(r,t,d.trim(),A);if(!p.current)return;g(""),f(N=>N&&{...N,comments:vr(N.comments,O)}),u()}catch(A){if(typeof console!="undefined"&&console.warn("[mhosaic] addComment:",A),!p.current)return;h(n["detail.send_failed"])}finally{p.current&&x(!1)}}},w=async()=>{if(!_){y(!0);try{let A=await e.closeAsResolved(r,t);if(!p.current)return;f(A)}catch(A){if(typeof console!="undefined"&&console.warn("[mhosaic] closeAsResolved:",A),!p.current)return;h(n["detail.close_failed"])}finally{p.current&&y(!1)}}};if(!l&&!c)return o("div",{class:"mine-loading",children:n["mine.loading"]});if(!l)return o("div",{class:"report-detail-empty-state",role:"alert",children:[o("p",{class:"report-detail-empty-state-title",children:n["detail.load_failed.title"]}),o("p",{class:"report-detail-empty-state-body",children:n["detail.load_failed.body"]}),o("button",{type:"button",class:"btn",onClick:a,children:["\u2190 ",n["detail.load_failed.cta"]]})]});let C=(F=l.is_mine)!=null?F:i,B=C&&l.status==="awaiting_validation",T=C;return o("div",{class:`report-detail variant-${s}`,children:[s==="modal"&&o("div",{class:"report-detail-header",children:[o("button",{type:"button",class:"btn",onClick:a,children:["\u2190 ",n["detail.back"]]}),o("span",{class:`pill pill-status pill-status--${l.status}`,children:(P=n[`status.${l.status}`])!=null?P:l.status})]}),s==="board"&&o("div",{class:"report-detail-header report-detail-header--board",children:[o("button",{type:"button",class:"btn btn--ghost report-detail-back",onClick:a,"aria-label":n["board.back"],children:["\u2190 ",n["board.back"]]}),o("span",{class:`pill pill-status pill-status--${l.status}`,children:(W=n[`status.${l.status}`])!=null?W:l.status})]}),o("div",{class:"report-detail-body",children:[o(yr,{detail:l,strings:n}),o("p",{class:"report-detail-description",children:l.description}),l.screenshot_url&&(()=>{let A=We(l.screenshot_url);return A?o("a",{class:"report-detail-screenshot",href:A,target:"_blank",rel:"noopener noreferrer",children:o("img",{src:l.screenshot_url,alt:"",loading:"lazy"})}):o("div",{class:"report-detail-screenshot",children:o("img",{src:l.screenshot_url,alt:"",loading:"lazy"})})})(),o("h3",{class:"report-detail-section",children:n["detail.thread"]}),l.comments.length===0?o("p",{class:"report-detail-empty",children:n["detail.no_replies"]}):o("ul",{class:"report-comments",children:l.comments.map(A=>o("li",{children:o(_t,{comment:A,strings:n})}))}),l.status_history&&l.status_history.length>0&&o(Mr,{rows:l.status_history,strings:n}),l.technical_context&&o(wr,{ctx:l.technical_context,strings:n}),T?o("div",{class:"report-compose",children:[o("textarea",{value:d,placeholder:n["detail.compose_placeholder"],onInput:A=>g(A.target.value),disabled:b}),o("div",{class:"report-compose-actions",children:[B&&o("button",{type:"button",class:"btn",onClick:w,disabled:_,children:_?n["detail.close_busy"]:n["detail.close_cta"]}),o("button",{type:"button",class:"btn btn--primary",onClick:m,disabled:!d.trim()||b,children:b?n["detail.compose_sending"]:n["detail.compose_send"]})]})]}):o("p",{class:"report-detail-teammate-notice",role:"note",children:n["detail.teammate_notice"]}),c&&o("div",{class:"error",children:c})]})]})}function vr(e,t){return e.some(r=>r.id===t.id)?e:[...e,t]}function yr({detail:e,strings:t}){var a;let r=`detail.context.capture.${e.capture_method}`,n=(a=t[r])!=null?a:e.capture_method;return o("div",{class:"report-detail-context",children:[o("div",{class:"report-detail-context-pills",children:[o("span",{class:"pill pill-type",children:t[`type.${e.feedback_type}`]}),o("span",{class:`pill pill-severity pill-severity--${e.severity}`,children:t[`severity.${e.severity}`]}),o("span",{class:"pill pill-capture",children:n})]}),o("div",{class:"report-detail-context-line",children:[o("span",{class:"report-detail-context-label",children:t["detail.context.submitted_at"]}),o("span",{children:wt(e.created_at)})]}),e.page_url&&(()=>{let i=We(e.page_url);return o("div",{class:"report-detail-context-line",title:e.page_url,children:[o("span",{class:"report-detail-context-label",children:t["detail.context.page"]}),i?o("a",{class:"report-detail-context-url",href:i,target:"_blank",rel:"noopener noreferrer",children:oe(e.page_url,64)}):o("span",{class:"report-detail-context-url",children:oe(e.page_url,64)})]})})()]})}function wt(e){try{return new Date(e).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})}catch(t){return e}}var _r=20,xr=15;function wr({ctx:e,strings:t}){var c,h,d;let r=(c=e.errors)!=null?c:[],n=((h=e.consoleLogs)!=null?h:[]).slice(-_r),a=((d=e.networkRequests)!=null?d:[]).slice(-xr),i=e.device;if(!(!!i||r.length>0||n.length>0||a.length>0))return null;let l=r.length,f=l>0?`${t["detail.tech.title"]} \xB7 ${l} ${l===1?t["detail.tech.errors_one"]:t["detail.tech.errors_many"]}`:t["detail.tech.title"];return o("details",{class:"report-detail-tech",children:[o("summary",{children:f}),o("div",{class:"tech-body",children:[i&&o(kr,{device:i,strings:t}),r.length>0&&o(Sr,{errors:r,strings:t}),n.length>0&&o(Rr,{logs:n,strings:t}),a.length>0&&o(Cr,{rows:a,strings:t})]})]})}function kr({device:e,strings:t}){let r=[];if(e!=null&&e.viewport){let n=e.viewport.dpr?` @${e.viewport.dpr}x`:"";r.push({label:t["detail.tech.device.viewport"],value:`${e.viewport.w}\xD7${e.viewport.h}${n}`})}return e!=null&&e.platform&&r.push({label:t["detail.tech.device.platform"],value:e.platform}),e!=null&&e.language&&r.push({label:t["detail.tech.device.language"],value:e.language}),e!=null&&e.timezone&&r.push({label:t["detail.tech.device.timezone"],value:e.timezone}),e!=null&&e.connection&&r.push({label:t["detail.tech.device.connection"],value:e.connection}),r.length===0?null:o("div",{class:"tech-section",children:[o("h4",{children:t["detail.tech.device"]}),o("dl",{class:"tech-device",children:r.map(n=>o(U,{children:[o("dt",{children:n.label}),o("dd",{children:n.value})]}))})]})}function Sr({errors:e,strings:t}){return o("div",{class:"tech-section",children:[o("h4",{children:t["detail.tech.errors"]}),o("ul",{class:"tech-errors",children:e.map(r=>o("li",{children:[o("div",{class:"tech-errors-msg",children:r.message}),r.stack&&o("pre",{class:"tech-errors-stack",children:Er(r.stack)})]}))})]})}function Rr({logs:e,strings:t}){return o("div",{class:"tech-section",children:[o("h4",{children:t["detail.tech.console"]}),o("ul",{class:"tech-console",children:e.map(r=>o("li",{class:`tech-console-row tech-console-row--${r.level}`,children:[o("span",{class:"tech-console-level",children:r.level}),o("span",{class:"tech-console-msg",children:r.message})]}))})]})}function Cr({rows:e,strings:t}){return o("div",{class:"tech-section",children:[o("h4",{children:t["detail.tech.network"]}),o("ul",{class:"tech-network",children:e.map(r=>{let n=r.status>=400||r.status===0;return o("li",{class:`tech-network-row${n?" tech-network-row--fail":""}`,children:[o("span",{class:"tech-network-status",children:r.status||"\u2014"}),o("span",{class:"tech-network-method",children:r.method}),o("span",{class:"tech-network-url",title:r.url,children:oe(r.url,56)}),o("span",{class:"tech-network-time",children:[Math.round(r.durationMs),"ms"]})]})})})]})}function Er(e){let t=e.split(`
4
4
  `);return t.length<=12?e:t.slice(0,12).join(`
@@ -1690,7 +1690,7 @@
1690
1690
  @media (prefers-reduced-motion: reduce) {
1691
1691
  .skeleton-line { animation: none; }
1692
1692
  }
1693
- `;function uo(e,t,r){return!(!e.showFAB||e.getExternalId!==void 0&&!t||e.requiresVisibilityCheck&&!r)}function Lt(e){let t=e.host.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=Ft,t.appendChild(r);let n=document.createElement("div");t.appendChild(n);let a={open:!1,status:"idle",tab:"send"},i=null;function s(c){a=c,Fe(ze(f,{state:c}),n)}function l(c){let{selectedReportId:h,...d}=c;return d}function f({state:c}){var y;let h=vt(async p=>{s({...a,status:"submitting"});try{await e.onSubmit(p),s({...a,status:"success"}),i!==null&&clearTimeout(i),i=setTimeout(()=>{i=null,s({...a,open:!1,status:"idle",tab:e.api?"mine":"send"})},1200)}catch(u){typeof console!="undefined"&&console.warn("[mhosaic] submit:",u),s({...a,status:"error",error:e.strings["form.error"]})}},[]),d=(y=e.getExternalId)==null?void 0:y.call(e),[g,b]=R(!e.requiresVisibilityCheck);D(()=>{if(!e.requiresVisibilityCheck){b(!0);return}if(!d||!e.checkVisibility){b(!1);return}let p=!1;return e.checkVisibility(d).then(u=>{p||b(u)}).catch(()=>{p||b(!1)}),()=>{p=!0}},[d]);let x=uo(e,d,g),_=!!(e.api&&d);return o(U,{children:[x&&o(Rt,{label:e.strings["fab.label"],onClick:()=>s({...a,open:!0})}),c.open&&o(Bt,{onDismiss:()=>s(l({...a,open:!1,status:"idle"})),closeLabel:e.strings["form.close"],expanded:c.tab==="board",children:[_&&o("div",{class:"tab-strip",role:"tablist",children:[o("button",{type:"button",role:"tab","aria-selected":c.tab==="send",class:`tab-button ${c.tab==="send"?"is-active":""}`,onClick:()=>s(l({...a,tab:"send"})),children:e.strings["tab.send"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="mine",class:`tab-button ${c.tab==="mine"?"is-active":""}`,onClick:()=>s(l({...a,tab:"mine"})),children:e.strings["tab.mine"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="changelog",class:`tab-button ${c.tab==="changelog"?"is-active":""}`,onClick:()=>s(l({...a,tab:"changelog"})),children:e.strings["tab.changelog"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="board",class:`tab-button tab-button--board ${c.tab==="board"?"is-active":""}`,onClick:()=>s(l({...a,tab:"board"})),children:e.strings["tab.board"]})]}),c.tab==="send"&&o(Tt,{strings:e.strings,onSubmit:h,onCancel:()=>s({...a,open:!1,status:"idle"}),status:c.status,...c.error!==void 0&&{errorMessage:c.error}}),c.tab==="mine"&&e.api&&d&&!c.selectedReportId&&o(At,{api:e.api,externalId:d,strings:e.strings,onSelect:p=>s({...a,selectedReportId:p.id})}),(c.tab==="mine"||c.tab==="changelog")&&e.api&&d&&c.selectedReportId&&o(ye,{api:e.api,externalId:d,reportId:c.selectedReportId,strings:e.strings,onBack:()=>s(l({...a}))}),c.tab==="changelog"&&e.api&&d&&!c.selectedReportId&&o(St,{api:e.api,externalId:d,strings:e.strings,onSelect:p=>s({...a,selectedReportId:p.id})}),c.tab==="board"&&e.api&&d&&o(kt,{api:e.api,externalId:d,strings:e.strings})]})]})}return s(a),{open(){s({...a,open:!0})},close(){s({...a,open:!1,status:"idle"})},dispose(){i!==null&&(clearTimeout(i),i=null),Fe(null,n),e.host.innerHTML=""},notifyIdentityChanged(){s({...a})}}}function It(e){var b,x,_,y,p,u;let t=(b=e.env)!=null?b:"prod",r=(x=e.locale)!=null?x:typeof navigator!="undefined"?navigator.language:void 0,n=Ge((_=e.translations)!=null?_:{},r!==void 0?{locale:r}:{}),a=qe({...e.sanitizeUrl!==void 0&&{sanitizeUrl:e.sanitizeUrl}}),i=e.user,s=(y=e.metadata)!=null?y:{},l=Ke({apiKey:e.apiKey,endpoint:e.endpoint,...e.fetchImpl!==void 0&&{fetch:e.fetchImpl},...e.beforeSend!==void 0&&{beforeSend:e.beforeSend},getSignedIdentity:()=>!i||!i.userHash||!i.exp||!i.email?null:{userHash:i.userHash,exp:i.exp,email:i.email}}),f=[],c=document.createElement("div");if(c.className="mhosaic-feedback",e.attachTo){let m=typeof e.attachTo=="string"?document.querySelector(e.attachTo):e.attachTo;m==null||m.appendChild(c)}else document.body.appendChild(c);async function h(m){var P,W,A,O,N;let w=m.synthetic?void 0:m.screenshot,C=a.snapshot();if(i){let{userHash:H,exp:Z,...ne}=i;C.user=ne}s&&Object.keys(s).length>0&&(C.metadata={...s});let B=w?(P=m.capture_method)!=null?P:"manual":"none",T={description:m.description,feedback_type:(W=m.feedback_type)!=null?W:"bug",severity:(A=m.severity)!=null?A:"medium",env:t,page_url:window.location.href,user_agent:navigator.userAgent,capture_method:B,technical_context:C};T.widget_version="0.18.0",w&&(T.screenshot=w),m.synthetic&&(T.synthetic=!0),(i==null?void 0:i.id)!==void 0&&i.id!==null&&i.id!==""&&(T.user={id:String(i.id),...i.email!==void 0&&{email:i.email},...i.name!==void 0&&{name:i.name}});let F=T;for(let H of f)F=await H(F);try{let H=await l.submitReport(F);return(O=e.onSubmitSuccess)==null||O.call(e,H),a.clear(),H}catch(H){let Z=H instanceof Error?H:new Error(String(H));throw(N=e.onError)==null||N.call(e,Z),Z}}let d=Lt({host:c,strings:n,showFAB:(p=e.showFAB)!=null?p:!0,onSubmit:async m=>{await h(m)},api:l,getExternalId:()=>(i==null?void 0:i.id)!==void 0&&i.id!==null&&i.id!==""?String(i.id):void 0,requiresVisibilityCheck:(u=e.requiresVisibilityCheck)!=null?u:!1,checkVisibility:m=>l.checkVisibility(m)}),g={show(){d.open()},hide(){d.close()},open(m){d.open()},async submit(m){return h({description:m.description,...m.feedback_type!==void 0&&{feedback_type:m.feedback_type},...m.severity!==void 0&&{severity:m.severity},...m.synthetic!==void 0&&{synthetic:m.synthetic},...m.screenshot!==void 0&&{screenshot:m.screenshot}})},identify(m){i=m,d.notifyIdentityChanged()},setMetadata(m){s={...s,...m}},shutdown(){d.dispose(),a.dispose(),c.remove();let m=window;m.mhosaicFeedback===g&&delete m.mhosaicFeedback},_registerTransformer(m){f.push(m)}};return window.mhosaicFeedback=g,g}var fo={enabled:!0,perFingerprintCooldownMs:3e5,sampleRate:1,maxDescriptionLen:200,globalRatePerMinute:30,maxDistinctFingerprints:200};function $t(e){var t;if(e instanceof Error)return{name:e.name||"Error",message:String((t=e.message)!=null?t:""),...e.stack&&{stack:String(e.stack)}};if(typeof e=="string")return{name:"Error",message:e};if(e&&typeof e=="object"){let r=e;return{name:typeof r.name=="string"&&r.name||"Error",message:typeof r.message=="string"&&r.message||(()=>{try{return JSON.stringify(e)}catch(n){return String(e)}})(),...typeof r.stack=="string"&&{stack:r.stack}}}return{name:"Error",message:String(e)}}function mo(e,t){var a;let r=((a=e.stack)!=null?a:"").split(`
1693
+ `;function uo(e,t,r){return!(!e.showFAB||e.getExternalId!==void 0&&!t||e.requiresVisibilityCheck&&!r)}function Lt(e){let t=e.host.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=Ft,t.appendChild(r);let n=document.createElement("div");t.appendChild(n);let a={open:!1,status:"idle",tab:"send"},i=null;function s(c){a=c,Fe(ze(f,{state:c}),n)}function l(c){let{selectedReportId:h,...d}=c;return d}function f({state:c}){var y;let h=vt(async p=>{s({...a,status:"submitting"});try{await e.onSubmit(p),s({...a,status:"success"}),i!==null&&clearTimeout(i),i=setTimeout(()=>{i=null,s({...a,open:!1,status:"idle",tab:e.api?"mine":"send"})},1200)}catch(u){typeof console!="undefined"&&console.warn("[mhosaic] submit:",u),s({...a,status:"error",error:e.strings["form.error"]})}},[]),d=(y=e.getExternalId)==null?void 0:y.call(e),[g,b]=R(!e.requiresVisibilityCheck);D(()=>{if(!e.requiresVisibilityCheck){b(!0);return}if(!d||!e.checkVisibility){b(!1);return}let p=!1;return e.checkVisibility(d).then(u=>{p||b(u)}).catch(()=>{p||b(!1)}),()=>{p=!0}},[d]);let x=uo(e,d,g),_=!!(e.api&&d);return o(U,{children:[x&&o(Rt,{label:e.strings["fab.label"],onClick:()=>s({...a,open:!0})}),c.open&&o(Bt,{onDismiss:()=>s(l({...a,open:!1,status:"idle"})),closeLabel:e.strings["form.close"],expanded:c.tab==="board",children:[_&&o("div",{class:"tab-strip",role:"tablist",children:[o("button",{type:"button",role:"tab","aria-selected":c.tab==="send",class:`tab-button ${c.tab==="send"?"is-active":""}`,onClick:()=>s(l({...a,tab:"send"})),children:e.strings["tab.send"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="mine",class:`tab-button ${c.tab==="mine"?"is-active":""}`,onClick:()=>s(l({...a,tab:"mine"})),children:e.strings["tab.mine"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="changelog",class:`tab-button ${c.tab==="changelog"?"is-active":""}`,onClick:()=>s(l({...a,tab:"changelog"})),children:e.strings["tab.changelog"]}),o("button",{type:"button",role:"tab","aria-selected":c.tab==="board",class:`tab-button tab-button--board ${c.tab==="board"?"is-active":""}`,onClick:()=>s(l({...a,tab:"board"})),children:e.strings["tab.board"]})]}),c.tab==="send"&&o(Tt,{strings:e.strings,onSubmit:h,onCancel:()=>s({...a,open:!1,status:"idle"}),status:c.status,...c.error!==void 0&&{errorMessage:c.error}}),c.tab==="mine"&&e.api&&d&&!c.selectedReportId&&o(At,{api:e.api,externalId:d,strings:e.strings,onSelect:p=>s({...a,selectedReportId:p.id})}),(c.tab==="mine"||c.tab==="changelog")&&e.api&&d&&c.selectedReportId&&o(ye,{api:e.api,externalId:d,reportId:c.selectedReportId,strings:e.strings,onBack:()=>s(l({...a}))}),c.tab==="changelog"&&e.api&&d&&!c.selectedReportId&&o(St,{api:e.api,externalId:d,strings:e.strings,onSelect:p=>s({...a,selectedReportId:p.id})}),c.tab==="board"&&e.api&&d&&o(kt,{api:e.api,externalId:d,strings:e.strings})]})]})}return s(a),{open(){s({...a,open:!0})},close(){s({...a,open:!1,status:"idle"})},dispose(){i!==null&&(clearTimeout(i),i=null),Fe(null,n),e.host.innerHTML=""},notifyIdentityChanged(){s({...a})}}}function It(e){var b,x,_,y,p,u;let t=(b=e.env)!=null?b:"prod",r=(x=e.locale)!=null?x:typeof navigator!="undefined"?navigator.language:void 0,n=Ge((_=e.translations)!=null?_:{},r!==void 0?{locale:r}:{}),a=qe({...e.sanitizeUrl!==void 0&&{sanitizeUrl:e.sanitizeUrl}}),i=e.user,s=(y=e.metadata)!=null?y:{},l=Ke({apiKey:e.apiKey,endpoint:e.endpoint,...e.fetchImpl!==void 0&&{fetch:e.fetchImpl},...e.beforeSend!==void 0&&{beforeSend:e.beforeSend},getSignedIdentity:()=>!i||!i.userHash||!i.exp||!i.email?null:{userHash:i.userHash,exp:i.exp,email:i.email}}),f=[],c=document.createElement("div");if(c.className="mhosaic-feedback",e.attachTo){let m=typeof e.attachTo=="string"?document.querySelector(e.attachTo):e.attachTo;m==null||m.appendChild(c)}else document.body.appendChild(c);async function h(m){var P,W,A,O,N;let w=m.synthetic?void 0:m.screenshot,C=a.snapshot();if(i){let{userHash:H,exp:Z,...ne}=i;C.user=ne}s&&Object.keys(s).length>0&&(C.metadata={...s});let B=w?(P=m.capture_method)!=null?P:"manual":"none",T={description:m.description,feedback_type:(W=m.feedback_type)!=null?W:"bug",severity:(A=m.severity)!=null?A:"medium",env:t,page_url:window.location.href,user_agent:navigator.userAgent,capture_method:B,technical_context:C};T.widget_version="0.18.1",w&&(T.screenshot=w),m.synthetic&&(T.synthetic=!0),(i==null?void 0:i.id)!==void 0&&i.id!==null&&i.id!==""&&(T.user={id:String(i.id),...i.email!==void 0&&{email:i.email},...i.name!==void 0&&{name:i.name}});let F=T;for(let H of f)F=await H(F);try{let H=await l.submitReport(F);return(O=e.onSubmitSuccess)==null||O.call(e,H),a.clear(),H}catch(H){let Z=H instanceof Error?H:new Error(String(H));throw(N=e.onError)==null||N.call(e,Z),Z}}let d=Lt({host:c,strings:n,showFAB:(p=e.showFAB)!=null?p:!0,onSubmit:async m=>{await h(m)},api:l,getExternalId:()=>(i==null?void 0:i.id)!==void 0&&i.id!==null&&i.id!==""?String(i.id):void 0,requiresVisibilityCheck:(u=e.requiresVisibilityCheck)!=null?u:!1,checkVisibility:m=>l.checkVisibility(m,i==null?void 0:i.email)}),g={show(){d.open()},hide(){d.close()},open(m){d.open()},async submit(m){return h({description:m.description,...m.feedback_type!==void 0&&{feedback_type:m.feedback_type},...m.severity!==void 0&&{severity:m.severity},...m.synthetic!==void 0&&{synthetic:m.synthetic},...m.screenshot!==void 0&&{screenshot:m.screenshot}})},identify(m){i=m,d.notifyIdentityChanged()},setMetadata(m){s={...s,...m}},shutdown(){d.dispose(),a.dispose(),c.remove();let m=window;m.mhosaicFeedback===g&&delete m.mhosaicFeedback},_registerTransformer(m){f.push(m)}};return window.mhosaicFeedback=g,g}var fo={enabled:!0,perFingerprintCooldownMs:3e5,sampleRate:1,maxDescriptionLen:200,globalRatePerMinute:30,maxDistinctFingerprints:200};function $t(e){var t;if(e instanceof Error)return{name:e.name||"Error",message:String((t=e.message)!=null?t:""),...e.stack&&{stack:String(e.stack)}};if(typeof e=="string")return{name:"Error",message:e};if(e&&typeof e=="object"){let r=e;return{name:typeof r.name=="string"&&r.name||"Error",message:typeof r.message=="string"&&r.message||(()=>{try{return JSON.stringify(e)}catch(n){return String(e)}})(),...typeof r.stack=="string"&&{stack:r.stack}}}return{name:"Error",message:String(e)}}function mo(e,t){var a;let r=((a=e.stack)!=null?a:"").split(`
1694
1694
  `).slice(0,4).join(`
1695
1695
  `),n=e.message.slice(0,30);return`${e.name}:${n}|${t}|${r}`}function bo(e,t){return e.length<=t?e:e.slice(0,Math.max(0,t-1))+"\u2026"}function Dt(e,t={}){let r={...fo,...t};if(!r.enabled||typeof window=="undefined")return e;let n=e;if(n._errorTrackingArmed)return e;n._errorTrackingArmed=!0;let a=new Set,i=new Map,s=[];function l(g,b){if(r.globalRatePerMinute>0){let p=b-6e4;for(;s.length>0&&s[0]<p;)s.shift();if(s.length>=r.globalRatePerMinute)return!1}if(r.maxDistinctFingerprints>0&&!i.has(g)&&i.size>=r.maxDistinctFingerprints)return!1;if(r.perFingerprintCooldownMs<=0)return s.push(b),!0;let x=i.get(g);if(x!==void 0&&b-x<r.perFingerprintCooldownMs)return!1;let _=256,y=192;if(i.size>_){let p=b-r.perFingerprintCooldownMs*2;for(let[u,m]of i)m<p&&i.delete(u);if(i.size>_){let u=i.size-y,m=0;for(let w of i.keys()){if(m>=u)break;i.delete(w),m++}}}return s.push(b),!0}async function f(g){if(r.sampleRate<1&&Math.random()>=r.sampleRate)return;let b=mo(g,window.location.pathname);if(a.has(b))return;let x=Date.now();if(!l(b,x))return;i.set(b,x);let _=bo(g.message?`${g.name}: ${g.message}`:g.name,r.maxDescriptionLen);a.add(b);try{await n.submit({description:_,feedback_type:"bug",severity:"high",synthetic:!0})}catch(y){}finally{a.delete(b)}}function c(g){var x;let b=(x=g.error)!=null?x:{name:"Error",message:g.message,stack:`at ${g.filename}:${g.lineno}:${g.colno}`};f($t(b))}function h(g){f($t(g.reason))}window.addEventListener("error",c),window.addEventListener("unhandledrejection",h);let d=n.shutdown.bind(n);return n.shutdown=()=>{window.removeEventListener("error",c),window.removeEventListener("unhandledrejection",h),i.clear(),d()},e}function ho(e){let{errorTracking:t,...r}=e,n=It(r);return t!==!1&&Dt(n,typeof t=="object"?t:void 0),n}return Ot(go);})();
1696
1696
  //# sourceMappingURL=widget.min.js.map