|
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 v,l as J,r as b,e as S,o as f,b as F,d as c,F as Y,a as l,t as p,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.5.2";import{e as de}from"./common.js?ver=1.5.2";import{I as W}from"./IconButton.js?ver=1.5.2";import{_ as N}from"./DynamicIcon.js?ver=1.5.2";import{R as X}from"./Rest.js?ver=1.5.2";import{n as T}from"./Notify.js?ver=1.5.2";import{t as n}from"./Translator.js?ver=1.5.2";import{S as Q}from"./Storage.js?ver=1.5.2";import{M as ue}from"./Model.js?ver=1.5.2";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"},Se={key:0,class:"fct-file-upload-name"},we={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,k=e,L=v(null),w=v(""),M=v(),h=v([]),y=v(!1),g=v(0),x=J(()=>{const u=w.value.length;return u>0&&u<=P}),A=()=>window.fluentCartRestVars.rest.url+"/files/upload",H=()=>({name:w.value,driver:s.driver}),E=()=>x.value?!0:(T.error(n(`Filename too long. Maximum ${P} characters allowed`)),y.value=!1,g.value=0,!1),$=u=>{u!=null&&u.message&&T.success(u.message),h.value=[],M.value=null,w.value="",y.value=!1,g.value=0};C({reset:$});const q=u=>{M.value=u;const i=u.name.replace(/\.[^/.]+$/,"");i.length>P?w.value=i.slice(0,P):w.value=i},_=()=>{L.value.handleRemove(M.value),$()},t=(u,i,z)=>{g.value=parseInt(u.percent+"")},d=(u,i,z)=>{var V,O;$(u),(O=(V=s.storageDriverModel)==null?void 0:V.fileUploaded)==null||O.call(V,u),k("onUploaded",u,i,z)},U=()=>{y.value=!0,L.value.submit()},I=u=>w.value+"."+u.split(".").pop(),D=()=>({"X-WP-Nonce":X.getNonce()});return(u,i)=>{const z=b("el-input"),V=b("el-button"),O=b("el-alert"),m=b("el-upload"),G=b("el-progress");return f(),S("div",ce,[h.value.length>0?(f(),S(Y,{key:0},[y.value?F("",!0):(f(),S("div",fe,[c("div",ve,[c("label",pe,p(u.$t("File Name")),1),l(z,{id:"filename_input",modelValue:w.value,"onUpdate:modelValue":i[0]||(i[0]=K=>w.value=K),maxlength:P},null,8,["modelValue"]),c("div",_e,[c("div",null,[x.value?F("",!0):(f(),S("span",me,p(a(n)("File name Must not exceed %s characters",P)),1))]),c("div",null,p(w.value.length)+"/"+p(P),1)])]),c("div",ge,[l(V,{type:"primary",onClick:U,disabled:!x.value},{default:o(()=>[j(p(u.$t("Upload")),1)]),_:1},8,["disabled"]),l(W,{onClick:le($,["prevent"]),tag:"button"},{default:o(()=>[l(N,{name:"Delete"})]),_:1})])]))],64)):F("",!0),c("div",{class:ae({hidden:h.value.length>0})},[r.storageDriverModel.needsReconfigure(r.driver)?(f(),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"])):F("",!0),r.storageDriverModel.needsReconfigure(r.driver)?F("",!0):(f(),B(m,{key:1,class:"fct-file-uploader",ref_key:"uploaderRef",ref:L,data:H(),"file-list":h.value,"onUpdate:fileList":i[1]||(i[1]=K=>h.value=K),drag:"",action:A(),"on-progress":t,"on-success":d,"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")),h.value=[],w.value="",y.value=!1,g.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}),c("div",he,[c("span",{innerHTML:a(n)("Drag & Drop or %1$s Browse/Upload %2$s Files","<em>","</em>")},null,8,be),c("span",null,p(a(n)("Any Format upto %s",a(Q).serverMaxUploadSize())),1)])]),_:1},8,["data","file-list","action","on-error","headers"]))],2),y.value?(f(),S("div",ke,[c("div",ye,[l(W,{bg:"info",soft:"",size:"small"},{default:o(()=>[l(N,{name:"Files"})]),_:1})]),c("div",Fe,[h.value.length>0?(f(),S("div",Se,p(I(h.value[0].name)),1)):F("",!0),l(G,{"stroke-width":5,percentage:g.value,striped:"","striped-flow":"",duration:40},{default:o(()=>[c("div",we,[h.value.length>0?(f(),S("span",Ue,p(a(de)(h.value[0].size*(g.value/100),h.value[0].size)),1)):F("",!0),c("span",null,p(a(n)("%s% Uploaded",g.value)),1)])]),_:1},8,["percentage"])]),c("div",{class:"fct-file-upload-progress-cancel",onClick:_},[l(N,{name:"Close"})])])):F("",!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=v([]),k=v(!1),L=()=>{k.value=!0,s.value=[],M.value=[],g([]),e.storageDriverModel.getFileList(e.driver,w.value).then(t=>{s.value=t}).catch(t=>{T.error(t)}).finally(()=>{k.value=!1})},w=v(""),M=v([]),h=v(!1),y=v(!1),g=t=>{y.value=!1;const d=t.map(U=>(U.name.length>185&&(y.value=!0),{name:U.name,size:U.size,bucket:U.bucket,driver:U.driver}));M.value=t,h.value=M.value.length>0,E("onFileSelected",d,y.value)},x=J(()=>s.value&&s.value.errors&&Object.keys(s.value.errors).length>0),A=v(null),H=t=>t.includes("_____fluent-cart_____")?t.split("_____fluent-cart_____")[0]:t.split("__fluent-cart__")[0];se(()=>e.driver,()=>{g([])});const E=C,$=v(null),q=t=>{k.value=!0;const d=t.file;s.value.unshift(d),g([...M.value,d]),k.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,d)=>{t.deleting=!0,await X.delete("files/delete",{file_path:t.name,driver:e.driver,bucket:t.bucket||""}).then(U=>{T.success(U.message),s.value.splice(d,1),g([])}).catch(U=>{T.error(U.message)}).finally(()=>{t.deleting=!1})};return(t,d)=>{const U=b("el-alert"),I=b("el-input"),D=b("el-table-column"),u=b("el-skeleton-item"),i=b("el-skeleton"),z=b("el-table"),V=b("el-radio"),O=b("el-popconfirm");return f(),S(Y,null,[r.storageDriverModel.needsReconfigure(r.driver)?(f(),B(U,{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"])):F("",!0),r.storageDriverModel.needsReconfigure(r.driver)?F("",!0):(f(),S(Y,{key:1},[c("div",xe,[l(I,{modelValue:w.value,"onUpdate:modelValue":d[0]||(d[0]=m=>w.value=m),class:"fct-file-search-input",placeholder:a(n)("Search and hit enter"),clearable:"",onKeyup:d[1]||(d[1]=oe(()=>{L()},["enter"]))},null,8,["modelValue","placeholder"])]),k.value?(f(),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(u,{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(u,{varient:"p",class:"max-w-[100px]"})]),_:1})]),_:1},8,["label"])]),_:1})])):F("",!0),k.value?F("",!0):(f(),S("div",Le,[x.value?(f(),S("div",$e,[c("p",null,p(a(n)("Error: Unable to load the file list.")),1)])):(f(),B(z,{key:0,ref_key:"tableRef",ref:$,data:s.value.filter(m=>m.size>0),onSelectionChange:g},{empty:o(()=>[c("span",null,p(a(n)("No file found.")),1)]),default:o(()=>[r.multiple?(f(),B(D,{key:0,type:"selection",width:"45",selectable:m=>!m.deleting&&m.size>0,onSelectionChange:g},null,8,["selectable"])):(f(),B(D,{key:1,label:"",width:"45"},{default:o(m=>[l(V,{modelValue:A.value,"onUpdate:modelValue":d[2]||(d[2]=G=>A.value=G),label:m.row,disabled:m.row.size==0,onChange:G=>g([m.row])},null,8,["modelValue","label","disabled","onChange"])]),_:1})),l(D,{label:a(n)("File Name")},{default:o(m=>[c("span",Me,p(H(m.row.name)),1)]),_:1},8,["label"]),l(D,{label:a(n)("Size"),width:"150"},{default:o(m=>[c("span",null,p(a(Q).readableFileSizeFromBytes(m.row.size)),1)]),_:1},8,["label"]),l(D,{label:a(n)("Actions"),width:"80"},{default:o(m=>[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=>_(m.row,m.$index),width:"250","popper-class":"fct-delete-confirm-popover"},{reference:o(()=>[l(W,{size:"small",tag:"button",disabled:m.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 k=[];return this.data.loadingFiles=!0,await X.get("files",{driver:e,search:s}).then(L=>{k=L.files}).catch(L=>{T.error(L)}).finally(()=>{this.data.loadingFiles=!1}),k});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"},at={__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,k=v(!1),L=v(),w=ie().ctx,M=v("local"),h=v([]),y=v([]);v(!1);const g=v(!1),x=Be();Z(()=>{x.getActiveDrivers()});const A=_=>{M.value=_},H=()=>{if(!y.value||y.value.length===0){w.handleMessage(n("Please select a file"),"error","fct-file-upload-message");return}if(h.value=[],e.isMultiple)y.value.forEach(_=>{const t=_.name;let d=t.split("_____fluent-cart_____")[0];d=d.split("__fluent-cart__")[0],h.value.push({id:"",title:d,type:t.slice(t.lastIndexOf(".")+1),driver:_.driver,bucket:_.bucket,file_name:t,file_size:_.size,settings:{download_limit:"",download_expiry:"",bucket:_.bucket},serial:""})});else{const _=y.value[0],t=_.name;let d=t.split("_____fluent-cart_____")[0];d=d.split("__fluent-cart__")[0],h.value.push({id:"",title:d,type:t.slice(t.lastIndexOf(".")+1),driver:_.driver,bucket:_.bucket,file_name:t,file_size:_.size,settings:{download_limit:"",download_expiry:"",bucket:_.bucket},serial:""})}k.value=!1,g.value=!1,s("onFileSelected",h.value)},E=v("list"),$=v(!1),q=(_,t)=>{y.value=_,g.value=y.value.length>0,$.value=t};return(_,t)=>{const d=b("el-button"),U=b("router-link"),I=b("el-tab-pane"),D=b("el-tabs"),u=b("el-dialog");return f(),S("div",Re,[l(d,{class:"fct-upload-btn",type:"info",plain:"",onClick:t[0]||(t[0]=i=>k.value=!0),disabled:r.isDisabled,size:r.uploadBtnSize},{default:o(()=>[r.uploadBtnIcon?(f(),B(N,{key:0,name:r.uploadBtnIcon},null,8,["name"])):F("",!0),j(" "+p(r.uploadBtnText),1)]),_:1},8,["disabled","size"]),l(u,{modelValue:k.value,"onUpdate:modelValue":t[6]||(t[6]=i=>k.value=i),"append-to-body":!0,title:a(n)("Storage Providers"),"modal-class":"fct-file-upload-dialog",onClose:()=>{}},{default:o(()=>[c("div",Ne,[a(x).drivers.length<1?(f(),S("span",Te,[j(p(a(n)("No active storage provider found!"))+" ",1),l(U,{to:"/settings/storage"},{default:o(()=>[j(p(a(n)("Go to setting to active")),1)]),_:1})])):F("",!0),a(x).drivers.length>0?(f(),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(()=>[(f(!0),S(Y,null,re(a(x).drivers,i=>(f(),B(I,{name:i.route,key:i.route},{label:o(()=>[c("div",Ee,[l(N,{name:i.title==="S3"?"FolderCloud":"Folder"},null,8,["name"]),c("span",null,p(i.title),1),c("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(()=>[c("div",Oe,p(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?(f(),S("span",Pe,p(a(n)("File name must not exceed %s characters",160)),1)):F("",!0)]),_:2},1024),l(I,{name:"upload"},{label:o(()=>[c("div",Ae,p(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"])):F("",!0)]),a(x).drivers.length>0?(f(),S("div",je,[l(d,{onClick:t[5]||(t[5]=i=>k.value=!1),type:"info",soft:""},{default:o(()=>[j(p(a(n)("Cancel")),1)]),_:1}),l(d,{type:"primary",onClick:H,disabled:!g.value||$.value},{default:o(()=>[j(p(a(n)("Confirm")),1)]),_:1},8,["disabled"])])):F("",!0)]),_:1},8,["modelValue","title"])])}}};export{at 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 _}; |