PageSourceSearch

https://www.airgradient.com/_nuxt/BYxW1oZc.js

js airgradient.com collected 2026-09-24 09:05:45 UTC 8,455 bytes, 1 lines download raw bytes

1import{_ as ae}from"./BFMj98Ab.js";import{K as re,f as ie,a7 as le,e as h,r as k,y as ce,c as s,h as b,i,t as l,F as _,d as n,m as y,aP as de,a as ue,aO as pe,z as _e,o,E as q,a3 as K,Y as me,af as ke}from"./hpNDvw06.js";import{c as be}from"./hZ2BpX9w.js";const fe={class:"container py-5 support-ticket-page"},ge={key:0,class:"alert alert-info"},he={key:1,class:"alert alert-danger"},ye={key:0,class:"alert alert-info"},ve={class:"d-flex flex-wrap align-items-start justify-content-between gap-3 mb-4"},we={class:"h3 mb-1"},Te={class:"text-muted mb-0"},xe={class:"d-flex flex-wrap gap-2"},$e=["disabled"],Ie=["disabled"],Ce={class:"mb-4"},Se={class:"badge text-bg-secondary"},Ae={class:"support-ticket-page__timeline mb-4","aria-label":"Ticket messages"},Ne={class:"d-flex justify-content-between gap-3 mb-2"},Re=["datetime"],Ue=["innerHTML"],Pe={key:1,class:"mb-0 support-ticket-page__body"},ze={key:2,class:"support-attachment-list"},He=["href"],Me=["src","onError"],Le={class:"support-attachment__name"},Be={class:"support-attachment__size"},Fe={key:1,class:"support-ticket-page__merged mb-4","aria-label":"Merged ticket histories"},Ee={class:"mb-3"},Ve={class:"text-muted small"},je={class:"support-ticket-page__timeline"},De={class:"d-flex justify-content-between gap-3 mb-2"},Oe=["datetime"],qe=["innerHTML"],Ke={key:1,class:"mb-0 support-ticket-page__body"},We={key:2,class:"support-attachment-list"},Ye=["href"],Ge=["src","onError"],Je={class:"support-attachment__name"},Qe={class:"support-attachment__size"},Xe={class:"d-flex justify-content-end mt-3"},Ze=["disabled"],et=re({__name:"[token]",async setup(tt){let N,R;const U=ie(),P=_e(),{t:z}=le("support"),C=h(()=>String(U.params.token||"").trim()),S=k(!0),p=k(!1),f=k(""),c=k(null),g=k(""),v=k(""),W=h(()=>{var e;return String(((e=P.public)==null?void 0:e.apiUrl)||"").trim().replace(/\/+$/,"")}),w=h(()=>`${W.value}/support/tickets/public/${encodeURIComponent(C.value)}`),Y=h(()=>{var e;return String(((e=c.value)==null?void 0:e.status)||"").replace(/_/g," ").replace(/\b\w/g,t=>t.toUpperCase())}),G=h(()=>{var e;return((e=c.value)==null?void 0:e.requestType)==="epic_support"?z("support_ticket_page_request_title","Request ticket"):z("support_ticket_page_title","Support ticket")}),H=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(t)},T=e=>{const t=Number(e||0);return t>=1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:t>=1024?`${Math.round(t/1024)} KB`:`${t} B`},M=e=>{var t;return(((t=c.value)==null?void 0:t.attachments)||[]).filter(u=>u.messageId===e)},L=(e,t)=>(e.attachments||[]).filter(u=>u.messageId===t),B=e=>M(e).filter(t=>!t.isInline),F=(e,t)=>L(e,t).filter(u=>!u.isInline),E=k(new Set),A=e=>{E.value.add(e)},V=(e,t)=>{const u=e;u&&u.complete&&u.naturalWidth===0&&A(t)},x=e=>be(e.mimeType,e.size)&&!E.value.has(e.id),$=e=>`/api/support/tickets/${encodeURIComponent(C.value)}/attachments/${encodeURIComponent(e)}/file`,J=e=>{var t;return`${String(((t=P.public)==null?void 0:t.apiUrl)||"").trim().replace(/\/+$/,"")}/support/tickets/public/${encodeURIComponent(C.value)}/attachments/${encodeURIComponent(e)}/file`},Q=e=>{const t=String(e).trim();try{return decodeURIComponent(t).toLowerCase()}catch{return t.toLowerCase()}},j=(e,t)=>String(e||"").replace(/(<img\b[^>]*\bsrc=)(["'])cid:([^"']+)\2([^>]*>)/gi,(u,m,a,r,d)=>{const I=Q(r),O=t.find(ne=>String(ne.contentId||"").toLowerCase()===I);return O?`${m}${a}${J(O.supportAttachmentId)}${a}${d}`:""}),X=e=>j(e.bodyHtml,M(e.id)),Z=(e,t)=>j(t.bodyHtml,L(e,t.id)),D=e=>{var m;const t=(m=e.target)==null?void 0:m.closest("a");if(!t)return;const u=String(t.getAttribute("href")||"").trim();u&&(e.preventDefault(),window.open(u,"_blank","noopener,noreferrer"))},ee=async()=>{S.value=!0,f.value="";try{const e=await $fetch(w.value,{headers:{"Cache-Control":"no-store"}});c.value=e;const t=String(e.canonicalPublicUrlPath||"").trim();t&&t!==U.fullPath&&await me(t,{replace:!0})}catch{f.value="Unable to load this support ticket."}finally{S.value=!1}},te=async()=>{const e=v.value.trim(),t=g.value.trim();if(!(!e||p.value)){p.value=!0,f.value="";try{c.value=await $fetch(`${w.value}/messages`,{method:"POST",body:{bodyText:e,bodyHtml:t}}),g.value="",v.value=""}catch{f.value="Unable to send your reply."}finally{p.value=!1}}},se=async()=>
1{if(!p.value){p.value=!0;try{c.value=await $fetch(`${w.value}/close`,{method:"POST"})}finally{p.value=!1}}},oe=async()=>{if(!p.value){p.value=!0;try{c.value=await $fetch(`${w.value}/reopen`,{method:"POST"})}finally{p.value=!1}}};return[N,R]=ce(()=>ee()),await N,R(),(e,t)=>{var m;const u=ae;return o(),s("main",fe,[i(S)?(o(),s("div",ge,"Loading support ticket...")):i(f)?(o(),s("div",he,l(i(f)),1)):i(c)?(o(),s(_,{key:2},[i(c).redirectedFromTicketNumber?(o(),s("div",ye," Ticket #"+l(i(c).redirectedFromTicketNumber)+" was merged into this ticket. Replies now continue here. ",1)):b("",!0),n("div",ve,[n("div",null,[n("h1",we,l(i(G))+" #"+l(i(c).ticketNumber),1),n("p",Te,l(i(c).subject),1)]),n("div",xe,[i(c).status!=="closed"&&i(c).status!=="merged"?(o(),s("button",{key:0,class:"btn-small button-blue",type:"button",disabled:i(p),onClick:se}," Close ticket ",8,$e)):i(c).status==="closed"?(o(),s("button",{key:1,class:"btn-small button-orange",type:"button",disabled:i(p),onClick:oe}," Reopen ticket ",8,Ie)):b("",!0)])]),n("div",Ce,[n("span",Se,l(i(Y)),1)]),n("section",Ae,[(o(!0),s(_,null,y(i(c).messages,a=>(o(),s("article",{key:a.id,class:"support-ticket-page__message"},[n("div",Ne,[n("strong",null,l(a.authorName),1),n("time",{class:"text-muted small",datetime:a.createdAt},l(H(a.createdAt)),9,Re)]),a.bodyHtml?(o(),s("div",{key:0,class:"mb-0 support-ticket-page__body support-ticket-page__body--html",onClick:D,innerHTML:X(a)},null,8,Ue)):(o(),s("p",Pe,l(a.bodyText),1)),B(a.id).length?(o(),s("div",ze,[(o(!0),s(_,null,y(B(a.id),r=>(o(),s("a",{key:r.id,class:q(["support-attachment",{"support-attachment--preview":x(r)}]),href:$(r.supportAttachmentId),target:"_blank",rel:"noopener noreferrer"},[x(r)?(o(),s(_,{key:0},[n("img",{ref_for:!0,ref:d=>V(d,r.id),class:"support-attachment__thumb",src:$(r.supportAttachmentId),alt:"",loading:"lazy",decoding:"async",onError:d=>A(r.id)},null,40,Me),n("span",Le,l(r.originalName),1),n("span",Be,l(T(r.size)),1)],64)):(o(),s(_,{key:1},[K(l(r.originalName)+" ("+l(T(r.size))+") ",1)],64))],10,He))),128))])):b("",!0)]))),128))]),(m=i(c).mergedTicketHistories)!=null&&m.length?(o(),s("section",Fe,[(o(!0),s(_,null,y(i(c).mergedTicketHistories,a=>(o(),s("article",{key:a.ticket.id,class:"support-ticket-page__merged-section"},[n("div",Ee,[n("strong",null,"Merged history from ticket #"+l(a.ticket.ticketNumber),1),n("div",Ve,l(a.ticket.subject),1)]),n("div",je,[(o(!0),s(_,null,y(a.messages,r=>(o(),s("article",{key:r.id,class:"support-ticket-page__message support-ticket-page__message--merged"},[n("div",De,[n("strong",null,l(r.authorName),1),n("time",{class:"text-muted small",datetime:r.createdAt},l(H(r.createdAt)),9,Oe)]),r.bodyHtml?(o(),s("div",{key:0,class:"mb-0 support-ticket-page__body support-ticket-page__body--html",onClick:D,innerHTML:Z(a,r)},null,8,qe)):(o(),s("p",Ke,l(r.bodyText),1)),F(a,r.id).length?(o(),s("div",We,[(o(!0),s(_,null,y(F(a,r.id),d=>(o(),s("a",{key:d.id,class:q(["support-attachment",{"support-attachment--preview":x(d)}]),href:$(d.supportAttachmentId),target:"_blank",rel:"noopener noreferrer"},[x(d)?(o(),s(_,{key:0},[n("img",{ref_for:!0,ref:I=>V(I,d.id),class:"support-attachment__thumb",src:$(d.supportAttachmentId),alt:"",loading:"lazy",decoding:"async",onError:I=>A(d.id)},null,40,Ge),n("span",Je,l(d.originalName),1),n("span",Qe,l(T(d.size)),1)],64)):(o(),s(_,{key:1},[K(l(d.originalName)+" ("+l(T(d.size))+") ",1)],64))],10,Ye))),128))])):b("",!0)]))),128))])]))),128))])):b("",!0),i(c).status!=="closed"&&i(c).status!=="merged"?(o(),s("form",{key:2,class:"support-ticket-page__reply",onSubmit:de(te,["prevent"])},[t[2]||(t[2]=n("label",{class:"form-label",for:"support-ticket-reply"},"Reply",-1)),ue(u,{id:"support-ticket-reply",modelValue:i(g),"onUpdate:modelValue":t[0]||(t[0]=a=>pe(g)?g.value=a:null),label:"Reply","max-length":5e4,"onUpdate:text":t[1]||(t[1]=a=>{v.value=a})},null,8,["modelValue"]),n("div",Xe,[n("button",{class:"btn-small button-orange",type:"submit",disabled:i(p)||!i(v).trim()}," Send reply ",8,Ze)])],32)):b("",!0)],64)):b("",!0)])}}}),at=ke(et,[["__scopeId","data-v-8bd28732"]]);export{at as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.