PageSourceSearch

https://app.qeen.ai/_nuxt/D96j1DoB.js

js qeen.ai collected 2026-10-01 12:08:03 UTC 18,004 bytes, 1 lines download raw bytes

1import{C as Te}from"./B__sZDEm.js";import{T as ge}from"./Co3eY0Dg.js";import{s as Ae}from"./DVhVgtay.js";import{s as Re}from"./B08Mj9YT.js";import{s as he}from"./BhIzAn6-.js";import{G as ue,r as v,A as Z,H as U,g as ee,n as ve,h as te,o as i,c as E,b as d,a as c,w as p,t as y,d as Q,D as le,s as h,k as t,F as ce,v as H,x as ye,q,N as Fe,bX as Me,p as Oe,aa as Ve}from"./CSYtTi5R.js";import{u as be}from"./Dn1grh-H.js";import{u as Ce}from"./CmsvvF79.js";import{s as We}from"./pNVYeO4p.js";import{s as Be}from"./Dn6LCE4v.js";import{a as je,b as Ue,s as He}from"./Td_NrXJC.js";import{s as we}from"./DHXagm6D.js";import{s as qe}from"./Cr5ORny2.js";import{s as ze}from"./DXn5qrhZ.js";import{s as Ge}from"./DGY8kgRQ.js";import{g as Ye,F as fe,a as Je}from"./CWH4_HUO.js";import{u as Se}from"./-T6wbt4-.js";import{g as re}from"./CxiOsTB0.js";import{u as Ke}from"./O8SLH3Ne.js";import"./zH0z38ay.js";import{e as Xe,d as Qe}from"./RpFIXDdL.js";import{_ as Ze}from"./DlAUqK2U.js";import{r as et}from"./B9-1QXeQ.js";import{s as tt}from"./Co65sj30.js";import{w as st}from"./Dw9c86ij.js";import{u as at}from"./B7v05lpq.js";import ot from"./D3TQJokH.js";import{u as nt}from"./CYJ813Qi.js";import{u as rt}from"./CvbbRpWI.js";import"./5Bn8sfOl.js";import"./rRFHb9cQ.js";import"./C3nCNyvD.js";import"./2i_eZDti.js";import"./C2hV4Y-z.js";import"./o-hZm7IA.js";import"./C6zKP_74.js";import"./C3cSfmaP.js";import"./BJYYGVVZ.js";import"./CdM5tZTY.js";import"./CU7iduCd.js";import"./Cl6EKB7t.js";import"./B8ygnw1g.js";import"./B9GrTSR7.js";import"./B19Ionx9.js";import"./CokPKxVP.js";import"./JMj-diPQ.js";import"./D2zXZTUx.js";import"./Bf_2UCfh.js";import"./eZNxoPjA.js";import"./DoyLntpQ.js";import"./DeVy7xix.js";import"./D0lMyAXL.js";import"./kkLqoWpa.js";import"./C7U6xGm8.js";import"./BpL2yY0t.js";import"./B-oMjONJ.js";import"./BCzwK444.js";import"./DIT3M6Uk.js";import"./BCrSmeRC.js";import"./DjomEAYP.js";import"./DB5uJRWV.js";import"./CuEKF-7v.js";import"./COAj-tMX.js";import"./BEM7CuDV.js";import"./ZTz-1aUo.js";import"./B1-NBFSn.js";import"./80UfgQf_.js";import"./x_rD_Ya3.js";import"./BP4S5Qfm.js";import"./Cv8YM6Xl.js";import"./VuhPgf2K.js";let X=null;async function it(f){try{const o=await Ye({domain:f,page:1,page_size:1}),l=!!(o!=null&&o.customers&&o.customers.length>0);return X={status:"success",message:l?"Customers found":"No customers found",data:{has_customers:l},hasCustomers:function(){var b;return((b=this.data)==null?void 0:b.has_customers)||null},getMessage:function(){return this.message||null},getStatus:function(){return this.status||null}},X}catch(o){return console.error("Error checking customer list:",o),X={status:"error",message:`Failed to check customers for domain: ${f}`,data:{has_customers:!1},hasCustomers:function(){return!1},getMessage:function(){return this.message||null},getStatus:function(){return this.status||null}},X}}const lt={class:"w-full h-full flex justify-center items-center"},ct={class:"text-3xl"},ut={class:"text-gray-800 text-sm mt-4"},mt={class:"list-none mt-4 text-gray-800 space-y-2"},pt={class:"flex items-center text-sm"},dt={class:"flex items-center text-sm"},ft={class:"flex items-center text-sm"},_t={__name:"CreateCampaignPage",props:{checkCustomerList:{type:Boolean,required:!0},emptyCustomerList:{type:Function,required:!0}},setup(f){const{isDisabledForViewOnly:o}=Ce(),l=ue(),b=be(),g=v(b.id||null),k=Z(()=>{var _;return(_=l.selectedWebsite)==null?void 0:_.website});U(()=>b.id,_=>{_&&(b.setPhoneNumber(_),g.value=_)});const{t:$}=ee(),w=ve(),e=f,m=te(),T=e.checkCustomerList?m({name:"whatsapp-campaigns-audience"}):m({name:"whatsapp-import-contacts"}),M=()=>{if(!k.value){w.add({severity:"info",summary:$("please_select_domain"),life:3e3});return}if(g.value===null){w.add({severity:"info",detail:$("select_phone_number"),life:3e3});return}if(!e.checkCustomerList){e.emptyCustomerList();return}H(T)};return(_,n)=>{const N=ye,V=he,R=Re,x=Ae,I=ge;return i(),E(ce,null,[d(N),c("div",lt,[d(R,{class:"max-w-5xl overflow-hidden p-6 min-h-96 flex flex-col justify-center"},{title:p(()=>[c("h1",ct,y(_.$t("Convert more with WhatsApp message campaigns")),1)]),content:p(()=>[c("p",ut,y(_.$t("You are a few clicks away to kick sending your first WhatsApp messaging campaign with qeen.ai")),1),c("ul",mt,[c("li",pt,[n[0]||(n[0]=c("span",{class:"mx-2 text-green-600 font-bold"},"✔",-1)),Q(y(_.$t("Target the right audience at the right time.")),1)]),c("li",dt,[n[1]||(n[1]=c("span",{class:"mx-2 text-green-600 font-bold"},"✔",-1)),Q(y(_.$t("Send, localized and optimize personalized messages.")),1)]),c("li",ft,[n[2]||(n[2]=c("span",{class:"mx-2 text-green-600 font-bold"},"✔",-1)),Q(y(_.$t("Increase campaign performance and customer satisfaction.")),1)])])]),footer:p(()=>[le((i(),h(V,{class:"w-fit font-bold mt-4 text-white",disabled:t(o)("create-whatsapp-campaign"),onClick:M},{default:p(()=>[n[3]||(n[3]=c("span",null,"+",-1)),c("span",null,y(_.$t("Create campaign")),1)]),_:1},8,["disabled"])),[[I,{value:t(o)("create-whatsapp-campaign")?t($)("viewer_access_restricted"):""},void 0,{top:!0}]])]),_:1})]),d(x)],64)}}};let _e=null;async function ke(f,o,l,b="",g="",k=""){const $=ht(g);try{return _e={...(await Ke("/v1/campaigns/list_campaigns/","GET",{},{domain:f,project_id:o,page:l,name:b,status:$,order_by:k})).data.value,getStatus:function(){return this.status||null},getMessage:function(){return this.message||null},getCampaignCount:function(){var m;return((m=this.data)==null?void 0:m.count)||0},getNextPage:function(){var m;return((m=this.data)==null?void 0:m.next)||null},getPreviousPage:function(){var m;return((m=this.data)==null?void 0:m.previous)||null},getCampaigns:function(){var m;return((m=this.data)==null?void 0:m.results)||[]}},_e}catch(w){throw console.error("Error fetching campaign list:",w),w}}const gt={DRAFT:"draft","IN REVIEW":"in_review",APPROVED:"approved",SC
1HEDULED:"scheduled","IN PROGRESS":"in_progress",COMPLETE:"completed",FAILED:"failed"};function ht(f){return gt[f]||""}function vt(f,o){return f.getFullYear()===o.getFullYear()&&f.getMonth()===o.getMonth()&&f.getDate()===o.getDate()}function yt(){return{style:"long",numeric:"auto"}}function bt(f,o=new Date,l="ar",b){const g=l!=null&&l.includes("-u-nu-")?l:`${l}-u-nu-latn`,k=new Intl.RelativeTimeFormat(g,yt()),$=f.getTime()-o.getTime(),w=24*60*60*1e3,e=Math.round($/w);if(Math.abs(e)<30)return e===-2&&l!=null&&l.startsWith("ar")?b?b("time_days_ago_dual"):"منذ يومين":ie(k.format(e,"day"),l);const m=Math.round(e/30);if(Math.abs(m)<12)return ie(k.format(m,"month"),l);const T=Math.round(m/12);return ie(k.format(T,"year"),l)}function Ct(f){const o=f.getHours().toString().padStart(2,"0"),l=f.getMinutes().toString().padStart(2,"0");return`${o}:${l}`}function ie(f,o){return o!=null&&o.startsWith("ar")?f.replace(/^قبل\s+/,"منذ "):f}const wt={class:"card my-table"},St={class:"flex justify-between"},kt={class:"flex items-center gap-2"},xt={key:1},Dt={key:1,class:"flex flex-col w-fit gap-1"},Pt={key:2,class:"flex items-center w-fit gap-1"},Et={key:1,class:"flex items-center gap-2"},Lt={key:1,class:"flex items-center gap-2"},$t={key:1,class:"flex items-center gap-2"},Nt={key:1,class:"flex items-center gap-2"},It={key:1,class:"flex items-center gap-2"},Tt={key:1,class:"flex items-center gap-2"},At={key:1,class:"flex items-center gap-2"},Rt={__name:"CampaignListingPage",props:{checkCustomerList:{type:Boolean,required:!0},data:{type:Object},emptyCustomerList:{type:Function,required:!0}},setup(f){var pe;const{isDisabledForViewOnly:o}=Ce(),l=be(),b=v(l.id||null);let g=1;U(()=>l.id,s=>{s&&(l.setPhoneNumber(s),b.value=s)});const k=v(""),$=et(k,1e3),w=v(""),{t:e}=ee(),{statuses:m,CampaignStatus:T}=Se();v(["This is the first message."]);const M=v(),_=s=>({FAILED:e("campaign_status_failed"),DRAFT:e("campaign_status_draft"),"IN REVIEW":e("campaign_status_in_review"),"IN PROGRESS":e("campaign_status_in_progress"),SCHEDULED:e("campaign_status_scheduled"),COMPLETED:e("campaign_status_completed"),APPROVED:e("campaign_status_approved")})[s]||s,n=v(null),N=ue(),V=(pe=N.selectedWebsite)==null?void 0:pe.project_id,R=Z(()=>{var s;return(s=N.selectedWebsite)==null?void 0:s.website});v(0);const x=ve(),I=f,u=v(),F=v({global:{value:null,matchMode:fe.CONTAINS},status:{operator:Je.OR,constraints:[{value:null,matchMode:fe.CONTAINS}]}}),O=v(I.data.results),G=v(I.data.count),se=()=>{var r,C,S,Y,J,B,L,P,j,K;const s=ne=>`${e(ne)}`;if(((r=n.value)==null?void 0:r.status[0])==="FAILED")return[{label:s("delete"),command:()=>{W(n.value.id)}}];if(((C=n.value)==null?void 0:C.status[0])==="COMPLETED")return[{label:s("delete"),command:()=>{W(n.value.id)}}];if(((S=n.value)==null?void 0:S.status[0])==="DRAFT")return[{label:e("edit"),command:()=>H(`/whatsapp/campaigns/create-campaign-${n.value.id}?mode=edit`)},{label:s("delete"),command:()=>{W(n.value.id)}}];if(((Y=n.value)==null?void 0:Y.status[0])==="IN REVIEW"||((J=n.value)==null?void 0:J.status[0])==="APPROVED")return[{label:e("send"),command:()=>H(`/whatsapp/campaigns/send-${n.value.id}`)},{label:s("delete"),command:()=>{W(n.value.id)}}];if(((B=n.value)==null?void 0:B.status[0])==="SCHEDULED"||Array.isArray((L=n.value)==null?void 0:L.status)&&((P=n.value)!=null&&P.status.includes("SCHEDULED"))&&((j=n.value)!=null&&j.status.includes("APPROVED")))return[{label:s("delete"),command:()=>{W(n.value.id)}}];if(((K=n.value)==null?void 0:K.status[0])==="IN PROGRESS")return[{label:s("delete"),command:()=>{W(n.value.id)}}]},ae=(s,r)=>{n.value=r,M.value.toggle(s)},oe=async()=>{try{if(!R.value){console.error("Domain is undefined or null."),x.add({severity:"error",summary:e("domain_not_found"),life:3e3});return}(await Xe(R.value)).status===T.SUCCESS?x.add({severity:"success",summary:e("export_started"),life:3e3}):x.add({severity:"error",summary:e("file_export_failed"),life:3e3})}catch(s){console.error("Error during export:",s),x.add({severity:"error",summary:e("file_export_failed"),life:3e3})}},me=te(),xe=I.checkCustomerList?me({name:"whatsapp-campaigns-audience"}):me({name:"whatsapp-campaigns-build-audience"}),De=()=>
1{if(b.value===null){x.add({severity:"info",detail:e("select_phone_number"),life:3e3});return}if(!I.checkCustomerList){I.emptyCustomerList();return}H(xe)},Pe=s=>{const r=s.data.id,C=te();H({path:C("/whatsapp/campaigns/performance"),query:{id:r}})};U($,()=>z(1)),U(F,()=>z(1)),U(w,()=>z(1));const Ee=s=>{const r=s.page+1;g=r,z(r)},D=v(!1),z=async s=>{var r,C;D.value=!0;try{const S=await ke(R.value,V,s,$.value,F.value.status.constraints[0].value,w.value);S.status===T.SUCCESS&&(D.value=!1,O.value=(r=S==null?void 0:S.data)==null?void 0:r.results,G.value=(C=S==null?void 0:S.data)==null?void 0:C.count)}catch(S){console.error("Error fetching data:",S)}finally{D.value=!1}},Le=s=>{const r=new Date(s),C=new Date;return vt(r,C)?e("time_today_at",{time:Ct(r)}):bt(r,C,ee().locale.value)},$e=s=>{s.sortOrder?w.value=s.sortOrder===1?"name":"-name":w.value=""},W=async s=>{var r;try{((r=(await Qe(s)).value)==null?void 0:r.status)===T.SUCCESS&&(x.add({severity:"success",summary:e("campaign_deleted_successfully"),life:3e3}),await z(g))}catch(C){if(console.error("Error in deleteCampaign:",C),C.code==="campaign_deletion_timing_error"){x.add({severity:"error",summary:e("campaign_deletion_timing_error"),life:3e3});return}x.add({severity:"error",summary:e("campaign_deletion_failed"),life:3e3})}};return(s,r)=>{const C=ye,S=je,Y=Ge,J=Ue,B=he,L=ze,P=qe,j=we,K=He,ne=Be,Ne=We,de=ge;return i(),E(ce,null,[d(C),c("div",wt,[d(Ne,{ref_key:"dt",ref:u,scrollable:"",filters:F.value,"onUpdate:filters":r[2]||(r[2]=a=>F.value=a),value:O.value,paginator:"",rows:10,dataKey:"id",filterDisplay:"menu",globalFilterFields:["campaignName","lastupdated","sent","balance","status","delivered","read","replied","clicks","failedRecipients"],onRowClick:Pe,onPage:Ee,lazy:!0,totalRecords:G.value,removableSort:"",onSort:$e},{header:p(()=>[c("div",St,[d(J,null,{default:p(()=>[d(S,null,{default:p(()=>r[3]||(r[3]=[c("i",{class:"pi pi-search"},null,-1)])),_:1}),d(Y,{modelValue:k.value,"onUpdate:modelValue":r[0]||(r[0]=a=>k.value=a),placeholder:t(e)("search_campaign")},null,8,["modelValue","placeholder"])]),_:1}),c("div",kt,[le(d(B,{label:t(e)("export"),icon:"pi pi-upload",severity:"secondary",onClick:r[1]||(r[1]=a=>oe(a)),disabled:t(o)("export-campaign-analytics")},null,8,["label","disabled"]),[[de,{value:t(o)("export-campaign-analytics")?t(e)("viewer_access_restricted"):""},void 0,{top:!0}]]),le((i(),h(B,{onClick:De,class:"create-btn",disabled:t(o)("create-whatsapp-campaign")},{default:p(()=>[r[4]||(r[4]=c("span",null,"+",-1)),c("span",null,y(s.$t("Create campaign")),1)]),_:1},8,["disabled"])),[[de,{value:t(o)("create-whatsapp-campaign")?t(e)("viewer_access_restricted"):""},void 0,{top:!0}]])])])]),empty:p(()=>[Q(y(t(e)("no_campaigns_found")),1)]),default:p(()=>[d(P,{field:"campaignName",header:t(e)("campaign_name"),sortable:""},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("p",xt,y(a.title||"-"),1))]),_:1},8,["header"]),d(P,{header:t(e)("status"),field:"status",showFilterMatchModes:!1,showAddButton:!1,showFilterOperator:!1,style:{width:"10%"}},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):q("",!0),a.status[0]!=="FAILED"&&!D.value?(i(),E("div",Dt,[(i(!0),E(ce,null,Fe(a.status,(A,Ie)=>(i(),h(j,{key:Ie,value:_(A),severity:t(re)(A)},null,8,["value","severity"]))),128))])):D.value?q("",!0):(i(),E("div",Pt,[d(j,{value:_(a.status[0]),severity:t(re)("FAILED")},null,8,["value","severity"])]))]),filter:p(({filterModel:a})=>[d(K,{modelValue:a.value,"onUpdate:modelValue":A=>a.value=A,options:t(m),placeholder:t(e)("select_one"),showClear:""},{option:p(A=>[d(j,{value:_(A.option),severity:t(re)(A.option)},null,8,["value","severity"])]),_:2},1032,["modelValue","onUpdate:modelValue","options","placeholder"])]),_:1},8,["header"]),d(P,{field:"lastupdated",header:t(e)("last_updated")},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",Et,[c("span",null,y(Le(a.last_update)||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"sent",header:t(e)("sent")},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",Lt,[c("span",null,y(a.sent||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"delivered",header:t(e)("delivered")},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",$t,[c("span",null,y(a.delivered||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"read",header:t(e)("read")},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",Nt,[c("span",null,y(a.read||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"replied",header:`${t(e)("replied")}`},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",It,[c("span",null,y(a.replied||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"clicks",header:`${t(e)("clicks")}`},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",Tt,[c("span",null,y(a.click||"-"),1)]))]),_:1},8,["header"]),d(P,{field:"failedRecipients",header:`${t(e)("failed_recipients")}`},{body:p(({data:a})=>[D.value?(i(),h(L,{key:0})):(i(),E("div",At,[c("span",null,y(a.failed_recipients||"-"),1)]))]),_:1},8,["header"]),t(o)("campaign-listing-actions-menu")?q("",!0):(i(),h(P,{key:0,headerStyle:"width: 5rem; text-align: center",bodyStyle:"text-align: center; overflow: visible"},{body:p(({data:a})=>[!a.status.includes("COMPLETED")&&!a.status.includes("IN PROGRESS")?(i(),h(B,{key:0,unstyled:"",type:"button",icon:"pi pi-ellipsis-v",onClick:A=>ae(A,a),"aria-haspopup":"true","aria-controls":"overlay_menu",class:"!font-bold"},null,8,["onClick"])):q("",!0),d(ne,{ref_key:"menu",ref:M,id:"overlay_menu",model:se(a),popup:!0},null,8,["model"])]),_:1}))]),_:1},8,["filters","value","totalRecords"])])],64)}}},Ft=Ze(Rt,[["__scopeId","data-v-04549c0c"]]),Mt={class:"flex items-center"},ta={__name:"index",async setup(f){let o,l;const b=Me(),{t:g}=ee(),k=te();at().setBreadcrumb([{label:g("WhatsApp"),route:k("/whatsapp")},{label:g("Campaigns"),route:k("/whatsapp/campaigns")}]);const{setTitle:w}=nt();w("WhatsApp Campaigns");let e=v(!1),m=v(!1);const{CampaignStatus:T}=Se(),M=ue(),_=Z(()=>{var u;return(u=M.selectedWebsite)==null?void 0:u.website}),n=Z(()=>{var u;return(u=M.selectedWebsite)==null?void 0:u.project_id}),N=v(!1);U([_],async(u,F)=>{u!==F&&(await x(),await R())});const V=v({}),R=async()=>{const u=rt(),O=await(await fetch("/api/whatsapp/getPhoneNumbers",{method:"POST",body:JSON.stringify({project_id:n.value,domain:_.value}),headers:{"Content-Type":"application/json"}})).json();O.success?(u.setCredentials({fetchPhoneNumbersTime:new Date().toString()}),u.setPhoneNumbers(O.data.phoneNumbersArray)):(u.setPhoneNumbers([]),console.error("Invalid response structure:",data))},x=async()=>{try{N.value=!0;const u=await ke(_.value,n.value,1);u.status===T.SUCCESS&&(V.value=u==null?void 0:u.data,m.value=u.data.count>0)}catch(u){console.error("Error fetching campaigns:",u)}finally{N.value=!1}try{const u=await it(_.value);
1e.value=u.hasCustomers()}catch(u){console.error("Error checking customer list:",u)}},I=()=>{b.require({message:g("before_starting_a_campaign_you_will_need_to_upload_a_contact_list"),header:g("no_contacts_available"),rejectProps:{label:g("i_will_do_this_later"),variant:"link"},acceptProps:{label:g("upload_contacts"),class:"!bg-lime-green"},accept:()=>{H("/whatsapp/import-contacts")}})};return Oe(async()=>{await x(),await R()}),[o,l]=st(()=>x()),await o,l(),(u,F)=>{const O=we,G=tt,se=Te,ae=_t,oe=Ft;return i(),h(ot,null,Ve({default:p(()=>[t(N)?(i(),h(se,{key:0})):q("",!0),!t(m)&&!t(N)?(i(),h(ae,{key:1,checkCustomerList:t(e),emptyCustomerList:I},null,8,["checkCustomerList"])):t(m)&&!t(N)?(i(),h(oe,{key:2,checkCustomerList:t(e),emptyCustomerList:I,data:t(V)},null,8,["checkCustomerList","data"])):q("",!0)]),_:2},[t(m)&&!t(N)?{name:"select-before",fn:p(()=>[d(G,{class:"!flex !outline-none !bg-transparent !shadow-none"},{default:p(()=>[c("div",Mt,[d(O,{icon:"pi pi-info-circle",value:t(g)("daily_message_sent"),class:"!bg-inherit !text-black !text-lg !gap-3 !items-center tag-info-list-header"},null,8,["value"]),c("p",null,y(t(g)("tbd")),1)])]),_:1})]),key:"0"}:void 0]),1024)}}};export{ta 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.