import{L as t,D as s,E as e,e as a,aB as i,k as n,az as o,aG as l,ay as r,c,aT as d}from"../../../../vendor-element-plus.js?ver=3.1.8";import{aQ as h,W as p,X as _,ab as m,a5 as f,b2 as g,Z as C,bB as u,aa as v,J as w,az as y,Y as b,a6 as x,a9 as B,a8 as F,a0 as S}from"../../../../vendor.js?ver=3.1.8";import{F as L,C as k}from"../../../../_ContactsTable.js?ver=3.1.8";import{_ as A,I as j}from"../../../../fc-bits-ui.js?ver=3.1.8";import"../../../../Tagger.js?ver=3.1.8";import"../../../../data_config.js?ver=3.1.8";import"../../../../CompanyEditForm.js?ver=3.1.8";import"../../../../fc-bits.js?ver=3.1.8";import"../../../../Filterer.js?ver=3.1.8";import"../../../../Filterer2.js?ver=3.1.8";import"../../../../Searcher.js?ver=3.1.8";import"../../../../PaginationBar.js?ver=3.1.8";import"../../../../DataTable.js?ver=3.1.8";import"../../../../FloatingBulkActionShell.js?ver=3.1.8";import"../../../../Confirm.js?ver=3.1.8";import"../../../../_OptionSelector.js?ver=3.1.8";import"../Contacts/Filter/FilterPopover.js?ver=3.1.8";import"../Contacts/Filter/ActiveFiltersBar.js?ver=3.1.8";import"../../../../_IntlTelInput.js?ver=3.1.8";import"../../../../Badge.js?ver=3.1.8";import"../../../../relations.js?ver=3.1.8";import"../../../../clipboard.js?ver=3.1.8";const M={key:0},E={key:1,class:"fcrm_assign_empty"},Z={class:"fcrm_assign_empty_body"},$={class:"fcrm_assign_empty_text"},T={key:2,class:"fcrm_assign_list"},U={class:"fcrm_assign_item_body"},I={class:"fcrm_assign_avatar"},D=["src","alt"],G={key:1,class:"fcrm_assign_avatar_ph"},V={class:"fcrm_assign_info"},O={class:"fcrm_assign_name"},z={class:"fcrm_assign_email"},N={key:0,class:"fcrm_assign_actions"};const q={class:"icon"},P={key:0,class:"fcrm_drawer_content"},H={class:"fcrm_tab_menu"},R={class:"fcrm_tab_text"},J={key:0,class:"fcrm_tab_line"},K={class:"fcrm_tab_text"},Q={key:0,class:"fcrm_tab_line"},W={class:"fcrm_adder_content"},X={key:0,class:"fcrm_assign_existing"},Y={key:1,class:"fcrm_assign_create_new"};const tt=A({name:"CompanyMembers",props:["company_id","company"],components:{ContactsTable:k,ContactAdder:A({name:"ContactAdded",props:["company"],components:{Icons:j,ContactAssignSelector:A({name:"ContactAssignSelector",props:["company"],components:{Search:s,Plus:t},emits:["attached","createNew"],data:()=>({contact_search:"",contacts:[],searched:!1,loading:!1,selectedIds:[],attaching:!1,searchTimer:null}),watch:{contact_search(){this.searchTimer&&clearTimeout(this.searchTimer),this.searchTimer=setTimeout(()=>{this.fetchContacts()},350)}},methods:{fetchContacts(){const t=(this.contact_search||"").trim(),s=!!t;this.loading=!0,this.selectedIds=[],this.$get("companies/search-unattached-contacts",{limit:s?20:10,search:t,company_id:this.company.id}).then(t=>{this.contacts=t.results,this.searched=s}).catch(t=>{this.handleError(t)}).finally(()=>{this.loading=!1})},attachContacts(){this.attaching=!0,this.$post("companies/attach-subscribers",{subscriber_ids:this.selectedIds,company_ids:[this.company.id]}).then(t=>{this.$notify.success(t.message),this.$emit("attached")}).catch(t=>{this.handleError(t)}).finally(()=>{this.attaching=!1})}},mounted(){this.fetchContacts()},beforeUnmount(){this.searchTimer&&clearTimeout(this.searchTimer)}},[["render",function(t,s,c,d,S,L){const k=h("Search"),A=e,j=a,q=i,P=h("Plus"),H=n,R=o,J=l,K=r;return p(),_("div",null,[m(j,{modelValue:S.contact_search,"onUpdate:modelValue":s[1]||(s[1]=t=>S.contact_search=t),placeholder:t.$t("Search Contact"),onKeyup:s[2]||(s[2]=g(t=>L.fetchContacts(),["enter"])),class:"fcrm_assign_search"},{prefix:f(()=>[m(A,{onClick:s[0]||(s[0]=t=>L.fetchContacts()),style:{cursor:"pointer"}},{default:f(()=>[m(k)],void 0,!0),_:1})]),_:1},8,["modelValue","placeholder"]),S.loading?(p(),_("div",M,[m(q,{animated:!0,rows:3})])):S.searched&&!S.contacts.length?(p(),_("div",E,[C("div",Z,[s[6]||(s[6]=u('
',1)),C("p",$,v(t.$t("No Results Found")),1),m(H,{class:"fcrm_assign_create_btn",onClick:s[3]||(s[3]=s=>t.$emit("createNew"))},{default:f(()=>[m(A,null,{default:f(()=>[m(P)],void 0,!0),_:1}),C("span",null,v(t.$t("Create New Contact")),1)],void 0),_:1})])])):S.contacts.length?(p(),_("div",T,[m(J,{class:"fcrm_assign_chk_grp",modelValue:S.selectedIds,"onUpdate:modelValue":s[4]||(s[4]=t=>S.selectedIds=t)},{default:f(()=>[(p(!0),_(w,null,y(S.contacts,t=>(p(),b(R,{key:t.id,value:t.id,class:"fcrm_assign_item"},{default:f(()=>[C("div",U,[C("div",I,[t.photo?(p(),_("img",{key:0,src:t.photo,alt:t.full_name},null,8,D)):(p(),_("div",G,v(t.full_name?t.full_name.charAt(0).toUpperCase():"?"),1))]),C("div",V,[C("div",O,v(t.full_name),1),C("div",z,v(t.email),1)])])],void 0,!0),_:2},1032,["value"]))),128))],void 0),_:1},8,["modelValue"]),S.selectedIds.length?(p(),_("div",N,[x((p(),b(H,{disabled:S.attaching,onClick:s[5]||(s[5]=t=>L.attachContacts()),class:"fcrm_assign_attach_btn"},{default:f(()=>[B(v(t.$t("Attach Selected Contacts"))+" ("+v(S.selectedIds.length)+") ",1)],void 0),_:1},8,["disabled"])),[[K,S.attaching]])])):F("",!0)])):F("",!0)])}]]),FormHandler:L,Plus:t,Close:c},emits:["reloadContacts"],data:()=>({direction:"rtl",assignState:"existing",newContactDrawer:!1}),mounted(){window.fcAdmin&&window.fcAdmin.is_rtl&&(this.direction="ltr")},methods:{showContactAdd(){this.assignState="existing",this.newContactDrawer=!0},handleCreated(t){this.newContactDrawer=!1,this.$router.push({name:"subscriber",params:{id:t.id}})},handleAttached(){this.newContactDrawer=!1,this.$emit("reloadContacts")}}},[["render",function(t,s,e,a,i,o){const l=h("Icons"),r=n,c=h("contact-assign-selector"),g=h("form-handler"),u=d;return p(),_("div",null,[m(r,{onClick:s[0]||(s[0]=t=>o.showContactAdd()),size:"small",type:"primary"},{default:f(()=>[C("span",q,[m(l,{"icon-name":"plus"})]),B(" "+v(t.$t("Add Contact")),1)],void 0),_:1}),m(u,{direction:i.direction,class:"fcrm_contact_adder_drawer","with-header":!0,size:t.globalDrawerSize,"append-to-body":!0,title:t.$t("Add contact & Assign"),onClose:s[5]||(s[5]=t=>i.newContactDrawer=!1),modelValue:i.newContactDrawer,"onUpdate:modelValue":s[6]||(s[6]=t=>i.newContactDrawer=t)},{default:f(()=>[i.newContactDrawer?(p(),_("div",P,[C("div",H,[C("div",{class:S(["fcrm_tab_item",{fcrm_tab_active:"existing"===i.assignState}]),onClick:s[1]||(s[1]=t=>i.assignState="existing")},[C("span",R,v(t.$t("Add Existing")),1),"existing"===i.assignState?(p(),_("div",J)):F("",!0)],2),C("div",{class:S(["fcrm_tab_item",{fcrm_tab_active:"new"===i.assignState}]),onClick:s[2]||(s[2]=t=>i.assignState="new")},[C("span",K,v(t.$t("Create New")),1),"new"===i.assignState?(p(),_("div",Q)):F("",!0)],2)]),C("div",W,["existing"==i.assignState?(p(),_("div",X,[m(c,{onAttached:s[3]||(s[3]=t=>o.handleAttached()),onCreateNew:s[4]||(s[4]=t=>i.assignState="new"),company:e.company},null,8,["company"])])):(p(),_("div",Y,[m(g,{onCreated:o.handleCreated,company_id:e.company.id},null,8,["onCreated","company_id"])]))])])):F("",!0)],void 0),_:1},8,["direction","size","title","modelValue"])])}]])},data:()=>({loading:!1,subscribers:[],columns:[],pagination:{current_page:1,per_page:10,total:0},query_data:{tags:[],lists:[],search:"",statuses:[],sort_by:"id",sort_type:"DESC",custom_fields:!1},ui_config:{show_list:!0,show_tag:!0,disable_filters_without_selection:!0},options:{tags:[],lists:[],statuses:[],sms_statuses:[],countries:[],sampleCsv:null,delimiter:"comma"}}),methods:{fetchContacts(){this.loading=!0,this.$get("subscribers",{company_ids:[this.company_id],per_page:this.pagination.per_page,page:this.pagination.current_page,...this.query_data}).then(t=>{this.subscribers=t.subscribers.data,this.pagination.total=t.subscribers.total}).catch(t=>{this.handleError(t)}).finally(()=>{this.loading=!1})},getOptions(){const t={fields:"yes"!==window.fcAdmin.sms_enabled?"tags,lists,statuses,contact_types,sampleCsv,custom_fields":"tags,lists,statuses,sms_statuses,contact_types,sampleCsv,custom_fields"};this.$get("reports/options",t).then(t=>{this.options=t.options})}},mounted(){this.fetchContacts(),this.getOptions()}},[["render",function(t,s,e,a,i,n){const o=h("contact-adder"),l=h("contacts-table"),c=r;return x((p(),_("div",null,[m(l,{fire_ready_fetch:!0,options:i.options,always_searchbar:!0,query_data:i.query_data,is_loading:i.loading,ui_config:i.ui_config,subscribers:i.subscribers,onFetch:s[1]||(s[1]=t=>n.fetchContacts()),pagination:i.pagination},{after_search_box:f(()=>[m(o,{onReloadContacts:s[0]||(s[0]=t=>n.fetchContacts()),company:e.company},null,8,["company"])]),_:1},8,["options","query_data","is_loading","ui_config","subscribers","pagination"])])),[[c,i.loading]])}]]);export{tt as default};