2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{_ as ge,v as se,t as le,a as ye}from"./AudienceSegmentPicker.vue_vue_type_script_setup_true_lang-19680dbf.js";import{_ as me}from"./BasicModal.vue_vue_type_style_index_0_lang-7803828f.js";import{u as ee,_ as pe}from"./useBaseTable-e4bbf0da.js";import{_ as he}from"./button.vue_vue_type_style_index_0_lang-99dfcd06.js";import{g as be}from"./member-b717b407.js";import{L as j,d as ae,g as u,h as ve,E as xe,o as I,c as R,a as n,b as s,j as L,w as r,e as p,t as v,k as O,F as fe,n as we,H as te,D as _,v as ke,M as Ie}from"./index-bc4edd51.js";import{t as H}from"./useDataTime-5442c624.js";import{M as ie}from"./index-609e9a96.js";import{C as oe}from"./index-4e41e7b6.js";import{I as re,_ as Re}from"./index-49e2e544.js";import{I as $e}from"./Icon-c9ad16b9.js";import{S as Ce}from"./index-d4870df7.js";import{B as Se}from"./index-9df7eaa1.js";import{S as Te,a as Pe}from"./index-727535d5.js";import{D as Ae,_ as Le}from"./index-d79a436e.js";import{T as De}from"./isSymbol-f9834f4f.js";import{_ as Ue,T as Be}from"./index-627337a8.js";import"./dayjs-26457b5b.js";import"./updateLocale-7b0be7e3.js";import"./shallowequal-cad00b6e.js";import"./_plugin-vue_export-helper-c8347567.js";import"./vnode-f2307909.js";import"./useState-47ff4833.js";import"./useMemo-8275a234.js";import"./FormItemContext-4e017a44.js";import"./omit-6f60253b.js";import"./index-bc659f42.js";import"./lodash-3efc1909.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-9775c8a5.js";import"./index-5ea3cefd.js";import"./Badge-627fd6d3.js";import"./isNumeric-3f69e2aa.js";import"./index-34768277.js";import"./index-1d49b36b.js";import"./index-ae018072.js";import"./index-3aafac3f.js";import"./DialogWrap-f12e49af.js";import"./pickAttrs-1c46cfba.js";import"./styleChecker-bc667521.js";import"./index-393b875d.js";import"./index-47b6ba8f.js";import"./css-aae66f86.js";import"./SearchOutlined-4504ec77.js";import"./toArray-b01cb1f9.js";import"./isPlainObject-ed8996b4.js";import"./isMobile-e2e89480.js";import"./useRefs-225197bd.js";import"./_flatRest-9adb1e9a.js";const ce=async a=>(await j.post("/admin/sms/preview",a)).data,Me=async a=>(await j.post("/admin/sms/test",a)).data,de=async a=>(await j.post("/admin/sms/campaigns/start",a)).data,Ne=async a=>{var m;const c=await j.get("/admin/sms/campaigns",{params:{page:a.page,limit:a.limit,search:a.search}}),x=a.page||1,$=a.limit||20,P=(x-1)*$;return{rows:(c.data||[]).map((f,w)=>({...f,index:P+w})),total:c.total??((m=c.data)==null?void 0:m.length)??0,query:{...a,total:c.total??0,page:x,limit:$}}},ue=async(a,c)=>(await j.get(`/admin/sms/campaigns/${a}`,{params:c})).data,Oe=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,customRender:a=>a.index+1},{title:"نام",dataIndex:"first_name",key:"first_name",filterable:!0},{title:"نام خانوادگی",dataIndex:"last_name",key:"last_name",filterable:!0},{title:"شماره همراه",dataIndex:"phone",key:"phone",filterable:!0},{title:"زمان ثبتنام",dataIndex:"created_at",key:"created_at",type:"Date",filterable:!0,customRender:a=>a.record.created_at?H(a.record.created_at):"-"}],Ve={class:"grid grid-cols-1 xl:grid-cols-3 gap-4 mb-4"},Ke={class:"xl:col-span-2 space-y-4"},Ee=n("div",{class:"mb-1 text-sm text-gray-600"},"متن پیامک *",-1),qe={class:"flex flex-wrap gap-4 items-center"},Fe={class:"flex flex-wrap gap-2"},je={class:"bg-gray-50 rounded-lg p-4 border border-gray-200 space-y-2 text-sm"},ze=n("div",{class:"font-semibold text-gray-700 mb-2"},"خلاصه ارسال",-1),He={key:0},Je={key:0,class:"text-amber-600 mt-1"},Xe={key:1,class:"text-gray-500"},Ge={key:2,class:"pt-2 border-t border-gray-200"},Qe=n("div",{class:"font-medium mb-1"},"نمونه گیرندگان:",-1),We={class:"space-y-1 text-xs text-gray-600"},Ye={key:3,class:"pt-2 border-t border-gray-200"},Ze=n("div",{class:"font-medium mb-1"},"آخرین کمپین:",-1),et={class:"text-blue-600 mt-1"},tt={class:"border-t border-gray-200 pt-4"},at=n("div",{class:"mb-2 text-sm text-gray-600"}," کاربران را فیلتر کنید و گیرندگان مورد نظر را انتخاب کنید. فقط کاربرانی که شماره موبایل دارند نمایش داده میشوند. ",-1),nt={class:"space-y-3"},st=n("div",{class:"mb-1 text-sm text-gray-600"},"شماره موبایل",-1),lt=n("div",{class:"text-xs text-gray-500"}," متن پیامک از باکس اصلی استفاده میشود. ",-1),it=ae({__name:"SendPanel",emits:["campaign-started"],setup(a,{emit:c}){const{TextArea:x}=re,[$,P]=ee(),m=u(""),f=u(!0),w=u(!0),l=u(null),C=u(!1),k=u(!1),h=u(null),A=u(!1),S=u(""),V=u(!1),b=u([]),D=u({}),U=u({segments:[],inactiveDays:7,subscriberInactiveDays:3}),K=u(!1),E=u(""),J=ve(()=>({selectedRowKeys:b.value,onChange:t=>{b.value=t.map(String)},preserveSelectedRowKeys:!0})),X=u({columns:Oe,api:async t=>{const e={...t,filters:[...t.filters||[],{field:"phone",op:"nn",value:!0,cr:"and",type:"switch",hidden:!0}]};return f.value&&e.filters.push({field:"first_name",op:"nn",value:!0,cr:"and",type:"switch",hidden:!0},{field:"last_name",op:"nn",value:!0,cr:"and",type:"switch",hidden:!0}),!e.sort&&!e.order&&(e.order="-created_at"),D.value=e,be(e)},defaultPageLimit:20,height:"45vh"});xe(f,()=>{l.value=null,P()});function q(t){var e;return{message:m.value.trim(),appendAppName:w.value,registrationComplete:f.value,search:D.value.search||void 0,filters:(e=D.value.filters)==null?void 0:e.filter(i=>!i.hidden),sort:D.value.sort||void 0,order:D.value.order||void 0,mode:t,userIds:t==="selected"?b.value:void 0}}async function G(){var t,e;if(!m.value.trim()){_.warning("ابتدا متن پیامک را وارد کنید");return}C.value=!0;try{l.value=await ce(q("filtered"))}catch(i){_.error(((e=(t=i==null?void 0:i.response)==null?void 0:t.data)==null?void 0:e.error)||"خطا در پیشنمایش")}finally{C.value=!1}}async function Q(){var t,e;if(!m.value.trim()){_.warning("متن پیامک الزامی است");return}if(!S.value.trim()){_.warning("شماره موبایل الزامی است");return}V.value=!0;try{await Me({...q("filtered"),phone:S.value.trim()}),_.success("پیامک تستی ارسال شد"),A.value=!1}catch(i){_.error(((e=(t=i==null?void 0:i.response)==null?void 0:t.data)==null?void 0:e.error)||"ارسال تستی ناموفق بود")}finally{V.value=!1}}async function F(t){if(!m.value.trim()){_.warning("متن پیامک الزامی است");return}if(t==="selected"&&!b.value.length){_.warning("حداقل یک کاربر انتخاب کنید");return}const e=t==="selected"?`آیا از ارسال پیامک به ${b.value.length} کاربر انتخابشده مطمئن هستید؟`:"آیا از ارسال پیامک به همه کاربران فیلترشده مطمئن هستید؟";return new Promise(i=>{ie.confirm({title:"تأیید ارسال پیامک",content:e,okText:"بله، ارسال کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{var g,y;k.value=!0,h.value=null;try{const o=await de(q(t));h.value=o,c("campaign-started",o.campaignId),_.success(`کمپین #${o.campaignId} با ${o.totalRecipients} گیرنده در پسزمینه ارسال میشود`)}catch(o){_.error(((y=(g=o==null?void 0:o.response)==null?void 0:g.data)==null?void 0:y.error)||"شروع کمپین ناموفق بود")}finally{k.value=!1,i()}},onCancel:()=>i()})})}function z(){return F("selected")}function W(){return F("filtered")}async function Y(){var i,g;if(!m.value.trim()){_.warning("ابتدا متن پیامک را وارد کنید");return}const t={...U.value,includeUserIds:b.value},e=se(t);if(e){_.warning(e);return}K.value=!0,E.value="";try{const y=le(t),o=await ce({message:m.value.trim(),appendAppName:w.value,registrationComplete:f.value,mode:"segment",...y}),T=recipients.length>MAX_SMS_RECIPIENTS;l.value=o;const d=b.value.length>0?` (+ ${b.value.length.toLocaleString("fa-IR")} کاربر از جدول)`:"";E.value=o.cappedAt?`گیرندگان این دستهها: ${o.totalRecipients.toLocaleString("fa-IR")} شماره${d} — در ارسال حداکثر ${o.cappedAt.toLocaleString("fa-IR")} نفر`:`گیرندگان این دستهها: ${o.totalRecipients.toLocaleString("fa-IR")} شماره${d}`}catch(y){_.error(((g=(i=y==null?void 0:y.response)==null?void 0:i.data)==null?void 0:g.error)||"خطا در پیشنمایش")}finally{K.value=!1}}async function Z(){if(!m.value.trim()){_.warning("متن پیامک الزامی است");return}const t={...U.value,includeUserIds:b.value},e=se(t);if(e){_.warning(e);return}const i=U.value.segments.length,g=b.value.length,y=g>0?`ارسال به ${i} دسته (OR) بهعلاوه ${g} کاربر انتخابشده؟`:`ارسال به ${i} دسته مخاطب (اتحاد / OR)؟`;return new Promise(o=>{ie.confirm({title:"تأیید ارسال پیامک",content:y,okText:"بله، ارسال کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{var T,d;k.value=!0,h.value=null;try{const B=le(t),N=await de({message:m.value.trim(),appendAppName:w.value,registrationComplete:f.value,mode:"segment",...B});h.value=N,c("campaign-started",N.campaignId),_.success(`کمپین #${N.campaignId} با ${N.totalRecipients} گیرنده در پسزمینه ارسال میشود`)}catch(B){_.error(((d=(T=B==null?void 0:B.response)==null?void 0:T.data)==null?void 0:d.error)||"شروع کمپین ناموفق بود")}finally{k.value=!1,o()}},onCancel:()=>o()})})}return(t,e)=>{var o,T;const i=he,g=pe,y=me;return I(),R("div",null,[n("div",Ve,[n("div",Ke,[n("div",null,[Ee,s(L(x),{value:m.value,"onUpdate:value":e[0]||(e[0]=d=>m.value=d),placeholder:"متن پیامک را وارد کنید...",rows:6,maxlength:1e3,"show-count":""},null,8,["value"])]),n("div",qe,[s(L(oe),{checked:f.value,"onUpdate:checked":e[1]||(e[1]=d=>f.value=d)},{default:r(()=>[p(" فقط کاربران با ثبتنام کامل (نام و نام خانوادگی) ")]),_:1},8,["checked"]),s(L(oe),{checked:w.value,"onUpdate:checked":e[2]||(e[2]=d=>w.value=d)},{default:r(()=>[p(" افزودن نام اپلیکیشن به انتهای پیام ")]),_:1},8,["checked"])]),n("div",Fe,[s(i,{loading:C.value,onClick:G},{default:r(()=>[p(" پیشنمایش گیرندگان ")]),_:1},8,["loading"]),s(i,{onClick:e[3]||(e[3]=d=>A.value=!0)},{default:r(()=>[p(" ارسال تست ")]),_:1}),s(i,{type:"primary",loading:k.value,disabled:!m.value.trim(),onClick:z},{default:r(()=>[p(" ارسال به انتخابشدهها ("+v(b.value.length)+") ",1)]),_:1},8,["loading","disabled"]),s(i,{type:"primary",ghost:"",loading:k.value,disabled:!m.value.trim(),onClick:W},{default:r(()=>[p(" ارسال به همه فیلترشدهها ")]),_:1},8,["loading","disabled"])]),s(ge,{modelValue:U.value,"onUpdate:modelValue":e[4]||(e[4]=d=>U.value=d),"include-user-count":b.value.length,"preview-loading":K.value,sending:k.value,disabled:!m.value.trim(),"preview-text":E.value,onPreview:Y,onSend:Z},null,8,["modelValue","include-user-count","preview-loading","sending","disabled","preview-text"])]),n("div",je,[ze,l.value?(I(),R("div",He,[n("div",null,[p("تعداد گیرنده: "),n("strong",null,v(l.value.totalRecipients),1)]),n("div",null,[p("شماره یکتا: "),n("strong",null,v(l.value.uniquePhones),1)]),n("div",null,[p("پارت پیامک (هر نفر): "),n("strong",null,v(l.value.smsPartsPerRecipient),1)]),n("div",null,[p("تخمین کل پارت: "),n("strong",null,v(l.value.estimatedTotalParts),1)]),l.value.cappedAt?(I(),R("div",Je," حداکثر "+v(l.value.cappedAt)+" گیرنده در هر ارسال ",1)):O("",!0)])):(I(),R("div",Xe," برای مشاهده تعداد گیرندگان، پیشنمایش بگیرید. ")),(T=(o=l.value)==null?void 0:o.samples)!=null&&T.length?(I(),R("div",Ge,[Qe,n("ul",We,[(I(!0),R(fe,null,we(l.value.samples,d=>(I(),R("li",{key:d.id},v(d.first_name)+" "+v(d.last_name)+" — "+v(d.phone),1))),128))])])):O("",!0),h.value?(I(),R("div",Ye,[Ze,n("div",null,[p("کمپین: "),n("strong",null,"#"+v(h.value.campaignId),1)]),n("div",null,[p("گیرندگان: "),n("strong",null,v(h.value.totalRecipients),1)]),n("div",et,v(h.value.message),1)])):O("",!0)])]),n("div",tt,[at,s(g,te(X.value,{"row-selection":J.value,onRegister:L($)}),null,16,["row-selection","onRegister"])]),s(y,{visible:A.value,"onUpdate:visible":e[6]||(e[6]=d=>A.value=d),title:"ارسال پیامک تست",onOk:Q,onCancel:e[7]||(e[7]=d=>A.value=!1),"confirm-loading":V.value},{default:r(()=>[n("div",nt,[n("div",null,[st,s(L(re),{value:S.value,"onUpdate:value":e[5]||(e[5]=d=>S.value=d),placeholder:"مثال: 09123456789"},null,8,["value"])]),lt])]),_:1},8,["visible","confirm-loading"])])}}}),ot={pending:"در انتظار",sending:"در حال ارسال",completed:"تکمیل شده",failed:"ناموفق"},rt={selected:"انتخابشده",filtered:"فیلترشده",segment:"دسته مخاطب"},ct=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,customRender:a=>a.index+1},{title:"شناسه",dataIndex:"id",key:"id",filterable:!1},{title:"متن پیام",dataIndex:"message",key:"message",filterable:!1,customRender:a=>{const c=a.record.message||"";return c.length>60?`${c.slice(0,60)}...`:c}},{title:"گیرندگان",dataIndex:"total_recipients",key:"total_recipients",filterable:!1},{title:"پیشرفت",dataIndex:"sent_count",key:"progress",filterable:!1,customRender:a=>{const c=a.record;if(!c.total_recipients)return"-";const x=(c.sent_count||0)+(c.failed_count||0),$=Math.round(x/c.total_recipients*100);return`${x}/${c.total_recipients} (${$}%)`}},{title:"ناموفق",dataIndex:"failed_count",key:"failed_count",filterable:!1},{title:"نوع ارسال",dataIndex:"send_mode",key:"send_mode",filterable:!1,customRender:a=>rt[a.record.send_mode]||a.record.send_mode},{title:"وضعیت",dataIndex:"status",key:"status",filterable:!1,customRender:a=>ot[a.record.status]||a.record.status},{title:"تاریخ",dataIndex:"created_at",key:"created_at",filterable:!1,customRender:a=>a.record.created_at?H(a.record.created_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],dt={pending:"در انتظار",sent:"ارسال شده",failed:"ناموفق"},ut=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,customRender:a=>a.index+1},{title:"نام",dataIndex:"first_name",key:"first_name",filterable:!1},{title:"نام خانوادگی",dataIndex:"last_name",key:"last_name",filterable:!1},{title:"شماره",dataIndex:"phone",key:"phone",filterable:!1},{title:"وضعیت",dataIndex:"status",key:"status",filterable:!1,customRender:a=>dt[a.record.status]||a.record.status},{title:"زمان ارسال",dataIndex:"sent_at",key:"sent_at",filterable:!1,customRender:a=>a.record.sent_at?H(a.record.sent_at):"-"},{title:"خطا",dataIndex:"error_message",key:"error_message",filterable:!1,customRender:a=>a.record.error_message||"-"}],mt={key:0,class:"mb-3 text-sm text-blue-600 flex items-center gap-2"},pt=n("span",null,"یک یا چند کمپین در حال ارسال است — جدول هر ۵ ثانیه بهروز میشود.",-1),vt={class:"gap-2 flex justify-center"},ft=n("span",null,"جزئیات کمپین",-1),_t={class:"text-green-600"},gt={class:"text-red-600"},yt={key:0,class:"text-gray-500 mr-2"},ht={class:"whitespace-pre-wrap text-sm"},bt={class:"flex flex-wrap gap-2 items-center mb-3"},xt=n("span",{class:"text-sm text-gray-600"},"فیلتر وضعیت گیرندگان:",-1),wt=ae({__name:"CampaignsPanel",setup(a,{expose:c}){const[x,$]=ee(),[P,m]=ee(),f=u(!1),w=u(!1),l=u(null),C=u(null),k=u(),h=u(""),A=u(!1);let S=null;const V={pending:"در انتظار",sending:"در حال ارسال",completed:"تکمیل شده",failed:"ناموفق"},b={selected:"انتخابشده",filtered:"فیلترشده",segment:"دسته مخاطب"},D=u({columns:ct,api:K,defaultPageLimit:20,height:"55vh"}),U=ve(()=>{var e;if(!((e=l.value)!=null&&e.campaign))return 0;const t=l.value.campaign;return Math.max(t.total_recipients-t.sent_count-t.failed_count,0)});async function K(t){const e=await Ne(t);return A.value=e.rows.some(i=>i.status==="sending"),e}const E=u({columns:ut,api:q,defaultPageLimit:20,height:"40vh",showOptionHeader:!1});function J(t){return V[t]||t}function ne(t){return b[t]||t}function X(t){return t?H(t):"-"}async function q(t){if(!C.value)return{rows:[],total:0,query:{...t,total:0}};const e=await ue(C.value,{page:t.page,limit:t.limit,status:k.value,search:h.value||t.search||void 0});l.value=e;const i=t.page||1,g=t.limit||20,y=(i-1)*g;return{rows:e.recipients.rows.map((o,T)=>({...o,index:y+T})),total:e.recipients.total,query:{...t,total:e.recipients.total,page:i,limit:g}}}async function G(t){w.value=!0;try{C.value=t,l.value=await ue(t,{page:1,limit:20,status:k.value,search:h.value||void 0}),await m()}finally{w.value=!1}}function Q(t){k.value=void 0,h.value="",f.value=!0,G(t.id)}function F(){f.value=!1,l.value=null,C.value=null}function z(){m()}function W(){$()}function Y(){S||(S=setInterval(()=>{var t;$(),f.value&&C.value&&((t=l.value)==null?void 0:t.campaign.status)==="sending"&&m()},5e3))}function Z(){S&&(clearInterval(S),S=null)}return ke(()=>{Y()}),Ie(()=>{Z()}),c({reload:W}),(t,e)=>{const i=Ce,g=pe,y=Se,o=Ae,T=Le,d=Te,B=Pe,N=Re,_e=me;return I(),R("div",null,[A.value?(I(),R("div",mt,[s(i,{size:"small"}),pt])):O("",!0),s(g,te(D.value,{onRegister:L(x)}),{action:r(({record:M})=>[n("div",vt,[s(L(De),{class:"cursor-pointer"},{title:r(()=>[ft]),default:r(()=>[s($e,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:It=>Q(M)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),s(_e,{visible:f.value,"onUpdate:visible":e[2]||(e[2]=M=>f.value=M),title:"جزئیات کمپین پیامکی","custom-footer":"",width:"90%",onClose:F},{footer:r(()=>[s(y,{onClick:F},{default:r(()=>[p("بستن")]),_:1})]),default:r(()=>[s(i,{spinning:w.value},{default:r(()=>[l.value?(I(),R(fe,{key:0},[s(T,{bordered:"",column:2,size:"small",class:"mb-4"},{default:r(()=>[s(o,{label:"شناسه کمپین"},{default:r(()=>[p("#"+v(l.value.campaign.id),1)]),_:1}),s(o,{label:"وضعیت"},{default:r(()=>[p(v(J(l.value.campaign.status)),1)]),_:1}),s(o,{label:"تعداد گیرندگان"},{default:r(()=>[p(v(l.value.campaign.total_recipients),1)]),_:1}),s(o,{label:"موفق / ناموفق"},{default:r(()=>[n("span",_t,v(l.value.campaign.sent_count),1),p(" / "),n("span",gt,v(l.value.campaign.failed_count),1),l.value.campaign.status==="sending"?(I(),R("span",yt," ("+v(U.value)+" در انتظار) ",1)):O("",!0)]),_:1}),s(o,{label:"نوع ارسال"},{default:r(()=>[p(v(ne(l.value.campaign.send_mode)),1)]),_:1}),s(o,{label:"تاریخ ایجاد"},{default:r(()=>[p(v(X(l.value.campaign.created_at)),1)]),_:1}),s(o,{label:"ایجادکننده",span:2},{default:r(()=>[p(v(l.value.campaign.created_by_admin_name||"-"),1)]),_:1}),s(o,{label:"متن پیام",span:2},{default:r(()=>[n("div",ht,v(l.value.campaign.message),1)]),_:1})]),_:1}),n("div",bt,[xt,s(B,{value:k.value,"onUpdate:value":e[0]||(e[0]=M=>k.value=M),"allow-clear":"",placeholder:"همه",style:{width:"160px"},onChange:z},{default:r(()=>[s(d,{value:"sent"},{default:r(()=>[p("ارسال شده")]),_:1}),s(d,{value:"failed"},{default:r(()=>[p("ناموفق")]),_:1}),s(d,{value:"pending"},{default:r(()=>[p("در انتظار")]),_:1})]),_:1},8,["value"]),s(N,{value:h.value,"onUpdate:value":e[1]||(e[1]=M=>h.value=M),placeholder:"جستجو نام یا شماره",style:{width:"220px"},onSearch:z},null,8,["value"])]),s(g,te(E.value,{onRegister:L(P)}),null,16,["onRegister"])],64)):O("",!0)]),_:1},8,["spinning"])]),_:1},8,["visible"])])}}}),kt=n("div",{class:"flex justify-between items-center mb-4"},[n("h2",null,"پنل پیامکی")],-1),ha=ae({__name:"index",setup(a){const c=u("send"),x=u(null);function $(){var P;c.value="campaigns",(P=x.value)==null||P.reload()}return(P,m)=>{const f=Ue,w=Be,l=ye;return I(),R("div",null,[s(l,null,{default:r(()=>[kt,s(w,{activeKey:c.value,"onUpdate:activeKey":m[0]||(m[0]=C=>c.value=C)},{default:r(()=>[s(f,{key:"send",tab:"ارسال پیامک"},{default:r(()=>[s(it,{onCampaignStarted:$})]),_:1}),s(f,{key:"campaigns",tab:"کمپینهای ارسالی"},{default:r(()=>[s(wt,{ref_key:"campaignsPanelRef",ref:x},null,512)]),_:1})]),_:1},8,["activeKey"])]),_:1})])}}});export{ha as default};
|