1import{r as n,H as ye,ac as nt,bW as wt,bX as ot,bY as Ft,bZ as Dt,j as e,t as u,aQ as Mt,T as rt,f as Se,bk as Rt,bj as Ut,_ as zt,K as it,N as ve,u as lt,ad as Bt,G as Pt,O as Vt,o as be,I as Ce,b_ as Wt,ah as $t,P as Q,aj as Xt,ak as Gt,a8 as qt,b7 as Yt,ai as Ht,e as ae,a9 as Kt,b2 as Je,n as Jt}from"./index-DbbrNrzR.js";import{E as Qt}from"./Edit-Doptkebm.js";import{E as Zt}from"./EditOutlined-WU_WiAvf.js";import{b as ea,a as ta,g as aa,C as sa,U as na}from"./useEmailVerificationGate-BFwXKT8w.js";import{D as oa}from"./DeleteOutline-B7nP7CfN.js";import{c as P}from"./contactsService-jfhGR5dQ.js";import{M as ra}from"./MissionAssignmentService-CuxsXwZd.js";import{t as Z,a as ia,u as la,f as ca,g as da,E as ua,U as Qe}from"./UploadReviewDialog-DOApDr1y.js";import{u as ma,S as fa}from"./SourceDirectionToggle-DbY93sRq.js";import{s as ga}from"./EmailVerificationIcon-B8mZjUYU.js";import{L as pa}from"./LoadingOverlay-Dlg61CWB.js";import{E as ha}from"./EmptyStateOverlay-DGNK4tRq.js";import{C as Ze}from"./Checkbox-BIlO3Pjz.js";import"./usePaymentMethods-BxpfedOi.js";import"./paymentMethod-CpXBbaf6.js";import"./ProcessingFeeConfigurationService-B6lZjE04.js";import"./useFunctionalityConfigValue-C3OE14m3.js";import"./FunctionalityConfigurationService-CfUzA_8l.js";import"./EmailVerificationConfigurationService-D5m5TFYt.js";import"./formValidation-Dy1AWG5q.js";import"./libphonenumber-BoA-XnCi.js";import"./GoalPossibleOutcomeMappingService-DzJtReIX.js";import"./Divider-C0XpeCEw.js";import"./Check--ERI6MBo.js";import"./Error-DifYznKf.js";import"./AllInclusive-DpT24mAk.js";import"./Cancel-CgnyJ-S9.js";function ba(){try{const h=localStorage.getItem("viewing_as_customer_id"),l=localStorage.getItem("viewing_as_customer_data"),C=localStorage.getItem("customer_data");if(h&&l){const a=JSON.parse(l);return{id:(a==null?void 0:a.id)??h,userType:a==null?void 0:a.userType}}if(C){const a=JSON.parse(C);return{id:a==null?void 0:a.id,userType:a==null?void 0:a.userType}}return null}catch{return null}}async function Ca(h,l){if(h.length===0)return h;try{const o=((await ot.getInstance().fetchAll({configurationType:Ft,active:!0,pageOffset:0,pageLimit:-1})).data??[]).filter(x=>x.value===Dt);if(o.length===0)return h;const c=o.filter(x=>x.agentId&&(!x.customerId||x.customerId===l));if(c.length>0){const x=new Set(c.map(d=>d.agentId));return h.filter(d=>x.has(d.id))}return h.filter(x=>visibleAgentIds.has(x.id))}catch(C){return console.error("[MyTargets] Failed to load visibility configuration",C),h}}function xa(){const[h,l]=n.useState([]),[C,a]=n.useState(!0),[L,o]=n.useState(null),c=n.useCallback(async()=>{var x;a(!0),o(null);try{const d=ba(),S=ye()||(d==null?void 0:d.id),E=d==null?void 0:d.userType,F={sortBy:"created_at",pageOffset:0,pageLimit:100,active:!0,hasContacts:!0};if(S){const g=nt.getInstance(),b=await g.getAll({assignedCustomerId:S,active:!0,pageOffset:0,pageLimit:-1}),v=[...new Set([S,...((b==null?void 0:b.data)??[]).map(T=>T.rootCustomerId)].filter(Boolean))];F.customerId=v.join(",");const y=await g.getAll({rootCustomerId:S,active:!0,pageOffset:0,pageLimit:-1}),D=[S];if((x=y==null?void 0:y.data)!=null&&x.length&&y.data.filter(T=>T.customerType==="MISSION_USER").forEach(T=>{T.assignedCustomerId&&!D.includes(T.assignedCustomerId)&&D.push(T.assignedCustomerId)}),F.contactOwnerIds=D.join(","),E==="MISSION_USER"){const T=b.data.map(U=>U.id);if(T.length>0){const V=(await ra.getInstance().getAll({customerHierarchyId:T.join(","),active:!0,pageOffset:0,pageLimit:-1})).map(q=>q.missionId).filter((q,Y,ne)=>ne.indexOf(q)===Y);V.length>0&&(F.missionId=V.join(","))}}}const O=await wt.fetchAgents(F),m=await Ca(O.data??[],S);l(m)}catch(d){o(d instanceof Error?d.message:"Failed to load agents"),l([])}finally{a(!1)}},[]);return n.useEffect(()=>{c()},[c]),{agents:h,loading:C,error:L,refetch:c}}function Sa(){try{const h=localStorage.getItem("viewing_as_customer_data"),l=localStorage.getItem("viewing_as_customer_id");if(l&&h){const a=JSON.parse(h);return{id:(a==null?void 0:a.id)??l,userType:a==null?void 0:a.userType,superUser:a==null?void 0:a.superUser,firstName:a==null?void 0:a.firstName,lastName:a==null?void 0:a.lastName}}const C=localStorage.getItem("customer_data");if(C){const a=JSON.parse(C);return{id:a==null?void 0:a.id,userType:a==null?void 0:a.userType,superUser:a==null?void 0:a.superUser,firstName:a==null?void 0:a.firstName,lastName:a==null?void 0:a.lastName}}return null}catch{return null}}function va(){const[h,l]=n.useState(void 0),[C,a]=n.useState([]),[L,o]=n.useState(!1);return n.useEffect(()=>{let c=!1;async function x(){var g;const d=Sa(),S=ye()||(d==null?void 0:d.id);if(!d||!S){c||(l(void 0),a([]),o(!0));return}const E=[],F=new Set,O=(b,v)=>{b&&!F.has(b)&&(F.add(b),E.push({label:v,value:b}))},m=[d==null?void 0:d.firstName,d==null?void 0:d.lastName].filter(
1Boolean).join(" ").trim()||"Me";try{const b=nt.getInstance();O(S,m);const v=await b.getAll({rootCustomerId:S,hierarchyType:"USER_MANAGEMENT",active:!0,pageOffset:0,pageLimit:-1});if(c)return;(g=v==null?void 0:v.data)!=null&&g.length&&v.data.filter(y=>y.customerType==="MISSION_USER").forEach(y=>{const D=[y.assignedCustomerFirstName,y.assignedCustomerLastName].filter(Boolean).join(" ").trim();y.assignedCustomerId&&O(y.assignedCustomerId,D||y.assignedCustomerId)}),l(E.map(y=>y.value).join(","))}catch{l(S)}c||(a(E),o(!0))}return x(),()=>{c=!0}},[]),{customerId:h,ownerOptions:C,ready:L}}const xe=({contactId:h,fieldName:l,currentValue:C,options:a,freeSolo:L=!1,agentId:o,onSaved:c})=>{const[x,d]=n.useState(!1),[S,E]=n.useState(C),F=async m=>{if(m===C)return;const g=a.find(v=>v.label===m),b=(g==null?void 0:g.id)??null;d(!0);try{await P.patchContact(h,{[l]:b,agentId:o||""}),c()}catch(v){console.error(`Failed to update ${l}:`,v)}finally{d(!1)}},O=async m=>{const g=m.trim();if(!(!g||g===C)){d(!0);try{let b=null;const v=a.find(y=>y.label===g);v?b=v.id:o&&(b=(await Z.create({tagName:g})).id),await P.patchContact(h,{[l]:b,agentId:o||""}),c()}catch(b){console.error(`Failed to update ${l}:`,b)}finally{d(!1)}}};return L?e.jsx(u,{sx:{display:"flex",alignItems:"center",gap:.5,minWidth:140},onClick:m=>m.stopPropagation(),children:e.jsx(Mt,{freeSolo:!0,options:a.map(m=>m.label),value:S,inputValue:S,onInputChange:(m,g)=>E(g),onChange:(m,g)=>{const b=g??"";E(b),b&&a.some(v=>v.label===b)&&O(b)},disabled:x,size:"small",sx:{minWidth:130,flex:1},renderInput:m=>e.jsx(rt,{...m,size:"small",onKeyDown:g=>{g.key==="Enter"&&S.trim()&&(g.preventDefault(),O(S.trim()))},InputProps:{...m.InputProps,endAdornment:e.jsxs(e.Fragment,{children:[x&&e.jsx(Se,{size:12,sx:{mr:.5}}),S.trim()&&!a.some(g=>g.label===S.trim())&&!x&&e.jsx(Rt,{label:"Create",size:"small",icon:e.jsx(Ut,{style:{fontSize:12}}),onClick:g=>{g.stopPropagation(),O(S.trim())},color:"primary",variant:"outlined",sx:{fontSize:"10px",height:20,cursor:"pointer",mr:.5}}),m.InputProps.endAdornment]})}})})}):e.jsxs(u,{sx:{display:"flex",alignItems:"center",gap:.5},onClick:m=>m.stopPropagation(),children:[e.jsx(zt,{size:"small",sx:{minWidth:130},disabled:x,children:e.jsxs(it,{value:C,onChange:m=>F(m.target.value),displayEmpty:!0,renderValue:m=>m?e.jsx("span",{children:m}):e.jsx("span",{style:{color:"var(--text-gray)",fontStyle:"italic"},children:"Select"}),sx:{"& .MuiSelect-select":{py:.5}},children:[e.jsx(ve,{value:"",children:e.jsx("em",{children:"None"})}),a.map(m=>e.jsx(ve,{value:m.label,children:m.label},m.id))]})}),x&&e.jsx(Se,{size:14})]})},ya="_emptyStateWrap_1ajf2_80",Ia="_skelClipper_1ajf2_84",Ta="_skelScaffold_1ajf2_89",ka="_skelAgentTabs_1ajf2_97",ja="_skelAgentTab_1ajf2_97",_a="_skelDotSm_1ajf2_123",Ea="_skelLineXs_1ajf2_132",Oa="_skelAgentTabActive_1ajf2_141",Aa="_skelOuterCard_1ajf2_148",Na="_skelCardToolbar_1ajf2_168",La="_skelSearchField_1ajf2_181",wa="_skelUploadBtn_1ajf2_196",Fa="_skelTable_1ajf2_211",Da="_skelTableHead_1ajf2_219",Ma="_skelLineSm_1ajf2_244",Ra="_skelCheckbox_1ajf2_252",Ua="_skelTableRow_1ajf2_260",I={emptyStateWrap:ya,skelClipper:Ia,skelScaffold:Ta,skelAgentTabs:ka,skelAgentTab:ja,skelDotSm:_a,skelLineXs:Ea,skelAgentTabActive:Oa,skelOuterCard:Aa,skelCardToolbar:Na,skelSearchField:La,skelUploadBtn:wa,skelTable:Fa,skelTableHead:Da,skelLineSm:Ma,skelCheckbox:Ra,skelTableRow:Ua},za=()=>{const h=lt();return e.jsxs(u,{className:I.emptyStateWrap,children:[e.jsx(u,{className:I.skelClipper,children:e.jsxs(u,{className:I.skelScaffold,"aria-hidden":"true",children:[e.jsx(u,{className:I.skelAgentTabs,children:[0,1,2,3].map(l=>e.jsxs(u,{className:`${I.skelAgentTab} ${l===1?I.skelAgentTabActive:""}`,children:[e.jsx(u,{className:I.skelDotSm}),e.jsx(u,{className:I.skelLineXs})]},l))}),e.jsxs(u,{className:I.skelOuterCard,children:[e.jsxs(u,{className:I.skelCardToolbar,children:[e.jsx(u,{className:I.skelSearchField}),e.jsx(u,{className:I.skelUploadBtn})]}),e.jsxs(u,{className:I.skelTable,children:[e.jsxs(u,{className:I.skelTableHead,children:[e.jsx(u,{className:I.skelCheckbox}),[0,1,2,3,4,5,6,7].map(l=>e.jsx(u,{className:I.skelLineSm},l))]}),Array.from({length:15},(l,C)=>e.jsxs(u,{className:I.skelTableRow,children:[e.jsx(u,{className:I.skelCheckbox}),[0,1,2,3,4,5,6,7].map(a=>e.jsx(u,{className:I.skelLineSm},a))]},C))]})]})]})}
1),e.jsx(ha,{title:"Build your target list",subtitle:"Create a mission to start building your list â manage status, tags, and lifecycle in one place.",buttonText:"Create mission",onClick:()=>h("/customer/missions/choose-agent")})]})},Ba="_container_vn87v_72",Pa="_agentTabsRow_vn87v_79",Va="_agentTabsContainer_vn87v_87",Wa="_agentTabsArrow_vn87v_105",$a="_agentTab_vn87v_79",Xa="_agentTabActive_vn87v_145",Ga="_agentTabDot_vn87v_155",qa="_agentTabText_vn87v_163",Ya="_targetsCard_vn87v_179",Ha="_cardToolbar_vn87v_203",Ka="_tableWrapper_vn87v_217",Ja="_loadingContainer_vn87v_234",N={container:Ba,agentTabsRow:Pa,agentTabsContainer:Va,agentTabsArrow:Wa,agentTab:$a,agentTabActive:Xa,agentTabDot:Ga,agentTabText:qa,targetsCard:Ya,cardToolbar:Ha,tableWrapper:Ka,loadingContainer:Ja},et=ot.getInstance(),Qa=new Set(["actions","emailStatus","callStatus","smsStatus","finalStatus","missionTitle"]),tt={lifeCycleStage:"Life Cycle Stage",leadStatus:"Lead Status",tag:"Tag"},Za=(h,l,C,a,L)=>[{id:"missionTitle",label:"Last Mission",field:"missionTitle",sortable:!1,render:o=>(o==null?void 0:o.missionTitle)??"â"},{id:"lastMissionFinalStatus",label:"Last Mission Final Status",field:"finalStatus",sortable:!1,render:o=>(o==null?void 0:o.finalStatus)??"â"},{id:"lifeCycleStage",label:"Life Cycle Stage",field:"lifeCycleStage",sortable:!1,filterable:!0,filterOptions:h.map(o=>o.label),render:o=>{var c;return e.jsx(xe,{contactId:o==null?void 0:o.id,fieldName:"lifeCycleStageId",currentValue:(o==null?void 0:o.lifeCycleStageName)??((c=o==null?void 0:o.agentFields)==null?void 0:c["Life Cycle Stage"])??"",options:h,onSaved:L})}},{id:"leadStatus",label:"Lead Status",field:"leadStatus",sortable:!1,filterable:!0,filterOptions:l.map(o=>o.label),render:o=>{var c;return e.jsx(xe,{contactId:o==null?void 0:o.id,fieldName:"leadStatusId",currentValue:(o==null?void 0:o.leadStatusName)??((c=o==null?void 0:o.agentFields)==null?void 0:c["Lead Status"])??"",options:l,onSaved:L})}},{id:"tag",label:"Tag",field:"tag",sortable:!1,filterable:!0,filterOptions:C.map(o=>o.label),render:o=>{var c;return e.jsx(xe,{contactId:o==null?void 0:o.id,fieldName:"tagId",currentValue:(o==null?void 0:o.tagName)??((c=o==null?void 0:o.agentFields)==null?void 0:c.Tag)??"",options:C,freeSolo:!0,agentId:a,onSaved:L})}}],at={width:28,height:28,color:"var(--text-gray)",borderRadius:"50%",padding:0,"&:hover":{backgroundColor:"rgba(var(--navy-blue-rgb), 0.06)",color:"var(--navy-blue)"},"&.Mui-disabled":{color:"var(--gray)"}};class st extends Error{}const _s=()=>{var Ke;const h=lt(),l=n.useRef(null),C=n.useRef(null),{agents:a,loading:L,error:o}=xa(),[c,x]=n.useState(0),[d,S]=n.useState(!1),[E,F]=n.useState([]),[O,m]=n.useState(0),[g,b]=n.useState(!1),[v,y]=n.useState(null),[D,T]=n.useState(0),[U,se]=n.useState(10),[V,q]=n.useState("createdAt"),[Y,ne]=n.useState("desc"),[oe,Ie]=n.useState(""),[ct,Te]=n.useState(""),[B,ke]=n.useState({}),[je,_e]=n.useState([]),[Ee,Oe]=n.useState([]),[Ae,H]=n.useState([]),[dt,re]=n.useState(!1),[ut,ie]=n.useState(null),[_,W]=n.useState(new Set),[mt,le]=n.useState(!1),[Ne,ce]=n.useState([]),[ft,de]=n.useState(!1),[gt,ue]=n.useState(!1),[$,pt]=n.useState(null),[ht,ee]=n.useState(!1),[me,Le]=n.useState(!1),[fe,A]=n.useState({open:!1,message:"",severity:"success"}),{customerId:we,ownerOptions:K,ready:te}=va(),k=ye()??void 0,r=a[c],{fields:X}=ia({agentId:r==null?void 0:r.id,customerId:k,requireMissionId:!1,enabled:!!r}),bt=la(r==null?void 0:r.id,k),ge=ea({agentId:r==null?void 0:r.id,customerId:k,subscription:bt.subscription,contextLabel:"Add Contacts"}),Fe=n.useRef({emailVerificationRequired:!1,reverifyAfterDays:null}),[Ct,De]=n.useState([]),[Me,Re]=n.useState(!1),xt=async t=>{if(Me)return!0;const s=await ge.request(t);return s===null?!1:(Fe.current=s,Re(!0),!0)},St=n.useMemo(()=>X.filter(t=>t.allowFiltering===!0).map(t=>t.property),[X]),{filterValues:Ue}=ma({agentId:r==null?void 0:r.id,customerId:k,properties:St}),ze=n.useCallback((t,s)=>{ke(i=>{if(!s){const f={...i};return delete f[t],f}return{...i,[t]:s}}),T(0)},[]),Be=n.useCallback(t=>{ie(t),re(!0)},[]),Pe=n.useCallback(t=>{W(s=>{const i=new Set(s);return i.has(t)?i.delete(t):i.add(t),i})},[]),vt=n.useCallback(()=>{const s=E.filter(i=>_.has(i.id)).map(({createdAt:i,updatedAt:f,coldEmailsSent:j,coldCallsMade:p,coldEmailsFailed:w,coldCallsFailed:J,returnToOfficeDate:he,missionTitle:R,...Lt})=>Lt);ce(s),le(!0)},[E,_]),[yt,It]=ta({acceptedFileTypes:["text/csv","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],onUploadSuccess:async t=>{try{const s=await P.uploadContacts("",t,k||"",r==null?void 0:r.id);pt(s),De([]),Re(!1),ue(!0),de(!1);const i=s.data.filter(j=>j.uploadValidationError).length,f=s.data.filter(j=>!j.uploadValidationError).length;A({open:!0,message:`Upload processed: ${f} valid, ${i} with errors. Review and save.`,severity:i>0?"warning":"success"})}catch(s){A({open:!0,message:s instanceof Error?s.message:String(s),severity:"error"})}},onUploadError:t=>{A({open:!0,message:t.message,severity:"error"})}}),{fileInputRef:Tt,isUploading:pe}=yt,{triggerFileSelection:Ve,handleFileChange:kt}=It,jt=n.useCallback(async t=>{if(!r)return null;try{const s={agentId:r.id,customerId:k||"",dataSource:t};return await Bt.getInstance().exportTemplate(s)}catch{return null}},[r,k]),We=t=>async()=>{const s=await jt(t);if(s){const i=URL.createObjectURL(s.blob),f=document.createElement("a");f.href=i,f.download=s.fileName,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(i)}},_t=n.useMemo(()=>aa(We("CSV"),We("EXCEL"),Ve,()=>{},()=>{}),[Ve,r,k]),Et=n.useMemo(()=>[{id:"edit",label:"Edit",icon:e.jsx(Qt,{fontSize:"small"}),onClick:Be,primary:!0}],[Be]);n.useEffect(()=>{const t=l.current;if(!t)return;const s=()=>S(t.scrollWidth>t.clientWidth);s();const i=new ResizeObserver(s);return i.observe(t),()=>i.disconnect()},[a]),n.useEffect(()=>{c>=a.length&&x(0)},[a.length,c]),n.useEffect(()=>{T(0),Ie(""),Te(""),ke({}
1),_e([]),Oe([]),H([]),W(new Set)},[c]),n.useEffect(()=>{if(!r)return;let t=!1;const s={active:!0,pageOffset:0,pageLimit:-1};return Promise.all([et.fetchAll({...s,configurationType:"Life Cycle Stage",agentId:r.id,...k?{customerId:k}:{},matchMode:"FALLBACK"}),et.fetchAll({...s,configurationType:"Lead Status",agentId:r.id,...k?{customerId:k}:{},matchMode:"FALLBACK"}),Z.fetchAll({active:!0,pageOffset:0,pageLimit:-1})]).then(([i,f,j])=>{t||(_e(i.data.map(p=>({id:p.id,label:p.value}))),Oe(f.data.map(p=>({id:p.id,label:p.value}))),H(j.data.map(p=>({id:p.id,label:p.tagName}))))}).catch(()=>{}),()=>{t=!0}},[r,k]);const M=n.useCallback(async()=>{var he;if(!a.length||!r||!te)return;const t=Object.entries(B).find(([R])=>tt[R]),s=t?tt[t[0]]:void 0,i=t?t[1]:void 0,f=B.contactOwner,j=f?(he=K.find(R=>R.label===f))==null?void 0:he.value:void 0,p=B.source,w=p==="Inbound"?Pt.join(","):p==="Outbound"?Vt.join(","):void 0,J=B.emailAddress?ga(B.emailAddress):void 0;b(!0),y(null);try{const R=await P.getContacts({pageOffset:D*U,pageLimit:U,sortBy:V,sortOrder:Y,searchText:oe||void 0,...oe?{enableDataElementSearch:!0}:{},customerId:j||we||k||"",agentId:r.id,...s?{enableDataElementSearch:!0,dataElementKey:s,dataElementValue:i}:{},...w?{sources:w}:{},...J?{emailVerificationStatus:J}:{}},"");F(R.data),m(R.totalCount)}catch(R){y(R instanceof Error?R.message:"Failed to load contacts")}finally{b(!1)}},[a,r,D,U,V,Y,oe,we,te,B,K]);n.useEffect(()=>{a.length>0&&te&&M()},[M,a.length,te]);const Ot=n.useCallback(async()=>{if(_.size===0)return;Le(!0);const t=Array.from(_);try{await P.deleteContacts(t),W(new Set),A({open:!0,message:`Successfully deleted ${t.length} contact(s).`,severity:"success"}),M()}catch(s){A({open:!0,message:s instanceof Error?s.message:"Failed to delete contacts",severity:"error"})}finally{Le(!1),ee(!1)}},[_,M]),z=n.useMemo(()=>ca(E,X),[E,X]),G=n.useMemo(()=>z.length>0&&z.every(t=>_.has(t.id)),[z,_]),$e=n.useMemo(()=>z.some(t=>_.has(t.id))&&!G,[z,_,G]),Xe=n.useCallback(()=>{W(t=>{const s=new Set(t);return G?z.forEach(i=>s.delete(i.id)):z.forEach(i=>s.add(i.id)),s})},[z,G]),Ge=n.useMemo(()=>e.jsx(Ze,{checked:G,indeterminate:$e,onChange:Xe,size:"small",sx:{padding:"2px",color:"var(--white)","& .MuiSvgIcon-root":{fontSize:"20px"},"&.Mui-checked, &.MuiCheckbox-indeterminate":{color:"var(--white)"}}}),[G,$e,Xe]),qe=n.useMemo(()=>({id:"selection",label:Ge,field:"id",sortable:!1,sticky:!0,width:"48px",render:t=>e.jsx(Ze,{checked:_.has(t.id),onChange:s=>{s.stopPropagation(),Pe(t.id)},onClick:s=>s.stopPropagation(),size:"small",sx:{padding:"2px","& .MuiSvgIcon-root":{fontSize:"20px"},"&.Mui-checked":{color:"var(--navy-blue)"}}})}),[_,Pe,Ge]),Ye=n.useCallback(()=>{M(),r&&Z.fetchAll({active:!0,pageOffset:0,pageLimit:-1}).then(t=>H(t.data.map(s=>({id:s.id,label:s.tagName})))).catch(()=>{})},[M,r]),At=n.useMemo(()=>{const t=da(X,[],Ue,void 0,r==null?void 0:r.id),s=t.filter(p=>p.id==="createdAt"||p.id==="updatedAt");let i=t.filter(p=>!Qa.has(p.id)&&p.id!=="createdAt"&&p.id!=="updatedAt");if(K.length>1){const p=i.findIndex(w=>w.id==="contactOwner");p!==-1&&(i[p]={...i[p],filterOptions:K.map(w=>w.label)})}else i=i.filter(p=>p.id!=="contactOwner");const f=Za(je,Ee,Ae,(r==null?void 0:r.id)??"",Ye),j={id:"actions",label:"Action",field:"actions",sortable:!1,width:"80px"};return[qe,...i,...f,...s,j]},[X,Ue,je,Ee,Ae,qe,r,Ye,K]),Nt=n.useCallback(t=>{Te(t),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{T(0),W(new Set),Ie(t)},300)},[]),He=t=>{var s;(s=l.current)==null||s.scrollBy({left:t==="left"?-200:200,behavior:"smooth"})};return L?e.jsx(u,{className:N.loadingContainer,children:e.jsx(Se,{})}):o?e.jsx(be,{severity:"error",sx:{m:2},children:o}):a.length===0?e.jsx(za,{}):e.jsxs(u,{className:N.container,children:[e.jsxs(u,{className:N.agentTabsRow,children:[e.jsx(Ce,{size:"small",onClick:()=>He("left"),disabled:!d,sx:at,className:N.agentTabsArrow,children:e.jsx(Wt,{fontSize:"small"})}),e.jsx(u,{ref:l,className:N.agentTabsContainer,role:"tablist","aria-label":"Agent tabs",children:a.map((t,s)=>e.jsxs("button",{type:"button",role:"tab","aria-selected":c===s,tabIndex:c===s?0:-1,className:`${N.agentTab} ${c===s?N.agentTabActive:""}`,onClick:()=>x(s),children:[e.jsx("span",{className:N.agentTabDot,style:{backgroundColor:c===s?"var(--green)":"var(--gray)"}}),e.jsx("span",{className:N.agentTabText,children:t.title})]},t.id))}),e.jsx(Ce,{size:"small",onClick:()=>He("right"),disabled:!d,sx:at,className:N.agentTabsArrow,children:e.jsx($t,{fontSize:"small"})})]}
1),e.jsx("input",{type:"file",ref:Tt,onChange:kt,style:{display:"none"},accept:".csv,.xlsx,.xls"}),e.jsxs(u,{className:N.targetsCard,children:[e.jsxs(u,{className:N.cardToolbar,children:[e.jsx(u,{sx:{mr:"auto"},children:e.jsx(fa,{value:B.source??"",onChange:t=>ze("source",t)})}),_.size>0&&e.jsxs(e.Fragment,{children:[e.jsxs(Q,{size:"small",variant:"outlined",startIcon:e.jsx(Zt,{fontSize:"small"}),onClick:vt,sx:{textTransform:"none",fontSize:"13px"},children:["Edit Selected (",_.size,")"]}),e.jsxs(Q,{size:"small",variant:"outlined",color:"error",startIcon:e.jsx(oa,{fontSize:"small"}),onClick:()=>ee(!0),sx:{textTransform:"none",fontSize:"13px"},children:["Delete Selected (",_.size,")"]})]}),e.jsx(rt,{size:"small",placeholder:"Search...",variant:"outlined",value:ct,onChange:t=>Nt(t.target.value),InputProps:{startAdornment:e.jsx(Xt,{position:"start",children:e.jsx(Gt,{fontSize:"small",sx:{color:"var(--text-gray)"}})})},sx:{width:240}}),e.jsx(qt,{title:"Configuration",children:e.jsx(Ce,{onClick:()=>h("/customer/my-targets-configuration"),sx:{width:40,height:40,color:"var(--navy-blue)",border:"1px solid var(--navy-blue)",borderRadius:"8px","&:hover":{backgroundColor:"rgba(var(--navy-blue-rgb), 0.06)"}},children:e.jsx(Yt,{fontSize:"small"})})}),e.jsx(Q,{variant:"contained",startIcon:e.jsx(sa,{fontSize:"small"}),onClick:()=>de(!0),sx:{backgroundColor:"var(--navy-blue)",color:"var(--white)",textTransform:"none",borderRadius:"8px",padding:"8px 16px",fontWeight:500,fontSize:"14px",whiteSpace:"nowrap",boxShadow:"none","&:hover":{backgroundColor:"var(--orange)",boxShadow:"none"}},children:"Upload Contacts"})]}),e.jsx(u,{className:N.tableWrapper,children:v?e.jsx(be,{severity:"error",children:v}):e.jsxs(e.Fragment,{children:[e.jsx(Ht,{data:z,columns:At,actions:Et,inlineActions:!0,keyExtractor:t=>t.id,loading:g,totalCount:O,page:D,pageLimit:U,defaultSortField:V,defaultSortDirection:Y,onPageChange:t=>T(t),onPageSizeChange:t=>{se(t),T(0)},onSortChange:(t,s)=>{q(t),ne(s)},filters:B,onFilterChange:ze,sequenceColumn:!1,emptyStateMessage:"No contacts found for this agent",showEmptyState:!g,hideToolbar:!0,hideSearchOnly:!0,hidePagination:!0}),O>0&&e.jsxs(u,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px 20px",minHeight:"70px",borderTop:"1px solid var(--light-gray)",flexWrap:"wrap",gap:2},children:[e.jsxs(u,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(ae,{sx:{fontSize:"14px",color:"var(--navy-blue)",fontWeight:400},children:"Show"}),e.jsx(it,{value:U,onChange:t=>{se(Number(t.target.value)),T(0)},size:"small",sx:{fontSize:"0.8125rem",color:"var(--navy-blue)",fontWeight:500,border:"1px solid var(--light-gray)",borderRadius:"8px",backgroundColor:"var(--white)",minWidth:"70px","& .MuiSelect-select":{padding:"8px 32px 8px 16px"},"& .MuiOutlinedInput-notchedOutline":{border:"none"}},children:[10,20,25,50,100].map(t=>e.jsx(ve,{value:t,children:t},t))}),e.jsx(ae,{sx:{fontSize:"14px",color:"var(--navy-blue)",fontWeight:400},children:"entries"}),e.jsxs(ae,{sx:{fontSize:"14px",color:"var(--navy-blue)",fontWeight:400,ml:2},children:["(Total ",O,")"]})]}),e.jsx(Kt,{count:O,page:D,rowsPerPage:U,onPageChange:(t,s)=>{T(s)}})]})]})})]}),e.jsx(ua,{open:dt,contact:ut,agentId:r==null?void 0:r.id,missionId:"",requireMissionId:!1,showExtraTargetFields:!0,onClose:()=>{re(!1),ie(null)},onSuccess:()=>{re(!1),ie(null),A({open:!0,message:"Contact updated successfully",severity:"success"}),M(),r&&Z.fetchAll({active:!0,pageOffset:0,pageLimit:-1}).then(t=>H(t.data.map(s=>({id:s.id,label:s.tagName})))).catch(()=>{})}}),e.jsx(Qe,{open:mt,onClose:()=>{le(!1),ce([])},uploadedContacts:Ne,missionId:"",agentId:(r==null?void 0:r.id)??"",customerId:k,editMode:!0,requireMissionId:!1,showExtraTargetFields:!0,onSaveContacts:async t=>{try{await Promise.all(t.map(i=>P.patchContactDetails(i)));const s=t.length;A({open:!0,message:`${s} contact(s) updated successfully.`,severity:"success"}),le(!1),ce([]),W(new Set),M(),r&&Z.fetchAll({active:!0,pageOffset:0,pageLimit:-1}).then(i=>H(i.data.map(f=>({id:f.id,label:f.tagName})))).catch(()=>{})}catch(s){throw A({open:!0,message:s instanceof Error?s.message:"Failed to update contacts",severity:"error"}),s}}},`bulk-edit-${Ne.length}`),e.jsx(Je,{open:ft,onClose:()=>de(!1),title:"Upload Contacts",maxWidth:"md",showCloseButton:!pe,disableBackdropClick:pe,children:e.jsx(pa,{active:pe,title:"Uploading contactsâ¦",message:"We're processing your contacts â this may take a moment for larger files.",children:e.jsx(na,{uploadOptions:_t.filter(t=>t.id==="template")})})}),e.jsx(Qe,{open:gt,onClose:()=>ue(!1),uploadedContacts:($==null?void 0:$.data)||[],missionId:"",agentId:(r==null?void 0:r.id)??"",customerId:k,requireMissionId:!1,showExtraTargetFields:!0,beforeSave:xt,serverErrors:Ct,saveLabel:ge.available&&!Me?"Verify Contacts":void 0,onSaveContacts:async t=>{var s,i;try{const f=await P.createContacts({missionId:"",customerId:k||"",agentId:(r==null?void 0:r.id)??"",targetContacts:t,...Fe.current}),j=((s=f.createdIds)==null?void 0:s.length)??0,p=((i=f.skippedEmails)==null?void 0:i.length)??0,w=f.validationErrors??[];if(w.length>0)throw De(w),A({open:!0,message:j>0?`${j} contact(s) added. ${w.length} could not be added, see the rows marked FAILURE.`:`${w.length} contact(s) could not be added, see the rows marked FAILURE.`,severity:"warning"}),j>0&&M(),new st;const J=p>0?`${j} contact(s) added. ${p} already exist and were skipped.`:`${j} contact(s) added successfully.`;A({open:!0,message:J,severity:j>0?"success":"warning"}),ue(!1),M()}catch(f){throw f instanceof st||A({open:!0,message:f instanceof Error?f.message:"Failed to add contacts",severity:"error"}),f}}},`upload-review-${((Ke=$==null?void 0:$.data)==null?void 0:Ke.length)||0}
1`),ge.dialog,e.jsx(Je,{open:ht,onClose:()=>ee(!1),title:"Delete selected contacts?",maxWidth:"xs",children:e.jsxs(u,{p:2,children:[e.jsxs(ae,{children:["You are about to delete ",e.jsx("strong",{children:_.size})," selected contact",_.size!==1?"s":"",". This action cannot be undone."]}),e.jsxs(u,{mt:3,display:"flex",justifyContent:"flex-end",gap:1,children:[e.jsx(Q,{variant:"outlined",onClick:()=>ee(!1),disabled:me,children:"Cancel"}),e.jsx(Q,{variant:"contained",color:"error",onClick:Ot,disabled:me,children:me?"Deleting...":"Delete"})]})]})}),e.jsx(Jt,{open:fe.open,autoHideDuration:4e3,onClose:()=>A(t=>({...t,open:!1})),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:e.jsx(be,{severity:fe.severity,onClose:()=>A(t=>({...t,open:!1})),children:fe.message})})]})};export{_s 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.