import{k as e,av as t,az as s,aG as l,aD as o,aA as a,e as i,g as r}from"./vendor-element-plus.js?ver=3.1.0";import{s as c}from"./data_config.js?ver=3.1.0";import{G as d}from"./GenericPromo.js?ver=3.1.0";import{r as n,a as m,o as u,aR as _,w as h,b as p,d as f,O as v,P as g,c as x,a2 as b,L as y,Q as C,as as k}from"./vendor.js?ver=3.1.0";import{_ as w}from"./fc-bits-ui.js?ver=3.1.0";const E=["first_name","last_name","email"],V=["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"},D={class:"fcrm_export_limit_section"},U={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},q={class:"fcrm_export_footer_actions"};const z=w({name:"ExportSubscriber",props:["visible","search_query","selected_contacts","all_selected"],emits:["close"],components:{GenericPromo:d},data(){return{dialogVisible:this.visible,columns:[...E],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=[...V,...this.available_columns.map(e=>e.value)]},selectAllCustomFields(){this.custom_fields=this.appVars.contact_custom_fields.map(e=>e.slug)},resetSelections(){this.columns=[...E],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,d,w,E,V,$){const z=n("generic-promo"),B=t,I=s,T=l,M=i,N=a,J=o,Q=e,H=r;return u(),m(H,{title:$.exportTitle,modelValue:V.dialogVisible,"onUpdate:modelValue":d[7]||(d[7]=e=>V.dialogVisible=e),width:"50%","append-to-body":!0,"close-on-click-modal":!1,onClose:d[8]||(d[8]=e=>$.hide()),class:"fcrm_subscribers-export-dialog","align-center":""},_({default:h(()=>[c.has_campaign_pro?(u(),x("div",{key:1,class:"fcrm_export_content",style:b({pointerEvents:V.csvFileDownloading?"none":"auto"})},[V.csvFileDownloading?(u(),m(B,{key:0,"text-inside":!0,"stroke-width":26,percentage:V.progressPercentage},null,8,["percentage"])):y("",!0),V.exportStatus?(u(),x("p",S,g(V.exportStatus),1)):y("",!0),V.exportError?(u(),x("p",F,g(V.exportError),1)):y("",!0),p("div",P,[p("h3",null,g(c.$t("Exp_Please_sctywte")),1),p("div",A,[f(I,{modelValue:V.check_all,"onUpdate:modelValue":d[0]||(d[0]=e=>V.check_all=e),onChange:$.handleAllCheck},{default:h(()=>[v(g(c.$t("Select All")),1)],void 0,!0),_:1},8,["modelValue","onChange"])]),f(T,{modelValue:V.columns,"onUpdate:modelValue":d[1]||(d[1]=e=>V.columns=e),class:"fcrm_2_col_items"},{default:h(()=>[f(I,{value:"id"},{default:h(()=>[v(g(c.$t("ID")),1)],void 0,!0),_:1}),f(I,{value:"prefix"},{default:h(()=>[v(g(c.$t("Name Prefix")),1)],void 0,!0),_:1}),f(I,{value:"user_id"},{default:h(()=>[v(g(c.$t("User ID")),1)],void 0,!0),_:1}),f(I,{value:"email"},{default:h(()=>[v(g(c.$t("Email")),1)],void 0,!0),_:1}),(u(!0),x(C,null,k(V.available_columns,e=>(u(),m(I,{value:e.value,key:e.value},{default:h(()=>[v(g(e.label),1)],void 0,!0),_:2},1032,["value"]))),128)),f(I,{value:"ip"},{default:h(()=>[v(g(c.$t("IP Address")),1)],void 0,!0),_:1})],void 0,!0),_:1},8,["modelValue"]),c.appVars.contact_custom_fields.length?(u(),x(C,{key:0},[p("h3",null,g(c.$t("Custom Contact Fields")),1),f(T,{modelValue:V.custom_fields,"onUpdate:modelValue":d[2]||(d[2]=e=>V.custom_fields=e),class:"fcrm_2_col_items"},{default:h(()=>[(u(!0),x(C,null,k(c.appVars.contact_custom_fields,e=>(u(),m(I,{value:e.slug,key:e.slug},{default:h(()=>[v(g(e.label),1)],void 0,!0),_:2},1032,["value"]))),128))],void 0,!0),_:1},8,["modelValue"])],64)):y("",!0),c.appVars.commerce_provider?(u(),x(C,{key:1},[p("h3",null,g(c.$t("Commerce Fields"))+" ("+g($.ucFirst(c.appVars.commerce_provider))+")",1),f(T,{modelValue:V.commerce_columns,"onUpdate:modelValue":d[3]||(d[3]=e=>V.commerce_columns=e),class:"fcrm_2_col_items"},{default:h(()=>[f(I,{value:"total_order_value"},{default:h(()=>[v(g(c.$t("Lifetime Value")),1)],void 0,!0),_:1}),f(I,{value:"total_order_count"},{default:h(()=>[v(g(c.$t("Total Order Count")),1)],void 0,!0),_:1}),f(I,{value:"first_order_date"},{default:h(()=>[v(g(c.$t("Customer Since")),1)],void 0,!0),_:1}),f(I,{value:"last_order_date"},{default:h(()=>[v(g(c.$t("Last Order Date")),1)],void 0,!0),_:1})],void 0,!0),_:1},8,["modelValue"])],64)):y("",!0)]),p("div",D,[f(J,{gutter:20},{default:h(()=>[f(N,{span:12},{default:h(()=>[p("label",U,g(c.$t("Contact Export Limit")),1),f(M,{type:"number",modelValue:V.limit,"onUpdate:modelValue":d[4]||(d[4]=e=>V.limit=e),disabled:$.isExportingSelected},null,8,["modelValue","disabled"])],void 0,!0),_:1}),f(N,{span:12},{default:h(()=>[p("label",O,g(c.$t("Contact Export Offset")),1),f(M,{type:"number",modelValue:V.offset,"onUpdate:modelValue":d[5]||(d[5]=e=>V.offset=e),disabled:$.isExportingSelected},null,8,["modelValue","disabled"])],void 0,!0),_:1})],void 0,!0),_:1}),$.isExportingSelected?(u(),x("p",L,[w.all_selected?(u(),x("span",G,g(c.$t("Exporting all contacts matching your current filters")),1)):(u(),x("span",R,g(c.$t("Exporting"))+" "+g(w.selected_contacts.length)+" "+g(c.$t("selected contact(s)")),1))])):(u(),x("p",j,g(c.$t("Exp_Leave_tbfnloo")),1))])],4)):(u(),m(z,{key:0}))],void 0),_:2},[c.has_campaign_pro?{name:"footer",fn:h(()=>[p("div",q,[V.csvFileDownloading?(u(),m(Q,{key:0,onClick:$.cancelExport},{default:h(()=>[v(g(c.$t("Cancel Export")),1)],void 0,!0),_:1},8,["onClick"])):(u(),m(Q,{key:1,onClick:$.hide},{default:h(()=>[v(g(c.$t("Cancel")),1)],void 0,!0),_:1},8,["onClick"])),f(Q,{disabled:V.csvFileDownloading,type:"primary",onClick:d[6]||(d[6]=e=>$.exportContacts())},{default:h(()=>[v(g(c.$t("Export Contacts")),1)],void 0,!0),_:1},8,["disabled"])])]),key:"0"}:void 0]),1032,["title","modelValue"])}]]);export{z as E};