PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.5
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.5
1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 All 49 releases
← All changes | assets/chunks/FileUploaderDialog.js +1 -1 1.3.25 → 1.6.5 View file →
@@ -1 +1 @@
1 -var J=Object.defineProperty;var Z=(r,C,e)=>C in r?J(r,C,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[C]=e;var O=(r,C,e)=>Z(r,typeof C!="symbol"?C+"":C,e);import{h as f,r as b,e as w,o as c,b as S,d as u,F as W,a as l,t as p,u as a,w as n,f as A,q as Q,c as N,n as ee,l as te,v as le,i as X,z as ae,x as se,k as oe,g as ne}from"./vue.esm-bundler.js?ver=1.3.25";import{d as ie}from"./common.js?ver=1.3.25";import{I as G,S as Y}from"./IconButton.js?ver=1.3.25";import{_ as T}from"./DynamicIcon.js?ver=1.3.25";import{R as H}from"./Rest.js?ver=1.3.25";import{n as I}from"./Notify.js?ver=1.3.25";import{t as i}from"./Translator.js?ver=1.3.25";import{M as re}from"./Model.js?ver=1.3.25";const de={class:"fct-file-uploader-wrap"},ue={key:0,class:"fct-file-upload-rename"},ce={class:"fct-form-group"},fe={for:"filename_input"},ve={style:{display:"flex","justify-content":"space-between"}},pe={key:0},me={class:"fct-btn-group sm fct-file-upload-rename-actions"},_e={class:"el-upload__text"},ge=["innerHTML"],he={key:1,class:"fct-file-upload-progress"},be={class:"upload-progress-head"},ke={class:"upload-progress-body"},ye={key:0,class:"fct-file-upload-name"},Fe={class:"fct-file-upload-text"},Se={key:0},we={__name:"FileUploader",props:{driver:String,storageDriverModel:Object},emits:["onUploaded"],setup(r,{expose:C,emit:e}){const s=r,k=e,L=f(null),y=f(""),M=f(),g=f([]),F=f(!1),h=f(0),$=()=>window.fluentCartRestVars.rest.url+"/files/upload",E=()=>({name:y.value,driver:s.driver}),j=o=>o.name.length>160?(I.error(i("Filename too long. Maximum 160 characters allowed")),g.value=[],o.value=null,y.value="",F.value=!1,h.value=0,!1):!0,z=o=>{o!=null&&o.message&&I.success(o.message),g.value=[],M.value=null,y.value="",F.value=!1,h.value=0};C({reset:z});const B=o=>{M.value=o,y.value=o.name.replace(/\.[^/.]+$/,"")},q=()=>{L.value.handleRemove(M.value),z()},m=(o,D,v)=>{h.value=parseInt(o.percent+"")},t=(o,D,v)=>{var x,V;z(o),(V=(x=s.storageDriverModel)==null?void 0:x.fileUploaded)==null||V.call(x,o),k("onUploaded",o,D,v)},d=()=>{F.value=!0,L.value.submit()},U=o=>y.value+"."+o.split(".").pop(),P=()=>({"X-WP-Nonce":H.getNonce()});return(o,D)=>{const v=b("el-input"),x=b("el-button"),V=b("el-alert"),K=b("el-upload"),_=b("el-progress");return c(),w("div",de,[g.value.length>0?(c(),w(W,{key:0},[F.value?S("",!0):(c(),w("div",ue,[u("div",ce,[u("label",fe,p(o.$t("File Name")),1),l(v,{id:"filename_input",modelValue:y.value,"onUpdate:modelValue":D[0]||(D[0]=R=>y.value=R)},null,8,["modelValue"]),u("div",ve,[u("div",null,[y.value.length>160?(c(),w("span",pe,p(a(i)("File name Must not exceed %s characters",160)),1)):S("",!0)]),u("div",null,p(y.value.length)+"/160 ",1)])]),u("div",me,[l(x,{type:"primary",onClick:d,disabled:y.value.length>160},{default:n(()=>[A(p(o.$t("Upload")),1)]),_:1},8,["disabled"]),l(G,{onClick:Q(z,["prevent"]),tag:"button"},{default:n(()=>[l(T,{name:"Delete"})]),_:1})])]))],64)):S("",!0),u("div",{class:ee({hidden:g.value.length>0})},[r.storageDriverModel.needsReconfigure(r.driver)?(c(),N(V,{key:0,type:"warning",closable:!1,title:a(i)("S3 needs to be reconfigured. Please go to S3 settings and re-save your bucket selection."),"show-icon":"",class:"mb-3"},null,8,["title"])):S("",!0),r.storageDriverModel.needsReconfigure(r.driver)?S("",!0):(c(),N(K,{key:1,class:"fct-file-uploader",ref_key:"uploaderRef",ref:L,data:E(),"file-list":g.value,"onUpdate:fileList":D[1]||(D[1]=R=>g.value=R),drag:"",action:$(),"on-progress":m,"on-success":t,"on-error":(R,Ae,je)=>{R.toString().includes("Request Entity Too Large")?a(I).error(a(i)("File too large")):a(I).error(a(i)("Cant upload the file")),g.value=[],y.value="",F.value=!1,h.value=0},"auto-upload":!1,"on-change":B,multiple:!1,limit:1,"show-file-list":!1,headers:P(),"before-upload":j},{default:n(()=>[l(G,{circle:"",bg:"primary",soft:""},{default:n(()=>[l(T,{name:"Upload"})]),_:1}),u("div",_e,[u("span",{innerHTML:a(i)("Drag & Drop or %1$s Browse/Upload %2$s Files","<em>","</em>")},null,8,ge),u("span",null,p(a(i)("Any Format upto %s",a(Y).serverMaxUploadSize())),1)])]),_:1},8,["data","file-list","action","on-error","headers"]))],2),F.value?(c(),w("div",he,[u("div",be,[l(G,{bg:"info",soft:"",size:"small"},{default:n(()=>[l(T,{name:"Files"})]),_:1})]),u("div",ke,[g.value.length>0?(c(),w("div",ye,p(U(g.value[0].name)),1)):S("",!0),l(_,{"stroke-width":5,percentage:h.value,striped:"","striped-flow":"",duration:40},{default:n(()=>[u("div",Fe,[g.value.length>0?(c(),w("span",Se,p(a(ie)(g.value[0].size*(h.value/100),g.value[0].size)),1)):S("",!0),u("span",null,p(a(i)("%s% Uploaded",h.value)),1)])]),_:1},8,["percentage"])]),u("div",{class:"fct-file-upload-progress-cancel",onClick:q},[l(T,{name:"Close"})])])):S("",!0)])}}},Ue={class:"fct-file-upload-search-wrap"},Ce={key:0},xe={key:1,class:"fct-file-upload-list"},De={class:"file-name"},Le={key:1},Me={__name:"FileList",props:{driver:String,buckets:Array,storageDriverModel:Object,multiple:{type:Boolean,default:!0}},emits:["onFileSelected"],setup(r,{emit:C}){const e=r,s=f([]),k=f(!1),L=()=>{k.value=!0,s.value=[],M.value=[],h([]),e.storageDriverModel.getFileList(e.driver,y.value).then(t=>{s.value=t}).catch(t=>{I.error(t)}).finally(()=>{k.value=!1})},y=f(""),M=f([]),g=f(!1),F=f(!1),h=t=>{F.value=!1;const d=t.map(U=>(U.name.length>185&&(F.value=!0),{name:U.name,size:U.size,bucket:U.bucket,driver:U.driver}));M.value=t,g.value=M.value.length>0,z("onFileSelected",d,F.value)},$=te(()=>s.value&&s.value.errors&&Object.keys(s.value.errors).length>0),E=f(null),j=t=>t.includes("_____fluent-cart_____")?t.split("_____fluent-cart_____")[0]:t.split("__fluent-cart__")[0];le(()=>e.driver,()=>{h([])});const z=C,B=f(null),q=t=>{k.value=!0;const d=t.file;s.value.unshift(d),h([...M.value,d]),k.value=!1,se(()=>{B.value&&B.value.toggleRowSelection(t.file,!0)})};X(()=>{e.storageDriverModel.needsReconfigure(e.driver)||L(),e.storageDriverModel.onFileUploaded(q,e.driver)});const m=async(t,d)=>{t.deleting=!0,await H.delete("files/delete",{file_path:t.name,driver:e.driver,bucket:t.bucket||""}).then(U=>{I.success(U.message),s.value.splice(d,1),h([])}).catch(U=>{I.error(U.message)}).finally(()=>{t.deleting=!1})};return(t,d)=>{const U=b("el-alert"),P=b("el-input"),o=b("el-table-column"),D=b("el-skeleton-item"),v=b("el-skeleton"),x=b("el-table"),V=b("el-radio"),K=b("el-popconfirm");return c(),w(W,null,[r.storageDriverModel.needsReconfigure(r.driver)?(c(),N(U,{key:0,type:"warning",closable:!1,title:a(i)("S3 needs to be reconfigured. Please go to S3 settings and re-save your bucket selection."),"show-icon":""},null,8,["title"])):S("",!0),r.storageDriverModel.needsReconfigure(r.driver)?S("",!0):(c(),w(W,{key:1},[u("div",Ue,[l(P,{modelValue:y.value,"onUpdate:modelValue":d[0]||(d[0]=_=>y.value=_),class:"fct-file-search-input",placeholder:a(i)("Search and hit enter"),clearable:"",onKeyup:d[1]||(d[1]=ae(()=>{L()},["enter"]))},null,8,["modelValue","placeholder"])]),k.value?(c(),w("div",Ce,[l(x,{data:[1,2,3,4,5]},{default:n(()=>[l(o,{type:"selection",width:"45"}),l(o,{label:a(i)("File Name")},{default:n(()=>[l(v,{animated:""},{template:n(()=>[l(D,{varient:"p",class:"max-w-[190px]"})]),_:1})]),_:1},8,["label"]),l(o,{label:a(i)("Size"),width:"150"},{default:n(()=>[l(v,{animated:""},{template:n(()=>[l(D,{varient:"p",class:"max-w-[100px]"})]),_:1})]),_:1},8,["label"])]),_:1})])):S("",!0),k.value?S("",!0):(c(),w("div",xe,[$.value?(c(),w("div",Le,[u("p",null,p(a(i)("Error: Unable to load the file list.")),1)])):(c(),N(x,{key:0,ref_key:"tableRef",ref:B,data:s.value.filter(_=>_.size>0),onSelectionChange:h},{empty:n(()=>[u("span",null,p(a(i)("No file found.")),1)]),default:n(()=>[r.multiple?(c(),N(o,{key:0,type:"selection",width:"45",selectable:_=>!_.deleting&&_.size>0,onSelectionChange:h},null,8,["selectable"])):(c(),N(o,{key:1,label:"",width:"45"},{default:n(_=>[l(V,{modelValue:E.value,"onUpdate:modelValue":d[2]||(d[2]=R=>E.value=R),label:_.row,disabled:_.row.size==0,onChange:R=>h([_.row])},null,8,["modelValue","label","disabled","onChange"])]),_:1})),l(o,{label:a(i)("File Name")},{default:n(_=>[u("span",De,p(j(_.row.name)),1)]),_:1},8,["label"]),l(o,{label:a(i)("Size"),width:"150"},{default:n(_=>[u("span",null,p(a(Y).readableFileSizeFromBytes(_.row.size)),1)]),_:1},8,["label"]),l(o,{label:a(i)("Actions"),width:"80"},{default:n(_=>[l(K,{title:a(i)("Are you sure you want to delete this file? This action is not recoverable."),"confirm-button-text":a(i)("Yes, Confirm!"),"cancel-button-text":a(i)("Cancel"),onConfirm:R=>m(_.row,_.$index),width:"250","popper-class":"fct-delete-confirm-popover"},{reference:n(()=>[l(G,{size:"small",tag:"button",disabled:_.row.deleting},{default:n(()=>[l(T,{name:"Delete"})]),_:2},1032,["disabled"])]),_:2},1032,["title","confirm-button-text","cancel-button-text","onConfirm"])]),_:1},8,["label"])]),_:1},8,["data"]))]))],64))],64)}}};class $e extends re{constructor(){super(...arguments);O(this,"data",{drivers:{},selectedDriver:"",isDriversLoaded:!1,loadingDriver:!1,buckets:{},bucketLoadingStates:{},needsReconfigure:{},loadingFiles:!1,onFileUploadedCallbacks:{}});O(this,"getActiveDrivers",()=>{this.data.drivers=[],H.get("settings/storage-drivers/active-drivers").then(e=>{this.data.drivers=e.drivers,this.data.drivers.length>0&&(this.data.selectedDriver.value=this.data.drivers[0].route),Object.values(this.data.drivers).forEach(s=>{s.has_bucket&&(this.data.buckets[s.route]=s.buckets,this.data.bucketLoadingStates[s.route]=!0,this.data.needsReconfigure[s.route]=!!s.need_reconfigure)})}).catch(e=>{console.log(e,"errors")}).finally(()=>{this.data.isDriversLoaded=!0})});O(this,"getBuckets",e=>this.data.bucketLoadingStates[e]===!1?(this.loadBucketList(e),[]):this.data.buckets[e]?this.data.buckets[e]:[]);O(this,"loadBucketList",e=>{this.isBucketLoaded(e)||this.isBucketLoading(e)||(this.data.bucketLoadingStates[e]="loading",H.get("files/bucket-list",{driver:e}).then(s=>{this.data.bucketLoadingStates[e]=!0,this.data.buckets[e]=s.buckets}).catch(s=>{this.data.bucketLoadingStates[e]=!1}).finally(()=>{}))});O(this,"getFileList",async(e,s="")=>{if(s=s.trim(),this.hasBucket(e)&&this.needsReconfigure(e))return[];let k=[];return this.data.loadingFiles=!0,await H.get("files",{driver:e,search:s}).then(L=>{k=L.files}).catch(L=>{I.error(L)}).finally(()=>{this.data.loadingFiles=!1}),k});O(this,"onFileUploaded",(e,s)=>{typeof e=="function"&&!this.data.onFileUploadedCallbacks.hasOwnProperty(s)&&(this.data.onFileUploadedCallbacks[s]=e)});O(this,"fileUploaded",e=>{const s=e.file.driver;!s||!this.data.onFileUploadedCallbacks.hasOwnProperty(s)||typeof this.data.onFileUploadedCallbacks[s]=="function"&&this.data.onFileUploadedCallbacks[s](e)})}get drivers(){return Object.values(this.data.drivers)}hasBucket(e){return this.data.buckets.hasOwnProperty(e)}needsReconfigure(e){return!!this.data.needsReconfigure[e]}isBucketLoading(e){return this.data.bucketLoadingStates[e]==="loading"}isBucketLoaded(e){return this.data.bucketLoadingStates[e]===!0}}function ze(){return $e.init()}const Be={class:"fct-driver-wrap"},Ve={class:"fct-driver-content"},Re={key:0,class:"empty-driver-text"},Ne={class:"fct-driver-tabs-label"},Oe={class:"fct-driver-arrow-icon"},Te={class:"fct-driver-tabs-label"},Ie={key:0},Pe={class:"fct-driver-tabs-label"},Ee={key:0,class:"dialog-footer"},et={__name:"FileUploaderDialog",props:{isDisabled:String,uploadBtnText:{default:i("Choose File")},uploadBtnIcon:{default:"Upload"},uploadBtnSize:{type:String,default:"large"},isMultiple:{type:Boolean,default:!0}},emits:["onUploaded","onFileSelected"],setup(r,{emit:C}){const e=r,s=C,k=f(!1),L=f(),y=oe().ctx,M=f("local"),g=f([]),F=f([]);f(!1);const h=f(!1),$=ze();X(()=>{$.getActiveDrivers()});const E=m=>{M.value=m},j=()=>{if(!F.value||F.value.length===0){y.handleMessage(i("Please select a file"),"error","fct-file-upload-message");return}if(g.value=[],e.isMultiple)F.value.forEach(m=>{const t=m.name;let d=t.split("_____fluent-cart_____")[0];d=d.split("__fluent-cart__")[0],g.value.push({id:"",title:d,type:t.slice(t.lastIndexOf(".")+1),driver:m.driver,bucket:m.bucket,file_name:t,file_size:m.size,settings:{download_limit:"",download_expiry:"",bucket:m.bucket},serial:""})});else{const m=F.value[0],t=m.name;let d=t.split("_____fluent-cart_____")[0];d=d.split("__fluent-cart__")[0],g.value.push({id:"",title:d,type:t.slice(t.lastIndexOf(".")+1),driver:m.driver,bucket:m.bucket,file_name:t,file_size:m.size,settings:{download_limit:"",download_expiry:"",bucket:m.bucket},serial:""})}k.value=!1,h.value=!1,s("onFileSelected",g)},z=f("list"),B=f(!1),q=(m,t)=>{F.value=m,h.value=F.value.length>0,B.value=t};return(m,t)=>{const d=b("el-button"),U=b("router-link"),P=b("el-tab-pane"),o=b("el-tabs"),D=b("el-dialog");return c(),w("div",Be,[l(d,{class:"fct-upload-btn",type:"info",plain:"",onClick:t[0]||(t[0]=v=>k.value=!0),disabled:r.isDisabled,size:r.uploadBtnSize},{default:n(()=>[r.uploadBtnIcon?(c(),N(T,{key:0,name:r.uploadBtnIcon},null,8,["name"])):S("",!0),A(" "+p(r.uploadBtnText),1)]),_:1},8,["disabled","size"]),l(D,{modelValue:k.value,"onUpdate:modelValue":t[6]||(t[6]=v=>k.value=v),"append-to-body":!0,title:a(i)("Storage Providers"),"modal-class":"fct-file-upload-dialog",onClose:()=>{}},{default:n(()=>[u("div",Ve,[a($).drivers.length<1?(c(),w("span",Re,[A(p(a(i)("No active storage provider found!"))+" ",1),l(U,{to:"/settings/storage"},{default:n(()=>[A(p(a(i)("Go to setting to active")),1)]),_:1})])):S("",!0),a($).drivers.length>0?(c(),N(o,{key:1,class:"fct-driver-tabs",modelValue:M.value,"onUpdate:modelValue":t[4]||(t[4]=v=>M.value=v),"tab-position":"left",onTabChange:E},{default:n(()=>[(c(!0),w(W,null,ne(a($).drivers,v=>(c(),N(P,{name:v.route,key:v.route},{label:n(()=>[u("div",Ne,[l(T,{name:v.title==="S3"?"FolderCloud":"Folder"},null,8,["name"]),u("span",null,p(v.title),1),u("div",Oe,[l(T,{name:"ChevronRight"})])])]),default:n(()=>[l(o,{modelValue:z.value,"onUpdate:modelValue":t[3]||(t[3]=x=>z.value=x),class:"fct-file-tabs","tab-position":"top"},{default:n(()=>[l(P,{name:"list"},{label:n(()=>[u("div",Te,p(a(i)("Select Files")),1)]),default:n(()=>[l(Me,{storageDriverModel:a($),driver:v.route,onOnFileSelected:t[1]||(t[1]=(x,V)=>{q(x,V)}),multiple:r.isMultiple},null,8,["storageDriverModel","driver","multiple"]),B.value?(c(),w("span",Ie,p(a(i)("File name must not exceed %s characters",160)),1)):S("",!0)]),_:2},1024),l(P,{name:"upload"},{label:n(()=>[u("div",Pe,p(a(i)("Upload")),1)]),default:n(()=>[l(we,{storageDriverModel:a($),onOnUploaded:t[2]||(t[2]=(x,V,K)=>{z.value="list"}),driver:v.route,ref_for:!0,ref:v.route==="local"?L.value:""},null,8,["storageDriverModel","driver"])]),_:2},1024)]),_:2},1032,["modelValue"])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"])):S("",!0)]),a($).drivers.length>0?(c(),w("div",Ee,[l(d,{onClick:t[5]||(t[5]=v=>k.value=!1),type:"info",soft:""},{default:n(()=>[A(p(a(i)("Cancel")),1)]),_:1}),l(d,{type:"primary",onClick:j,disabled:!h.value||B.value},{default:n(()=>[A(p(a(i)("Confirm")),1)]),_:1},8,["disabled"])])):S("",!0)]),_:1},8,["modelValue","title"])])}}};export{et as _};
1 +var ee=Object.defineProperty;var te=(r,C,e)=>C in r?ee(r,C,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[C]=e;var R=(r,C,e)=>te(r,typeof C!="symbol"?C+"":C,e);import{h as p,l as J,r as k,e as S,o as c,b as w,d as u,F as Y,a as l,t as m,u as a,w as o,f as j,q as le,c as B,n as ae,v as se,i as Z,z as oe,x as ne,k as ie,g as re}from"./vue.esm-bundler.js?ver=1.6.5";import{S as Q,e as de}from"./common.js?ver=1.6.5";import{I as W}from"./IconButton.js?ver=1.6.5";import{_ as N}from"./DynamicIcon.js?ver=1.6.5";import{R as X}from"./Rest.js?ver=1.6.5";import{n as T}from"./Notify.js?ver=1.6.5";import{t as n}from"./Translator.js?ver=1.6.5";import{M as ue}from"./Model.js?ver=1.6.5";const ce={class:"fct-file-uploader-wrap"},fe={key:0,class:"fct-file-upload-rename"},ve={class:"fct-form-group"},pe={for:"filename_input"},_e={style:{display:"flex","justify-content":"space-between"}},me={key:0},ge={class:"fct-btn-group sm fct-file-upload-rename-actions"},he={class:"el-upload__text"},be=["innerHTML"],ke={key:1,class:"fct-file-upload-progress"},ye={class:"upload-progress-head"},Fe={class:"upload-progress-body"},we={key:0,class:"fct-file-upload-name"},Se={class:"fct-file-upload-text"},Ue={key:0},P=160,Ce={__name:"FileUploader",props:{driver:String,storageDriverModel:Object},emits:["onUploaded"],setup(r,{expose:C,emit:e}){const s=r,y=e,L=p(null),U=p(""),M=p(),b=p([]),F=p(!1),h=p(0),x=J(()=>{const d=U.value.length;return d>0&&d<=P}),A=()=>window.fluentCartRestVars.rest.url+"/files/upload",H=()=>({name:U.value,driver:s.driver}),E=()=>x.value?!0:(T.error(n("Filename too long. Maximum %1$s characters allowed",P)),F.value=!1,h.value=0,!1),$=d=>{d!=null&&d.message&&T.success(d.message),b.value=[],M.value=null,U.value="",F.value=!1,h.value=0};C({reset:$});const q=d=>{M.value=d;const i=d.name.replace(/\.[^/.]+$/,"");i.length>P?U.value=i.slice(0,P):U.value=i},_=()=>{L.value.handleRemove(M.value),$()},t=(d,i,z)=>{h.value=parseInt(d.percent+"")},v=(d,i,z)=>{var V,O;$(d),(O=(V=s.storageDriverModel)==null?void 0:V.fileUploaded)==null||O.call(V,d),y("onUploaded",d,i,z)},f=()=>{F.value=!0,L.value.submit()},I=d=>U.value+"."+d.split(".").pop(),D=()=>({"X-WP-Nonce":X.getNonce()});return(d,i)=>{const z=k("el-input"),V=k("el-button"),O=k("el-alert"),g=k("el-upload"),G=k("el-progress");return c(),S("div",ce,[b.value.length>0?(c(),S(Y,{key:0},[F.value?w("",!0):(c(),S("div",fe,[u("div",ve,[u("label",pe,m(d.$t("File Name")),1),l(z,{id:"filename_input",modelValue:U.value,"onUpdate:modelValue":i[0]||(i[0]=K=>U.value=K),maxlength:P},null,8,["modelValue"]),u("div",_e,[u("div",null,[x.value?w("",!0):(c(),S("span",me,m(a(n)("File name Must not exceed %s characters",P)),1))]),u("div",null,m(U.value.length)+"/"+m(P),1)])]),u("div",ge,[l(V,{type:"primary",onClick:f,disabled:!x.value},{default:o(()=>[j(m(d.$t("Upload")),1)]),_:1},8,["disabled"]),l(W,{onClick:le($,["prevent"]),tag:"button"},{default:o(()=>[l(N,{name:"Delete"})]),_:1})])]))],64)):w("",!0),u("div",{class:ae({hidden:b.value.length>0})},[r.storageDriverModel.needsReconfigure(r.driver)?(c(),B(O,{key:0,type:"warning",closable:!1,title:a(n)("S3 needs to be reconfigured. Please go to S3 settings and re-save your bucket selection."),"show-icon":"",class:"mb-3"},null,8,["title"])):w("",!0),r.storageDriverModel.needsReconfigure(r.driver)?w("",!0):(c(),B(g,{key:1,class:"fct-file-uploader",ref_key:"uploaderRef",ref:L,data:H(),"file-list":b.value,"onUpdate:fileList":i[1]||(i[1]=K=>b.value=K),drag:"",action:A(),"on-progress":t,"on-success":v,"on-error":(K,He,qe)=>{K.toString().includes("Request Entity Too Large")?a(T).error(a(n)("File too large")):a(T).error(a(n)("Cant upload the file")),b.value=[],U.value="",F.value=!1,h.value=0},"auto-upload":!1,"on-change":q,multiple:!1,limit:1,"show-file-list":!1,headers:D(),"before-upload":E},{default:o(()=>[l(W,{circle:"",bg:"primary",soft:""},{default:o(()=>[l(N,{name:"Upload"})]),_:1}),u("div",he,[u("span",{innerHTML:a(n)("Drag & Drop or %1$s Browse/Upload %2$s Files","<em>","</em>")},null,8,be),u("span",null,m(a(n)("Any Format upto %s",a(Q).serverMaxUploadSize())),1)])]),_:1},8,["data","file-list","action","on-error","headers"]))],2),F.value?(c(),S("div",ke,[u("div",ye,[l(W,{bg:"info",soft:"",size:"small"},{default:o(()=>[l(N,{name:"Files"})]),_:1})]),u("div",Fe,[b.value.length>0?(c(),S("div",we,m(I(b.value[0].name)),1)):w("",!0),l(G,{"stroke-width":5,percentage:h.value,striped:"","striped-flow":"",duration:40},{default:o(()=>[u("div",Se,[b.value.length>0?(c(),S("span",Ue,m(a(de)(b.value[0].size*(h.value/100),b.value[0].size)),1)):w("",!0),u("span",null,m(a(n)("%1$s Uploaded",`${h.value}%`)),1)])]),_:1},8,["percentage"])]),u("div",{class:"fct-file-upload-progress-cancel",onClick:_},[l(N,{name:"Close"})])])):w("",!0)])}}},xe={class:"fct-file-upload-search-wrap"},De={key:0},Le={key:1,class:"fct-file-upload-list"},Me={class:"file-name"},$e={key:1},ze={__name:"FileList",props:{driver:String,buckets:Array,storageDriverModel:Object,multiple:{type:Boolean,default:!0}},emits:["onFileSelected"],setup(r,{emit:C}){const e=r,s=p([]),y=p(!1),L=()=>{y.value=!0,s.value=[],M.value=[],h([]),e.storageDriverModel.getFileList(e.driver,U.value).then(t=>{s.value=t}).catch(t=>{T.error(t)}).finally(()=>{y.value=!1})},U=p(""),M=p([]),b=p(!1),F=p(!1),h=t=>{F.value=!1;const v=t.map(f=>(f.name.length>185&&(F.value=!0),{name:f.name,path:f.path||f.name,size:f.size,bucket:f.bucket,driver:f.driver}));M.value=t,b.value=M.value.length>0,E("onFileSelected",v,F.value)},x=J(()=>s.value&&s.value.errors&&Object.keys(s.value.errors).length>0),A=p(null),H=t=>t.includes("_____fluent-cart_____")?t.split("_____fluent-cart_____")[0]:t.split("__fluent-cart__")[0];se(()=>e.driver,()=>{h([])});const E=C,$=p(null),q=t=>{y.value=!0;const v=t.file;s.value.unshift(v),h([...M.value,v]),y.value=!1,ne(()=>{$.value&&$.value.toggleRowSelection(t.file,!0)})};Z(()=>{e.storageDriverModel.needsReconfigure(e.driver)||L(),e.storageDriverModel.onFileUploaded(q,e.driver)});const _=async(t,v)=>{t.deleting=!0,await X.delete("files/delete",{file_path:t.path||t.name,driver:e.driver,bucket:t.bucket||""}).then(f=>{T.success(f.message),s.value.splice(v,1),h([])}).catch(f=>{T.error(f.message)}).finally(()=>{t.deleting=!1})};return(t,v)=>{const f=k("el-alert"),I=k("el-input"),D=k("el-table-column"),d=k("el-skeleton-item"),i=k("el-skeleton"),z=k("el-table"),V=k("el-radio"),O=k("el-popconfirm");return c(),S(Y,null,[r.storageDriverModel.needsReconfigure(r.driver)?(c(),B(f,{key:0,type:"warning",closable:!1,title:a(n)("S3 needs to be reconfigured. Please go to S3 settings and re-save your bucket selection."),"show-icon":""},null,8,["title"])):w("",!0),r.storageDriverModel.needsReconfigure(r.driver)?w("",!0):(c(),S(Y,{key:1},[u("div",xe,[l(I,{modelValue:U.value,"onUpdate:modelValue":v[0]||(v[0]=g=>U.value=g),class:"fct-file-search-input",placeholder:a(n)("Search and hit enter"),clearable:"",onKeyup:v[1]||(v[1]=oe(()=>{L()},["enter"]))},null,8,["modelValue","placeholder"])]),y.value?(c(),S("div",De,[l(z,{data:[1,2,3,4,5]},{default:o(()=>[l(D,{type:"selection",width:"45"}),l(D,{label:a(n)("File Name")},{default:o(()=>[l(i,{animated:""},{template:o(()=>[l(d,{varient:"p",class:"max-w-[190px]"})]),_:1})]),_:1},8,["label"]),l(D,{label:a(n)("Size"),width:"150"},{default:o(()=>[l(i,{animated:""},{template:o(()=>[l(d,{varient:"p",class:"max-w-[100px]"})]),_:1})]),_:1},8,["label"])]),_:1})])):w("",!0),y.value?w("",!0):(c(),S("div",Le,[x.value?(c(),S("div",$e,[u("p",null,m(a(n)("Error: Unable to load the file list.")),1)])):(c(),B(z,{key:0,ref_key:"tableRef",ref:$,data:s.value.filter(g=>g.size>0),onSelectionChange:h},{empty:o(()=>[u("span",null,m(a(n)("No file found.")),1)]),default:o(()=>[r.multiple?(c(),B(D,{key:0,type:"selection",width:"45",selectable:g=>!g.deleting&&g.size>0,onSelectionChange:h},null,8,["selectable"])):(c(),B(D,{key:1,label:"",width:"45"},{default:o(g=>[l(V,{modelValue:A.value,"onUpdate:modelValue":v[2]||(v[2]=G=>A.value=G),label:g.row,disabled:g.row.size==0,onChange:G=>h([g.row])},null,8,["modelValue","label","disabled","onChange"])]),_:1})),l(D,{label:a(n)("File Name")},{default:o(g=>[u("span",Me,m(H(g.row.path||g.row.name)),1)]),_:1},8,["label"]),l(D,{label:a(n)("Size"),width:"150"},{default:o(g=>[u("span",null,m(a(Q).readableFileSizeFromBytes(g.row.size)),1)]),_:1},8,["label"]),l(D,{label:a(n)("Actions"),width:"80"},{default:o(g=>[l(O,{title:a(n)("Are you sure you want to delete this file? This action is not recoverable."),"confirm-button-text":a(n)("Yes, Confirm!"),"cancel-button-text":a(n)("Cancel"),onConfirm:G=>_(g.row,g.$index),width:"250","popper-class":"fct-delete-confirm-popover"},{reference:o(()=>[l(W,{size:"small",tag:"button",disabled:g.row.deleting},{default:o(()=>[l(N,{name:"Delete"})]),_:2},1032,["disabled"])]),_:2},1032,["title","confirm-button-text","cancel-button-text","onConfirm"])]),_:1},8,["label"])]),_:1},8,["data"]))]))],64))],64)}}};class Ve extends ue{constructor(){super(...arguments);R(this,"data",{drivers:{},selectedDriver:"",isDriversLoaded:!1,loadingDriver:!1,buckets:{},bucketLoadingStates:{},needsReconfigure:{},loadingFiles:!1,onFileUploadedCallbacks:{}});R(this,"getActiveDrivers",()=>{this.data.drivers=[],X.get("settings/storage-drivers/active-drivers").then(e=>{this.data.drivers=e.drivers,this.data.drivers.length>0&&(this.data.selectedDriver.value=this.data.drivers[0].route),Object.values(this.data.drivers).forEach(s=>{s.has_bucket&&(this.data.buckets[s.route]=s.buckets,this.data.bucketLoadingStates[s.route]=!0,this.data.needsReconfigure[s.route]=!!s.need_reconfigure)})}).catch(e=>{}).finally(()=>{this.data.isDriversLoaded=!0})});R(this,"getBuckets",e=>this.data.bucketLoadingStates[e]===!1?(this.loadBucketList(e),[]):this.data.buckets[e]?this.data.buckets[e]:[]);R(this,"loadBucketList",e=>{this.isBucketLoaded(e)||this.isBucketLoading(e)||(this.data.bucketLoadingStates[e]="loading",X.get("files/bucket-list",{driver:e}).then(s=>{this.data.bucketLoadingStates[e]=!0,this.data.buckets[e]=s.buckets}).catch(s=>{this.data.bucketLoadingStates[e]=!1}).finally(()=>{}))});R(this,"getFileList",async(e,s="")=>{if(s=s.trim(),this.hasBucket(e)&&this.needsReconfigure(e))return[];let y=[];return this.data.loadingFiles=!0,await X.get("files",{driver:e,search:s}).then(L=>{y=L.files}).catch(L=>{T.error(L)}).finally(()=>{this.data.loadingFiles=!1}),y});R(this,"onFileUploaded",(e,s)=>{typeof e=="function"&&!this.data.onFileUploadedCallbacks.hasOwnProperty(s)&&(this.data.onFileUploadedCallbacks[s]=e)});R(this,"fileUploaded",e=>{const s=e.file.driver;!s||!this.data.onFileUploadedCallbacks.hasOwnProperty(s)||typeof this.data.onFileUploadedCallbacks[s]=="function"&&this.data.onFileUploadedCallbacks[s](e)})}get drivers(){return Object.values(this.data.drivers)}hasBucket(e){return this.data.buckets.hasOwnProperty(e)}needsReconfigure(e){return!!this.data.needsReconfigure[e]}isBucketLoading(e){return this.data.bucketLoadingStates[e]==="loading"}isBucketLoaded(e){return this.data.bucketLoadingStates[e]===!0}}function Be(){return Ve.init()}const Re={class:"fct-driver-wrap"},Ne={class:"fct-driver-content"},Te={key:0,class:"empty-driver-text"},Ee={class:"fct-driver-tabs-label"},Ie={class:"fct-driver-arrow-icon"},Oe={class:"fct-driver-tabs-label"},Pe={key:0},Ae={class:"fct-driver-tabs-label"},je={key:0,class:"dialog-footer"},lt={__name:"FileUploaderDialog",props:{isDisabled:String,uploadBtnText:{default:n("Choose File")},uploadBtnIcon:{default:"Upload"},uploadBtnSize:{type:String,default:"large"},isMultiple:{type:Boolean,default:!0}},emits:["onUploaded","onFileSelected"],setup(r,{emit:C}){const e=r,s=C,y=p(!1),L=p(),U=ie().ctx,M=p("local"),b=p([]),F=p([]);p(!1);const h=p(!1),x=Be();Z(()=>{x.getActiveDrivers()});const A=_=>{M.value=_},H=()=>{if(!F.value||F.value.length===0){U.handleMessage(n("Please select a file"),"error","fct-file-upload-message");return}if(b.value=[],e.isMultiple)F.value.forEach(_=>{const t=_.name,v=_.path||t;let f=t.split("_____fluent-cart_____")[0];f=f.split("__fluent-cart__")[0],b.value.push({id:"",title:f,type:t.slice(t.lastIndexOf(".")+1),driver:_.driver,bucket:_.bucket,file_name:t,file_path:v,file_size:_.size,settings:{download_limit:"",download_expiry:"",bucket:_.bucket},serial:""})});else{const _=F.value[0],t=_.name,v=_.path||t;let f=t.split("_____fluent-cart_____")[0];f=f.split("__fluent-cart__")[0],b.value.push({id:"",title:f,type:t.slice(t.lastIndexOf(".")+1),driver:_.driver,bucket:_.bucket,file_name:t,file_path:v,file_size:_.size,settings:{download_limit:"",download_expiry:"",bucket:_.bucket},serial:""})}y.value=!1,h.value=!1,s("onFileSelected",b.value)},E=p("list"),$=p(!1),q=(_,t)=>{F.value=_,h.value=F.value.length>0,$.value=t};return(_,t)=>{const v=k("el-button"),f=k("router-link"),I=k("el-tab-pane"),D=k("el-tabs"),d=k("el-dialog");return c(),S("div",Re,[l(v,{class:"fct-upload-btn",type:"info",plain:"",onClick:t[0]||(t[0]=i=>y.value=!0),disabled:r.isDisabled,size:r.uploadBtnSize},{default:o(()=>[r.uploadBtnIcon?(c(),B(N,{key:0,name:r.uploadBtnIcon},null,8,["name"])):w("",!0),j(" "+m(r.uploadBtnText),1)]),_:1},8,["disabled","size"]),l(d,{modelValue:y.value,"onUpdate:modelValue":t[6]||(t[6]=i=>y.value=i),"append-to-body":!0,title:a(n)("Storage Providers"),"modal-class":"fct-file-upload-dialog",onClose:()=>{}},{default:o(()=>[u("div",Ne,[a(x).drivers.length<1?(c(),S("span",Te,[j(m(a(n)("No active storage provider found!"))+" ",1),l(f,{to:"/settings/storage"},{default:o(()=>[j(m(a(n)("Go to setting to active")),1)]),_:1})])):w("",!0),a(x).drivers.length>0?(c(),B(D,{key:1,class:"fct-driver-tabs",modelValue:M.value,"onUpdate:modelValue":t[4]||(t[4]=i=>M.value=i),"tab-position":"left",onTabChange:A},{default:o(()=>[(c(!0),S(Y,null,re(a(x).drivers,i=>(c(),B(I,{name:i.route,key:i.route},{label:o(()=>[u("div",Ee,[l(N,{name:i.title==="S3"?"FolderCloud":"Folder"},null,8,["name"]),u("span",null,m(i.title),1),u("div",Ie,[l(N,{name:"ChevronRight"})])])]),default:o(()=>[l(D,{modelValue:E.value,"onUpdate:modelValue":t[3]||(t[3]=z=>E.value=z),class:"fct-file-tabs","tab-position":"top"},{default:o(()=>[l(I,{name:"list"},{label:o(()=>[u("div",Oe,m(a(n)("Select Files")),1)]),default:o(()=>[l(ze,{storageDriverModel:a(x),driver:i.route,onOnFileSelected:t[1]||(t[1]=(z,V)=>{q(z,V)}),multiple:r.isMultiple},null,8,["storageDriverModel","driver","multiple"]),$.value?(c(),S("span",Pe,m(a(n)("File name must not exceed %s characters",160)),1)):w("",!0)]),_:2},1024),l(I,{name:"upload"},{label:o(()=>[u("div",Ae,m(a(n)("Upload")),1)]),default:o(()=>[l(Ce,{storageDriverModel:a(x),onOnUploaded:t[2]||(t[2]=(z,V,O)=>{E.value="list"}),driver:i.route,ref_for:!0,ref:i.route==="local"?L.value:""},null,8,["storageDriverModel","driver"])]),_:2},1024)]),_:2},1032,["modelValue"])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"])):w("",!0)]),a(x).drivers.length>0?(c(),S("div",je,[l(v,{onClick:t[5]||(t[5]=i=>y.value=!1),type:"info",soft:""},{default:o(()=>[j(m(a(n)("Cancel")),1)]),_:1}),l(v,{type:"primary",onClick:H,disabled:!h.value||$.value},{default:o(()=>[j(m(a(n)("Confirm")),1)]),_:1},8,["disabled"])])):w("",!0)]),_:1},8,["modelValue","title"])])}}};export{lt as _};