import{d as e,K as t,g as s,h as l,O as o,i as a,x as i,n as r}from"./vendor-element-plus.js?ver=3.0.6";import{bi as c,b1 as d,y as n,G as m,c5 as u,x as _,I as h,br as p,J as f,A as v,aQ as g,z as x,F as b,bg as y}from"./vendor.js?ver=3.0.6";import{s as C}from"./data_config.js?ver=3.0.6";import{G as k}from"./GenericPromo.js?ver=3.0.6";import{_ as E}from"./fc-bits-ui.js?ver=3.0.6";const V=["first_name","last_name","email"],w=["id","first_name","last_name","email","prefix","user_id","status","ip"],$=["total_order_value","total_order_count","first_order_date","last_order_date"],S={key:1,class:"fcrm_export_status"},F={key:2,class:"fcrm_export_status",style:{color:"var(--fc-error)"}},P={class:"fcrm_export_form_item"},A={class:"fcrm_check_all_wrapper"},U={class:"fcrm_export_limit_section"},D={class:"fcrm_primary_text d-block font-medium fcrm_mb_8"},O={class:"fcrm_primary_text d-block font-medium fcrm_mb_8"},j={key:0,class:"fcrm_secondary_text small fcrm_mt_4"},L={key:1,class:"fcrm_secondary_text small fcrm_mt_4",style:{color:"var(--fc-deep-bg)","font-weight":"500"}},R={key:0},G={key:1},I={class:"fcrm_export_footer_actions"};const q=E({name:"ExportSubscriber",props:["visible","search_query","selected_contacts","all_selected"],emits:["close"],components:{GenericPromo:k},data(){return{dialogVisible:this.visible,columns:[...V],available_columns:C,custom_fields:[],commerce_columns:[],limit:"",offset:"",check_all:!1,progressPercentage:0,csvFileDownloading:!1,csvChunks:[],rowsFetched:0,aborted:!1,exportStatus:"",exportError:""}},computed:{isExportingSelected(){return this.selected_contacts&&this.selected_contacts.length>0||this.all_selected},exportTitle(){return this.isExportingSelected?this.all_selected?this.$t("Export All Filtered Contacts"):this.$t("Export Selected Contacts")+" ("+this.selected_contacts.length+")":this.$t("Export Contacts")}},methods:{ucFirst:e=>e&&"string"==typeof e?e.charAt(0).toUpperCase()+e.slice(1):e||"",handleAllCheck(){this.check_all?(this.selectAllColumns(),this.appVars.contact_custom_fields.length&&this.selectAllCustomFields(),this.appVars.commerce_provider&&(this.commerce_columns=[...$])):this.resetSelections()},selectAllColumns(){this.columns=[...w,...this.available_columns.map(e=>e.value)]},selectAllCustomFields(){this.custom_fields=this.appVars.contact_custom_fields.map(e=>e.slug)},resetSelections(){this.columns=[...V],this.custom_fields=[],this.commerce_columns=[]},hide(){this.$emit("close")},async exportContacts(){this.csvFileDownloading=!0,this.progressPercentage=0,this.csvChunks=["\ufeff"],this.rowsFetched=0,this.aborted=!1,this.exportStatus="",this.exportError="";const e={...this.search_query,columns:this.columns,custom_fields:this.custom_fields,commerce_columns:this.commerce_columns,limit:this.limit,offset:this.offset};"advanced"===e.filter_type&&e.advanced_filters&&(e.advanced_filters=JSON.stringify(e.advanced_filters)),this.isExportingSelected&&!this.all_selected&&(e.contact_ids=this.selected_contacts.map(e=>e.id));try{let t=1,s=!0,l=0;for(;s&&!this.aborted;){this.exportStatus=this.$t("Fetching contacts...");const o=await this.fetchPage(e,t);1===t&&(this.csvChunks.push(this.csvRow(o.headers)),l=o.total);const a=o.rows,i=new Array(a.length);for(let e=0;e0&&(this.progressPercentage=Math.min(99,Math.round(this.rowsFetched/l*100))),t++}if(this.aborted)return void this.resetExportState();this.exportStatus=this.$t("Preparing download..."),this.progressPercentage=100,await new Promise(e=>requestAnimationFrame(e)),this.downloadCsvBlob(),this.hide()}catch(t){this.exportError=t&&t.message||this.$t("Export failed. Please try again."),this.csvFileDownloading=!1,this.exportStatus=""}},fetchPage(e,t){return this.$post("subscribers-export",{...e,page:t})},downloadCsvBlob(){const e=new Blob(this.csvChunks,{type:"text/csv;charset=utf-8;"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.setAttribute("download","contacts_export_"+Date.now()+".csv"),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(t),this.resetExportState()},sanitizeCell:e=>(e.length&&/^[=+\-@\t\r]/.test(e)&&(e="'"+e),e),csvRow(e){return e.map(function(e){var t=null==e?"":String(e);return-1!==(t=this.sanitizeCell(t)).indexOf(",")||-1!==t.indexOf('"')||-1!==t.indexOf("\n")||-1!==t.indexOf("\r")?'"'+t.replace(/"/g,'""')+'"':t}.bind(this)).join(",")+"\r\n"},cancelExport(){this.aborted=!0},resetExportState(){this.csvFileDownloading=!1,this.progressPercentage=0,this.csvChunks=[],this.rowsFetched=0,this.exportStatus="",this.exportError=""}},watch:{visible(e){this.dialogVisible=e},dialogVisible(e){e||this.hide()}}},[["render",function(C,k,E,V,w,$){const q=c("generic-promo"),z=t,B=s,T=l,J=i,M=a,N=o,K=e,Q=r;return d(),n(Q,{title:$.exportTitle,modelValue:w.dialogVisible,"onUpdate:modelValue":k[7]||(k[7]=e=>w.dialogVisible=e),width:"50%","append-to-body":!0,"close-on-click-modal":!1,onClose:k[8]||(k[8]=e=>$.hide()),class:"fcrm_subscribers-export-dialog","align-center":""},m({default:u(()=>[C.has_campaign_pro?(d(),v("div",{key:1,class:"fcrm_export_content",style:g({pointerEvents:w.csvFileDownloading?"none":"auto"})},[w.csvFileDownloading?(d(),n(z,{key:0,"text-inside":!0,"stroke-width":26,percentage:w.progressPercentage},null,8,["percentage"])):x("",!0),w.exportStatus?(d(),v("p",S,p(w.exportStatus),1)):x("",!0),w.exportError?(d(),v("p",F,p(w.exportError),1)):x("",!0),_("div",P,[_("h3",null,p(C.$t("Exp_Please_sctywte")),1),_("div",A,[f(B,{modelValue:w.check_all,"onUpdate:modelValue":k[0]||(k[0]=e=>w.check_all=e),onChange:$.handleAllCheck},{default:u(()=>[h(p(C.$t("Select All")),1)],void 0,!0),_:1},8,["modelValue","onChange"])]),f(T,{modelValue:w.columns,"onUpdate:modelValue":k[1]||(k[1]=e=>w.columns=e),class:"fcrm_2_col_items"},{default:u(()=>[f(B,{value:"id"},{default:u(()=>[h(p(C.$t("ID")),1)],void 0,!0),_:1}),f(B,{value:"prefix"},{default:u(()=>[h(p(C.$t("Name Prefix")),1)],void 0,!0),_:1}),f(B,{value:"user_id"},{default:u(()=>[h(p(C.$t("User ID")),1)],void 0,!0),_:1}),f(B,{value:"email"},{default:u(()=>[h(p(C.$t("Email")),1)],void 0,!0),_:1}),(d(!0),v(b,null,y(w.available_columns,e=>(d(),n(B,{value:e.value,key:e.value},{default:u(()=>[h(p(e.label),1)],void 0,!0),_:2},1032,["value"]))),128)),f(B,{value:"ip"},{default:u(()=>[h(p(C.$t("IP Address")),1)],void 0,!0),_:1})],void 0,!0),_:1},8,["modelValue"]),C.appVars.contact_custom_fields.length?(d(),v(b,{key:0},[_("h3",null,p(C.$t("Custom Contact Fields")),1),f(T,{modelValue:w.custom_fields,"onUpdate:modelValue":k[2]||(k[2]=e=>w.custom_fields=e),class:"fcrm_2_col_items"},{default:u(()=>[(d(!0),v(b,null,y(C.appVars.contact_custom_fields,e=>(d(),n(B,{value:e.slug,key:e.slug},{default:u(()=>[h(p(e.label),1)],void 0,!0),_:2},1032,["value"]))),128))],void 0,!0),_:1},8,["modelValue"])],64)):x("",!0),C.appVars.commerce_provider?(d(),v(b,{key:1},[_("h3",null,p(C.$t("Commerce Fields"))+" ("+p($.ucFirst(C.appVars.commerce_provider))+")",1),f(T,{modelValue:w.commerce_columns,"onUpdate:modelValue":k[3]||(k[3]=e=>w.commerce_columns=e),class:"fcrm_2_col_items"},{default:u(()=>[f(B,{value:"total_order_value"},{default:u(()=>[h(p(C.$t("Lifetime Value")),1)],void 0,!0),_:1}),f(B,{value:"total_order_count"},{default:u(()=>[h(p(C.$t("Total Order Count")),1)],void 0,!0),_:1}),f(B,{value:"first_order_date"},{default:u(()=>[h(p(C.$t("Customer Since")),1)],void 0,!0),_:1}),f(B,{value:"last_order_date"},{default:u(()=>[h(p(C.$t("Last Order Date")),1)],void 0,!0),_:1})],void 0,!0),_:1},8,["modelValue"])],64)):x("",!0)]),_("div",U,[f(N,{gutter:20},{default:u(()=>[f(M,{span:12},{default:u(()=>[_("label",D,p(C.$t("Contact Export Limit")),1),f(J,{type:"number",modelValue:w.limit,"onUpdate:modelValue":k[4]||(k[4]=e=>w.limit=e),disabled:$.isExportingSelected},null,8,["modelValue","disabled"])],void 0,!0),_:1}),f(M,{span:12},{default:u(()=>[_("label",O,p(C.$t("Contact Export Offset")),1),f(J,{type:"number",modelValue:w.offset,"onUpdate:modelValue":k[5]||(k[5]=e=>w.offset=e),disabled:$.isExportingSelected},null,8,["modelValue","disabled"])],void 0,!0),_:1})],void 0,!0),_:1}),$.isExportingSelected?(d(),v("p",L,[E.all_selected?(d(),v("span",G,p(C.$t("Exporting all contacts matching your current filters")),1)):(d(),v("span",R,p(C.$t("Exporting"))+" "+p(E.selected_contacts.length)+" "+p(C.$t("selected contact(s)")),1))])):(d(),v("p",j,p(C.$t("Exp_Leave_tbfnloo")),1))])],4)):(d(),n(q,{key:0}))],void 0),_:2},[C.has_campaign_pro?{name:"footer",fn:u(()=>[_("div",I,[w.csvFileDownloading?(d(),n(K,{key:0,onClick:$.cancelExport},{default:u(()=>[h(p(C.$t("Cancel Export")),1)],void 0,!0),_:1},8,["onClick"])):(d(),n(K,{key:1,onClick:$.hide},{default:u(()=>[h(p(C.$t("Cancel")),1)],void 0,!0),_:1},8,["onClick"])),f(K,{disabled:w.csvFileDownloading,type:"primary",onClick:k[6]||(k[6]=e=>$.exportContacts())},{default:u(()=>[h(p(C.$t("Export Contacts")),1)],void 0,!0),_:1},8,["disabled"])])]),key:"0"}:void 0]),1032,["title","modelValue"])}]]);export{q as E};