PageSourceSearch

https://crm.salesly.app/assets/Emails-DjOdlBQF.js

js salesly.app collected 2026-10-05 21:32:19 UTC 10,659 bytes, 1 lines download raw bytes

1import{a8 as ie,o as ve,ar as ge,r as u,s as Q,T as W,t as re,p as x,d as he,h as m,Q as o,U as p,W as t,Y as _,as as _e,w as te,bd as ne,ap as be,a1 as Y,e as se,F as ae,i as oe,V as we,Z as ye,g as d,aa as ce,b as Ce,aq as xe,bu as ke,a0 as Ee,$ as V,a3 as $e}from"./index-B6Y6zYHk.js";import{C as Pe}from"./ComposeEmailModal-DEO0BrHT.js";import{E as Se}from"./EmailPreviewModal-D86XxlKi.js";import{u as Le}from"./useConnectorModal-B47ZiKgN.js";import{u as Te}from"./connectors-CDiNBRAu.js";import"./DropZone-CKDky-l6.js";import"./SwalService-D8BUz9sH.js";import"./RecipientsEmailSelector.vue_vue_type_script_setup_true_lang-DIbskEhQ.js";import"./Editor-Pdp-E5fJ.js";import"./connectors.api-Bgwi3oHr.js";import"./sanitize-BUVvKW5i.js";function Ue(N){const k=u(!1),E=u(!1),$=u(!1),b=u(!1),R=u(!1),f=u(""),D=u(null),g=u([]),v=u({nextToken:null,hasNext:!1,per_page:8}),y=u(null),C=u(!1),r=u(null),j=u(!1),w=u(!1),{connectors:P,loadConnectors:Z}=Te(),{openModal:G}=Le(),S=x(()=>P.value.filter(e=>["gmail","outlook"].includes(e.slug)).some(e=>e.userConnected||e.tenantConnected)),L=x(()=>P.value.filter(e=>["gmail","outlook"].includes(e.slug)&&(e.userConnected||e.tenantConnected))),T=x(()=>f.value&&(L.value.find(e=>e.slug===f.value)||L.value[0])||null),H=x(()=>{var e,n;return((n=(e=T.value)==null?void 0:e.userAccount)==null?void 0:n.email)||""}),J=x(()=>k.value),B=x(()=>!v.value.hasNext||E.value||$.value),F=x(()=>{const e=r.value;if(!e)return"";const n=e.body;if(n&&typeof n=="object"){const a=n.html||"",l=n.text||"";return a||l||e.snippet||""}return typeof n=="string"?n||e.snippet||"":e.snippet||""});ie(()=>L.value,e=>{if(e.length===0){f.value="";return}(!f.value||!e.some(n=>n.slug===f.value))&&(f.value=e[0].slug)},{deep:!0,immediate:!0}),ie(()=>f.value,async e=>{e&&await I()}),ve(async()=>{k.value=!0,await Z(),await I(),k.value=!1});function K(e){const n=new URLSearchParams;return Object.entries(e).forEach(([a,l])=>{l!=null&&l!==""&&n.append(a,String(l))}),n.toString()}async function M(e="initial",n=!1){if(!T.value)return{emails:[],pagination:v.value};const a=T.value.slug,l=e==="next",h=K({connector:a,per_page:v.value.per_page,nextToken:l?y.value:null,refresh:n?"true":void 0}),U=`/emails/enterprise/${N()}?${h}`,z=await Q.get(U),pe=z.emails||[],ee=z.pagination||{},fe={nextToken:ee.nextToken||null,hasNext:!!ee.hasNext,per_page:ee.per_page||v.value.per_page};return{emails:pe,pagination:fe}}function A(e,n){const a=new Map;for(const l of e)a.set(l.id,l);for(const l of n)a.set(l.id,l);return Array.from(a.values()).sort((l,h)=>new Date(h.date).getTime()-new Date(l.date).getTime())}async function I(e=!1){try{E.value=!0,y.value=null;const{emails:n,pagination:a}=await M("initial",e);g.value=[];const l=8;for(let h=0;h<n.length;h+=l){const U=n.slice(h,h+l);await new Promise(z=>setTimeout(z,80)),g.value=A(g.value,U)}v.value=a,y.value=a.nextToken}catch{}finally{E.value=!1}}async function c(){if(!B.value)try{$.value=!0;const{emails:e,pagination:n}=await M("next");g.value=A(g.value,e),v.value=n,y.value=n.nextToken}catch{}finally{$.value=!1}}async function i(){if(!R.value){R.value=!0;try{await I(!0)}catch{}finally{R.value=!1}}}function X(e){}async function O(e){if(!b.value){b.value=!0,D.value=e.id;try{await new Promise(n=>setTimeout(n,200)),r.value={...e},C.value=!0,await s(r.value)}catch{r.value=e,C.value=!0}finally{b.value=!1,D.value=null}}}function q(){C.value=!1,r.value=null}async function s(e){if(e)try{const n=`/emails/details/${e.connector}/${e.id}/attachments`,a=await Q.get(n),l=(a==null?void 0:a.data)||[];r.value={...r.value,attachments:l}}catch{}}async function le(e){const n=r.value;if(!n)return;const a=`/emails/attachments/${n.connector}/${n.id}/${e.id}/download`;try{const h=(await Q.get(a,{responseType:"blob"})).data,U=window.URL.createObjectURL(h);window.open(U,"_blank"),setTimeout(()=>{try{window.URL.revokeObjectURL(U)}catch{}},6e4)}catch{W.error("File wasn’t available on site")}}function de(e){G(e)}function ue(){j.value=!0}async function me(e){try{if(w.value=!0,f.value!=="outlook"){W.error("Only Outlook connector is supported for sending emails"),w.value=!1;return}const n=new FormData;n.append("connector","outlook"),n.append("enterprise_id",String(N())),n.append("subject",e.subject||""),n.append("html",e.html||""),(e.to||[]).forEac
1h(a=>n.append("to[]",a)),(e.cc||[]).forEach(a=>n.append("cc[]",a)),(e.bcc||[]).forEach(a=>n.append("bcc[]",a)),(e.attachments||[]).forEach(a=>{try{n.append("attachments[]",a,a.name||"attachment")}catch{}}),await Q.post("/email/send",n),W.success(re("emailSendOk")),j.value=!1,await i()}catch{W.error(re("error_when_sending_try_later"))}finally{w.value=!1}}return{isBooting:k,isListLoading:E,isPaginating:$,isPreviewLoading:b,isInitialLoading:J,emails:g,selectedConnectorSlug:f,selectedEmailId:D,selectedEmail:r,selectedConnector:T,currentUserEmail:H,showEmailPreview:C,showCompose:j,sendLoading:w,infiniteScrollDisabled:B,hasConnectedAccounts:S,availableEmailConnectors:L,renderedEmailBody:F,handleConnectorChange:X,openEmailPreview:O,closeEmailPreview:q,openFilePreview:le,openConnectorModal:de,openComposeReply:ue,handleSend:me,loadNextPage:c,refreshEmails:i,formatDate:ge}}const Ve={class:"d-flex align-items-center justify-content-between mb-4"},Ne={class:"d-flex align-items-center gap-3"},Re={class:"fw-bold m-0"},De={key:0,class:"d-flex align-items-center gap-2"},je=["src","alt"],Be={class:"d-flex align-items-center"},Fe=["src","alt"],Ie={class:"badge badge-light-success ms-2"},Me=["title"],Ae={key:0,class:"text-center py-2"},Oe={class:"card"},qe={class:"card-body p-4"},ze={key:0,class:"email-loading-container"},Qe={class:"d-flex flex-column gap-3"},We={key:1,class:"email-list-container"},Ye=["infinite-scroll-disabled"],Ze={class:"d-flex flex-column gap-3"},Ge=["onClick"],He={class:""},Je={class:"flex-grow-1"},Ke={class:"d-flex align-items-center gap-3 mb-2"},Xe={key:0,class:"badge badge-light-info badge-sm"},et={key:1,class:"badge badge-light-success badge-sm"},tt={class:"fs-4 fw-bold"},nt={class:"text-gray-700 small"},st={class:"text-muted mb-2 email-from"},at={class:"text-gray-600"},ot={class:"text-ellipsis"},lt={key:2,class:"text-center py-10"},it={class:"fw-bold text-muted mb-12"},rt={key:3,class:"text-center py-10"},ct={class:"fw-bold text-muted mb-12"},dt=he({__name:"Emails",props:{contactId:{}},setup(N,{expose:k}){const E=N,{isBooting:$,isListLoading:b,isPaginating:R,isPreviewLoading:f,isInitialLoading:D,emails:g,selectedConnectorSlug:v,selectedEmailId:y,selectedEmail:C,selectedConnector:r,currentUserEmail:j,showEmailPreview:w,showCompose:P,sendLoading:Z,infiniteScrollDisabled:G,hasConnectedAccounts:S,availableEmailConnectors:L,handleConnectorChange:T,openEmailPreview:H,openFilePreview:J,openConnectorModal:B,openComposeReply:F,handleSend:K,loadNextPage:M,refreshEmails:A,formatDate:I}=Ue(()=>E.contactId);return k({refreshEmails:A}),(c,i)=>{var O,q;const X=ye("infinite-scroll");return d(),m("div",null,[o("div",Ve,[o("div",Ne,[o("h3",Re,p(c.$t("email_list")),1),t(S)?(d(),m("div",De,[_(t(be),{modelValue:t(v),"onUpdate:modelValue":i[0]||(i[0]=s=>ne(v)?v.value=s:null),placeholder:c.$t("select_email_connector"),class:"connector-selector",style:{width:"180px"},disabled:t(D)||t(b),onChange:t(T)},_e({default:te(()=>[(d(!0),m(ae,null,oe(t(L),s=>(d(),Ce(t(xe),{key:s.slug,label:s.name,value:s.slug},{default:te(()=>[o("div",Be,[o("img",{src:t(ce)(s.icon||""),alt:s.name,style:{width:"20px",height:"20px"},class:"me-2"},null,8,Fe),o("span",null,p(s.name),1),o("span",Ie,p(c.$t("connected")),1)])]),_:2},1032,["label","value"]))),128))]),_:2},[t(r)?{name:"prefix",fn:te(()=>[o("img",{src:t(ce)(t(r).icon||""),alt:t(r).name,style:{width:"20px",height:"20px"},class:"me-2"},null,8,je)]),key:"0"}:void 0]),1032,["modelValue","placeholder","disabled","onChange"]),o("button",{class:"btn btn-sm btn-light-info",title:c.$t("manage_connectors"),onClick:i[1]||(i[1]=s=>t(B)(`/connectors/detail/${t(v)}`))},[Y(p(c.$t("manage"))+" ",1),_(V,{"icon-name":"entrance-left","icon-class":"fs-3 ms-2"})],8,Me)])):se("",!0)]),t(R)?(d(),m("div",Ae,[...i[6]||(i[6]=[o("span",{class:"spinner-border spinner-border-sm"},null,-1)])])):se("",!0)]),o("div",Oe,[o("div",qe,[t(b)?(d(),m("div",ze,[o("div",Qe,[(d(),m(ae,null,oe(10,s=>o("div",{key:s,class:"border border-gray-200 rounded p-4 cursor-pointer hover-elevate-up email-item position-relative"},[_(t(ke),{rows:2,loading:!0,animated:""})])),64))])])):t(S)&&t(g).length>0?(d(),m("div",We,[we((d(),m("div",{class:"email-list-scroll","infinite-scroll-disabled":t(G),"infinite-scroll-distance":120,"infinite-scroll-delay":200,"infinite-scroll-immediate":!1}
1,[o("div",Ze,[(d(!0),m(ae,null,oe(t(g),s=>(d(),m("div",{key:s.id,class:Ee(["border border-gray-200 rounded p-4 cursor-pointer hover-elevate-up email-item position-relative",{loading:t(f)&&t(y)===s.id,"email-item-interactive":!t(f)||t(y)!==s.id}]),onClick:le=>t(H)(s)},[o("div",He,[o("div",Je,[o("div",Ke,[s.from.trim().toLowerCase().includes(t(j).trim().toLowerCase())?(d(),m("span",Xe,p(c.$t("sent").toUpperCase()),1)):(d(),m("span",et,p(c.$t("received").toUpperCase()),1)),o("span",tt,p(s.subject||c.$t("no_subject")),1),o("span",nt,p(t(I)(s.date)),1)]),o("div",st,[_(V,{"icon-name":"profile-circle","icon-class":"fs-6 me-1"}),Y(" "+p(s.from),1)]),o("div",at,[o("span",ot,p(s.snippet||c.$t("no_preview_available")),1)])])])],10,Ge))),128))])],8,Ye)),[[X,t(M)]])])):t(S)&&t(g).length===0&&!t(b)?(d(),m("div",lt,[_(V,{"icon-name":"sms","icon-class":"fs-4x text-muted mb-2"}),o("h4",it,p(c.$t("no_emails_found")),1),o("button",{class:"btn btn-light-primary",onClick:i[2]||(i[2]=(...s)=>t(F)&&t(F)(...s))},[_(V,{"icon-name":"send","icon-class":"fs-4 me-2"}),Y(" "+p(c.$t("send_email")),1)])])):!t(S)&&!t($)?(d(),m("div",rt,[_(V,{"icon-name":"disconnect","icon-class":"fs-4x text-muted mb-4"}),o("h4",ct,p(c.$t("connect_email_accounts")),1),o("button",{class:"btn btn-primary",onClick:i[3]||(i[3]=s=>t(B)("/connectors/list?category=email"))},[_(V,{"icon-name":"plus","icon-class":"fs-4 me-2"}),Y(" "+p(c.$t("connect")),1)])])):se("",!0)])]),_(Se,{modelValue:t(w),"onUpdate:modelValue":i[4]||(i[4]=s=>
1ne(w)?w.value=s:null),email:t(C),onFilePreview:t(J),onReply:t(F)},null,8,["modelValue","email","onFilePreview","onReply"]),_(Pe,{modelValue:t(P),"onUpdate:modelValue":i[5]||(i[5]=s=>ne(P)?P.value=s:null),"reply-to":t(C),"sender-email":((q=(O=t(r))==null?void 0:O.userAccount)==null?void 0:q.email)||null,"enterprise-id":N.contactId,connector:t(r),"is-sending":t(Z),onSend:t(K)},null,8,["modelValue","reply-to","sender-email","enterprise-id","connector","is-sending","onSend"])])}}}),Ct=$e(dt,[["__scopeId","data-v-78f1c898"]]);export{Ct 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.